From d871b3c107c72c015b9bd6aaffd81878747f478b Mon Sep 17 00:00:00 2001 From: username@email.com <yzy2002yzy@163.com> Date: 星期五, 12 四月 2024 08:39:03 +0800 Subject: [PATCH] 经销商推广费用, 用户积分 --- CoreCms.Net.Task/HangfireDispose.cs | 3 CoreCms.Net.Model/FromBody/FMUpdate.cs | 2 CoreCms.Net.Task/AutoSettleAchievementTotal.cs | 37 ++++ CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievementdetails.html | 58 +++++++ CoreCms.Net.Configuration/SystemSettingConstVars.cs | 9 + CoreCms.Net.Web.Admin/Controllers/Distribution/CoreCmsDistributionController.cs | 34 ++++ CoreCms.Net.Configuration/SystemSettingDictionary.cs | 7 CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs | 135 ++++++++++++++++ CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/editParentId.html | 4 CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/index.html | 10 CoreCms.Net.IServices/Distribution/ICoreCmsDistributionServices.cs | 16 ++ CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievement.html | 59 +++++++ CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs | 25 +- CoreCms.Net.Model/ViewModels/DTO/Distribution/DistributionRankingDTO.cs | 24 +++ CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs | 15 + CoreCms.Net.Web.Admin/wwwroot/views/distribution/setting/index.html | 18 ++ 16 files changed, 428 insertions(+), 28 deletions(-) diff --git a/CoreCms.Net.Configuration/SystemSettingConstVars.cs b/CoreCms.Net.Configuration/SystemSettingConstVars.cs index d13ca62..2190b8d 100644 --- a/CoreCms.Net.Configuration/SystemSettingConstVars.cs +++ b/CoreCms.Net.Configuration/SystemSettingConstVars.cs @@ -949,6 +949,15 @@ /// </summary> public static readonly string DictionaryAchievementSet = "dictionaryAchievementSet"; + /// <summary> + /// 鎺ㄥ箍璐圭敤 + /// </summary> + public static readonly string DictionaryTuiGuangFeiYong = "dictionaryTuiGuangFeiYong"; + /// <summary> + /// 涓氱哗闂ㄦ + /// </summary> + public static readonly string DictionaryYeJiMenKan = "dictionaryYeJiMenKan"; + } } \ No newline at end of file diff --git a/CoreCms.Net.Configuration/SystemSettingDictionary.cs b/CoreCms.Net.Configuration/SystemSettingDictionary.cs index 3a6cc86..9bc34fb 100644 --- a/CoreCms.Net.Configuration/SystemSettingDictionary.cs +++ b/CoreCms.Net.Configuration/SystemSettingDictionary.cs @@ -155,7 +155,7 @@ di.Add(SystemSettingConstVars.PointDiscountedProportion, new DictionaryKeyValues() { sKey = "璁㈠崟绉垎鎶樼幇姣斾緥", sValue = "100" }); di.Add(SystemSettingConstVars.OrdersPointProportion, new DictionaryKeyValues() { sKey = "璁㈠崟绉垎浣跨敤姣斾緥", sValue = "10" }); - di.Add(SystemSettingConstVars.OrdersRewardProportion, new DictionaryKeyValues() { sKey = "璁㈠崟绉垎濂栧姳姣斾緥", sValue = "1" }); + di.Add(SystemSettingConstVars.OrdersRewardProportion, new DictionaryKeyValues() { sKey = "璁㈠崟绉垎濂栧姳姣斾緥", sValue = "10" }); di.Add(SystemSettingConstVars.SignAppointDateStatus, new DictionaryKeyValues() { sKey = "鎸囧畾鐗规畩鏃ユ湡鐘舵��", sValue = "false" }); di.Add(SystemSettingConstVars.SignAppointDate, new DictionaryKeyValues() { sKey = "鎸囧畾鐗规畩鏃ユ湡", sValue = "" }); @@ -279,6 +279,11 @@ //涓氱哗濂栧姳鎶�鏈洜瀛� di.Add(SystemSettingConstVars.DictionaryAchievementSet, new DictionaryKeyValues() { sKey = "涓氱哗濂栧姳", sValue = "2" }); + //鎺ㄥ箍璐圭敤 + di.Add(SystemSettingConstVars.DictionaryTuiGuangFeiYong, new DictionaryKeyValues() { sKey = "鎺ㄥ箍璐圭敤", sValue = "3" }); + //涓氱哗闂ㄦ + di.Add(SystemSettingConstVars.DictionaryYeJiMenKan, new DictionaryKeyValues() { sKey = "涓氱哗闂ㄦ", sValue = "10000" }); + return di; } diff --git a/CoreCms.Net.IServices/Distribution/ICoreCmsDistributionServices.cs b/CoreCms.Net.IServices/Distribution/ICoreCmsDistributionServices.cs index 57806c9..bb3e172 100644 --- a/CoreCms.Net.IServices/Distribution/ICoreCmsDistributionServices.cs +++ b/CoreCms.Net.IServices/Distribution/ICoreCmsDistributionServices.cs @@ -133,6 +133,19 @@ /// </summary> /// <returns></returns> Task<bool> CreateDistributionAchievementOrder(CreateDAOrderInParam Parma); + + + /// <summary> + /// 缁撶畻鎵�鏈変緵搴斿晢鐨勭哗鏁堝鍔� + /// </summary> + /// <returns></returns> + Task<bool> SettledAllAchievement(); + + /// <summary> + /// 鑾峰彇缁忛攢鍟嗘帹骞胯垂 + /// </summary> + /// <returns></returns> + List<DistributionRankingDTO> QueryAchievement(int UserId); } /// <summary> /// 鍒涘缓缁忛攢鍟嗚鍗曚笟缁╄緭鍑哄弬鏁� @@ -155,6 +168,9 @@ /// 閲戦 /// </summary> public decimal Money { get; set; } + + + } } \ No newline at end of file diff --git a/CoreCms.Net.Model/FromBody/FMUpdate.cs b/CoreCms.Net.Model/FromBody/FMUpdate.cs index 21190b3..683abcd 100644 --- a/CoreCms.Net.Model/FromBody/FMUpdate.cs +++ b/CoreCms.Net.Model/FromBody/FMUpdate.cs @@ -209,7 +209,7 @@ /// 涓婄骇搴忓垪 /// </summary> [Required(ErrorMessage = "璇疯緭鍏ヤ笂绾у簭鍒�")] - public int parentId { get; set; } + public string parentId { get; set; } /// <summary> /// 鍘熶笂绾у簭鍒� diff --git a/CoreCms.Net.Model/ViewModels/DTO/Distribution/DistributionRankingDTO.cs b/CoreCms.Net.Model/ViewModels/DTO/Distribution/DistributionRankingDTO.cs index 83349d1..e22ec2f 100644 --- a/CoreCms.Net.Model/ViewModels/DTO/Distribution/DistributionRankingDTO.cs +++ b/CoreCms.Net.Model/ViewModels/DTO/Distribution/DistributionRankingDTO.cs @@ -8,6 +8,7 @@ * Description: 鏆傛棤 ***********************************************************************/ +using SqlSugar; using System; namespace CoreCms.Net.Model.ViewModels.DTO.Distribution @@ -39,5 +40,28 @@ /// 璁㈠崟鏁� /// </summary> public decimal orderCount { get; set; } + + + /// <summary> + /// 寮�濮嬫椂闂� + /// </summary> + public string startTime { get; set; } + + /// <summary> + /// 缁撴潫鏃堕棿 + /// </summary> + public string endTime { get; set; } + + + /// <summary> + /// 缁╂晥鎬婚 + /// </summary> + public string achievementTotals { get; set; } + + /// <summary> + /// 缁╂晥濂栧姳鎬诲拰 + /// </summary> + public string achievementBonus { get; set; } + } } \ No newline at end of file diff --git a/CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs b/CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs index 4d4ecc8..091d16d 100644 --- a/CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs +++ b/CoreCms.Net.Services/Distribution/CoreCmsDistributionServices.cs @@ -19,6 +19,7 @@ using CoreCms.Net.IServices; using CoreCms.Net.Loging; using CoreCms.Net.Model.Entities; +using CoreCms.Net.Model.Entities.baifenbingfa.apply; using CoreCms.Net.Model.Entities.Distribution; using CoreCms.Net.Model.ViewModels.Basics; using CoreCms.Net.Model.ViewModels.DTO.Distribution; @@ -52,8 +53,10 @@ private readonly ICoreCmsSettingServices _settingServices; private readonly IUnitOfWork _unitOfWork; private readonly ICoreCmsUserBalanceServices _userBalanceServices; + private readonly ICoreCmsUserServices _coreCmsUserServices; - public CoreCmsDistributionServices(IUnitOfWork unitOfWork, ICoreCmsDistributionRepository dal, ICoreCmsDistributionOrderRepository distributionOrderRepository, ICoreCmsUserRepository userRepository, ICoreCmsGoodsRepository goodsRepository, ICoreCmsUserGradeRepository userGradeRepository, ICoreCmsSettingServices settingServices, ICoreCmsOrderRepository orderRepository, ICoreCmsDistributionGradeRepository distributionGradeRepository, ICoreCmsDistributionResultRepository distributionResultRepository, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices, ICoreCmsUserBalanceServices userBalanceServices) + public CoreCmsDistributionServices(IUnitOfWork unitOfWork, ICoreCmsDistributionRepository dal, ICoreCmsDistributionOrderRepository distributionOrderRepository, ICoreCmsUserRepository userRepository, ICoreCmsGoodsRepository goodsRepository, ICoreCmsUserGradeRepository userGradeRepository, ICoreCmsSettingServices settingServices, ICoreCmsOrderRepository orderRepository, ICoreCmsDistributionGradeRepository distributionGradeRepository, ICoreCmsDistributionResultRepository distributionResultRepository, ICoreCmsDistributionConditionServices coreCmsDistributionConditionServices, ICoreCmsUserBalanceServices userBalanceServices + , ICoreCmsUserServices coreCmsUserServices) { this._dal = dal; _distributionOrderRepository = distributionOrderRepository; @@ -68,7 +71,9 @@ base.BaseDal = dal; _unitOfWork = unitOfWork; _userBalanceServices = userBalanceServices; - + _coreCmsUserServices = coreCmsUserServices; + + } @@ -713,7 +718,106 @@ return true; } - + + + public async Task<bool> SettledAllAchievement() + { + + + //鏌ヨ鐢ㄦ埛 + var coreCmsUsers = await _userRepository.QueryListByClauseAsync(x => x.isDelete == false && x.status == 1); + + foreach(var coreCmsUser in coreCmsUsers) + { //闈炰緵搴斿晢锛屽仠姝� + var da = await _dal.GetCountAsync(x => x.userId == coreCmsUser.id && x.verifyStatus == (int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes, isDataCache: true, cacheTimes: 1); + if (da == 0) + continue; + + //鏌ヨ鏄惁宸茬粡璁$畻杩囦簡 + DateTime StartTime = new DateTime(DateTime.Now.AddYears(-1).Year, 1, 1); + DateTime endTime = new DateTime(DateTime.Now.Year, 1, 1).AddDays(-1); + var total = _unitOfWork.GetDbClient().Queryable<DistributionAchievement>().Where(x => + x.isdelete == false + && x.userID == coreCmsUser.id + && x.startTime == StartTime + && x.endTime == endTime + ).ToList(); + if (total != null && total.Count > 0) + continue; + + var att = await AchievementTotalAll(coreCmsUser.id); + if (att.Item1 > 0) + { + DistributionAchievement oder = new DistributionAchievement + { + achievementTotals = att.Item1, + achievementBonus = await AchievementBonuscount(att.Item1), + createBy = "绯荤粺缁撶畻", + createTime = DateTime.Now, + startTime = att.Item2, + endTime = att.Item3, + userID = coreCmsUser.id + + }; + //寤虹珛缁撶畻鍗� + var id = await _unitOfWork.GetDbClient().Insertable(oder).ExecuteCommandIdentityIntoEntityAsync(); + if (oder.achievementBonus > 0) + { + var jm = await _coreCmsUserServices.UpdateBalance(coreCmsUser.id, oder.achievementBonus, "缁忛攢鍟嗘帹骞胯垂鐢ㄥ啓鍏ヤ綑棰�"); + if (jm.code != 0) + { + NLogUtil.WriteAll(NLog.LogLevel.Fatal, LogType.DataBase, "缁忛攢鍟嗘帹骞胯垂鐢ㄥ啓鍏ヤ綑棰濆け璐�", jm.msg); + return false; + } + } + + return true; + } + + } + + + + return true; + } + + + + + public async Task<(decimal, DateTime?, DateTime?)> AchievementTotalAll(int UserId) + { + + + DateTime StartTime = new DateTime(DateTime.Now.AddYears(-1).Year, 1, 1); + DateTime endTime = new DateTime(DateTime.Now.Year, 1, 1); + + + var total = await _unitOfWork.GetDbClient().Queryable<CoreCmsOrder>().Where(x => x.status == (int)GlobalEnumVars.OrderStatus.Complete + && (x.payStatus != (int)GlobalEnumVars.OrderPayStatus.No || x.payStatus != (int)GlobalEnumVars.OrderPayStatus.Refunded) + && x.isdel == false + && x.userId == UserId + && x.updateTime > StartTime + && x.updateTime < endTime + ).SumAsync(x => x.orderAmount); + + return (total, StartTime, endTime.AddDays(-1)); + } + + + public async Task<decimal> AchievementBonuscount(decimal AttributeTotal) + { + + var allConfigs = await _settingServices.GetConfigDictionaries(); + var tuiGuangFeiYong = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryTuiGuangFeiYong).ObjectToInt(0); + var yeJiMenKan = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.DictionaryYeJiMenKan).ObjectToInt(0); + if(AttributeTotal <= yeJiMenKan) + { + return 0; + } + return (AttributeTotal - (decimal)yeJiMenKan) * (decimal)tuiGuangFeiYong / 100; + } + + public async Task<bool> CreateDistributionAchievementOrder(CreateDAOrderInParam Parma) { //闈炰緵搴斿晢锛屽仠姝� @@ -737,5 +841,30 @@ return await _unitOfWork.GetDbClient().Updateable(oder).ExecuteCommandAsync()>0; } + + /// <summary> + /// 鑾峰彇缁忛攢鍟嗘帹骞胯垂 + /// </summary> + /// <returns></returns> + public List<DistributionRankingDTO> QueryAchievement(int UserId) + { + var totals = _unitOfWork.GetDbClient().Queryable<DistributionAchievement>().Where(x => + x.isdelete == false + && x.userID == UserId + ).OrderByDescending(x=>x.startTime).ToList(); + + var distributionRankingDTOs = new List<DistributionRankingDTO>(); + foreach(var distributionAchievement in totals) + { + var distributionRankingDTO = new DistributionRankingDTO(); + distributionRankingDTO.startTime = distributionAchievement.startTime.HasValue ? distributionAchievement.startTime.Value.ToString("yyyy-MM-dd") : ""; + distributionRankingDTO.endTime = distributionAchievement.endTime.HasValue ? distributionAchievement.endTime.Value.ToString("yyyy-MM-dd") : ""; + distributionRankingDTO.achievementTotals = distributionAchievement.achievementTotals.ToString("F2"); + distributionRankingDTO.achievementBonus = distributionAchievement.achievementBonus.ToString("F2"); + distributionRankingDTOs.Add(distributionRankingDTO); + } + + return distributionRankingDTOs; + } } } diff --git a/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs b/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs index 23218bd..dff1bc2 100644 --- a/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs +++ b/CoreCms.Net.Services/User/CoreCmsUserPointLogServices.cs @@ -23,6 +23,7 @@ using CoreCms.Net.Utility.Helper; using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; +using NPOI.SS.Formula.Functions; using SqlSugar; @@ -109,6 +110,7 @@ var settingServices = container.ServiceProvider.GetService<ICoreCmsSettingServices>(); var orderItemServices = container.ServiceProvider.GetService<ICoreCmsOrderItemServices>(); var productsServices = container.ServiceProvider.GetService<ICoreCmsProductsServices>(); + var distributionServices = container.ServiceProvider.GetService<ICoreCmsDistributionServices>(); var allConfigs = await settingServices.GetConfigDictionaries(); //鑾峰彇绉垎鑾峰彇妯″紡 var pointGetModel = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.PointGetModel).ObjectToInt(); @@ -118,9 +120,16 @@ var ordersRewardProportion = CommonHelper.GetConfigDictionary(allConfigs, SystemSettingConstVars.OrdersRewardProportion).ObjectToInt(); if (ordersRewardProportion > 0) { - var point = Convert.ToInt32(money / ordersRewardProportion); - await SetPoint(userId, point, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeRebate, - "璁㈠崟锛�" + orderId + " 濂栧姳"); + //濡傛灉鏄粡閿�鍟嗗氨涓嶈兘鑾峰緱绉垎 + var user = await distributionServices.QueryListByClauseAsync(x => x.userId == userId && x.verifyStatus == 1 && x.isDelete == false );//(int)GlobalEnumVars.DistributionVerifyStatus.VerifyYes + + if (user == null || user.Count == 0) + { + //濡傛灉鏄櫘閫氱敤鎴峰垯璐у緱绉垎 + var point = Convert.ToInt32(money / ordersRewardProportion); + await SetPoint(userId, point, (int)GlobalEnumVars.UserPointSourceTypes.PointTypeRebate, + "璁㈠崟锛�" + orderId + " 濂栧姳"); + } } } else if (pointGetModel == 2) diff --git a/CoreCms.Net.Task/AutoSettleAchievementTotal.cs b/CoreCms.Net.Task/AutoSettleAchievementTotal.cs new file mode 100644 index 0000000..48e421e --- /dev/null +++ b/CoreCms.Net.Task/AutoSettleAchievementTotal.cs @@ -0,0 +1,37 @@ +锘縰sing CoreCms.Net.IServices; +using CoreCms.Net.Services; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace CoreCms.Net.Task +{ + /// <summary> + /// 瀹氭椂璁$畻缁忛攢鍟嗘帹骞胯垂鐢� + /// </summary> + public class AutoSettleAchievementTotal + { + private readonly ICoreCmsDistributionServices _coreCmsDistributionServices; + + public AutoSettleAchievementTotal(ICoreCmsDistributionServices coreCmsDistributionServices) + { + _coreCmsDistributionServices = coreCmsDistributionServices; + } + + public async System.Threading.Tasks.Task Execute() + { + DateTime datenow = DateTime.Now.Date; + DateTime januaryTenth = new DateTime(datenow.Year, 1, 10); + //姣忓ぉ鐨�0鐐瑰紑濮嬭绠� + if (datenow == januaryTenth && DateTime.Now.Hour >= 0 && DateTime.Now.Hour <= 2) + //if (true) + { + await _coreCmsDistributionServices.SettledAllAchievement(); + } + + + } + } +} diff --git a/CoreCms.Net.Task/HangfireDispose.cs b/CoreCms.Net.Task/HangfireDispose.cs index f2c5be8..07fa16d 100644 --- a/CoreCms.Net.Task/HangfireDispose.cs +++ b/CoreCms.Net.Task/HangfireDispose.cs @@ -70,7 +70,8 @@ //鑷姩鍙栨秷鏈嶅姟鍣ㄨ鍗曚换鍔� RecurringJob.AddOrUpdate<AutoCancelServiceOrderJob>("AutoCancelServiceOrderJob", s => s.Execute(), "0 0/5 * * * ? ", new RecurringJobOptions { TimeZone = TimeZoneInfo.Local }); // 姣�5鍒嗛挓鍙栨秷涓�娆¤鍗� - + //瀹氭椂璁$畻缁忛攢鍟嗘帹骞胯垂鐢� + RecurringJob.AddOrUpdate<AutoSettleAchievementTotal>("AutoSettleAchievementTotal", s => s.Execute(), "0 0 0/1 * * ? ", new RecurringJobOptions { TimeZone = TimeZoneInfo.Local }); // 姣忓皬鏃惰绠楃粡閿�鍟嗘帹骞胯垂鐢� } #endregion diff --git a/CoreCms.Net.Web.Admin/Controllers/Distribution/CoreCmsDistributionController.cs b/CoreCms.Net.Web.Admin/Controllers/Distribution/CoreCmsDistributionController.cs index 26eb665..d9d042f 100644 --- a/CoreCms.Net.Web.Admin/Controllers/Distribution/CoreCmsDistributionController.cs +++ b/CoreCms.Net.Web.Admin/Controllers/Distribution/CoreCmsDistributionController.cs @@ -680,5 +680,39 @@ } #endregion + + + #region 棰勮鏁版嵁============================================================ + + // POST: Api/CoreCmsDistribution/GetDetailsAchievement/10 + /// <summary> + /// 棰勮鏁版嵁 + /// </summary> + /// <param name="entity"></param> + /// <returns></returns> + [HttpPost] + [Description("棰勮鏁版嵁")] + public async Task<AdminUiCallBack> GetDetailsAchievement([FromBody] FMIntId entity) + { + var jm = new AdminUiCallBack(); + + var model = await _coreCmsDistributionServices.QueryByIdAsync(entity.id); + if (model == null) + { + jm.msg = "涓嶅瓨鍦ㄦ淇℃伅"; + return jm; + } + var distributionRankingDTOs = _coreCmsDistributionServices.QueryAchievement(model.userId); + + + + + jm.code = 0; + jm.data = distributionRankingDTOs; + + return jm; + } + + #endregion } } \ No newline at end of file diff --git a/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs b/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs index a4b4ff1..2b8d304 100644 --- a/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs +++ b/CoreCms.Net.Web.Admin/Controllers/User/CoreCmsUserController.cs @@ -1185,11 +1185,7 @@ { var jm = new AdminUiCallBack(); - if (entity.id == entity.parentId) - { - jm.msg = "绂佹璁剧疆鑷繁涓鸿嚜宸辩殑鎺ㄨ崘浜�"; - return jm; - } + var model = await _coreCmsUserServices.QueryByIdAsync(entity.id); if (model == null) @@ -1197,10 +1193,10 @@ jm.msg = "涓嶅瓨鍦ㄦ淇℃伅"; return jm; } - - if (entity.parentId > 0) + var parentId = 0; + if (!string.IsNullOrEmpty(entity.parentId)) { - var parentObj = await _coreCmsUserServices.QueryByIdAsync(entity.parentId); + var parentObj = await _coreCmsUserServices.QueryByClauseAsync( x=> x.mobile == entity.parentId && x.isDelete == false && x.status == 1); if (parentObj == null) { jm.msg = "涓嶅瓨鍦ㄦ涓婄骇淇℃伅"; @@ -1212,10 +1208,19 @@ jm.msg = "涓嶅厑璁稿弻鏂逛簰鐩歌缃负涓婄骇"; return jm; } + + if (entity.id == parentObj.id) + { + jm.msg = "绂佹璁剧疆鑷繁涓鸿嚜宸辩殑鎺ㄨ崘浜�"; + return jm; + } + + parentId = parentObj.id; } else { - entity.parentId = 0; + jm.msg = "蹇呴』濉啓涓婄骇鎵嬫満"; + return jm; } // var bl = await _coreCmsUserServices.UpdateAsync(p => new CoreCmsUser() { parentId = entity.parentId }, p => p.id == model.id); @@ -1236,7 +1241,7 @@ entity1.dec = "鐢ㄦ埛" + model.nickName + "鎺ㄨ崘浜鸿皟鏁�"; entity1.reMake = ""; entity1.oldData = entity.oldparentId + ""; - entity1.data = entity.parentId + ""; + entity1.data = parentId + ""; entity1.createTime = DateTime.Now; entity1.upDataTime = entity1.createTime; entity1.createBy = name; diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievement.html b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievement.html index e69de29..ad6ee04 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievement.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievement.html @@ -0,0 +1,59 @@ +<script type="text/html" template lay-done="layui.data.done(d);"> + <table class="layui-table layui-form" lay-filter="LAY-app-CoreCmsDistribution-detailsForm" id="LAY-app-CoreCmsDistribution-detailsForm"> + <colgroup> + <col width="150"> + <col> + </colgroup> + <tbody> + <tr> + <td style="width:30%;"> + 开始时间 + </td> + <td style="width:30%;"> + 结束时间 + </td> + <td style="width:20%;"> + 绩效总额 + </td> + <td style="width:20%;"> + 推广费用 + </td> + </tr> + + {{# layui.each(d.params.data, function(index, item){ }} + <tr> + <td> + {{ item.startTime }} + </td> + <td> + {{ item.endTime }} + </td> + <td> + {{ item.achievementTotals }} + </td> + <td> + {{ item.achievementBonus }} + </td> + </tr> + {{# }); }} + + </tbody> + </table> +</script> + +<script> + var debug = layui.setter.debug; + layui.data.done = function (d) { + //开启调试情况下获取接口赋值数据 + if (debug) { console.log(d.params.data); } + + layui.use(['admin', 'form', 'coreHelper'], function () { + var $ = layui.$ + , setter = layui.setter + , admin = layui.admin + , coreHelper = layui.coreHelper + , form = layui.form; + form.render(null, 'LAY-app-CoreCmsDistribution-detailsForm'); + }); + }; +</script> \ No newline at end of file diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievementdetails.html b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievementdetails.html new file mode 100644 index 0000000..543917b --- /dev/null +++ b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/achievementdetails.html @@ -0,0 +1,58 @@ +<script type="text/html" template lay-done="layui.data.done(d);"> + <table class="layui-table layui-form" lay-filter="LAY-app-CoreCmsDistribution-detailsForm" id="LAY-app-CoreCmsDistribution-detailsForm"> + <colgroup> + <col width="150"> + <col> + </colgroup> + <tbody> + <tr> + <td style="width: 30%;"> + 寮�濮嬫椂闂� + </td> + <td style="width: 30%;"> + 缁撴潫鏃堕棿 + </td> + <td style="width: 20%;"> + 缁╂晥鎬婚锛堝厓锛� + </td> + <td style="width: 20%;"> + 鎺ㄥ箍璐圭敤锛堝厓锛� + </td> + </tr> + + {{# layui.each(d.params.data, function(index, item){ }} + <tr> + <td> + {{ item.startTime }} + </td> + <td> + {{ item.endTime }} + </td> + <td> + {{ item.achievementTotals }} + </td> + <td> + {{ item.achievementBonus }} + </td> + </tr> + {{# }); }} + </tbody> + </table> +</script> + +<script> + var debug = layui.setter.debug; + layui.data.done = function (d) { + //寮�鍚皟璇曟儏鍐典笅鑾峰彇鎺ュ彛璧嬪�兼暟鎹� + if (debug) { console.log(d.params.data); } + + layui.use(['admin', 'form', 'coreHelper'], function () { + var $ = layui.$ + , setter = layui.setter + , admin = layui.admin + , coreHelper = layui.coreHelper + , form = layui.form; + form.render(null, 'LAY-app-CoreCmsDistribution-detailsForm'); + }); + }; +</script> \ No newline at end of file diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/index.html index cb860c3..20dd5b9 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/index.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/distributor/index.html @@ -104,7 +104,7 @@ <script type="text/html" id="LAY-app-CoreCmsDistribution-tableBox-bar"> <!-- <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="qrcode">灏忕▼搴忕爜</a> --> - <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="achievement">涓氱哗</a> + <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="achievement">鎺ㄥ箍璐�</a> <a class="layui-btn layui-btn-primary layui-btn-xs" lay-event="detail">鏌ョ湅</a> <a class="layui-btn layui-btn-xs" lay-event="edit">瀹℃牳</a> <a class="layui-btn layui-btn-danger layui-btn-xs" data-dropdown="#CoreCmsDistributionTbDelDrop{{d.LAY_NUM}}" no-shade="true">鍒犻櫎</a> @@ -211,7 +211,7 @@ } } }, - { field: 'DistributionAchievementTotals', title: '鍘嗗彶涓氱哗鎬诲拰(鍏�)', sort: false, width: 100 }, + { field: 'distributionAchievementTotals', title: '鍘嗗彶鎺ㄥ箍璐规�诲拰(鍏�)', sort: false, width: 100 }, //{ field: 'storeDesc', title: '搴楅摵绠�浠�', sort: false, width: 105 }, { field: 'verifyStatus', title: '瀹℃牳鐘舵��', sort: false, width: 80, templet: function (data) { @@ -385,15 +385,15 @@ } //鎵ц棰勮鎿嶄綔 function achievement(obj) { - coreHelper.Post("Api/CoreCmsDistribution/GetDetails", { id: obj.data.id }, function (e) { + coreHelper.Post("Api/CoreCmsDistribution/GetDetailsAchievement", { id: obj.data.id }, function (e) { if (e.code === 0) { admin.popup({ shadeClose: false, title: '鏌ョ湅璇︽儏', area: ['700px', '550px'], - id: 'LAY-popup-CoreCmsDistribution-details', + id: 'LAY-popup-CoreCmsDistribution-detailsAchievement', success: function (layero, index) { - view(this.id).render('distribution/distributor/details', { data: e.data }).done(function () { + view(this.id).render('distribution/distributor/achievementdetails', { data: e.data }).done(function () { form.render(); }); // 绂佹寮圭獥鍑虹幇婊氬姩鏉� diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/setting/index.html b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/setting/index.html index 8d80e7f..b3ad65f 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/distribution/setting/index.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/distribution/setting/index.html @@ -65,7 +65,7 @@ <div class="layui-form-item"> <label class="layui-form-label">{{d.data.configs['dictionaryUserGroupKey']['sKey']}}锛�</label> <div class="layui-input-inline "> - <input type="text" name="dictionaryUserGroupKey" value="{{d.data.configs['dictionaryUserGroupKey']['sValue']}}" autocomplete="off" placeholder="" class="layui-input"> + <input type="text" name="dictionaryUserGroupKey" value="{{d.data.configs['dictionaryUserGroupKey']['sValue']}}" autocomplete="off" placeholder="" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux">*闈炲繀瑕佷笉淇敼*</div> </div> @@ -79,7 +79,7 @@ <div class="layui-form-item"> <label class="layui-form-label">{{d.data.configs['dictionaryAchievementSet']['sKey']}}锛�</label> <div class="layui-input-inline layui-inline-2"> - <input type="text" name="dictionaryAchievementSet" value="{{d.data.configs['dictionaryAchievementSet']['sValue']}}" autocomplete="off" placeholder="" class="layui-input" lay-verify="title|number" > + <input type="text" name="dictionaryAchievementSet" value="{{d.data.configs['dictionaryAchievementSet']['sValue']}}" autocomplete="off" placeholder="" class="layui-input" lay-verify="title|number"> </div> <div class="layui-form-mid layui-word-aux">%</div> </div> @@ -126,6 +126,20 @@ </div> </div> + <div class="layui-form-item"> + <label class="layui-form-label">{{d.data.configs['dictionaryTuiGuangFeiYong']['sKey']}}锛�</label> + <div class="layui-input-inline layui-inline-2"> + <input type="text" name="dictionaryTuiGuangFeiYong" value="{{d.data.configs['dictionaryTuiGuangFeiYong']['sValue']}}" autocomplete="off" placeholder="" class="layui-input" lay-verify="title|number"> + </div> + <div class="layui-form-mid layui-word-aux">%</div> + </div> + <div class="layui-form-item"> + <label class="layui-form-label">{{d.data.configs['dictionaryYeJiMenKan']['sKey']}}锛�</label> + <div class="layui-input-inline layui-inline-2"> + <input type="text" name="dictionaryYeJiMenKan" value="{{d.data.configs['dictionaryYeJiMenKan']['sValue']}}" autocomplete="off" placeholder="" class="layui-input" lay-verify="title|number"> + </div> + <div class="layui-form-mid layui-word-aux">鍏�</div> + </div> <div class="layui-form-item"> <label class="layui-form-label"> </label> diff --git a/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/editParentId.html b/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/editParentId.html index b58f07d..76cfa88 100644 --- a/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/editParentId.html +++ b/CoreCms.Net.Web.Admin/wwwroot/views/user/userInfo/editParentId.html @@ -26,9 +26,9 @@ <div class="layui-form-item"> <div class="layui-inline"> - <label class="layui-form-label">鏂颁笂绾у簭鍒楋細</label> + <label class="layui-form-label">鏂颁笂绾х數璇濓細</label> <div class="layui-input-inline layui-inline-3"> - <input type="number" name="parentId" id="parentId" class="layui-input" value="0" lay-verify="required|number"> + <input type="text" name="parentId" id="parentId" class="layui-input" value="" lay-verify="required"> </div> </div> </div> -- Gitblit v1.9.1