username@email.com
2024-04-02 5b46930255ec185a906d07165f9d0dc91c300ab8
CoreCms.Net.Web.Admin/Controllers/Distribution/CoreCmsDistributionController.cs
@@ -1,7 +1,7 @@
/***********************************************************************
 *            Project: CoreCms
 *            Project: baifenBinfa
 *        ProjectName: 百分兵法管理系统                               
 *                Web: hhtp://chuanyin.com
 *                Web: http://chuanyin.com
 *             Author:                                        
 *              Email:                               
 *         CreateTime: 202403/02   
@@ -9,12 +9,14 @@
 ***********************************************************************/
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Linq.Expressions;
using System.Threading.Tasks;
using CoreCms.Net.Configuration;
using CoreCms.Net.Filter;
using CoreCms.Net.IRepository.UnitOfWork;
using CoreCms.Net.IServices;
using CoreCms.Net.Loging;
using CoreCms.Net.Model.Entities;
@@ -28,14 +30,16 @@
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Mvc;
using Microsoft.CodeAnalysis.Operations;
using SqlSugar;
using ZstdSharp.Unsafe;
namespace CoreCms.Net.Web.Admin.Controllers
{
    /// <summary>
    ///     分销商表
    ///     经销商表
    /// </summary>
    [Description("分销商表")]
    [Description("经销商表")]
    [Route("api/[controller]/[action]")]
    [ApiController]
    [RequiredErrorForAdmin]
@@ -47,18 +51,38 @@
        private readonly ICoreCmsDistributionGradeServices _distributionGradeServices;
        private readonly ICoreCmsUserServices _userServices;
        private readonly IWebHostEnvironment _webHostEnvironment;
        private readonly ICoreCmsAreaServices _areaServices;
        private readonly ICoreCmsSettingServices _coreCmsSettingServices;
        private readonly IUnitOfWork _unitOfWork;
         private readonly ICoreCmsStoreServices _coreCmsStoreServices;
        private readonly ICoreCmsClerkServices _coreCmsClerkServices;
        /// <summary>
        ///     构造函数
        /// </summary>
        public CoreCmsDistributionController(IWebHostEnvironment webHostEnvironment
            , ICoreCmsDistributionServices coreCmsDistributionServices, ICoreCmsUserGradeServices userGradeServices, ICoreCmsDistributionGradeServices distributionGradeServices, ICoreCmsUserServices userServices)
            , ICoreCmsDistributionServices coreCmsDistributionServices,
            ICoreCmsUserGradeServices userGradeServices,
            ICoreCmsDistributionGradeServices distributionGradeServices,
            ICoreCmsUserServices userServices,
            ICoreCmsAreaServices areaServices,
            ICoreCmsSettingServices coreCmsSettingServices,
            IUnitOfWork unitOfWork,
            ICoreCmsStoreServices coreCmsStoreServices,
            ICoreCmsClerkServices coreCmsClerkServices)
        {
            _webHostEnvironment = webHostEnvironment;
            _coreCmsDistributionServices = coreCmsDistributionServices;
            _userGradeServices = userGradeServices;
            _distributionGradeServices = distributionGradeServices;
            _userServices = userServices;
            _areaServices = areaServices;
            _coreCmsSettingServices = coreCmsSettingServices;
            _unitOfWork = unitOfWork;
            _coreCmsStoreServices = coreCmsStoreServices;
            _coreCmsClerkServices= coreCmsClerkServices;
        }
        #region 获取列表============================================================
@@ -115,10 +139,10 @@
            //用户Id int
            var userId = Request.Form["userId"].FirstOrDefault().ObjectToInt(0);
            if (userId > 0) where = where.And(p => p.userId == userId);
            //分销商名称 nvarchar
            //经销商名称 nvarchar
            var name = Request.Form["name"].FirstOrDefault();
            if (!string.IsNullOrEmpty(name)) where = where.And(p => p.name.Contains(name));
            //分销等级 int
            //经销等级 int
            var gradeId = Request.Form["gradeId"].FirstOrDefault().ObjectToInt(0);
            if (gradeId > 0) where = where.And(p => p.gradeId == gradeId);
            //用户等级 int
@@ -213,6 +237,7 @@
                where = where.And(p => p.isDelete == false);
            //获取数据
            var list = await _coreCmsDistributionServices.QueryPageAsync(where, orderEx, orderBy, pageCurrent, pageSize);
            //返回数据
            jm.data = list;
            jm.code = 0;
@@ -301,7 +326,7 @@
            var isDistribution = await _coreCmsDistributionServices.ExistsAsync(p => p.userId == user.id);
            if (isDistribution)
            {
                jm.msg = "提交的【已注册手机号】已经是分销商了。";
                jm.msg = "提交的【已注册手机号】已经是经销商了。";
                return jm;
            }
            var model = new CoreCmsDistribution();
