移动系统liao
2024-04-26 7ab5760a2657ef9fdae3ab919a474075315c103c
CoreCms.Net.Web.Admin/Controllers/apply/applyModelController.cs
@@ -32,6 +32,13 @@
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;
using CoreCms.Net.Model.ViewModels.Basics;
using System.Collections.Generic;
namespace CoreCms.Net.Web.Admin.Controllers
{
@@ -47,16 +54,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 获取列表============================================================
@@ -99,31 +118,28 @@
                where = where.And(p => p.id == id);
            }
         //审批人ID varchar
         var managerID = Request.Form["managerID"].FirstOrDefault();
            if (!string.IsNullOrEmpty(managerID))
         var managerName = Request.Form["managerName"].FirstOrDefault();
            if (!string.IsNullOrEmpty(managerName))
            {
                where = where.And(p => p.managerID.Contains(managerID));
                where = where.And(p => p.managerName.Contains(managerName));
            }
         //审批角色ID varchar
         var roleID = Request.Form["roleID"].FirstOrDefault();
            if (!string.IsNullOrEmpty(roleID))
            {
                where = where.And(p => p.roleID.Contains(roleID));
            }
         //审核人数数量 int
         var managerApplyCount = Request.Form["managerApplyCount"].FirstOrDefault().ObjectToInt(0);
            if (managerApplyCount > 0)
            {
                where = where.And(p => p.managerApplyCount == managerApplyCount);
            }
         //类型 int
         var aType = Request.Form["aType"].FirstOrDefault().ObjectToInt(0);
            if (aType > 0)
         var aType = Request.Form["aType"].FirstOrDefault().ObjectToInt(-1);
            if (aType > -1)
            {
                where = where.And(p => p.aType ==(applyType)aType);
            }
         //内容 varchar
         var dec = Request.Form["dec"].FirstOrDefault();
            //类型 int
            var ayStataType = Request.Form["ayStataType"].FirstOrDefault().ObjectToInt(-1);
            if (ayStataType > -1)
            {
                where = where.And(p => p.ayStataType == (applyStataType)ayStataType);
            }
            //内容 varchar
            var dec = Request.Form["dec"].FirstOrDefault();
            if (!string.IsNullOrEmpty(dec))
            {
                where = where.And(p => p.dec.Contains(dec));
@@ -206,10 +222,45 @@
            }
            //获取数据
            var list = await _applyModelServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize, true);
                var applyModelDTOs = new List<applyModelDTO>();
            foreach( var model in list)
            {
                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;
                applyModelDTOs.Add(modelDTO);
            }
            IPageList<applyModelDTO>  listpage = new PageList<applyModelDTO>(applyModelDTOs, list.PageIndex, pageSize, list.TotalCount);
            //返回数据
            jm.data = list;
            jm.data = listpage;
            jm.code = 0;
            jm.count = list.TotalCount;
            jm.count = listpage.TotalCount;
            jm.msg = "数据调用成功!";
            return jm;
        }
@@ -282,8 +333,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 +420,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 +594,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;
        }