username@email.com
2024-04-02 5b46930255ec185a906d07165f9d0dc91c300ab8
CoreCms.Net.Web.Admin/Controllers/apply/applyModelController.cs
@@ -32,6 +32,11 @@
using SqlSugar;
using CoreCms.Net.Web.Admin.Infrastructure;
using CoreCms.Net.Model.Entities.baifenbingfa.apply;
using CoreCms.Net.Model.ViewModels.baifenbingfa;
using CoreCms.Net.Auth.HttpContextUser;
using Essensoft.Paylink.Alipay.Domain;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using K4os.Compression.LZ4.Internal;
namespace CoreCms.Net.Web.Admin.Controllers
{
@@ -47,16 +52,28 @@
    {
        private readonly IWebHostEnvironment _webHostEnvironment;
        private readonly IapplyModelServices _applyModelServices;
        private readonly IHttpContextUser _httpContextUser;
        private readonly ICoreCmsUserServices _coreCmsUserServices;
        private readonly ISysRoleServices _sysRoleServices;
        private readonly ISysUserRoleServices _sysUserRoleServices;
        /// <summary>
        /// 构造函数
        ///</summary>
        public applyModelController(IWebHostEnvironment webHostEnvironment
            ,IapplyModelServices applyModelServices
              , IHttpContextUser httpContextUser
             , ICoreCmsUserServices coreCmsUserServices
             , ISysRoleServices sysRoleServices
           ,  ISysUserRoleServices sysUserRoleServices
            )
        {
            _webHostEnvironment = webHostEnvironment;
            _applyModelServices = applyModelServices;
            _httpContextUser = httpContextUser;
            _coreCmsUserServices = coreCmsUserServices;
            _sysRoleServices = sysRoleServices;
            _sysUserRoleServices = sysUserRoleServices;
        }
        #region 获取列表============================================================
@@ -282,8 +299,77 @@
                jm.msg = "不存在此信息";
                return jm;
            }
            //审批逻辑
            //判断审批状态是否可以审批
            if (model.ayStataType != applyStataType.applying)
            {
                jm.msg = "信息已经审批结束";
                return jm;
            }
            //查询审批角色里边是否有当前人,当前人是否已经审批过了
            var id = _httpContextUser.ID;
            var name = _httpContextUser.Name;
          var shenpirole =  _sysRoleServices.QueryListByClause(x=>x.roleCode == model.roleID).FirstOrDefault();
            if (shenpirole != null)
            {
             var shenpiren =   _sysUserRoleServices.QueryListByClause(x => x.roleId == shenpirole.id && x.userId == id).FirstOrDefault();
                if(shenpiren == null)
                {
                    jm.msg = "你不是审批人";
                    return jm;
                }
            }
            else
            {
                jm.msg = "没有审批角色";
                return jm;
            }
            if (!string.IsNullOrEmpty(model.managerID))
            {
                var managerID = model.managerID.Split(',');
                var sid = id + "";
                var managerIDs = managerID.Where(x => x == sid).FirstOrDefault();
                if (!string.IsNullOrEmpty(managerIDs))
                {
                    jm.msg = "你已经审批过了";
                    return jm;
                }
            }
            var modelDTO = new applyModelDTO();
            modelDTO.id = model.id;
            modelDTO.id = model.id;
            modelDTO.managerID = model.managerID;
            modelDTO.managerName = model.managerName;
            modelDTO.roleID = model.roleID;
            modelDTO.managerApplyCount = model.managerApplyCount;
            modelDTO.aType = (int)model.aType;
            modelDTO.aTypeName = model.aType.GetDescription();
            modelDTO.ayStataType = (int)model.ayStataType;
            modelDTO.ayStataTypeName = model.ayStataType.GetDescription();
            modelDTO.userID = model.userID;
            modelDTO.dec = model.dec;
            modelDTO.reMake = model.reMake;
            modelDTO.oldData = model.oldData;
            modelDTO.data = model.data;
            modelDTO.createById = model.createById;
            modelDTO.upDataById = model.upDataById;
            modelDTO.createTime = model.createTime;
            modelDTO.upDataTime = model.upDataTime;
            modelDTO.createBy = model.createBy;
            modelDTO.upDataBy = model.upDataBy;
            modelDTO.isdelete = model.isdelete;
            modelDTO.isdelete = true;
            jm.code = 0;
            jm.data = model;
            jm.data = modelDTO;
            return jm;
        }
