乱七八糟啊

using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Internal;
using Newtonsoft.Json.Linq;
using NPOI.HPSF;
using NPOI.POIFS.Crypt.Dsig;
using System.Text.RegularExpressions;
using Train.Application.Services;
using Train.Core.Common;
using Train.Core.Dtos.Account;
using Train.Core.Dtos.Base;
using Train.Core.IServices;
using Train.Core.Models;
using Train.Core.Models.Account;
using Train.Core.Models.Base;
using Train.Core.Models.Common;
using Train.Core.Repositories;
using static Microsoft.EntityFrameworkCore.DbLoggerCategory;
using Microsoft.Extensions.Configuration;

namespace Train.WebApi.Controllers
{
///
/// 收费方式管理
///
[Route(“[controller]/[action]”)]
[ApiController]
public class BaseChargeModeController: ControllerBase
{

    private readonly IRepository<BaseChargeModeInfo, int> _repository;
    private readonly IRepository<BaseChargeType, int> _repBaseChargeType;
    private readonly IAdminAuditLogServer _adminAuditLogServer;
    private readonly IAdminUserPermitServer _adminUserPermitServer;
    public BaseChargeModeController(
        IRepository<BaseChargeModeInfo, int> repository,
        IRepository<BaseChargeType, int> repBaseChargeType,
        IAdminAuditLogServer adminAuditLogServer,
        IAdminUserPermitServer adminUserPermitServer)
    {

        _repository = repository;
        _adminAuditLogServer = adminAuditLogServer;
        _adminUserPermitServer = adminUserPermitServer;
        _repBaseChargeType = repBaseChargeType;
    }



    #region 查询
  

    /// <summary>
    /// 信息详情
    /// </summary>
    /// <param name="Id"></param>
    /// <returns></returns>
    [HttpGet("/[controller]/{Id}/info")]
    public async Task<ResponseData<BaseChargeModeInfo>> Get(int Id)
    {
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseChargeMode_Management_info"))
        {
            return ResponseHelper.BadRequest<BaseChargeModeInfo>("没有权限,无法操作,请添加权限", null);
        }
        var permit = GetPermitDict();
        BaseChargeModeInfo baseChargeModeInfo = new BaseChargeModeInfo();
        var result = await _repository.GetAll().Where(b => b.BaseChargeModeInfoId == Id && b.Del == 0).FirstOrDefaultAsync();
        BaseChargeType res = await _repBaseChargeType.GetAll().Where(b => b.BaseChargeTypeId == result.BaseChargeTypeId && b.Del == 0).FirstOrDefaultAsync();
        if (result != null)
        {

            baseChargeModeInfo.BaseChargeModeInfoId = result.BaseChargeModeInfoId;
            baseChargeModeInfo.BaseChargeType = res;
            baseChargeModeInfo.ChargeModeCode = result.ChargeModeCode;
            baseChargeModeInfo.BaseChargeModeInfoGuid = result.BaseChargeModeInfoGuid;
            baseChargeModeInfo.ChargeModeCode = result.ChargeModeCode;
            baseChargeModeInfo.ChargeModeName = result.ChargeModeName;
            baseChargeModeInfo.ChargeTypePhoto = result.ChargeTypePhoto;
            baseChargeModeInfo.BaseChargeTypeId = result.BaseChargeTypeId;
            baseChargeModeInfo.State = result.State;
            baseChargeModeInfo.Del = result.Del;
            baseChargeModeInfo.InputTime = result.InputTime;
            baseChargeModeInfo.UpdateTime = result.UpdateTime;
            baseChargeModeInfo.FreeTime = result.FreeTime;
            baseChargeModeInfo.DayChargeEndTime = result.DayChargeEndTime;
            baseChargeModeInfo.DayChargeStartTime = result.DayChargeStartTime;
            baseChargeModeInfo.DayChargeMinuts = result.DayChargeMinuts;
            baseChargeModeInfo.DayChargeFee = result.DayChargeFee;
            baseChargeModeInfo.NightChargeEndTime = result.NightChargeEndTime;
            baseChargeModeInfo.NightChargeStartTime = result.NightChargeStartTime;
            baseChargeModeInfo.NightChargeMinuts = result.NightChargeMinuts;
            baseChargeModeInfo.NightChargeFee = result.NightChargeFee;
        }

        AddAuditLog("查询成功", "ino", "");
        return ResponseHelper.Ok("获取成功", baseChargeModeInfo);

    }

    /// <summary>
    /// 动态条件查询
    /// </summary>
    /// <param name="searchInputDto">动态入参</param>
    /// <returns>张文铭 3/13</returns>
    
