TG.WXCRM.V4/WEB/Controllers/WeiXin/CommissionRuleController.cs

258 lines
11 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using System;
using System.Data;
using System.Linq;
using System.Web.Mvc;
using WX.CRM.BLL.Base;
using WX.CRM.BLL.Util;
using WX.CRM.Common;
using WX.CRM.IBLL.Util;
using WX.CRM.IBLL.Wx;
using WX.CRM.Model.Entity;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.WeiXin
{
public class CommissionRuleController : BaseController
{
private readonly IWX_COMMISSIONRULE _wxCommissionrule;
private readonly IWX_SZZYORDER _wxSzzyorder;
private readonly ICACHE_Q _cache;
private SEQUENCES_BL _sequencesBl = new SEQUENCES_BL();
ValidationErrors errors = new ValidationErrors();
public CommissionRuleController(IWX_COMMISSIONRULE wxCommissionrule, IWX_SZZYORDER wxSzzyorder, ICACHE_Q cache)
{
_wxCommissionrule = wxCommissionrule;
_wxSzzyorder = wxSzzyorder;
_cache = cache;
}
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_证星订单分成, InitToolBar.CONST_Add)]
public ActionResult Edit()
{
decimal orderId = 0;
decimal.TryParse(Request["orderid"], out orderId);
var wxSzzyOrder = _wxSzzyorder.Get(p => p.ORDERID == orderId);
if (wxSzzyOrder == null)
{
return JsonHandler.ManageMessage("参数错误,请确认!", false);
}
var model = new WX_COMMISSIONRULE_VIEW();
if (orderId > 0)
{
model.WxSzzyOrder = wxSzzyOrder;
var wxCommissionRule = _wxCommissionrule.GetList(p => p.ORDERID == orderId).OrderBy(p => p.PKID);
#region
var i = 0;
foreach (var wxCommissionrule in wxCommissionRule)
{
switch (i)
{
case 0:
model.item0.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item0.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item0.ISMAIN = wxCommissionrule.ISMAIN;
model.item0.GID = wxCommissionrule.GID;
break;
case 1:
model.item1.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item1.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item1.ISMAIN = wxCommissionrule.ISMAIN;
model.item1.GID = wxCommissionrule.GID;
break;
case 2:
model.item2.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item2.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item2.ISMAIN = wxCommissionrule.ISMAIN;
model.item2.GID = wxCommissionrule.GID;
break;
case 3:
model.item3.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item3.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item3.ISMAIN = wxCommissionrule.ISMAIN;
model.item3.GID = wxCommissionrule.GID;
break;
case 4:
model.item4.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item4.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item4.ISMAIN = wxCommissionrule.ISMAIN;
model.item4.GID = wxCommissionrule.GID;
break;
case 5:
model.item5.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item5.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item5.ISMAIN = wxCommissionrule.ISMAIN;
model.item5.GID = wxCommissionrule.GID;
break;
case 6:
model.item6.EID = InnerUserHelper.Instance.GetEidByUserId(wxCommissionrule.SALEUSERID);
model.item6.COMMISSIONRATIO = wxCommissionrule.COMMISSIONRATIO;
model.item6.ISMAIN = wxCommissionrule.ISMAIN;
model.item6.GID = wxCommissionrule.GID;
break;
}
i++;
}
#endregion
#region
ViewBag.upgradeCount = _wxSzzyorder.CountUpgradeOrder(orderId);
#endregion
}
return View(model);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_证星订单分成, InitToolBar.CONST_Add)]
public JsonResult Edit(WX_COMMISSIONRULE_VIEW info)
{
try
{
string v_str = string.Empty;
if (!ValidationRatio(info, out v_str))
{
errors.Add(v_str);
return JsonHandler.ManageMessage(errors, false);
}
//if (CheckHasGrouper(info))
//{
// return JsonHandler.ManageMessage("分成人中不能包含主管,请确认!", false);
//}
decimal orderId = info.WxSzzyOrder.ORDERID;
var orderModel = _wxSzzyorder.Get(p => p.ORDERID == orderId);
if (orderModel == null)
{
return JsonHandler.ManageMessage("未查找到订单,请确认!", false);
}
//if (orderModel.ISFINANCEPAY.HasValue && orderModel.ISFINANCEPAY.Value == 1)
//{
// return JsonHandler.ManageMessage("已经月结,不能执行该操作!", false);
//}
string roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
if (!(roleCodes.Contains("[CW]") || roleCodes.Contains("[ZJZL]") || roleCodes.Contains("[SDZJ]")))
{
if (!CheckDate(orderModel))
{
return JsonHandler.ManageMessage("只能当天申请分成,请确认!", false);
}
}
var isExists = _wxCommissionrule.Exists(p => p.ORDERID == orderId);
if (!isExists)
{
_wxCommissionrule.CreateWxCommissionRuleList(info, UserId);
}
else
{
_wxCommissionrule.Delete(p => p.ORDERID == orderId);
_wxCommissionrule.CreateWxCommissionRuleList(info, UserId);
}
#region
var ruleList = _wxCommissionrule.GetList(p => p.ORDERID == orderId);
decimal sumCommissionRatio = 0;
foreach (var item in ruleList)
{
sumCommissionRatio += item.COMMISSIONRATIO;
}
if (sumCommissionRatio != 100)
{
return JsonHandler.ManageMessage("分成比例入库有误,请重新操作!", true);
}
#endregion
return JsonHandler.ManageMessage("操作成功!", true);
}
catch (Exception ex)
{
LogHelper.Error("CommissionRuleController/Edit:" + ex.Message);
return JsonHandler.ManageMessage(ex.Message, false);
}
}
public string GetUserByEid(int EID)
{
var userName = InnerUserHelper.Instance.GetUsername(InnerUserHelper.Instance.GetUserIdByEid(EID));
if (string.IsNullOrEmpty(userName))
return string.Empty;
decimal? deptId = 0;
var inneruser = new CACHE_BL().GetUserList().FirstOrDefault(n => n.EID == EID);
if (inneruser != null)
{
var dept = new CACHE_BL().GetList_InnerUserGroup().FirstOrDefault(n => n.INNERUSERID == inneruser.PKID);
if (dept != null)
{
deptId = dept.GID.HasValue ? dept.GID : dept.DEPTID;
}
}
//var isGrouper = _cache.GetGroupleaders().Any(p => p.EID == EID);
//if (isGrouper)
//{
// return userName + "," + "1";
//}
return userName + "," + "0" + "," + deptId;
}
#region
private bool ValidationRatio(WX_COMMISSIONRULE_VIEW model, out string errorstr)
{
errorstr = "";
decimal sum = 0;
if (model.item0.EID > 0)
sum += model.item0.COMMISSIONRATIO.GetValueOrDefault(0);
if (model.item1.EID > 0)
sum += model.item1.COMMISSIONRATIO.GetValueOrDefault(0);
if (model.item2.EID > 0)
sum += model.item2.COMMISSIONRATIO.GetValueOrDefault(0);
if (model.item3.EID > 0)
sum += model.item3.COMMISSIONRATIO.GetValueOrDefault(0);
if (model.item4.EID > 0)
sum += model.item4.COMMISSIONRATIO.GetValueOrDefault(0);
if (model.item5.EID > 0)
sum += model.item5.COMMISSIONRATIO.GetValueOrDefault(0);
if (model.item6.EID > 0)
sum += model.item6.COMMISSIONRATIO.GetValueOrDefault(0);
if (sum == 100)
return true;
errorstr = "分成合计不等于100%";
return false;
}
#endregion
private bool CheckHasGrouper(WX_COMMISSIONRULE_VIEW model)
{
var groupers = _cache.GetGroupleaders();
int sum = 0;
if (model.item0.EID > 0)
sum += groupers.Count(p => p.EID == model.item0.EID);
if (model.item1.EID > 0)
sum += groupers.Count(p => p.EID == model.item1.EID);
if (model.item2.EID > 0)
sum += groupers.Count(p => p.EID == model.item2.EID);
if (model.item3.EID > 0)
sum += groupers.Count(p => p.EID == model.item3.EID);
if (model.item4.EID > 0)
sum += groupers.Count(p => p.EID == model.item4.EID);
if (model.item5.EID > 0)
sum += groupers.Count(p => p.EID == model.item5.EID);
if (model.item6.EID > 0)
sum += groupers.Count(p => p.EID == model.item6.EID);
if (sum > 0)
return true;
return false;
}
private bool CheckDate(WX_SZZYORDER order)
{
//未开通订单都能修改,不影响业绩,已开通的必须开通当天填写分成
if (order.ISOPEN == 0)
return true;
var today = DateTime.Parse(DateTime.Now.Date.ToString());
var tomorrow = DateTime.Parse(DateTime.Now.Date.AddDays(1).ToString());
return order.OTIME > today && order.OTIME < tomorrow;
}
}
}