@@ -300,7 +386,120 @@
        [Description("编辑提交")]
        public async Task<AdminUiCallBack> DoEdit([FromBody]applyModel entity)
        {
            var jm = await _applyModelServices.UpdateAsync(entity);
            var applyModel = await _applyModelServices.QueryByIdAsync(entity.id, false);
            var jm = new AdminUiCallBack();
            if (applyModel == null)
            {
                jm.msg = "不存在此信息";
                return jm;
            }
            //审批逻辑
            //判断审批状态是否可以审批
            if (applyModel.ayStataType != applyStataType.applying)
            {
                jm.msg = "信息已经审批结束";
                return jm;
            }
            var id = _httpContextUser.ID;
            var name = _httpContextUser.Name;
            if (!string.IsNullOrEmpty(applyModel.managerID))
            {
                var managerID = applyModel.managerID.Split(',');
                var sid = id + "";
                var managerIDs = managerID.Where(x => x == sid).FirstOrDefault();
                if (!string.IsNullOrEmpty(managerIDs))
                {
                    jm.msg = "你已经审批过了";
                    return jm;
                }
            }
            //同意还是拒绝
            if (entity.isdelete == true)
            {
                if (string.IsNullOrEmpty(applyModel.managerID))
                {
                    if(applyModel.managerApplyCount == 1)
                    {
                        applyModel.ayStataType = applyStataType.ok;
                    }
                    else
                    {
                        applyModel.ayStataType = applyStataType.applying;
                    }
                    applyModel.managerID = id + "";
                    applyModel.managerName = name + "";
                }
                else
                {
                   var managerID = applyModel.managerID.Split(',');
                    if(managerID.Length +1 < applyModel.managerApplyCount)
                    {
                        applyModel.ayStataType = applyStataType.applying;
                    }
                    else
                    {
                        applyModel.ayStataType = applyStataType.ok;
                    }
                    applyModel.managerID += "," +id ;
                    applyModel.managerName += "," + name;
                }
            }
            else
            {
                applyModel.ayStataType = applyStataType.no;
                if (string.IsNullOrEmpty(applyModel.managerID))
                {
                    applyModel.managerID = id + "";
                    applyModel.managerName = name + "";
                }
                else
                {
                    applyModel.managerID += "," + id;
                    applyModel.managerName += "," + name;
                }
            }
            applyModel.upDataBy = name;
            applyModel.upDataById = id;
            applyModel.upDataTime = DateTime.Now;
            //修改审批人,审批状态
            jm = await _applyModelServices.UpdateAsync(applyModel);
            //如果审批已经通过,执行修改。
            if (applyModel.ayStataType == applyStataType.ok)
            {
                if (applyModel.aType == applyType.points)
                {
                    FMUpdateUserPoint entityjifen = new FMUpdateUserPoint();
                    entityjifen.id = applyModel.userID;
                    int data;
                    int.TryParse(entity.data, out data);
                    entityjifen.point = data;
                    entityjifen.memo = applyModel.reMake;
                    jm = await _coreCmsUserServices.UpdatePiont(entityjifen);
                }
                else if (applyModel.aType == applyType.Balance)
                {
                    decimal data;
                    decimal.TryParse(entity.data, out data);
                    jm = await _coreCmsUserServices.UpdateBalance(applyModel.userID, data, applyModel.reMake);
                }
                else if (applyModel.aType == applyType.Referrer)
                {
                    int data;
                    int.TryParse(entity.data, out data);
                    var bl = await _coreCmsUserServices.UpdateAsync(p => new CoreCmsUser() { parentId = data }, p => p.id == applyModel.userID);
                }
            }
          if(jm.code == 0)
            {
                jm.msg = "审批成功";
            }
            return jm;
        }
        #endregion
@@ -361,13 +560,42 @@
            var jm = new AdminUiCallBack();
            var model = await _applyModelServices.QueryByIdAsync(entity.id, false);
            if (model == null)
            {
                jm.msg = "不存在此信息";
                return jm;
            }
            var modelDTO = new applyModelDTO();
            modelDTO.id = model.id;
            modelDTO.id = model.id;
            modelDTO.managerID = model.managerID;
            modelDTO.managerName = model.managerName;
            modelDTO.roleID = model.roleID;
            modelDTO.managerApplyCount = model.managerApplyCount;
            modelDTO.aType = (int)model.aType;
            modelDTO.aTypeName = model.aType.GetDescription();
            modelDTO.ayStataType = (int)model.ayStataType;
            modelDTO.ayStataTypeName = model.ayStataType.GetDescription();
            modelDTO.userID = model.userID;
            modelDTO.dec = model.dec;
            modelDTO.reMake = model.reMake;
            modelDTO.oldData = model.oldData;
            modelDTO.data = model.data;
            modelDTO.createById = model.createById;
            modelDTO.upDataById = model.upDataById;
            modelDTO.createTime = model.createTime;
            modelDTO.upDataTime = model.upDataTime;
            modelDTO.createBy = model.createBy;
            modelDTO.upDataBy = model.upDataBy;
            modelDTO.isdelete = model.isdelete;
            jm.code = 0;
            jm.data = model;
            jm.data = modelDTO;
            return jm;
        }