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.Base;
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; }
private 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]
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("" + model.RESID + "");
table.AddCol(model.REGCAMPAINID);
table.AddCol(model.USERNO);
table.AddCol(model.REGDATE);
table.AddCol("");
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();
PhoneLogModel phoneLogModel = new PhoneLogModel
{
Method = System.Reflection.MethodBase.GetCurrentMethod().Name,
userid = UserId
};
smsmodel.mobile = _res_resourcemobile_Q.GetNumberByResId(resid, phoneLogModel);
smsmodel.userid = UserId;
smsmodel.userName = userName;
smsmodel.companycode = saleDeptCode;
string url = cacheQ.GetValue_Parameter(Parameter.Core_ZxdService_ResePwd);//内部接口··调用RiaSerivice
string json = Utility.ConvertToJSON(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);//返回信息
if (retmessage.result)
{
ResetUserPwdRsp whretmessage = JsonHelper.JsonDivertToObj(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(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);//返回信息
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(retmsg);
LogHelper.Info("ret:" + ret.ToJson());
if (ret.ret == 0)
{
var logresid = "";
var softUser = _soft_userQ.GetUser_userName(username);
var oldResId = softUser?.RESID;
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);//关联用户
logresid = resid;
softUser.RESID = resid;
_soft_user.Update(softUser);
}
else
{
var resid = ResUtil.CreateResId(resetMobileDto.oldmobile);
_customeruser.Delete(username, resid);
softUser.RESID = string.Empty;
_soft_user.Update(softUser);
}
SOFT_USER_LOG userLog = new SOFT_USER_LOG
{
USERNAME = username,
OLDRESID = oldResId,
NEWRESID = logresid,
CTIME = DateTime.Now,
TYPE = resetMobileDto.type,
PKID = new SEQUENCES_BL().Seq_base_get()
};
_soft_user.InsertLog(userLog);
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);
}
PhoneLogModel phoneLogModel = new PhoneLogModel
{
Method = System.Reflection.MethodBase.GetCurrentMethod().Name,
userid = UserId
};
string mobile = _resourceMobileQ.GetNumberByResId(resid, phoneLogModel);
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(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("{2}", "注册日资源汇总", "/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("{2}", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + model["dayTime"] + "&etime=" + model["dayTime"], model["num"]);
table.AddCol(linkUrl);
//当日邀请注册分类统计
var linkUrl2 = string.Format("{2}", "邀请统计", "/Soft/SoftUser/InviteCount?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=0", model["invitenum"]);
table.AddCol(linkUrl2);
//当日推广注册明细
var linkUrl3 = string.Format("{2}", "注册日资源汇总", "/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("{2}", "注册日资源汇总", "/Soft/SoftUser/UserDayReport?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=1", model["mobilenum"]);
table.AddCol(linkUrl4);
//当日邀请注册提交手机号分类统计
var linkUrl5 = string.Format("{2}", "邀请统计", "/Soft/SoftUser/InviteCount?stime=" + model["dayTime"] + "&etime=" + model["dayTime"] + "&hasMobile=1", model["invitemobilenum"]);
table.AddCol(linkUrl5);
//当日推广注册提交手机号注册明细
var linkUrl6 = string.Format("{2}", "注册日资源汇总", "/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);
}
}
///
/// 导出所有信息
///
///
[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("" + model.RESID + "");
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("" + model.UMID + "");
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);
}
}
///
/// 导出所有信息
///
///
[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.UMID;
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(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(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;
}
}
}