    [HttpPost]
    public ActionResult<ResponseData<JObject>> GetList(SearchInputDto searchInputDto)
    {
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseChargeMode_Management_info"))
        {
            return ResponseHelper.BadRequest<JObject>("没有权限,无法操作,请添加权限", null);
        }
        var permit = GetPermitDict();

        JObject result = new JObject();

        var (list, Count, Total) = SearchInputSQLDict.DynamicGetAll<BaseChargeModeInfo>(searchInputDto, "Base_ChargeMode", "BaseChargeModeInfoId");

        result["List"] = list;
        result["Count"] = Count;
        result["Total"] = Total;

        System.Diagnostics.Debug.WriteLine(result);
        AddAuditLog("查询成功", "ino", "");

        return ResponseHelper.Ok("查询成功", result, permit);

    }




    #endregion


    #region 新增
    /// <summary>
    /// 添加一个收费模式
    /// </summary>
    /// <param name="BaseChargeModeInfo"></param>
    /// <returns>张文铭 3/13</returns> 
    [HttpPost]

    public async Task<ResponseData<BaseChargeModeInfo>> Add(BaseChargeModeInfo BaseChargeModeInfo)
    {
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseDivideMode_Management_add"))
        {
            return ResponseHelper.BadRequest<BaseChargeModeInfo>("没有权限,无法操作,请添加权限", null);
        }
        var permit = GetPermitDict();
        if (_repository.GetAll().AsNoTracking()
         .Count(d => d.Del == 0 && d.ChargeModeCode == BaseChargeModeInfo.ChargeModeCode) > 0)
        {
            return ResponseHelper.BadRequest<BaseChargeModeInfo>("收费模式编号重复,请重新输入收费模式编号", null);
        }
        BaseChargeModeInfo model = new BaseChargeModeInfo();
        model.BaseChargeModeInfoGuid = Guid.NewGuid();
        model.Del = 0;
        model.State = 0;
        model.UpdateTime = DateTime.Now;
        model.InputTime = DateTime.Now;
        model.DayChargeMinuts = BaseChargeModeInfo.DayChargeMinuts;
        model.DayChargeFee = BaseChargeModeInfo.DayChargeFee;
        model.NightChargeEndTime = BaseChargeModeInfo.NightChargeEndTime;
        model.NightChargeStartTime = BaseChargeModeInfo.NightChargeStartTime;
        model.NightChargeMinuts = BaseChargeModeInfo.NightChargeMinuts;
        model.NightChargeFee = BaseChargeModeInfo.NightChargeFee;
        model.ChargeTypePhoto = BaseChargeModeInfo.ChargeTypePhoto;
        model.ChargeModeCode = BaseChargeModeInfo.ChargeModeCode;
        model.ChargeModeName = BaseChargeModeInfo.ChargeModeName;
        model.FreeTime = BaseChargeModeInfo.FreeTime;
        model.DayChargeEndTime = BaseChargeModeInfo.DayChargeEndTime;
        model.DayChargeStartTime = BaseChargeModeInfo.DayChargeStartTime;
        model.BaseChargeTypeId = BaseChargeModeInfo.BaseChargeTypeId;
        var result = await _repository.InsertAsync(model);
        if (result.BaseChargeModeInfoId != 0)
        {
            AddAuditLog("添加成功", "ino", model.BaseChargeModeInfoId.ToString());
            return ResponseHelper.Ok("添加成功", result);
        }

        AddAuditLog("添加失败", "waring", "");
        return ResponseHelper.BadRequest<BaseChargeModeInfo>("添加失败", null);
    }
    #endregion

    #region 删除
    /// <summary>
    /// 删除一个收费方式
    /// </summary>
    /// <param name="Id"></param>
    /// <returns>张文铭 3/13</returns>
    [Route("/[controller]/{Id}")]
    [HttpDelete]
    public async Task<ResponseData<int>> Remove(int Id)
    {
        //权限校验
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseDivideMode_Management_del"))
        {
            return ResponseHelper.BadRequest("没有权限,无法操作,请添加权限", 0);
        }

        //数据校验
        if (Id == 0)
        {
            return ResponseHelper.BadRequest("数据错误,无法操作,请检查页面", 0);
        }

        var curChageMode = _repository.GetAll().AsNoTracking().FirstOrDefault(d => d.BaseChargeModeInfoId == Id);
        if (curChageMode == null)//不存在该分成模式的数据
        {
            return ResponseHelper.BadRequest("数据错误,无法操作,请检查页面", 0);
        }

        curChageMode.Del = 1;
        var result = _repository.Update(curChageMode);

        if (result.Del == 1 && result.BaseChargeModeInfoId == Id)
        {
            AddAuditLog("删除成功", "ino", "");
            return ResponseHelper.Ok("删除成功", 1);
        }
        AddAuditLog("删除失败", "waring", "");
        return ResponseHelper.Ok("删除失败", 0);

    }