@@ -384,22 +409,208 @@
                return jm;
            }
            //事物处理过程开始
            oldModel.name = entity.name;
            oldModel.gradeId = entity.gradeId;
            oldModel.mobile = entity.mobile;
            oldModel.weixin = entity.weixin;
            oldModel.qq = entity.qq;
            oldModel.verifyStatus = entity.verifyStatus;
            oldModel.updateTime = DateTime.Now;
            if (oldModel.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes) oldModel.verifyTime = DateTime.Now;
            //oldModel.weixin = entity.weixin;
            //oldModel.qq = entity.qq;
            //事物处理过程结束
            var bl = await _coreCmsDistributionServices.UpdateAsync(oldModel);
            jm.code = bl ? 0 : 1;
            jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
            try
            {
                _unitOfWork.BeginTran();
                if (oldModel.verifyStatus != (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes && entity.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes)
                {
            return jm;
                    //老模型未通过审核,新模型未通过审核,那么为审核通过过程
                    var allConfigs = await _coreCmsSettingServices.GetConfigDictionaries();
                    var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryUserGroupKey);
                    var olduser = await _userServices.QueryByIdAsync(oldModel.userId);
                    var group = await _userGradeServices.GetUserGradeByValueKey(kc);
                    if (group != null)
                    {
                        //关联经销商用户等级
                        if (olduser != null)
                        {
                            olduser.grade = group.id;
                            olduser.updataTime = DateTime.Now;
                            await _userServices.UpdateAsync(olduser);
                        }
                    }
                    //如果是通过审核
                    oldModel.verifyTime = DateTime.Now;
                    //处理店铺
                    if(entity.profession=="文具店")
                    {
                        //新建店铺名称
                        var store = await _coreCmsStoreServices.QueryByClauseAsync(x => x.userID == oldModel.userId);
                        if(store!=null)
                        {
                            //存在店铺
                             store.coordinate= entity.storeCoordinate;
                            store.storeName = entity.storeName;
                            //用logo代替门头照片
                            store.logoImage = entity.storeLogo;
                            store.en = true;
                            store.updateTime = DateTime.Now;
                         await   _coreCmsStoreServices.UpdateAsync(store);
                        }
                        else
                        {
                            var areaCode = oldModel.areaCode.Split(',').OrderByDescending(x=>x).FirstOrDefault();
                            var db = _unitOfWork.GetDbClient();
                            string[] lat = [];
                            if (!string.IsNullOrEmpty(oldModel.storeCoordinate))
                                lat = oldModel.storeCoordinate.Split(",");
                            //新建地铺
                            store = new CoreCmsStore
                            {
                                userID = oldModel.userId,
                                address = oldModel.address,
                                areaId = areaCode.ToInt32OrDefault(510000),
                                storeName = oldModel.storeName,
                                coordinate = oldModel.storeCoordinate,
                                createTime = DateTime.Now,
                                mobile = oldModel.mobile,
                                linkMan = olduser.userName,
                            };
                            if(lat.Length==2)
                            {
                                store.latitude= lat[0];
                                store.longitude= lat[1];
                            }
                          var id= await  _unitOfWork.GetDbClient().Insertable(store).ExecuteReturnIdentityAsync();
                            //将自己设置为店员
                            CoreCmsClerk clerk = new CoreCmsClerk()
                            {
                                createTime = DateTime.Now,
                                storeId = id,
                                userId = entity.userId,
                            };
                           await  _coreCmsClerkServices.InsertAsync(clerk);
                        }
                    }
                }
                else
                if (oldModel.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes && entity.verifyStatus != (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes)
                {
                    //如果是取消审核
                    var allConfigs = await _coreCmsSettingServices.GetConfigDictionaries();
                    var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryUserGroupKey);
                    var group = await _userGradeServices.GetUserGradeByValueKey(kc);
                    var defgroup = await _userGradeServices.GetDefaultUserGrade();
                    if (defgroup != null)
                    {
                        var olduser = await _userServices.QueryByIdAsync(oldModel.userId);
                        if (olduser != null)
                        {//处理用户等级
                            if (olduser.grade == group.id)
                            {
                                if (defgroup != null)
                                {
                                    olduser.grade = defgroup.id;
                                }
                                else
                                {
                                    olduser.grade = 0;
                                }
                                olduser.updataTime = DateTime.Now;
                                await _userServices.UpdateAsync(olduser);
                            }
                        }
                        var store = await _coreCmsStoreServices.QueryByClauseAsync(x => x.userID == oldModel.userId);
                        //处理店铺  取消已有店铺的使能
                       if(store != null )
                            if(store.en== true)
                        {
                            store.en = false;
                            store.updateTime= DateTime.Now;
                          await  _coreCmsStoreServices.UpdateAsync(store);
                        }
                    }
                }
                    oldModel.verifyStatus = entity.verifyStatus;
                    oldModel.updateTime = DateTime.Now;
                    //if (oldModel.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes)
                    //{
                    //    oldModel.verifyTime = DateTime.Now;
                    //}
                    //事物处理过程结束
                    var bl = await _coreCmsDistributionServices.UpdateAsync(oldModel);
                _unitOfWork.CommitTran();
                jm.code = bl ? 0 : 1;
                    jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
                    return jm;
                }
            catch (Exception )
            {
                _unitOfWork.RollbackTran();
                jm.code =  1;
                jm.msg = GlobalConstVars.EditFailure;
                return jm;
            }
            //if(oldModel.verifyStatus!= (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes&& entity.verifyStatus== (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes)
            //{
            //    var allConfigs = await _coreCmsSettingServices.GetConfigDictionaries();
            //    var kc = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryUserGroupKey);
            //    var group = await _userGradeServices.GetUserGradeByValueKey(kc);
            //    //如果是通过审核
            //    oldModel.verifyTime = DateTime.Now;
            //}
            //else
            //    if(oldModel.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes && entity.verifyStatus != (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes)
            //{
            //    //如果是取消审核
            //}
            //oldModel.verifyStatus = entity.verifyStatus;
            //oldModel.updateTime = DateTime.Now;
            ////if (oldModel.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes)
            ////{
            ////    oldModel.verifyTime = DateTime.Now;
            ////}
            ////事物处理过程结束
            //var bl = await _coreCmsDistributionServices.UpdateAsync(oldModel);
            //jm.code = bl ? 0 : 1;
            //jm.msg = bl ? GlobalConstVars.EditSuccess : GlobalConstVars.EditFailure;
            //return jm;
        }
        #endregion