ComplianceServer/oldcode/WEB/Controllers/Base/InnerUserController.cs

898 lines
42 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 Ninject;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web.Mvc;
using System.Web.UI;
using WX.CRM.Common;
using WX.CRM.Common.Employee;
using WX.CRM.IBLL.Base;
using WX.CRM.IBLL.Util;
using WX.CRM.Model.Entity;
using WX.CRM.WebHelper;
namespace WX.CRM.WEB.Controllers.Base
{
//[SessionState(SessionStateBehavior.Disabled)]
public class InnerUserController : BaseController
{
private IBAS_INNERUSER inneruserBiz;
private IBAS_INNERUSER_Q inneruserBiz_Q;
private IBAS_INNERUSERGROUP inneruserGroupBiz;
private IBAS_INNERUSERGROUP_Q inneruserGroupBiz_Q;
private IBAS_INNERUSER_EXT_Q inneruserExtend_Q;
private IBAS_INNERUSER_EXT inneruserExtend;
private IBAS_USERGROUPCHANGELOG userGroupChangeLog;
private IBAS_SALESDEPARTMENT_Q bassaledepartment_Q;
private ICACHE_Q _cacheQ;
IBAS_INNERUSERROLE innerUserRoleBiz;
[Inject]
public IBAS_INNERUSERROLE_Q _inneruserRole { get; set; }
[Inject]
public IBAS_INNERGROUP_Q _INNERGROUP_Q { get; set; }
[Inject]
public IBAS_INNERUSERSALT _IBAS_INNERUSERSALT { get; set; }
[Inject]
public IBAS_INNERUSERSALT_Q _IBAS_INNERUSERSALT_Q { get; set; }
ValidationErrors errors = new ValidationErrors();
public InnerUserController(IBAS_INNERUSER _inneruserBiz, IBAS_INNERUSER_Q _inneruserBiz_Q, IBAS_INNERUSERGROUP _inneruserGroupBiz, IBAS_INNERUSERGROUP_Q _inneruserGroupBiz_Q
, IBAS_INNERUSER_EXT_Q _inneruserExtend_Q, IBAS_INNERUSER_EXT _inneruserExtend, IBAS_USERGROUPCHANGELOG _userGroupChangeLog, ICACHE_Q cacheQ, IBAS_INNERUSERROLE _innerUserRoleBiz
, IBAS_SALESDEPARTMENT_Q _bassaledepartment_Q)
{
this.inneruserBiz = _inneruserBiz;
this.inneruserBiz_Q = _inneruserBiz_Q;
this.inneruserGroupBiz = _inneruserGroupBiz;
this.inneruserGroupBiz_Q = _inneruserGroupBiz_Q;
this.inneruserExtend_Q = _inneruserExtend_Q;
this.inneruserExtend = _inneruserExtend;
this.userGroupChangeLog = _userGroupChangeLog;
this._cacheQ = cacheQ;
this.innerUserRoleBiz = _innerUserRoleBiz;
this.bassaledepartment_Q = _bassaledepartment_Q;
}
#region
[AuthorizeRedirect(Roles = InitRights.CONST_员工管理)]
public ActionResult Index()
{
//ToolBar
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
tool.AllowButton(toolbtn);
// tool.AllowButton("Create", "Edit", "Other1", "Details", "Delete", "Export", "Other2");
tool.AddOtherButton("Other1", "修改组", "icon-lookup", "FenPei_Click", true);
tool.AddOtherButton("Other2", "查看调动日志", "icon-edit", "DiaoDong_Click", true);
tool.AddOtherButton("Other3", "查看扩展属性变动日志", "icon-search", "ExtendChange_Click", true);
tool.AddOtherButton("Other4", "停用设置", "icon-edit", "DismissChange_Click", true);
tool.AddOtherButton("Other5", "", "", "", true);
tool.AddOtherButton("Other6", "", "", "", false);
tool.AddOtherButton("Other7", "设置", "icon-edit", "Setting_Click", true);
tool.AddOtherButton("Other8", "修改密码", "icon-edit", "ChangePassWord_Click", true);
ViewBag.ToolBar = tool;
Pager pager = new Pager() { page = 1, rows = 10 };
string tableId = "tablist";
Table tab = new Table(tableId);
tab.isCheckbox = true;
tab.AddHiddenHeadCol("pkid", "ID");//影藏列
tab.AddHeadCol("map_eID", "", "工号", true);
tab.AddHeadCol("map_uName", "", "姓名", true);
//tab.AddHeadCol("map_trueName", "", "真实姓名");
tab.AddHeadCol("gName", "", "销售组");
tab.AddHeadCol("deptName", "", "部门");
tab.AddHeadCol("rolesNames", "", "角色 ");
//tab.AddHeadCol("futuresStatus", "", "");
//tab.AddHeadCol("traderStatus", "", "");
//tab.AddHeadCol("tutorStatus", "", "");
//tab.AddHeadCol("MANAGERSTATUS", "", "客服经理");
//tab.AddHeadCol("GENERALCUSTOMER", "", "客服");
//tab.AddHeadCol("SENIORCUSTOMER", "", "高级客服");
tab.AddHeadCol("map_gender", "", "性别");
//tab.AddHeadCol("map_birthday", "", "生日", true);
tab.AddHeadCol("map_EntryDate", "", "入职时间", true);
//tab.AddHeadCol("map_POSITIVETIME", "", "转正时间", true);
tab.AddHeadCol("map_isDismiss", "", "是否停用");
tab.AddHeadCol("map_dismissTime", "", "停用时间", true);
//tab.AddHeadCol("map_dismissType", "", "离职类型");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetHead() + Pagination.GetPage(pager, tableId, "10,20,50");
return View();
}
#endregion
#region
//[AuthorizeRedirect(Roles = InitRights.CONST_组织结构图)]
public ActionResult OrganizationMapUser()
{
ToolBar tool = new ToolBar();
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights., userRightId);
tool.AllowButton(toolbtn);
//tool.AllowButton(new string[] { "Other7","Other8" });
tool.AddOtherButton("Other1", "分配角色", "icon-edit", "Setting_Click", true);
tool.AddOtherButton("Other2", "修改密码", "icon-edit", "ChangePassWord_Click", true);
ViewBag.ToolBar = tool;
//tablegrid
Pager pager = new Pager() { order = "companyId", page = 1, rows = 10 };
string tableId = "tablist";
Table tab = new Table(tableId);
tab.isCheckbox = true;
tab.AddHiddenHeadCol("pkid", "ID");//影藏列
tab.AddHeadCol("map_eID", "", "工号", true);
tab.AddHeadCol("map_uName", "", "姓名", true);
//tab.AddHeadCol("map_trueName", "", "真实姓名", true);
tab.AddHeadCol("gName", "", "销售组");
tab.AddHeadCol("deptName", "", "部门");
tab.AddHeadCol("rolesNames", "", "角色 ");
//tab.AddHeadCol("futuresStatus", "", "");
//tab.AddHeadCol("traderStatus", "", "");
//tab.AddHeadCol("tutorStatus", "", "");
//tab.AddHeadCol("MANAGERSTATUS", "", "客服经理");
//tab.AddHeadCol("GENERALCUSTOMER", "", "客服");
//tab.AddHeadCol("SENIORCUSTOMER", "", "高级客服");
tab.AddHeadCol("map_gender", "", "性别");
//tab.AddHeadCol("map_birthday", "", "生日", true);
tab.AddHeadCol("map_EntryDate", "", "入职时间", true);
//tab.AddHeadCol("map_POSITIVETIME", "", "转正时间", true);
tab.AddHeadCol("map_isDismiss", "", "是否停用");
tab.AddHeadCol("map_dismissTime", "", "停用时间", true);
//tab.AddHeadCol("map_dismissType", "", "离职类型");
tab.AddHeadRow();
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "10,20,50");
string departMentIds = string.Empty;
string groupIds = string.Empty;
string otherFilter = string.Empty;
if (Request.QueryString["type"] == "d")
{
string[] ids = Request.QueryString["fid"].Split(',');
foreach (string fid in ids)
{
if (fid.IndexOf("g_") > -1)
{
groupIds += fid.Replace("g_", "") + ",";
}
else
departMentIds += fid + ",";
}
if (groupIds.Length > 0)
groupIds = groupIds.Substring(0, groupIds.Length - 1);
if (departMentIds.Length > 0)
departMentIds = departMentIds.Substring(0, departMentIds.Length - 1);
//departMentIds = Request.QueryString["fid"].Replace("g_", "");
}
if (Request.QueryString["type"] == "g")
{
groupIds = Request.QueryString["fid"].Replace("g_", "");
}
if (Request.QueryString["type"] == "u")
{
otherFilter = Request.QueryString["fid"].Replace("g_", "");
}
ViewBag.departMentIds = departMentIds;
ViewBag.groupIds = groupIds;
ViewBag.otherFilter = otherFilter;
return View();
}
#endregion
#region
/// <summary>
/// 按照条件获取数据
/// </summary>
/// <param name="pager"></param>
/// <param name="queryStr"></param>
/// <returns></returns>
[AuthorizeRedirect(Roles = InitRights.CONST_员工管理)]
public JsonResult GetHtmlList(Pager pager, string columns)
{
///System.Threading.Thread.Sleep(1000*60*10);
string innerGroupId = Request.Form["innerGroupId"];
string innerDeptId = Request.Form["innerDeptId"];
string eId = Request.Form["eId"];
string uName = Request.Form["uName"];
string gender = Request.Form["gender"];
string isDismiss = Request.Form["isDismiss"];
string dismissType = Request.Form["dismissType"];
string dismissTime1 = Request.Form["dismissTime1"];
string dismissTime2 = Request.Form["dismissTime2"];
string EntryDate1 = Request.Form["EntryDate1"];
string EntryDate2 = Request.Form["EntryDate2"];
string isfutures = Request.Form["futures"];
string istrader = Request.Form["trader"];
string istutor = Request.Form["tutor"];
string isManager = Request.Form["Manager"];
string positiveTime1 = Request.Form["PositiveTime1"];
string positiveTime2 = Request.Form["PositiveTime2"];
string otherFilter = Request.Form["otherFilter"];
Table table = new Table(columns, true);
table.isCheckbox = true;
table.gridPager = pager;
pager.order = "desc";
List<WX.CRM.Model.Entity.BAS_INNERUSER_Extend> list = inneruserBiz_Q.GetList(ref pager, innerGroupId, innerDeptId, eId, uName, gender, isDismiss, dismissType, dismissTime1, dismissTime2, EntryDate1, EntryDate2, isfutures, istrader, istutor, isManager, positiveTime1, positiveTime2, otherFilter);
foreach (WX.CRM.Model.Entity.BAS_INNERUSER_Extend model in list)
{
table.AddHiddenCol(model.INNERUSER.PKID.ToString());
table.AddCol(model.INNERUSER.EID);
table.AddCol(model.INNERUSER.UNAME);
//table.AddCol(model.INNERUSER.TRUENAME);
table.AddCol(model.GNAME);
table.AddCol(model.DEPTNAME);
table.AddCol("text-align:left", "", "&nbsp;&nbsp;&nbsp;" + model.ROLESNAMES);
//table.AddCol(model.FUTURESSTATUS == 1 ? "是" : "否");
//table.AddCol(model.TRADERSTATUS == 1 ? "是" : "否");
//table.AddCol(model.TUTORSTATUS == 1 ? "是" : "否");
//table.AddCol(model.MANAGERSTATUS == 1 ? "是" : "否");
//table.AddCol(model.GENERALCUSTOMER == 1 ? "是" : "否");
//table.AddCol(model.SENIORCUSTOMER == 1 ? "是" : "否");
table.AddCol(model.INNERUSER.GENDER == "m" ? "男" : "女");
//table.AddCol(model.INNERUSER.BIRTHDAY.ToString("yyyy.MM.dd"));
table.AddCol(model.INNERUSER.ENTRYDATE.ToUnityString(1));
//table.AddCol(model.INNERUSER.POSITIVETIME.ToUnityString(1));
table.AddCol((model.INNERUSER.ISDISMISS == 1 ? "是" : "否"));
table.AddCol(model.INNERUSER.DISMISSTIME.ToUnityString(1));
//table.AddCol(model.INNERUSER.DISMISSTYPE == null ? "" : (model.INNERUSER.DISMISSTYPE.Value == 1 ? "正常离职" : "其他离职"));
table.AddRow();
}
var json = new
{
totalPages = pager.totalPages,
totalRows = pager.totalRows,
rowsList = table.GetRows()
};
return Json(json, JsonRequestBehavior.AllowGet);
}
#endregion
#region
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Details)]
public ActionResult Details(string id)
{
WX.CRM.Model.Entity.BAS_INNERUSER model = new WX.CRM.Model.Entity.BAS_INNERUSER();
if (id != null)
{
model = inneruserBiz_Q.GetModel(Convert.ToDecimal(id));
}
return View(model);
}
#endregion
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other1)]
public ActionResult ChangeUserGroup(decimal id)
{
string isAdd = "false";
WX.CRM.Model.Entity.BAS_INNERUSERGROUP innerGroupModel = null;
innerGroupModel = inneruserGroupBiz_Q.GetModel(id);
if (innerGroupModel == null)
{
isAdd = "true";
innerGroupModel = new WX.CRM.Model.Entity.BAS_INNERUSERGROUP();
innerGroupModel.INNERUSERID = id;
}
ViewBag.isAdd = isAdd;
ViewBag.innerGroupModel = innerGroupModel;
return View(innerGroupModel);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other1)]
public JsonResult ChangeUserGroup(WX.CRM.Model.Entity.BAS_INNERUSERGROUP rmodel, bool isAdd, decimal? oldGID)
{
if (!ModelState.IsValid)
return JsonHandler.ValidateFailMessage();
rmodel.INNERUSERID = rmodel.INNERUSERID;
if (isAdd)
rmodel.CREATEUSER = UserId;
else
rmodel.UPDATEUSER = UserId;
bool result = inneruserGroupBiz.Save(ref errors, rmodel);
if (result == true)
{
BAS_USERGROUPCHANGELOG logModel = new BAS_USERGROUPCHANGELOG();
logModel.NEWGROUPID = rmodel.GID;
logModel.OLDGROUPID = oldGID;
logModel.SALESID = rmodel.INNERUSERID;
logModel.INDATE = rmodel.inDate;
logModel.OUTDATE = Convert.ToDateTime("2050-01-01");
result = userGroupChangeLog.Save(ref errors, logModel);
}
InnerUserHelper.Instance.ClearCache();
CacheHelper.Remove("cache_InnerUserGroup_getList");
return JsonHandler.ManageMessage(errors, result);
}
#region
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Edit)]
public ActionResult Edit(string id)
{
string bas_key = _cacheQ.GetValue_Parameter("Bas_CanUpdateTrueName");
WX.CRM.Model.Entity.BAS_INNERUSER model = new WX.CRM.Model.Entity.BAS_INNERUSER();
WX.CRM.Model.Entity.BAS_INNERUSERGROUP innerGroupModel = new WX.CRM.Model.Entity.BAS_INNERUSERGROUP();
WX.CRM.Model.Entity.BAS_INNERUSER_EXT extendModel = new WX.CRM.Model.Entity.BAS_INNERUSER_EXT();
model.PASSWORD = "";
model.map_CPASSWORD = "";
if (id == null)
{
model.DISMISSTIME = DateTime.MinValue;
model.ENTRYDATE = DateTime.MinValue;
model.POSITIVETIME = DateTime.MinValue;
model.GENDER = "m";
model.ISDISMISS = 0;
model.ISHIDE = 0;
extendModel.FXH_FUTURESSTATUS = 1;
extendModel.FXH_TRADERSTATUS = 0;
extendModel.FXH_TUTORSTATUS = 0;
//extendModel.GJS_CUSTOMERMANAGER = 0;
//extendModel.GENERALCUSTOMER = 0;
//extendModel.SENIORCUSTOMER = 0;
//extendModel.CustomerType = 0;
}
else
{
model = inneruserBiz_Q.GetModel(Convert.ToDecimal(id));
model.DISMISSTIME = model.DISMISSTIME == null ? DateTime.MinValue : model.DISMISSTIME;
model.ENTRYDATE = model.ENTRYDATE == null ? DateTime.MinValue : model.ENTRYDATE;
model.POSITIVETIME = model.POSITIVETIME == null ? DateTime.MinValue : model.POSITIVETIME;
model.map_CPASSWORD = model.map_PASSWORD;
innerGroupModel = inneruserGroupBiz_Q.GetModel(model.PKID);
extendModel = inneruserExtend_Q.GetModel_InneruserExt(Convert.ToDecimal(id));
}
ViewBag.innerGroupModel = innerGroupModel;
ViewBag.inneruserExtend = extendModel;
if (!string.IsNullOrEmpty(bas_key))
{
ViewBag.isCanUpdateTrueName = bas_key;//1:可以修改 0或者空不可以修改
}
else
{
ViewBag.isCanUpdateTrueName = "0";
}
// ViewBag.HasAll = isSearchAll();
return View(model);
}
public bool isSearchAll()
{
string roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);//管理员 查看所有
return (roleCodes.IndexOf("[GLY]") > -1);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Edit)]
public JsonResult Edit(WX.CRM.Model.Entity.BAS_INNERUSER model, WX.CRM.Model.Entity.BAS_INNERUSER_EXT emodel)
{
ModelState.Remove("map_PASSWORD3");
ModelState.Remove("map_PASSWORD2");
ModelState.Remove("map_PASSWORD");
ModelState.Remove("map_CPASSWORD");
ModelState.Remove("map_CPASSWORD2");
ModelState.Remove("map_SnCode");
if (model.PKID == 0)
{
if (!ModelState.IsValid)
return JsonHandler.ValidateFailMessage();
}
else
{
ModelState.Remove("PASSWORD");
if (!ModelState.IsValid)
return JsonHandler.ValidateFailMessage();
}
model.DISMISSTYPE = model.DISMISSTYPE == -1 ? null : model.DISMISSTYPE;
if (model.PKID == 0)
{
model.CTIME = DateTime.Now;
model.CREATEUSER = UserId;
model.POSITIVETIME = model.POSITIVETIME == null ? model.ENTRYDATE : model.POSITIVETIME;
string user_salt = Utility.CreateRandomSatl(8);
if (!string.IsNullOrEmpty(model.PASSWORD))
{ model.PASSWORD = Utility.Sha512(model.PASSWORD + user_salt); }
decimal pkid = inneruserBiz.Create(ref errors, model);
//rmodel.INNERUSERID = pkid;
//rmodel.CREATEUSER = UserId;
if (pkid > 0)
{
emodel.INNERUSERID = pkid;
//inneruserGroupBiz.Save(ref errors, rmodel);
inneruserExtend.Create_InnerUserExtend(ref errors, emodel);
BAS_INNERUSERSALT userSaltModel = new BAS_INNERUSERSALT();
userSaltModel.INNERUSERID = pkid;
userSaltModel.EID = model.EID;
userSaltModel.PWDSALT = user_salt;
userSaltModel.CTIME = DateTime.Now;
userSaltModel.CREATEUSER = UserId;
_IBAS_INNERUSERSALT.Create(userSaltModel);
}
bool scucced = true;
if (pkid == 0)
scucced = false;
InnerUserHelper.Instance.ClearCache();
CacheHelper.Remove("cache_user_list");
return JsonHandler.InsertMessage(errors, scucced);
}
else
{
model.UTIME = DateTime.Now;
model.UPDATEUSER = UserId;
model.POSITIVETIME = model.POSITIVETIME == null ? model.ENTRYDATE : model.POSITIVETIME;
string user_salt = _IBAS_INNERUSERSALT_Q.getUserSalt(model.PKID, model.EID).PWDSALT;
if (!string.IsNullOrEmpty(model.PASSWORD))
{ model.PASSWORD = Utility.Sha512(model.PASSWORD + user_salt); }
bool scucced = inneruserBiz.Update(ref errors, model);
//rmodel.INNERUSERID = model.PKID;
//rmodel.CREATEUSER = UserId;
//rmodel.UPDATEUSER = UserId;
emodel.INNERUSERID = model.PKID;
//inneruserGroupBiz.Save(ref errors, rmodel);
inneruserExtend.Update_InnerUserExtend(ref errors, emodel, UserId);
InnerUserHelper.Instance.ClearCache();
CacheHelper.Remove("cache_user_list");
return JsonHandler.UpdateMessage(errors, scucced);
}
}
#endregion
#region
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other4)]
public ActionResult EditDismiss(string id)
{
BAS_INNERUSER model = inneruserBiz_Q.GetModel(Convert.ToDecimal(id));
model.DISMISSTIME = model.DISMISSTIME ?? DateTime.Now;
return View(model);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other4)]
public JsonResult EditDismiss(WX.CRM.Model.Entity.BAS_INNERUSER model)
{
if (model.ISDISMISS == 0)
{
model.DISMISSTIME = null;
model.DISMISSTYPE = null;
}
model.UTIME = DateTime.Now;
model.UPDATEUSER = UserId;
inneruserBiz.UpdateDismiss(model, UserId);
InnerUserHelper.Instance.ClearCache();
CacheHelper.Remove("cache_user_list");
return JsonHandler.ManageMessage("修改成功", true);
}
#endregion
#region
[HttpGet]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other6)]
public ActionResult EditUserCustomer(string id, string eid)
{
BAS_INNERUSER_EXT extendModel = inneruserExtend_Q.GetModel_InneruserExt(Convert.ToDecimal(id));
ViewBag.map_eID = eid;
return View(extendModel);
}
[HttpPost]
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other6)]
public JsonResult EditUserCustomer(WX.CRM.Model.Entity.BAS_INNERUSER_EXT emodel)
{
inneruserExtend.Update_UserCustomer(emodel, UserId);
InnerUserHelper.Instance.ClearCache();
return JsonHandler.ManageMessage("修改成功", true);
}
#endregion
#region
/// <summary>
/// 删除数据
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Delete)]
public JsonResult Delete(string id)
{
if (string.IsNullOrWhiteSpace(id))
return JsonHandler.ManageMessage("参数错误", false);
bool result = inneruserBiz.Delete(ref errors, Convert.ToDecimal(id));
InnerUserHelper.Instance.ClearCache();
return JsonHandler.DeleteMessage(errors, result);
}
#endregion
#region
[HttpGet]
[Authorize]
public ActionResult ChangeUserIfo()
{
ModelState.Remove("map_PASSWORD"); //加上这句就行了
WX.CRM.Model.Entity.BAS_INNERUSER model = inneruserBiz_Q.GetModel(UserId);
model.map_CPASSWORD = model.map_PASSWORD;
return View(model);
}
[HttpPost]
[Authorize]
public ActionResult ChangeUserIfo(WX.CRM.Model.Entity.BAS_INNERUSER ChangeModel)
{
WX.CRM.Model.Entity.BAS_INNERUSER model = inneruserBiz_Q.GetModel(UserId);
var apiResult = ChangeThirdPassWord(model.EID, ChangeModel.PASSWORD);
if (apiResult.ret != 0)
{
errors.Add($"工号【{model.EID}】修改密码失败,失败原因【{apiResult.msg}】,请到员工系统进行核对");
return JsonHandler.UpdateMessage(errors, false);
}
model.map_PASSWORD = ChangeModel.map_PASSWORD;
model.map_CPASSWORD = ChangeModel.map_CPASSWORD;
string user_salt = _IBAS_INNERUSERSALT_Q.getUserSalt(model.PKID, model.EID).PWDSALT;
model.PASSWORD = Utility.Sha512(model.PASSWORD + user_salt);
model.UPDATEUSER = UserId;
model.UTIME = DateTime.Now;
bool scucced = inneruserBiz.Update(ref errors, model);
InnerUserHelper.Instance.ClearCache();
return JsonHandler.UpdateMessage(errors, scucced);
}
#endregion
#region
[OutputCache(Location = OutputCacheLocation.None, NoStore = true)]
public ActionResult CheckUserByEid()
{
string Usereid = Request.QueryString[Request.QueryString.GetKey(0)];
decimal eid;
bool isValidate = false;
if (decimal.TryParse(Usereid, out eid))
{
var user = inneruserBiz_Q.getInnerUserByEid(eid);
if (user != null) isValidate = true;
}
return Json(isValidate, JsonRequestBehavior.AllowGet);
}
#endregion
#region Excel导出
/// <summary>
/// 导出所有信息
/// </summary>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Export)]
public FileResult ExportAll()
{
Pager pager = new Pager() { order = "asc", rows = int.MaxValue, sort = "pkid" };
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
List<WX.CRM.Model.Entity.BAS_INNERUSER_Extend> list = inneruserBiz_Q.GetList(ref pager, "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "");
return File(ExcelHelper.ExportListModelToExcel<WX.CRM.Model.Entity.BAS_INNERUSER_Extend>(list, "员工列表", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("员工列表--所有.xls"));
}
//用作委托传递
public string DataFormart(string key, object value)
{
string formartValue = string.Empty;
switch (key)
{
case "map_GENDER":
switch (Convert.ToString(value))
{
case "m": formartValue = "男"; break;
case "f": formartValue = "女"; break;
default: formartValue = ""; break;
}; break;
case "map_DISMISSTYPE":
switch (Convert.ToString(value))
{
case "1": formartValue = "正常离职"; break;
case "0": formartValue = "其他离职"; break;
default: formartValue = ""; break;
}
; break;
case "map_ISDISMISS":
switch (Convert.ToString(value))
{
case "0": formartValue = "未离职"; break;
case "1": formartValue = "已离职"; break;
default: formartValue = ""; break;
}
; break;
case "FUTURESSTATUS":
formartValue = (value ?? "0").ToString() == "1" ? "是" : "否";
break;
case "TRADERSTATUS":
formartValue = (value ?? "0").ToString() == "1" ? "是" : "否";
break;
case "TUTORSTATUS":
formartValue = (value ?? "0").ToString() == "1" ? "是" : "否";
break;
case "MANAGERSTATUS":
formartValue = (value ?? "0").ToString() == "1" ? "是" : "否";
break;
case "GENERALCUSTOMER":
formartValue = (value ?? "0").ToString() == "1" ? "是" : "否";
break;
case "SENIORCUSTOMER":
formartValue = (value ?? "0").ToString() == "1" ? "是" : "否";
break;
default: formartValue = string.Format("{0}", value); break;
}
return formartValue;
}
/// <summary>
/// 导出当前页面
/// </summary>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Export)]
public FileResult ExportCurrentPage()
{
Pager pager = PageRequest.GetGirdPager();
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string innerGroupId = Request.QueryString["innerGroupId"];
string innerDeptId = Request.QueryString["innerDeptId"];
string eId = Request.QueryString["eId"];
string uName = Request.QueryString["uName"];
string gender = Request.QueryString["gender"];
string isDismiss = Request.QueryString["isDismiss"];
string dismissType = Request.QueryString["dismissType"];
string dismissTime1 = Request.QueryString["dismissTime1"];
string dismissTime2 = Request.QueryString["dismissTime2"];
string EntryDate1 = Request.QueryString["EntryDate1"];
string EntryDate2 = Request.QueryString["EntryDate2"];
string isfutures = Request.QueryString["futures"];
string istrader = Request.QueryString["trader"];
string istutor = Request.QueryString["tutor"];
string isManager = Request.Form["Manager"];
string positiveTime1 = Request.QueryString["PositiveTime1"];
string positiveTime2 = Request.QueryString["PositiveTime2"];
List<WX.CRM.Model.Entity.BAS_INNERUSER_Extend> list = inneruserBiz_Q.GetList(ref pager, innerGroupId, innerDeptId, eId, uName, gender, isDismiss, dismissType, dismissTime1, dismissTime2, EntryDate1, EntryDate2, isfutures, istrader, istutor, isManager, positiveTime1, positiveTime2);
return File(ExcelHelper.ExportListModelToExcel<WX.CRM.Model.Entity.BAS_INNERUSER_Extend>(list, "员工列表", 10000, checkedFilds, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("员工列表--当前页.xls"));
}
/// <summary>
/// 导出条件下的全部数据
/// </summary>
/// <returns></returns>
[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Export)]
public FileResult ExportCurrentAllPage()
{
Pager pager = new Pager() { order = "asc", rows = int.MaxValue, sort = "pkid" };
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
string innerGroupId = Request.QueryString["innerGroupId"];
string innerDeptId = Request.QueryString["innerDeptId"];
string eId = Request.QueryString["eId"];
string uName = Request.QueryString["uName"];
string gender = Request.QueryString["gender"];
string isDismiss = Request.QueryString["isDismiss"];
string dismissType = Request.QueryString["dismissType"];
string dismissTime1 = Request.QueryString["dismissTime1"];
string dismissTime2 = Request.QueryString["dismissTime2"];
string EntryDate1 = Request.QueryString["EntryDate1"];
string EntryDate2 = Request.QueryString["EntryDate2"];
string isfutures = Request.QueryString["futures"];
string istrader = Request.QueryString["trader"];
string istutor = Request.QueryString["tutor"];
string isManager = Request.Form["Manager"];
string positiveTime1 = Request.QueryString["PositiveTime1"];
string positiveTime2 = Request.QueryString["PositiveTime2"];
List<WX.CRM.Model.Entity.BAS_INNERUSER_Extend> list = inneruserBiz_Q.GetList(ref pager, innerGroupId, innerDeptId, eId, uName, gender, isDismiss, dismissType, dismissTime1, dismissTime2, EntryDate1, EntryDate2, isfutures, istrader, istutor, isManager, positiveTime1, positiveTime2);
return File(ExcelHelper.ExportListModelToExcel<WX.CRM.Model.Entity.BAS_INNERUSER_Extend>(list, "员工列表", 10000, checkedFilds, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("员工列表--条件所有.xls"));
}
#endregion
public ActionResult InnsuerTree()
{
var glist = _INNERGROUP_Q.GetList();
var ulist = inneruserBiz_Q.GetList();
var uglist = inneruserGroupBiz_Q.GetList();
var org = glist.ConvertAll<treenode>(item =>
new treenode() { id = item.GID, name = item.GNAME }
);
foreach (var g in org)
{
var ug = from t1 in uglist
join t2 in ulist on t1.INNERUSERID equals t2.PKID
where t1.GID == g.id
select new { t2.EID, t2.UNAME, t1.GID };
g.children = ug.ToList()
.ConvertAll<treenode>(item3 =>
new treenode() { id = item3.EID, name = item3.UNAME }
);
}
ViewData["GLIST"] = glist;
return Json(org, JsonRequestBehavior.AllowGet);
}
public class treenode
{
public decimal id { get; set; }
public string name { get; set; }
public int resnum { get; set; }
public List<treenode> children { get; set; }
}
[HttpGet]
[AuthorizeRedirect(Roles = InitRights.CONST_角色权限管理)]
public ActionResult InitInnerUser(int? eid)
{
var list = inneruserBiz_Q.GetAllList();
if (eid != null)
{
list = list.Where(o => o.EID == eid).ToList();
}
foreach (BAS_INNERUSER model in list)
{
if (model.EID != 10000)
{
string user_salt = _IBAS_INNERUSERSALT_Q.getUserSalt(model.PKID, model.EID).PWDSALT;
BAS_INNERUSERSALT userSaltModel = new BAS_INNERUSERSALT();
userSaltModel.INNERUSERID = model.PKID;
userSaltModel.EID = model.EID;
userSaltModel.PWDSALT = user_salt;
userSaltModel.CTIME = DateTime.Now;
userSaltModel.CREATEUSER = UserId;
_IBAS_INNERUSERSALT.Create(userSaltModel);
model.PASSWORD = Utility.Sha512("abc123" + user_salt);
bool scucced = inneruserBiz.Update(ref errors, model);
}
}
return View();
}
#region
[HttpGet]
//[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other8)]
[AuthorizeToolBarMore(new string[] { InitRights.CONST_员工管理, InitRights.CONST_组织结构图 }, new int[] { InitToolBar.CONST_Other8, InitToolBar.CONST_Other2 })]
public ActionResult EditPassWord(string pkids)
{
if (pkids == "")
{
throw new Exception("请至少勾选一行");
}
var userIdList = pkids.Split(',').Select(n => Convert.ToDecimal(n)).ToList();
USER_EDITPASSWORDVIEW model = new USER_EDITPASSWORDVIEW();
var userList = inneruserBiz_Q.GetAllList().Where(n => userIdList.Contains(n.PKID)).ToList();
if (userIdList.Count == 0)
{
throw new Exception("找不到勾选的用户");
}
model.Pkid = pkids;
model.Name = string.Join(",", userList.Select(n => n.UNAME).ToList());
return View(model);
}
[HttpPost]
//[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other8)]
[AuthorizeToolBarMore(new string[] { InitRights.CONST_员工管理, InitRights.CONST_组织结构图 }, new int[] { InitToolBar.CONST_Other8, InitToolBar.CONST_Other2 })]
public JsonResult EditPassWord(USER_EDITPASSWORDVIEW model)
{
bool scucceed = false;
if (!string.IsNullOrEmpty(model.Pkid))
{
var userIdList = model.Pkid.Split(',').Select(n => Convert.ToDecimal(n)).ToList();
var userList = inneruserBiz_Q.GetAllList().Where(n => userIdList.Contains(n.PKID)).ToList();
foreach (var entry in userList)
{
var apiResult = ChangeThirdPassWord(entry.EID, model.PASSWORD);
if (apiResult.ret != 0)
{
errors.Add($"工号【{entry.EID}】修改密码失败,失败原因【{apiResult.msg}】,请到员工系统进行核对");
continue;
}
string user_salt = _IBAS_INNERUSERSALT_Q.getUserSalt(entry.PKID, entry.EID).PWDSALT;
entry.PASSWORD = Utility.Sha512(model.PASSWORD + user_salt);
entry.UPDATEUSER = UserId;
entry.UTIME = DateTime.Now;
scucceed = inneruserBiz.Update(ref errors, entry);
if (!scucceed)
{
return JsonHandler.UpdateMessage(errors, scucceed);
}
}
}
InnerUserHelper.Instance.ClearCache();
CacheHelper.Remove("cache_user_list");
return JsonHandler.UpdateMessage(errors, scucceed);
}
/// <summary>
/// 修改sso密码
/// </summary>
/// <param name="model"></param>
public ApiResult<string> ChangeThirdPassWord(decimal eid,string passWord)
{
var ssoUrl = System.Configuration.ConfigurationManager.AppSettings["SSOUrl"];
var appid = System.Configuration.ConfigurationManager.AppSettings["appid"];
var appSecret = System.Configuration.ConfigurationManager.AppSettings["appSecret"];
if(string.IsNullOrEmpty(ssoUrl) || string.IsNullOrEmpty(appid) || string.IsNullOrWhiteSpace(appSecret))
{
LogHelper.Error($"请配置相关sso密钥配置【{ssoUrl}】【{appid}】【{appSecret}】");
throw new Exception("请配置相关sso密钥配置");
}
ApiDockHelper dock = new ApiDockHelper(appid, appSecret);
Dictionary<string, object> dic = new Dictionary<string, object>();
ssoUrl = ssoUrl + "/v1/api/open/sso/changePassword";
var md5PassWord = dock._md5(passWord);
dic.Add("employeeId", eid.ToString());
dic.Add("password", md5PassWord);
ApiResult<string> model = dock.PostApi<string>(ssoUrl, dic);
return model;
}
#endregion
#region
[HttpGet]
//[AuthorizeToolBar(InitRights.CONST_员工管理, InitToolBar.CONST_Other8)]
[AuthorizeToolBarMore(new string[] { InitRights.CONST_员工管理, InitRights.CONST_组织结构图 }, new int[] { InitToolBar.CONST_Other7, InitToolBar.CONST_Other1 })]
public ActionResult EditSetting(string pkids)
{
ViewBag.isAdmin = Eid == 10000 ? "1" : "0";
var view = new BAS_INNERUSER_SETTINGVIEW();
var userIdList = pkids.Split(',').Select(n => Convert.ToDecimal(n)).ToList();
//获取所有角色
var roleList = _inneruserRole.GetInneruserRoleByUserIdList(userIdList);
//当所有用户的角色都相同的时候 赋值
var groupCount = roleList.GroupBy(n => n.ROLEID).Select(n => new { Roleid = n.Key, Count = n.Count() }).ToList();
if (!groupCount.Exists(n => n.Count != userIdList.Count()))
{
view.ulRoleIds = string.Join(",", groupCount.Select(n => n.Roleid).ToList());
}
view.INNERUSERIDLIST = pkids;
ViewBag.isAdd = false;
return View(view);
}
[HttpPost]
[AuthorizeToolBarMore(new string[] { InitRights.CONST_员工管理, InitRights.CONST_组织结构图 }, new int[] { InitToolBar.CONST_Other7, InitToolBar.CONST_Other1 })]
public JsonResult EditSetting(WX.CRM.Model.Entity.BAS_INNERUSER_SETTINGVIEW model)
{
var result = true;
if (!ModelState.IsValid)
return JsonHandler.ValidateFailMessage();
List<decimal> userIds = model.INNERUSERIDLIST.Split(',').Select(n => Convert.ToDecimal(n)).ToList();
//赋值权限
result = innerUserRoleBiz.Save(ref errors, 0, model.ulRoleIds, model.INNERUSERIDLIST);
InnerUserHelper.Instance.ClearCache();
CacheHelper.Remove("cache_InnerUserGroup_getList");
return JsonHandler.ManageMessage(errors, result);
}
#endregion
/// <summary>
/// 属性改变后规则回收
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
//public JsonResult RecoveryCommissionRule()
//{
// try
// {
// inneruserBiz.ExecRuleByChangeAttr();
// var lis = new { result = 1, msg = "成功!" };
// return Json(lis, JsonRequestBehavior.AllowGet);
// }
// catch (Exception ex)
// {
// var lis = new { result = 0, msg = ex.Message };
// return Json(lis, JsonRequestBehavior.AllowGet);
// }
//}
}
}