    #endregion

    #region 更新

    /// <summary>
    /// 修改下拉框回填
    /// </summary>
    /// <returns></returns>
    [HttpPost]
    public async Task<ResponseData<List<BaseChargeType>>> getTypeIdList()
    {
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseDivideMode_Management_info"))
        {
            return ResponseHelper.BadRequest<List<BaseChargeType>>("没有权限,无法操作,请添加权限", null);
        }
        var permit = GetPermitDict();
        var result = await _repBaseChargeType.GetAll().Where(b => b.Del == 0).ToListAsync();
        AddAuditLog("查询成功", "ino", "");
        return ResponseHelper.Ok("获取成功", result, permit);
    }


    /// <summary>
    /// 更新收费模式
    /// </summary>
    /// <param name="BaseChargeModeInfo"></param>
    /// <returns></returns>
    [HttpPut] 
    public async Task<ResponseData<BaseChargeModeInfo>> Update(BaseChargeModeInfo BaseChargeModeInfo)
    {
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseDivideMode_Management_edit"))
        {
            return ResponseHelper.BadRequest<BaseChargeModeInfo>("没有权限,无法操作,请添加权限", null);
        }
        var permit = GetPermitDict();
        //数据重复验证
        if (_repository.GetAll().AsNoTracking()
         .Count(d => d.Del == 0 && d.ChargeModeCode == BaseChargeModeInfo.ChargeModeCode && d.BaseChargeModeInfoId != BaseChargeModeInfo.BaseChargeModeInfoId) > 0)
        {//收费模式编号判断
            return ResponseHelper.BadRequest<BaseChargeModeInfo>("已存在相同收费编号,请重新输入收费模式编号", null);
        }
        var nowtime = DateTime.Now;
        BaseChargeModeInfo model = await _repository.GetAll().FirstOrDefaultAsync(m => m.BaseChargeModeInfoId == BaseChargeModeInfo.BaseChargeModeInfoId);
        if (model != null)
        {

            model.BaseChargeTypeId = BaseChargeModeInfo.BaseChargeTypeId;
            model.DayChargeMinuts = BaseChargeModeInfo.DayChargeMinuts;
            model.DayChargeFee = BaseChargeModeInfo.DayChargeFee;
            model.NightChargeEndTime = BaseChargeModeInfo.NightChargeEndTime;
            model.NightChargeStartTime = BaseChargeModeInfo.NightChargeStartTime;
            model.NightChargeMinuts = BaseChargeModeInfo.NightChargeMinuts;
            model.NightChargeFee = BaseChargeModeInfo.NightChargeFee;
            model.ChargeTypePhoto = BaseChargeModeInfo.ChargeTypePhoto;
            model.Del = BaseChargeModeInfo.Del;
            model.InputTime = BaseChargeModeInfo.InputTime;
            model.UpdateTime = nowtime;
            model.State = BaseChargeModeInfo.State;
            model.ChargeModeCode = BaseChargeModeInfo.ChargeModeCode;
            model.ChargeModeName = BaseChargeModeInfo.ChargeModeName;
            model.FreeTime = BaseChargeModeInfo.FreeTime;
            model.DayChargeEndTime = BaseChargeModeInfo.DayChargeEndTime;
            model.DayChargeStartTime = BaseChargeModeInfo.DayChargeStartTime;



            var result = await _repository.UpdateAsync(model);
            if (result.UpdateTime == nowtime)
            {
                AddAuditLog("更新成功", "ino", model.BaseChargeModeInfoId.ToString());
                return ResponseHelper.Ok("更新成功", result);
            }
        }

        AddAuditLog("更新失败", "waring", model.BaseChargeModeInfoId.ToString());
        return ResponseHelper.BadRequest<BaseChargeModeInfo>("更新失败", null);
    }


