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