795 lines
38 KiB
C#
795 lines
38 KiB
C#
using CRM.Core.DTO;
|
|
using CRM.Core.DTO.Res;
|
|
using Ninject;
|
|
using System;
|
|
using System.Data;
|
|
using System.Text;
|
|
using System.Web.Mvc;
|
|
using WX.CRM.BLL.Soft;
|
|
using WX.CRM.BLL.Util;
|
|
using WX.CRM.Common;
|
|
using WX.CRM.IBLL.Res;
|
|
using WX.CRM.IBLL.Soft;
|
|
using WX.CRM.IBLL.Util;
|
|
using WX.CRM.Model.Entity;
|
|
using WX.CRM.Model.Enum;
|
|
using WX.CRM.Model.MAP;
|
|
using WX.CRM.Model.QueryMap;
|
|
using WX.CRM.WebHelper;
|
|
|
|
namespace WX.CRM.WEB.Controllers.Soft
|
|
{
|
|
public class SoftUserController : BaseController
|
|
{
|
|
|
|
|
|
//
|
|
// GET: /SoftUser/
|
|
private readonly ISOFT_USER _soft_user;
|
|
private readonly ISOFT_USER_Q _soft_userQ;
|
|
private readonly IRES_CUSTOMERUSER_Q _customeruserQ;
|
|
private readonly IRES_CUSTOMERUSER _customeruser;
|
|
private readonly ISecurityHelper sHelper;
|
|
private readonly ICACHE_Q cacheQ;
|
|
private readonly IRES_RESOURCEMOBILE_Q _resourceMobileQ;
|
|
//private readonly ICUSTOMER_REDIS redisQ;
|
|
private readonly IRES_CUSTOMER _resCustomer;
|
|
private readonly IRES_CUSTOMER_Q _resCustomerQ;
|
|
[Inject]
|
|
public IRES_RESOURCEMOBILE_Q _res_resourcemobile_Q { get; set; }
|
|
[Inject]
|
|
public ISOFT_RESETPWD soft_resetpwd { get; set; }
|
|
ValidationErrors errors = new ValidationErrors();
|
|
//WebHelper.RedisFactory.RedisFactory redisFactory = new WebHelper.RedisFactory.RedisFactory();
|
|
|
|
public SoftUserController(ISOFT_USER soft_user, ISOFT_USER_Q _soft_userQ,
|
|
IRES_CUSTOMERUSER_Q customeruserQ
|
|
, IRES_CUSTOMERUSER customerUser,
|
|
ISecurityHelper _sHelper,
|
|
ICACHE_Q _cacheQ,
|
|
IRES_RESOURCEMOBILE_Q resourceMobileQ,
|
|
//ICUSTOMER_REDIS _redisQ,
|
|
IRES_CUSTOMER_Q resCustomerQ,
|
|
IRES_CUSTOMER resCustomer
|
|
)
|
|
{
|
|
this._soft_user = soft_user;
|
|
this._soft_userQ = _soft_userQ;
|
|
this._customeruserQ = customeruserQ;
|
|
this._customeruser = customerUser;
|
|
this.sHelper = _sHelper;
|
|
this.cacheQ = _cacheQ;
|
|
this._resourceMobileQ = resourceMobileQ;
|
|
//this.redisQ = _redisQ;
|
|
this._resCustomer = resCustomer;
|
|
this._resCustomerQ = resCustomerQ;
|
|
}
|
|
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_软件客户列表)]
|
|
public ActionResult Index()
|
|
{
|
|
ToolBar tb = new ToolBar();
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.软件客户列表, userRightId);
|
|
tb.AllowButton(toolbtn);
|
|
tb.AddOtherButton("Other1", "导出", "icon-export", "Export_Click", true);
|
|
|
|
ViewBag.ToolBar = tb;
|
|
|
|
Pager gp = new Pager() { page = 1, rows = 20, order = "desc" };
|
|
Table tab = new Table("tablist");
|
|
tab.AddHeadCol("USERNAME", "", "软件用户名", true);
|
|
tab.AddHeadCol("RESID", "", "客户ID");
|
|
tab.AddHeadCol("REGCAMPAINID", "", "渠道来源");
|
|
tab.AddHeadCol("USERNO", "", "用户卡号");
|
|
tab.AddHeadCol("REGDATE", "", "注册时间");
|
|
tab.AddHeadCol("", "", "操作");
|
|
tab.AddHeadRow();
|
|
ViewBag.GroupList = tab.GetTable() + Pagination.GetPage(gp, "tablist");
|
|
|
|
//ViewBag.inneruserid = UserId;
|
|
//ViewBag.userGroupId = userGroupId;
|
|
//ViewBag.saleDeptId = saleDeptId;
|
|
//ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
//[AuthorizeRedirect(Roles = InitRights.CONST_软件客户列表)]
|
|
public JsonResult Index(Pager pager, string columns, string SoftName, string ResID, DateTime? ctime1, DateTime? ctime2)
|
|
{
|
|
try
|
|
{
|
|
var list = _soft_userQ.GetList(ref pager, SoftName, ResID, ctime1, ctime2);
|
|
|
|
Table table = new Table(columns, true);
|
|
table.gridPager = pager;
|
|
|
|
foreach (var model in list)
|
|
{
|
|
table.AddCol(model.USERNAME);
|
|
table.AddCol("<a href=\"javascript:ShowResDetial('/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID + "')\">" + model.RESID + "</a>");
|
|
table.AddCol(model.REGCAMPAINID);
|
|
table.AddCol(model.USERNO);
|
|
table.AddCol(model.REGDATE);
|
|
table.AddCol("<input type=\"button\" class=\"btn btn-primary\" style=\"width: 80px; text-align:center\" onclick=\"if (confirm('确认重置密码?')) ResetPwd('" + Utility.EncryptUrlEncode(model.USERNAME) + "', '" + model.RESID + "', this)\" value=\"重置密码\">");
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("Soft_UserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult ContractSoftUser(string resId, string userName)
|
|
{
|
|
if (!ModelState.IsValid)
|
|
return JsonHandler.ValidateFailMessage();
|
|
|
|
if (string.IsNullOrWhiteSpace(userName))
|
|
return JsonHandler.ManageMessage("关联用户名不能为空", false);
|
|
var customerUser = _customeruserQ.GetModelByUserName(userName);
|
|
var softuser = _soft_userQ.GetUser_userName(userName);
|
|
|
|
if (customerUser != null || softuser == null)
|
|
{
|
|
return JsonHandler.ManageMessage("请检查用户名!用户名已绑定或不存在", false);
|
|
}
|
|
|
|
RES_CUSTOMERUSER model = new RES_CUSTOMERUSER();
|
|
model.RESID = resId;
|
|
model.USERNAME = userName;
|
|
model.CTIME = DateTime.Now;
|
|
|
|
bool result = _customeruser.Create(ref errors, model);
|
|
return JsonHandler.InsertMessage(errors, result);
|
|
}
|
|
[HttpPost]
|
|
public JsonResult ResetPassword(string userName, string resid)
|
|
{
|
|
ValidationErrors erro = new ValidationErrors();
|
|
try
|
|
{
|
|
userName = Utility.DecryptUrlDecode(userName);
|
|
var softuser = _soft_userQ.GetUser_ByUserName(userName);
|
|
if (null == softuser)
|
|
{
|
|
return JsonHandler.ManageMessage("此用户不存在", false);
|
|
}
|
|
if (string.IsNullOrEmpty(resid))
|
|
{
|
|
var customerUser = _customeruserQ.GetModelByUserName(userName);
|
|
if (customerUser == null)
|
|
{
|
|
return JsonHandler.ManageMessage("请先绑定用户!", false);
|
|
}
|
|
resid = customerUser.RESID;
|
|
}
|
|
//string Code = cacheQ.GetValue_Parameter(Parameter.SMS_ResetPwdType);
|
|
//string[] TypeCodes = Code.Split('#');
|
|
//if (TypeCodes == null || TypeCodes.Count() < 2)
|
|
//{
|
|
// return JsonHandler.ManageMessage("短信参数设置错误", false);
|
|
//}
|
|
//===============调用中心点接口============
|
|
resetPwd smsmodel = new resetPwd();
|
|
smsmodel.mobile = _res_resourcemobile_Q.GetNumberByResId(resid);
|
|
smsmodel.userid = UserId;
|
|
smsmodel.userName = userName;
|
|
smsmodel.companycode = saleDeptCode;
|
|
|
|
string url = cacheQ.GetValue_Parameter(Parameter.Core_ZxdService_ResePwd);//内部接口··调用RiaSerivice
|
|
|
|
string json = Utility.ConvertToJSON<resetPwd>(smsmodel);
|
|
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);//数据参数加密
|
|
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);//实现中心点先入库
|
|
retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
|
|
retMsg retmessage = JsonHelper.JsonDivertToObj<retMsg>(retmsg);//返回信息
|
|
if (retmessage.result)
|
|
{
|
|
ResetUserPwdRsp whretmessage = JsonHelper.JsonDivertToObj<ResetUserPwdRsp>(sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmessage.retmsg));
|
|
SOFT_RESETPWD model = new SOFT_RESETPWD();
|
|
model.RESID = resid;
|
|
model.SOFT_USERNAME = userName;
|
|
model.NEWPASSWORD = whretmessage.newpwd;
|
|
model.USERID = UserId;
|
|
soft_resetpwd.Add(ref erro, model);
|
|
if (erro.Count > 0)
|
|
{
|
|
return Json(new { type = false, message = "密码重置成功,但是入库失败!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
return Json(new { type = retmessage.result, message = "密码重置成功!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
{
|
|
return Json(new { type = retmessage.result, message = retmessage.retmsg }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { type = false, message = ex.ToString() }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
[HttpPost]
|
|
public JsonResult UnBindQW(string userName)
|
|
{
|
|
ValidationErrors erro = new ValidationErrors();
|
|
try
|
|
{
|
|
var softuser = _soft_userQ.GetUser_ByUserName(userName);
|
|
if (null == softuser)
|
|
{
|
|
return JsonHandler.ManageMessage("此用户不存在", false);
|
|
}
|
|
|
|
//===============调用中心点接口============
|
|
UnBindQWDto smsmodel = new UnBindQWDto() { username = userName };
|
|
string url = cacheQ.GetValue_Parameter(Parameter.Core_ZxdService_UnbindQW);//内部接口··调用RiaSerivice
|
|
string json = Utility.ConvertToJSON<UnBindQWDto>(smsmodel);
|
|
json = sHelper.createSignEncodingStr(json, SecurityHelper.OrderClientIdKey);//数据参数加密
|
|
string retmsg = Utility.PostData(url + "?" + json, Encoding.UTF8);//实现中心点先入库
|
|
//retmsg = sHelper.decyptData(SecurityHelper.OrderClientIdKey, retmsg);
|
|
retMsg retmessage = JsonHelper.JsonDivertToObj<retMsg>(retmsg);//返回信息
|
|
if (retmessage.result)
|
|
{
|
|
return Json(new { type = true, message = "企业微信关系解绑成功!!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
{
|
|
return Json(new { type = retmessage.result, message = retmessage.retmsg }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { type = false, message = ex.ToString() }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
[HttpPost]
|
|
public JsonResult ResetMobile(string username, int type, string newmobile, string oldmobile)
|
|
{
|
|
try
|
|
{
|
|
#region
|
|
if (string.IsNullOrWhiteSpace(username))
|
|
{
|
|
return Json(new { type = false, message = "用户名不能为空!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
if (type == 0)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(newmobile))
|
|
{
|
|
return Json(new { type = false, message = "绑定手机号不能为空!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
else if (type == 1)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(oldmobile))
|
|
{
|
|
return Json(new { type = false, message = "解绑手机号不能为空!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
else if (type == 2)
|
|
{
|
|
if (string.IsNullOrWhiteSpace(oldmobile) || string.IsNullOrWhiteSpace(newmobile))
|
|
{
|
|
return Json(new { type = false, message = "手机号不能为空!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
return Json(new { type = false, message = "参数错误!" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
#endregion
|
|
|
|
LogHelper.Info("重置手机号参数:" + username + "," + type.ToString() + "," + newmobile + "," + oldmobile);
|
|
|
|
//var url = "http://47.107.128.102:8096/ResourceService.svc/User/ResetMobile";
|
|
var url = cacheQ.GetValue_Parameter(Parameter.Core_ZxdService_ResetMobile);
|
|
|
|
var resetMobileDto = new ResetMobileDto() { username = username, type = type, oldmobile = oldmobile, newmobile = newmobile };
|
|
|
|
var json = Utility.ObjectToJson(resetMobileDto);
|
|
|
|
var para = sHelper.createSignEncodingStr(json);
|
|
|
|
var retmsg = Utility.PostData(url + "?" + para, Encoding.UTF8);
|
|
|
|
var ret = Utility.JSONToObject<ResetMobileRet>(retmsg);
|
|
LogHelper.Info("ret:" + ret.ToJson());
|
|
if (ret.ret == 0)
|
|
{
|
|
if (resetMobileDto.type == 0 || resetMobileDto.type == 2)
|
|
{
|
|
var resid = ResUtil.CreateResId(resetMobileDto.newmobile);
|
|
if (_resCustomerQ.getResCustomerByResId(resid) == null)
|
|
{
|
|
_resCustomer.ResgisterCustomer(resetMobileDto.newmobile, resid, "resetmobile");//注册资源
|
|
}
|
|
_customeruser.ContractUser(resid, resetMobileDto.username);//关联用户
|
|
var softUser = _soft_userQ.GetUser_userName(username);
|
|
softUser.RESID = resid;
|
|
_soft_user.Update(softUser);
|
|
}
|
|
else
|
|
{
|
|
var resid = ResUtil.CreateResId(resetMobileDto.oldmobile);
|
|
_customeruser.Delete(username, resid);
|
|
var softUser = _soft_userQ.GetUser_userName(username);
|
|
softUser.RESID = string.Empty;
|
|
_soft_user.Update(softUser);
|
|
}
|
|
|
|
return Json(new { type = true, message = "操作成功!", code = 200 }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
{
|
|
return Json(new { type = false, message = "操作成功!", code = ret.ret }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error(ex.ToString());
|
|
return Json(new { type = false, message = ex.ToString(), code = 500 }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
|
|
[HttpPost]
|
|
public JsonResult ActiveUser(string userName, string resid)
|
|
{
|
|
userName = Utility.DecryptUrlDecode(userName);//进行 username解密
|
|
ValidationErrors errors = new ValidationErrors();
|
|
var softuser = _soft_userQ.GetUser_ByUserName(userName);
|
|
if (null == softuser || !softuser.USERNO.HasValue)
|
|
{
|
|
return JsonHandler.ManageMessage("此客户无卡号", false);
|
|
}
|
|
|
|
string mobile = _resourceMobileQ.GetNumberByResId(resid);
|
|
if (string.IsNullOrEmpty(mobile))
|
|
{
|
|
return JsonHandler.ManageMessage("无认证号码", false);
|
|
}
|
|
// string url = "http://crmcenter.0135135.com/CrmProductService.svc/crmActive";
|
|
string url = cacheQ.GetValue_Parameter(Parameter.HQ_RiaService_ActiveMaunl);//内部接口··调用RiaSerivice
|
|
string json = JsonHelper.ObjDivertToJson(new { userCardNO = softuser.USERNO, mobile = mobile });
|
|
string key = sHelper.createSignEncodingStr(json);
|
|
|
|
|
|
string result = Utility.PostData(url + "?" + key, System.Text.Encoding.UTF8);
|
|
result = sHelper.decyptData("UPWEBSITE", result); //解密操作
|
|
Retinfo rt = JsonHelper.JsonDivertToObj<Retinfo>(result);
|
|
if (rt.result || rt.retcode == "10006")
|
|
{
|
|
SOFT_USER model = new SOFT_USER();
|
|
model.ACTIVERESID = rt.retMessage;
|
|
model.USERLEVEL = 1;
|
|
model.ISACTIVE = 1;
|
|
model.USERNAME = userName;
|
|
bool relsut = _soft_user.ActiveUpdate(ref errors, model);
|
|
if (relsut)
|
|
{
|
|
return Json(new { type = rt.result, message = "认证成功" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
{
|
|
return Json(new { type = false, message = "认证失败,更新错误" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (rt.retcode == "10010")
|
|
{
|
|
return Json(new { type = rt.result, message = "认证失败,号码可能已被其他账号绑定" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
else
|
|
{
|
|
return Json(new { type = rt.result, message = "认证失败,请联系管理员" }, JsonRequestBehavior.AllowGet);
|
|
}
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_软件注册邀请统计)]
|
|
public ActionResult InviteCount()
|
|
{
|
|
ToolBar tb = new ToolBar();
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.软件注册邀请统计, userRightId);
|
|
tb.AddOtherButton("Other1", "导出", "icon-excel", "Export_Click", true);
|
|
tb.AllowButton(toolbtn);
|
|
|
|
ViewBag.ToolBar = tb;
|
|
|
|
Pager gp = new Pager() { page = 1, rows = 20, order = "desc" };
|
|
Table tab = new Table("tablist");
|
|
tab.AddHeadCol("EID", "", "客服");
|
|
tab.AddHeadCol("NUM", "", "数量");
|
|
tab.AddHeadRow();
|
|
ViewBag.inneruserid = UserId;
|
|
ViewBag.userGroupId = userGroupId;
|
|
ViewBag.saleDeptId = saleDeptId;
|
|
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
ViewBag.Grid = tab.GetTable();
|
|
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_软件注册邀请统计)]
|
|
public JsonResult InviteCountHtml(string columns, DateTime? stime, DateTime? etime, decimal? hasMobile)
|
|
{
|
|
try
|
|
{
|
|
string saleDeptId = Request["saleDeptId"];
|
|
string groupId = Request["groupId"];
|
|
string innerUserId = Request["userId"];
|
|
var list = _soft_user.GetInvistListCount(stime, etime, hasMobile, saleDeptId, groupId, innerUserId);
|
|
DataTable dt = new DataTable();
|
|
if (list != null && list.Tables[0] != null)
|
|
{
|
|
dt = list.Tables[0];
|
|
}
|
|
Table table = new Table(columns, true);
|
|
|
|
foreach (DataRow model in dt.Rows)
|
|
{
|
|
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEid(Convert.ToDecimal(model["eid"]))));
|
|
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + stime + "&etime=" + etime + "&eid=" + model["eid"], model["num"]);
|
|
table.AddCol(linkUrl);
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("Soft_UserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(InitRights.CONST_软件注册邀请统计)]
|
|
public ActionResult DayReport()
|
|
{
|
|
//ToolBar
|
|
ToolBar tool = new ToolBar();
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.软件注册邀请统计, userRightId);
|
|
tool.AddOtherButton("Other1", "导出", "icon-excel", "Export_Click", true);
|
|
tool.AllowButton(toolbtn);
|
|
ViewBag.ToolBar = tool;
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("daytime", "", "日期");
|
|
tab.AddHeadCol("num", "", "注册数");
|
|
tab.AddHeadCol("invitenum", "", "邀请注册数");
|
|
tab.AddHeadCol("noinvitenum", "", "推广注册数");
|
|
tab.AddHeadCol("mobilenum", "", "注册手机数");
|
|
tab.AddHeadCol("invitemobilenum", "", "邀请注册手机数");
|
|
tab.AddHeadCol("noinvitemobilenum", "", "推广注册手机数");
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable();
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(InitRights.CONST_软件注册邀请统计)]
|
|
public JsonResult DayReportHtml(string columns, string sdCTime, string edCTime)
|
|
{
|
|
try
|
|
{
|
|
if (string.IsNullOrEmpty(sdCTime) || string.IsNullOrEmpty(edCTime))
|
|
{
|
|
return JsonHandler.ManageMessage("参数有误,请确认!", false);
|
|
}
|
|
DateTime? sTime = null;
|
|
DateTime? eTime = null;
|
|
DateTime stTime;
|
|
DateTime etTime;
|
|
DateTime.TryParse(sdCTime, out stTime);
|
|
sTime = stTime;
|
|
DateTime.TryParse(edCTime, out etTime);
|
|
Table table = new Table(columns, true);
|
|
var ds = _soft_userQ.GetInviteCountByDay(sTime, eTime);
|
|
var dt = new DataTable();
|
|
if (ds != null && ds.Tables[0] != null)
|
|
{
|
|
dt = ds.Tables[0];
|
|
}
|
|
decimal num = 0, inviteNum = 0, mobileNum = 0, inviteMobileNum = 0;
|
|
|
|
|
|
foreach (DataRow model in dt.Rows)
|
|
{
|
|
num += Convert.ToDecimal(model["num"]);
|
|
inviteNum += Convert.ToDecimal(model["invitenum"]);
|
|
mobileNum += Convert.ToDecimal(model["mobilenum"]);
|
|
inviteMobileNum += Convert.ToDecimal(model["invitemobilenum"]);
|
|
table.AddCol(model["dayTime"].ToString());
|
|
//当日注册明细
|
|
var linkUrl = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + model["dayTime"] + "&etime=" + model["dayTime"], model["num"]);
|
|
table.AddCol(linkUrl);
|
|
//当日邀请注册分类统计
|
|
var linkUrl2 = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "邀请统计", "/Soft/SoftUser/InviteCount?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=0", model["invitenum"]);
|
|
table.AddCol(linkUrl2);
|
|
//当日推广注册明细
|
|
var linkUrl3 = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&noInvite=1", (Convert.ToDecimal(model["num"]) - Convert.ToDecimal(model["invitenum"])));
|
|
table.AddCol(linkUrl3);
|
|
//当日提交手机号注册明细
|
|
var linkUrl4 = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=1", model["mobilenum"]);
|
|
table.AddCol(linkUrl4);
|
|
//当日邀请注册提交手机号分类统计
|
|
var linkUrl5 = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "邀请统计", "/Soft/SoftUser/InviteCount?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=1", model["invitemobilenum"]);
|
|
table.AddCol(linkUrl5);
|
|
//当日推广注册提交手机号注册明细
|
|
var linkUrl6 = string.Format("<a href=\"javascript:parent.ChildAddTab('{0}', '{1}', '')\">{2}</a>", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=1&noInvite=1", Convert.ToDecimal(model["mobilenum"]) - Convert.ToDecimal(model["invitemobilenum"]));
|
|
table.AddCol(linkUrl6);
|
|
|
|
|
|
table.AddRow();
|
|
}
|
|
|
|
table.AddCol("合计:");
|
|
table.AddCol(num);
|
|
table.AddCol(inviteNum);
|
|
table.AddCol(num - inviteNum);
|
|
table.AddCol(mobileNum);
|
|
table.AddCol(inviteMobileNum);
|
|
table.AddCol(mobileNum - inviteMobileNum);
|
|
table.AddRow();
|
|
|
|
var json = new { rowsList = table.GetRows() };
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("SoftUserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 导出所有信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AuthorizeToolBar(InitRights.CONST_注册资源统计报表, InitToolBar.CONST_Other1)]
|
|
public FileResult DayReportExport(DateTime sdCTime, DateTime edCTime)
|
|
{
|
|
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
|
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
|
|
DataTable list = _soft_userQ.GetInviteCountByDay(sdCTime, edCTime).Tables[0];
|
|
|
|
DataTable tab = new DataTable("wocha");
|
|
tab.Columns.Add(new DataColumn("daytime", typeof(string)));
|
|
tab.Columns.Add(new DataColumn("num", typeof(int)));
|
|
tab.Columns.Add(new DataColumn("invitenum", typeof(int)));
|
|
tab.Columns.Add(new DataColumn("noinvitenum", typeof(int)));
|
|
tab.Columns.Add(new DataColumn("mobilenum", typeof(int)));
|
|
tab.Columns.Add(new DataColumn("invitemobilenum", typeof(int)));
|
|
tab.Columns.Add(new DataColumn("noinvitemobilenum", typeof(int)));
|
|
|
|
foreach (DataRow item in list.Rows)
|
|
{
|
|
DataRow row = tab.NewRow();
|
|
row["daytime"] = item["daytime"];
|
|
row["num"] = item["num"];
|
|
row["invitenum"] = item["invitenum"];
|
|
row["noinvitenum"] = Convert.ToInt32(item["num"]) - Convert.ToInt32(item["invitenum"]);
|
|
row["mobilenum"] = item["mobilenum"];
|
|
row["invitemobilenum"] = item["invitemobilenum"];
|
|
row["noinvitemobilenum"] = Convert.ToInt32(item["mobilenum"]) - Convert.ToInt32(item["invitemobilenum"]);
|
|
tab.Rows.Add(row);
|
|
}
|
|
DataRow hrow = tab.NewRow();
|
|
hrow["daytime"] = "合计:";
|
|
hrow["num"] = tab.Compute("Sum(num)", "");
|
|
hrow["invitenum"] = tab.Compute("Sum(invitenum)", ""); ;
|
|
hrow["noinvitenum"] = tab.Compute("Sum(noinvitenum)", "");
|
|
hrow["mobilenum"] = tab.Compute("Sum(mobilenum)", "");
|
|
hrow["invitemobilenum"] = tab.Compute("Sum(invitemobilenum)", "");
|
|
hrow["noinvitemobilenum"] = tab.Compute("Sum(noinvitemobilenum)", "");
|
|
tab.Rows.Add(hrow);
|
|
return File(ExcelHelper.ExportDataTableToExcel(tab, "软件注册邀请统计", checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("软件注册邀请统计.xls"));
|
|
}
|
|
[HttpGet]
|
|
[AuthorizeRedirect(InitRights.CONST_软件注册邀请统计)]
|
|
public ViewResult UserDayReport(DateTime? stime, DateTime? etime)
|
|
{
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("USERNAME", "", "软件用户名", true);
|
|
tab.AddHeadCol("RESID", "", "客户ID");
|
|
tab.AddHeadCol("REGCAMPAINID", "", "渠道来源");
|
|
tab.AddHeadCol("REGDATE", "", "注册时间");
|
|
tab.AddHeadRow();
|
|
ViewBag.gridTable = tab.GetTable();
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_软件注册邀请统计)]
|
|
public JsonResult UserDayReportHtml(string columns, DateTime? stime, DateTime? etime, decimal? eid, decimal? hasMobile, decimal? noInvite,QueryUserComboDto usercomboDto)
|
|
{
|
|
try
|
|
{
|
|
Pager pager = new Pager { page = 1, rows = int.MaxValue };
|
|
var list = _soft_userQ.GetList(ref pager, null, null, stime, etime, eid, hasMobile, noInvite, usercomboDto, null);
|
|
|
|
Table table = new Table(columns, true);
|
|
table.gridPager = pager;
|
|
|
|
foreach (var model in list)
|
|
{
|
|
table.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));
|
|
table.AddCol("<a href=\"javascript:ShowResDetial('/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID + "')\">" + model.RESID + "</a>");
|
|
table.AddCol(model.REGCAMPAINID);
|
|
table.AddCol(model.REGDATE);
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("Soft_UserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
[HttpGet]
|
|
[AuthorizeRedirect(InitRights.CONST_我的注册邀请)]
|
|
public ViewResult MyInviteList(DateTime? stime, DateTime? etime)
|
|
{
|
|
ToolBar tool = new ToolBar();
|
|
string[] toolbtn = new ToolButtonView().ToolButtonRight(InitRights.软件注册邀请统计, userRightId);
|
|
tool.AddOtherButton("Other1", "导出", "icon-excel", "Export_Click", true);
|
|
tool.AllowButton(toolbtn);
|
|
ViewBag.ToolBar = tool;
|
|
|
|
|
|
Pager pager = new Pager() { page = 1, rows = 20 };
|
|
string tableId = "tablist";
|
|
Table tab = new Table(tableId);
|
|
tab.AddHeadCol("USERNAME", "", "软件用户名", true);
|
|
tab.AddHeadCol("RESID", "", "客户ID");
|
|
tab.AddHeadCol("REGCAMPAINID", "", "渠道来源");
|
|
tab.AddHeadCol("REGDATE", "", "注册时间");
|
|
tab.AddHeadCol("EID", "", "邀请人");
|
|
tab.AddHeadCol("GROUPNAME", "", "邀请人组别");
|
|
tab.AddHeadRow();
|
|
ViewBag.inneruserid = UserId;
|
|
ViewBag.userGroupId = userGroupId;
|
|
ViewBag.saleDeptId = saleDeptId;
|
|
ViewBag.roleCodes = DataCacheHelper.GetCache().Get_RoleCodes(userRoleId);
|
|
ViewBag.gridTable = tab.GetTable() + Pagination.GetPage(pager, tableId, "15,20,30");
|
|
return View();
|
|
}
|
|
|
|
[HttpPost]
|
|
[AuthorizeRedirect(Roles = InitRights.CONST_我的注册邀请)]
|
|
public JsonResult MyInviteListHtml(Pager pager, string columns, DateTime? stime, DateTime? etime, QueryUserComboDto usercomboDto)
|
|
{
|
|
try
|
|
{
|
|
|
|
|
|
decimal p_saleDeptId = Request["saleDeptId"].GetDecimal(0);
|
|
string groupId = Request["groupId"];
|
|
decimal innerUserId = Request["userId"].GetDecimal(0);
|
|
var list = _soft_userQ.GetList(ref pager, null, null, stime, etime, null, null, null, usercomboDto, 1);
|
|
|
|
Table table = new Table(columns, true);
|
|
table.gridPager = pager;
|
|
|
|
foreach (var model in list)
|
|
{
|
|
table.AddCol(PhoneHelper.FormatPhoneUserName(model.USERNAME));
|
|
table.AddCol("<a href=\"javascript:ShowResDetial('/Csvr/CustomerInfo/CustomerDetail?resid=" + model.RESID + "')\">" + model.RESID + "</a>");
|
|
table.AddCol(model.REGCAMPAINID);
|
|
table.AddCol(model.REGDATE);
|
|
table.AddCol(InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEid(model.EID)));
|
|
table.AddCol(InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(InnerUserHelper.Instance.GetUserIdByEid(model.EID))));
|
|
table.AddRow();
|
|
}
|
|
var json = new
|
|
{
|
|
totalPages = pager.totalPages,
|
|
totalRows = pager.totalRows,
|
|
rowsList = table.GetRows()
|
|
};
|
|
return Json(json, JsonRequestBehavior.AllowGet);
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
LogHelper.Error("Soft_UserController:" + ex.Message + ex.StackTrace);
|
|
return JsonHandler.ManageMessage(ex.Message, false);
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 导出所有信息
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
[AuthorizeToolBar(InitRights.CONST_注册资源统计报表, InitToolBar.CONST_Other1)]
|
|
public FileResult MyInviteExport(DateTime? stime, DateTime? etime, QueryUserComboDto usercomboDto)
|
|
{
|
|
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
|
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
|
|
|
|
//decimal p_saleDeptId = Request["saleDeptId"].GetDecimal(0);
|
|
//string groupId = Request["groupId"];
|
|
//decimal innerUserId = Request["userId"].GetDecimal(0);
|
|
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
var list = _soft_userQ.GetList(ref pager, null, null, stime, etime, null, null, null, usercomboDto, 1);
|
|
|
|
DataTable tab = new DataTable("wocha");
|
|
tab.Columns.Add(new DataColumn("USERNAME", typeof(string)));
|
|
tab.Columns.Add(new DataColumn("RESID", typeof(string)));
|
|
tab.Columns.Add(new DataColumn("REGCAMPAINID", typeof(string)));
|
|
tab.Columns.Add(new DataColumn("REGDATE", typeof(DateTime)));
|
|
tab.Columns.Add(new DataColumn("EID", typeof(string)));
|
|
tab.Columns.Add(new DataColumn("GROUPNAME", typeof(string)));
|
|
|
|
foreach (SOFT_USER item in list)
|
|
{
|
|
DataRow row = tab.NewRow();
|
|
row["USERNAME"] = item.USERNAME;
|
|
row["RESID"] = item.RESID;
|
|
row["REGCAMPAINID"] = item.REGCAMPAINID;
|
|
row["REGDATE"] = item.REGDATE;
|
|
row["EID"] = string.Format("{0}", InnerUserHelper.Instance.GetEidAndTrueName(InnerUserHelper.Instance.GetUserIdByEid(item.EID)));
|
|
row["GROUPNAME"] = InnerUserHelper.Instance.GetGroupName(InnerUserHelper.Instance.GetGroupId(InnerUserHelper.Instance.GetUserIdByEid(item.EID)));
|
|
tab.Rows.Add(row);
|
|
}
|
|
return File(ExcelHelper.ExportDataTableToExcel(tab, "我的注册邀请", checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("我的注册邀请.xls"));
|
|
//return File(ExcelHelper.ExportListModelToExcel<WX.CRM.Model.Entity.SOFT_USER>(list, "我的注册邀请", 10000, checkedFilds, checkedTitles, null), "application/ms-excel", PageRequest.GetDlownLoadName("我的注册邀请.xls"));
|
|
}
|
|
public FileResult Export(string SoftName, string ResID, DateTime? ctime1, DateTime? ctime2)
|
|
{
|
|
string checkedFilds = PageRequest.GetQueryString("checkedFilds");
|
|
//checkedFilds = checkedFilds.Replace("[]", "");
|
|
string checkedTitles = PageRequest.GetQueryString("checkedTitles");
|
|
Pager pager = new Pager() { page = 1, rows = int.MaxValue };
|
|
var list = new SOFT_USER_BL().GetList(ref pager, SoftName, ResID, ctime1, ctime2);
|
|
LogHelper.Info(list.Count.ToString());
|
|
return File(ExcelHelper.ExportListModelToExcel<SOFT_USER>(list, "软件客户列表", 10000, checkedFilds, checkedTitles, DataFormart), "application/ms-excel", PageRequest.GetDlownLoadName("软件客户列表.xls"));
|
|
}
|
|
|
|
public string DataFormart(string key, object value)
|
|
{
|
|
string formartValue = string.Empty;
|
|
switch (key)
|
|
{
|
|
default: formartValue = string.Format("{0}", value); break;
|
|
}
|
|
return formartValue;
|
|
}
|
|
}
|
|
}
|