    public class OS {
        public bool State { get; set; }
        public int Id { get; set; }
    }
   /// <summary>
   /// 启用或停用
   /// </summary>
   /// <param name="data"></param>
   /// <returns></returns>
    [HttpPost]
    public async Task<ResponseData<int>> getOpenOrStop(OS data)
    {
        //权限校验
        var guid = GetUserBindGuid();
        if (!_adminUserPermitServer.Trial(guid, "BaseDivideMode_Management_del"))
        {
            return ResponseHelper.BadRequest("没有权限,无法操作,请添加权限", 0);
        }
        var curChageMode = _repository.GetAll().AsNoTracking().FirstOrDefault(d => d.BaseChargeModeInfoId == data.Id);
        //判断
        if (data.State)
        {
            curChageMode.State = 0;
            var result = _repository.Update(curChageMode);

            if (result.State == 0 && result.BaseChargeModeInfoId == data.Id)
            {
                AddAuditLog("启用成功", "ino", "");
                return ResponseHelper.Ok("启用成功", 1);
            }
            else
            {
                AddAuditLog("启用失败", "waring", "");
            }
        }
        else {
            curChageMode.State = 1;
            var result = _repository.Update(curChageMode);

            if (result.State == 1 && result.BaseChargeModeInfoId == data.Id)
            {
                AddAuditLog("停用成功", "ino", "");
                return ResponseHelper.Ok("停用成功", 1);
            }
            else
            {
                AddAuditLog("停用失败", "waring", "");
            }
        }
        return ResponseHelper.Ok("执行失败", 0);

    }

    /// <summary>
    /// 图片接收
    /// </summary>
    /// <param name="file"></param>
    /// <returns></returns>
    [HttpPost]
    public async Task<IActionResult> ChargeEdit(IFormFile file) {
        {
            if (file == null || file.Length == 0)
            {
                return BadRequest("未知错误");
            }
        // 获取上传文件的文件名和扩展名
        var fileName = Path.GetFileNameWithoutExtension(file.FileName);
            var fileExtension = Path.GetExtension(file.FileName);

            // 为上传文件生成一个唯一的文件名
            var FileName = $"{fileName}_{System.Guid.NewGuid()}{fileExtension}";
            
            // 将上传文件保存到本地磁盘
            var builder = WebApplication.CreateBuilder();
            //获取文件存储位置
            string url =  builder.Configuration["Path:Images"];
            var filePath = Path.Combine(url, FileName);
            using (var fileStream = new FileStream(filePath, FileMode.Create))
            {
                await file.CopyToAsync(fileStream);
            }
            //int address = Request.HttpContext.Connection.LocalPort;
            //return Ok("http://localhost:"+ address + "/upload/" + FileName);
            return Ok(FileName);
        }
    }

    #endregion


    #region 导入


    /// <summary>
    /// 用户导入
    /// </summary>
    /// <param name="file">文件</param>
    [HttpPost]
    public async Task<ActionResult<ResponseData<int>>> UpLoadExcel(IFormFile file)
    {
        var guid = GetUserBindGuid();
        var stream = file.OpenReadStream();
        var adminUserDataTable = NPOIHelper.Sheet2DataTable(stream, "Sheet1", file.FileName);
        if (adminUserDataTable == null)
        {
            return ResponseHelper.BadRequest("导入失败", 0);
        }

        
        AddAuditLog("导入成功", "ino", "");
        return ResponseHelper.Ok("导入成功", 1);
    }



    #endregion


    #region 添加审核日志-用户每一个操作都记录 还未修改对应的页面
    /// <summary>
    /// 添加审核日志-用户每一个操作都记录
    /// </summary>
    /// <param name="Value">用户做的操作</param>
    /// <param name="LogGrade">日志等级 成功:ino 失败:waring 报错:error </param>
    /// /// <param name="SourceGUID">日志来源的Guid </param>
    private void AddAuditLog(string Value, string LogGrade, string SourceGUID)
    {
        var (ip, ua, Machine) = HttpContextHelper.qwerd(HttpContext);

        if (SourceGUID == "")
        {
            SourceGUID = new Guid().ToString();
        }
    }

    #endregion

    #region 私有方法 权限还未修改对应的页面
    /// <summary>
    /// 登录用户获取用户和底表绑定的guid的方法,如果没有返回空
    /// </summary>
    /// <returns>没有登录返回空,已经登录返回与底表绑定的guid</returns>
    private string GetUserBindGuid() => User.Claims.FirstOrDefault(n => n.Type == "OtherGuid")?.Value;

    /// <summary>
    /// 获取日志的权限字典(通用字典)
    /// </summary>
    /// <returns>通用的权限字典</returns>
    private Dictionary<string, bool> GetPermitDict()
    {
        var guid = GetUserBindGuid();
        //var guid = "3DE0D5FC-023F-47F7-9C0A-26FFE1E0E172";
        var result = _adminUserPermitServer.GetPermit(guid, "BaseDivideMode_Management");
        return result;
    }
    #endregion


}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值