UsersController.cs 113 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Data;
  5. using Microsoft.AspNetCore.Mvc;
  6. using Microsoft.AspNetCore.Http;
  7. using Microsoft.Extensions.Logging;
  8. using Microsoft.Extensions.Options;
  9. using Microsoft.AspNetCore.Authorization;
  10. using System.Web;
  11. using MySystem.MainModels;
  12. using LitJson;
  13. using Library;
  14. using Microsoft.IdentityModel.Tokens;
  15. using System.IdentityModel.Tokens.Jwt;
  16. using System.Security.Claims;
  17. using System.Text;
  18. namespace MySystem.Areas.Api.Controllers.v1
  19. {
  20. [Area("Api")]
  21. [Route("Api/v1/[controller]/[action]")]
  22. public class UsersController : BaseController
  23. {
  24. public UsersController(IHttpContextAccessor accessor, ILogger<BaseController> logger, IOptions<Setting> setting) : base(accessor, logger, setting)
  25. {
  26. OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
  27. }
  28. #region 创客-我的-个人资料
  29. [Authorize]
  30. public JsonResult PersonalInfo(string value)
  31. {
  32. value = DesDecrypt(value);
  33. JsonData data = JsonMapper.ToObject(value);
  34. Dictionary<string, object> Obj = PersonalInfoDo(value);
  35. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  36. }
  37. public Dictionary<string, object> PersonalInfoDo(string value)
  38. {
  39. JsonData data = JsonMapper.ToObject(value);
  40. Dictionary<string, object> Obj = new Dictionary<string, object>();
  41. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  42. Users query = UsersDbconn.Instance.Get(Id) ?? new Users();
  43. string IdString = Id.ToString();
  44. Obj.Add("RealName", DefaultRealName(query)); //真实姓名
  45. Obj.Add("HeadPhoto", DefaultPic(query.HeadPhoto)); //头像
  46. // Obj.Add("UserLevel", query.UserLevel); //创客实际等级
  47. DateTime now = DateTime.Now;
  48. UserRankWhite rank = maindb.UserRankWhite.FirstOrDefault(m => m.Id == Id && m.UpdateDate > now) ?? new UserRankWhite();
  49. if (rank.Id > 0 && rank.Rank > query.UserLevel)
  50. {
  51. Obj.Add("UserLevel", rank.Rank); //创客当前等级
  52. }
  53. else
  54. {
  55. Obj.Add("UserLevel", query.UserLevel); //创客当前等级
  56. }
  57. Obj.Add("Mobile", query.Mobile); //手机号
  58. Obj.Add("AuthFlag", query.AuthFlag); //实名标识
  59. Obj.Add("AuthDate", query.AuthDate == null ? "" : query.AuthDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //实名时间
  60. Obj.Add("MakerCode", query.MakerCode); //创客编号
  61. var str = function.CheckNull(query.ParentNav).Replace(",,", ",").Trim(',');
  62. Obj.Add("ParentNav", str); //创客组
  63. Obj.Add("LeaderLevel", query.LeaderLevel); //盟主标记(0 否 1 小盟主 2 大盟主)
  64. var storeHouse = maindb.StoreHouse.Any(m => m.UserId == Id && m.AuthFlag == 1);
  65. if (storeHouse)
  66. {
  67. Obj.Add("AuthFlags", 1); //认证分仓标记(0 否 1 是)
  68. }
  69. else
  70. {
  71. Obj.Add("AuthFlags", 0); //认证分仓标记
  72. }
  73. Users invite = UsersDbconn.Instance.Get(query.ParentUserId) ?? new Users();
  74. if (invite.Id > 0)
  75. {
  76. Obj.Add("InviteName", invite.RealName); //推荐人名称
  77. Obj.Add("InviteMobile", invite.Mobile); //推荐人手机号
  78. }
  79. else
  80. {
  81. Obj.Add("InviteName", query.RealName); //推荐人名称
  82. Obj.Add("InviteMobile", query.Mobile); //推荐人手机号
  83. }
  84. Obj.Add("CreateDate", query.CreateDate == null ? "" : query.CreateDate.Value.ToString("yyyy-MM-dd")); //创建时间
  85. Obj.Add("UserType", query.UserType); // 1-运营中心
  86. Obj.Add("AgentAreas", query.AgentAreas); //展业地区
  87. List<string> RightList = new List<string>();
  88. if (!string.IsNullOrEmpty(query.SeoDescription))
  89. {
  90. RightList = query.SeoDescription.Split(',').ToList();
  91. }
  92. Obj.Add("RightList", RightList);
  93. return Obj;
  94. }
  95. #endregion
  96. #region 创客-我的-主界面创客信息
  97. [Authorize]
  98. public JsonResult MyInfo(string value)
  99. {
  100. value = DesDecrypt(value);
  101. JsonData data = JsonMapper.ToObject(value);
  102. Dictionary<string, object> Obj = MyInfoDo(value);
  103. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  104. }
  105. public Dictionary<string, object> MyInfoDo(string value)
  106. {
  107. JsonData data = JsonMapper.ToObject(value);
  108. Dictionary<string, object> Obj = new Dictionary<string, object>();
  109. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  110. Users query = UsersDbconn.Instance.Get(Id) ?? new Users();
  111. Obj.Add("RealName", DefaultRealName(query)); //真实姓名
  112. Obj.Add("HeadPhoto", DefaultPic(query.HeadPhoto)); //头像
  113. Obj.Add("UserLevel", query.UserLevel); //创客等级
  114. Obj.Add("MakerCode", query.MakerCode); //创客编号
  115. Obj.Add("Id", query.Id); //Id
  116. return Obj;
  117. }
  118. #endregion
  119. #region 创客-我的-忘记密码
  120. // [Authorize]
  121. public JsonResult ForgetPwd(string value)
  122. {
  123. value = DesDecrypt(value);
  124. JsonData data = JsonMapper.ToObject(value);
  125. AppResultJson result = ForgetPwdDo(value);
  126. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  127. }
  128. public AppResultJson ForgetPwdDo(string value)
  129. {
  130. JsonData data = JsonMapper.ToObject(value);
  131. string Mobile = data["Mobile"].ToString(); //手机号
  132. string LoginPwd = data["LoginPwd"].ToString(); //登录密码
  133. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  134. string RealName = ""; //姓名
  135. if (value.Contains("\"RealName\""))
  136. {
  137. RealName = data["RealName"].ToString(); //姓名
  138. }
  139. string MakerCode = ""; //创客ID
  140. if (value.Contains("\"MakerCode\""))
  141. {
  142. MakerCode = data["MakerCode"].ToString(); //创客ID
  143. MakerCode = MakerCode.ToUpper();
  144. }
  145. if (string.IsNullOrEmpty(data["Mobile"].ToString()))
  146. {
  147. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  148. }
  149. if (data["Mobile"].ToString().Length > 11)
  150. {
  151. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  152. }
  153. if (function.CheckMobile(data["Mobile"].ToString()) == "")
  154. {
  155. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  156. }
  157. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  158. if (mobilecheck == null)
  159. {
  160. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  161. }
  162. if (mobilecheck.CheckCode != MobileCode)
  163. {
  164. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  165. }
  166. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  167. Dictionary<string, object> Obj = new Dictionary<string, object>();
  168. Users query = maindb.Users.FirstOrDefault(m => m.Mobile == Mobile);
  169. if (query != null)
  170. {
  171. query.UpdateDate = DateTime.Now; //修改时间
  172. query.LoginPwd = function.MD532(LoginPwd); //登录密码
  173. maindb.SaveChanges();
  174. UserForMobile mobilefor = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
  175. if (mobilefor == null)
  176. {
  177. mobilefor = maindb.UserForMobile.Add(new UserForMobile()
  178. {
  179. Mobile = Mobile,
  180. UserId = query.Id,
  181. }).Entity;
  182. maindb.SaveChanges();
  183. }
  184. }
  185. else
  186. {
  187. return new AppResultJson() { Status = "-1", Info = "此手机号不存在" };
  188. }
  189. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  190. }
  191. #endregion
  192. #region 创客-我的-我的推荐人
  193. [Authorize]
  194. public JsonResult MyInviter(string value)
  195. {
  196. value = DesDecrypt(value);
  197. JsonData data = JsonMapper.ToObject(value);
  198. Dictionary<string, object> Obj = MyInviterDo(value);
  199. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  200. }
  201. public Dictionary<string, object> MyInviterDo(string value)
  202. {
  203. JsonData data = JsonMapper.ToObject(value);
  204. Dictionary<string, object> Obj = new Dictionary<string, object>();
  205. Users query = new Users();
  206. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  207. query = maindb.Users.FirstOrDefault(m => m.Id == Id) ?? new Users();
  208. Obj.Add("RealName", query.RealName); //真实姓名
  209. Obj.Add("HeadPhoto", DefaultPic(query.HeadPhoto)); //头像
  210. Obj.Add("Mobile", query.Mobile); //手机号
  211. Obj.Add("ReferenceCode", DefaultPic(query.ReferenceCode)); //推荐码
  212. return Obj;
  213. }
  214. #endregion
  215. #region 创客-我的-注册
  216. // [Authorize]
  217. public JsonResult Register(string value)
  218. {
  219. value = DesDecrypt(value);
  220. JsonData data = JsonMapper.ToObject(value);
  221. AppResultJson result = RegisterDo(value);
  222. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  223. }
  224. public AppResultJson RegisterDo(string value)
  225. {
  226. JsonData data = JsonMapper.ToObject(value);
  227. string Mobile = data["Mobile"].ToString(); //手机号
  228. string LoginPwd = data["LoginPwd"].ToString(); //登录密码
  229. string ReferenceCode = data["ReferenceCode"].ToString(); //推荐码
  230. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  231. string OpenId = data["OpenId"].ToString(); //短信验证码
  232. if (string.IsNullOrEmpty(data["Mobile"].ToString()))
  233. {
  234. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  235. }
  236. if (data["Mobile"].ToString().Length > 11)
  237. {
  238. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  239. }
  240. if (function.CheckMobile(data["Mobile"].ToString()) == "")
  241. {
  242. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  243. }
  244. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  245. if (mobilecheck == null)
  246. {
  247. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  248. }
  249. if (mobilecheck.CheckCode != MobileCode)
  250. {
  251. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  252. }
  253. UserForMobile checkmobile = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
  254. if (checkmobile != null)
  255. {
  256. return new AppResultJson() { Status = "-1", Info = "手机号已经被注册,请更换手机号" };
  257. }
  258. UserForMakerCode userfor = maindb.UserForMakerCode.FirstOrDefault(m => m.MakerCode == ReferenceCode);
  259. if (userfor == null)
  260. {
  261. return new AppResultJson() { Status = "-1", Info = "推荐码有误,请核对后重新填写" };
  262. }
  263. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  264. Users inviteUser = maindb.Users.FirstOrDefault(m => m.Id == userfor.UserId) ?? new Users();
  265. Dictionary<string, object> Obj = new Dictionary<string, object>();
  266. Users query = maindb.Users.Add(new Users()
  267. {
  268. CreateDate = DateTime.Now, //创建时间
  269. Mobile = Mobile, //手机号
  270. LoginPwd = function.MD532(LoginPwd), //登录密码
  271. ReferenceCode = ReferenceCode, //推荐码
  272. // MakerCode = MakerCode,
  273. ParentUserId = userfor.UserId,
  274. ParentNav = inviteUser.ParentNav + "," + inviteUser.Id + ",",
  275. OpenId = OpenId,
  276. UserLevel = 1,
  277. }).Entity;
  278. maindb.SaveChanges();
  279. string MakerCode = "K";
  280. int UserId = query.Id;
  281. string UserIdString = UserId.ToString();
  282. for (int i = 0; i < 8 - UserId.ToString().Length; i++)
  283. {
  284. UserIdString = "0" + UserIdString;
  285. }
  286. MakerCode += UserIdString;
  287. bool checkMakerCode = maindb.UserForMakerCode.Any(m => m.MakerCode == MakerCode);
  288. if (checkMakerCode)
  289. {
  290. MakerCode += "D";
  291. }
  292. query.MakerCode = MakerCode;
  293. maindb.SaveChanges();
  294. UserForMobile userformobile = maindb.UserForMobile.Add(new UserForMobile()
  295. {
  296. Mobile = Mobile,
  297. UserId = query.Id,
  298. }).Entity;
  299. UserForMakerCode userforcode = maindb.UserForMakerCode.Add(new UserForMakerCode()
  300. {
  301. MakerCode = MakerCode,
  302. UserId = query.Id,
  303. }).Entity;
  304. maindb.SaveChanges();
  305. if (value.Contains("\"SnId\":"))
  306. {
  307. int SnId = int.Parse(function.CheckInt(data["SnId"].ToString()));
  308. PosMachinesTwo pos = maindb.PosMachinesTwo.FirstOrDefault(m => m.Status > -1 && m.Id == SnId);
  309. if (pos != null)
  310. {
  311. if (function.CheckNull(query.ParentNav).Contains("," + pos.BuyUserId + ","))
  312. {
  313. pos.UserId = query.Id;
  314. query.MerchantType = 1;
  315. string MerNo = "";
  316. PosMerchantInfo merchant = maindb.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
  317. if (merchant != null)
  318. {
  319. merchant.UserId = query.Id;
  320. merchant.MerUserType = 1;
  321. MerNo = merchant.MerchantName;
  322. }
  323. pos.SeoTitle = query.Id.ToString(); // 记录商户型创客的Id
  324. maindb.SetMerchantTypeRecord.Add(new SetMerchantTypeRecord()
  325. {
  326. CreateDate = DateTime.Now,
  327. IsRecyc = (ulong)pos.IsPurchase,
  328. CreditAmount = pos.CreditTrade,
  329. PosSnType = pos.PosSnType,
  330. ActDate = pos.ActivationTime,
  331. BindDate = pos.BindingTime,
  332. ActStatus = (ulong)pos.ActivationState,
  333. BindStatus = (ulong)pos.BindingState,
  334. MerNo = MerNo,
  335. PosSn = pos.PosSn,
  336. Note = "设置商户型创客2",
  337. ToUserId = query.Id,
  338. FromUserId = pos.BuyUserId,
  339. });
  340. maindb.SaveChanges();
  341. if (System.IO.File.Exists(function.getPath("/static/MerQrCode/" + function.MD5_16(SnId.ToString()) + ".png")))
  342. {
  343. System.IO.File.Delete(function.getPath("/static/MerQrCode/" + function.MD5_16(SnId.ToString()) + ".png"));
  344. }
  345. }
  346. }
  347. }
  348. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  349. }
  350. #endregion
  351. #region 创客-我的-登录
  352. public JsonResult Login(string value)
  353. {
  354. value = DesDecrypt(value);
  355. JsonData data = JsonMapper.ToObject(value);
  356. string Mobile = data["Mobile"].ToString(); //手机号
  357. string NickName = data["NickName"].ToString();
  358. string HeadPhoto = data["HeadPhoto"].ToString();
  359. string MakerCode = data["MakerCode"].ToString();
  360. string KxsOpenId = data["KxsOpenId"].ToString();
  361. Dictionary<string, object> Obj = new Dictionary<string, object>();
  362. Users user = maindb.Users.FirstOrDefault(m => m.Mobile == Mobile && m.Tags == KxsOpenId);
  363. if (user == null)
  364. {
  365. user = maindb.Users.Add(new Users()
  366. {
  367. CreateDate = DateTime.Now,
  368. Tags = KxsOpenId,
  369. NickName = NickName,
  370. HeadPhoto = HeadPhoto,
  371. Mobile = Mobile,
  372. MakerCode = MakerCode,
  373. }).Entity;
  374. maindb.SaveChanges();
  375. }
  376. else
  377. {
  378. user.UpdateDate = DateTime.Now;
  379. user.NickName = NickName;
  380. user.HeadPhoto = HeadPhoto;
  381. user.MakerCode = MakerCode;
  382. maindb.SaveChanges();
  383. }
  384. UserForMobile query = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
  385. if (query == null)
  386. {
  387. query = maindb.UserForMobile.Add(new UserForMobile()
  388. {
  389. Mobile = Mobile,
  390. UserId = user.Id,
  391. }).Entity;
  392. maindb.SaveChanges();
  393. }
  394. else
  395. {
  396. query.UserId = user.Id;
  397. maindb.SaveChanges();
  398. }
  399. Obj.Add("Id", user.Id);
  400. Obj.Add("Token", AppToken(user.Id));
  401. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  402. }
  403. public string AppToken(int UserId)
  404. {
  405. string Token = RedisDbconn.Instance.Get<string>("apptoken:" + UserId);
  406. if(!string.IsNullOrEmpty(Token))
  407. {
  408. return Token;
  409. }
  410. string issuer = "new_" + UserId;
  411. string test = function.get_Random(10);
  412. var securityKey = new SigningCredentials(new SymmetricSecurityKey(Encoding.ASCII.GetBytes(JwtSecret)), SecurityAlgorithms.HmacSha256);
  413. var claims = new Claim[] {
  414. new Claim(JwtRegisteredClaimNames.Iss,JwtIss),
  415. new Claim(JwtRegisteredClaimNames.Aud,test),
  416. new Claim("Guid", Guid.NewGuid().ToString("D")),
  417. new Claim(ClaimTypes.Role, "system"),
  418. new Claim(ClaimTypes.Role, "admin"),
  419. };
  420. SecurityToken securityToken = new JwtSecurityToken(
  421. signingCredentials: securityKey,
  422. expires: DateTime.Now.AddDays(10),//过期时间
  423. claims: claims,
  424. audience: test,
  425. issuer: issuer
  426. );
  427. RedisDbconn.Instance.Set("utoken:" + issuer, test);
  428. RedisDbconn.Instance.SetExpire("utoken:" + issuer, 3600 * 24 * 10);
  429. //生成jwt令牌
  430. Token = new JwtSecurityTokenHandler().WriteToken(securityToken);
  431. RedisDbconn.Instance.Set("apptoken:" + UserId, Token);
  432. RedisDbconn.Instance.SetExpire("apptoken:" + UserId, 3600 * 24 * 10 - 60);
  433. //生成jwt令牌
  434. return new JwtSecurityTokenHandler().WriteToken(securityToken);
  435. }
  436. #endregion
  437. #region 创客-我的-注销
  438. // 1、未实名创客;
  439. // 2、已实名创客,无开通商户;
  440. // 3、近7天未在商城下单过商品;
  441. // 4、名下无未绑定机具、机具券,无未申请的循环机;
  442. [Authorize]
  443. public JsonResult Delete(string value)
  444. {
  445. value = DesDecrypt(value);
  446. JsonData data = JsonMapper.ToObject(value);
  447. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString()));
  448. string Mobile = data["Mobile"].ToString();
  449. // string MobileCode = data["MobileCode"].ToString(); //短信验证码
  450. // MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  451. // if (mobilecheck == null)
  452. // {
  453. // return Json(new AppResultJson() { Status = "-1", Info = "短信验证码不正确" });
  454. // }
  455. // if (mobilecheck.CheckCode != MobileCode)
  456. // {
  457. // return Json(new AppResultJson() { Status = "-1", Info = "短信验证码不正确" });
  458. // }
  459. // RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  460. Users user = maindb.Users.FirstOrDefault(m => m.Id == UserId && m.Mobile == Mobile);
  461. if (user != null)
  462. {
  463. if (user.AuthFlag == 1)
  464. {
  465. bool check = maindb.PosMachinesTwo.Any(m => m.BuyUserId == user.Id && m.BindingState == 1);
  466. if (check)
  467. {
  468. return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:已实名创客,无开通商户。如有疑问,请联系客服" });
  469. }
  470. DateTime checkDate = DateTime.Now.AddDays(-7);
  471. check = maindb.Orders.Any(m => m.CreateDate >= checkDate && m.Status > 0 && m.UserId == user.Id);
  472. if (check)
  473. {
  474. return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:近7天未在商城下单过商品。如有疑问,请联系客服" });
  475. }
  476. check = maindb.PosMachinesTwo.Any(m => m.BuyUserId == user.Id && m.IsPurchase == 0);
  477. if (check)
  478. {
  479. return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:名下无未绑定机具、机具券,无未申请的循环机。如有疑问,请联系客服" });
  480. }
  481. check = maindb.PosCoupons.Any(m => m.UserId == user.Id && m.IsUse == 0);
  482. if (check)
  483. {
  484. return Json(new AppResultJson() { Status = "-1", Info = "注销失败,未满足条件:名下无未绑定机具、机具券,无未申请的循环机。如有疑问,请联系客服" });
  485. }
  486. UserForMobile forMobile = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
  487. if (forMobile != null)
  488. {
  489. maindb.Remove(forMobile);
  490. }
  491. user.Status = -1;
  492. user.Mobile += "d";
  493. user.CertId += "d";
  494. }
  495. else
  496. {
  497. UserForMobile forMobile = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
  498. if (forMobile != null)
  499. {
  500. maindb.Remove(forMobile);
  501. }
  502. user.Status = -1;
  503. user.Mobile += "d";
  504. user.CertId += "d";
  505. }
  506. function.WriteLog(user.Id + "于" + DateTime.Now.ToString() + "注销账号", "创客注销日志");
  507. // TODO: 每月扫描一次注销的创客,把注销创客伞下创客全部挂到注销创客的上级
  508. // TODO: 清除token,token登录返回
  509. maindb.SaveChanges();
  510. return Json(new AppResultJson() { Status = "1", Info = "" });
  511. }
  512. return Json(new AppResultJson() { Status = "-1", Info = "手机号不正确" });
  513. }
  514. #endregion
  515. #region 创客-我的-个人资料-上传头像
  516. [Authorize]
  517. public JsonResult UploadHeadPhoto(string value)
  518. {
  519. value = DesDecrypt(value);
  520. JsonData data = JsonMapper.ToObject(value);
  521. AppResultJson result = UploadHeadPhotoDo(value);
  522. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  523. }
  524. public AppResultJson UploadHeadPhotoDo(string value)
  525. {
  526. JsonData data = JsonMapper.ToObject(value);
  527. string HeadPhoto = data["HeadPhoto"].ToString(); //头像
  528. Dictionary<string, object> Obj = new Dictionary<string, object>();
  529. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  530. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  531. if (query != null)
  532. {
  533. query.HeadPhoto = HeadPhoto; //头像
  534. maindb.SaveChanges();
  535. }
  536. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  537. }
  538. #endregion
  539. #region 创客-我的-提现-绑定银行卡信息
  540. [Authorize]
  541. public JsonResult BindBankInfo(string value)
  542. {
  543. value = DesDecrypt(value);
  544. JsonData data = JsonMapper.ToObject(value);
  545. Dictionary<string, object> Obj = BindBankInfoDo(value);
  546. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  547. }
  548. public Dictionary<string, object> BindBankInfoDo(string value)
  549. {
  550. JsonData data = JsonMapper.ToObject(value);
  551. Dictionary<string, object> Obj = new Dictionary<string, object>();
  552. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  553. Users query = UsersDbconn.Instance.Get(Id) ?? new Users();
  554. Obj.Add("SettleBankCardNo", query.SettleBankCardNo); //结算银行卡号
  555. Obj.Add("BankName", query.SettleBankName); //银行名称
  556. return Obj;
  557. }
  558. #endregion
  559. #region 创客-我的-设置-修改支付密码
  560. [Authorize]
  561. public JsonResult ModifyPayPwd(string value)
  562. {
  563. value = DesDecrypt(value);
  564. JsonData data = JsonMapper.ToObject(value);
  565. AppResultJson result = ModifyPayPwdDo(value);
  566. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  567. }
  568. public AppResultJson ModifyPayPwdDo(string value)
  569. {
  570. JsonData data = JsonMapper.ToObject(value);
  571. string PayPwd = data["PayPwd"].ToString(); //支付密码
  572. string NewPayPwd = data["NewPayPwd"].ToString(); //新支付密码
  573. Dictionary<string, object> Obj = new Dictionary<string, object>();
  574. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  575. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  576. if (query != null)
  577. {
  578. if (query.PayPwd != function.MD532(PayPwd))
  579. {
  580. return new AppResultJson() { Status = "1", Info = "原支付密码不正确,请重试", Data = Obj };
  581. }
  582. query.PayPwd = function.MD532(NewPayPwd); //支付密码
  583. maindb.SaveChanges();
  584. }
  585. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  586. }
  587. #endregion
  588. #region 创客-我的-设置-修改登录密码
  589. [Authorize]
  590. public JsonResult ModifyLoginPwd(string value)
  591. {
  592. value = DesDecrypt(value);
  593. JsonData data = JsonMapper.ToObject(value);
  594. AppResultJson result = ModifyLoginPwdDo(value);
  595. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  596. }
  597. public AppResultJson ModifyLoginPwdDo(string value)
  598. {
  599. JsonData data = JsonMapper.ToObject(value);
  600. string LoginPwd = data["LoginPwd"].ToString(); //登录密码
  601. string NewLoginPwd = data["NewLoginPwd"].ToString(); //新登录密码
  602. Dictionary<string, object> Obj = new Dictionary<string, object>();
  603. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  604. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  605. if (query != null)
  606. {
  607. if (function.MD532(LoginPwd) != query.LoginPwd)
  608. {
  609. return new AppResultJson() { Status = "-1", Info = "原登录密码不正确,请重试" };
  610. }
  611. query.LoginPwd = function.MD532(NewLoginPwd); //登录密码
  612. maindb.SaveChanges();
  613. }
  614. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  615. }
  616. #endregion
  617. #region 创客-我的-设置-修改登录手机号
  618. [Authorize]
  619. public JsonResult ModifyMobile(string value)
  620. {
  621. value = DesDecrypt(value);
  622. JsonData data = JsonMapper.ToObject(value);
  623. AppResultJson result = ModifyMobileDo(value);
  624. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  625. }
  626. public AppResultJson ModifyMobileDo(string value)
  627. {
  628. JsonData data = JsonMapper.ToObject(value);
  629. string Mobile = data["Mobile"].ToString(); //手机号
  630. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  631. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  632. if (string.IsNullOrEmpty(data["Mobile"].ToString()))
  633. {
  634. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  635. }
  636. if (data["Mobile"].ToString().Length > 11)
  637. {
  638. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  639. }
  640. if (function.CheckMobile(data["Mobile"].ToString()) == "")
  641. {
  642. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  643. }
  644. UserForMobile userfor = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile) ?? new UserForMobile();
  645. if (userfor.UserId != Id && userfor.UserId > 0)
  646. {
  647. return new AppResultJson() { Status = "-1", Info = "手机号已被占用,请重新填写" };
  648. }
  649. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  650. if (mobilecheck == null)
  651. {
  652. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  653. }
  654. if (mobilecheck.CheckCode != MobileCode)
  655. {
  656. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  657. }
  658. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  659. Dictionary<string, object> Obj = new Dictionary<string, object>();
  660. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  661. if (query != null)
  662. {
  663. string oldMobile = query.Mobile;
  664. query.Mobile = Mobile; //手机号
  665. UserForMobile userFor = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == Mobile);
  666. if (userFor == null)
  667. {
  668. userFor = maindb.UserForMobile.Add(new UserForMobile()
  669. {
  670. Mobile = Mobile,
  671. UserId = Id,
  672. }).Entity;
  673. maindb.SaveChanges();
  674. }
  675. UserForMobile oldUserFor = maindb.UserForMobile.FirstOrDefault(m => m.Mobile == oldMobile);
  676. if (oldUserFor != null)
  677. {
  678. maindb.Remove(oldUserFor);
  679. maindb.SaveChanges();
  680. }
  681. }
  682. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  683. }
  684. #endregion
  685. #region 创客-我的-设置-判断是否设置支付密码
  686. [Authorize]
  687. public JsonResult ExistPayPwd(string value)
  688. {
  689. value = DesDecrypt(value);
  690. JsonData data = JsonMapper.ToObject(value);
  691. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  692. Dictionary<string, object> Obj = new Dictionary<string, object>();
  693. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id) ?? new Users();
  694. if (string.IsNullOrEmpty(query.PayPwd))
  695. {
  696. return Json(new AppResultJson() { Status = "-1", Info = "", Data = Obj });
  697. }
  698. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  699. }
  700. #endregion
  701. #region 创客-我的-设置-变更结算卡
  702. [Authorize]
  703. public JsonResult ChangeBankCard(string value)
  704. {
  705. value = DesDecrypt(value);
  706. JsonData data = JsonMapper.ToObject(value);
  707. AppResultJson result = ChangeBankCardDo(value);
  708. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  709. }
  710. public AppResultJson ChangeBankCardDo(string value)
  711. {
  712. JsonData data = JsonMapper.ToObject(value);
  713. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  714. string Mobile = data["Mobile"].ToString();
  715. string BankName = data["BankName"].ToString(); //开户行全称
  716. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  717. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  718. string BankCardPositiveImage = data["BankCardPositiveImage"].ToString(); //银行卡正面照
  719. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  720. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  721. if (mobilecheck == null)
  722. {
  723. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  724. }
  725. if (mobilecheck.CheckCode != MobileCode)
  726. {
  727. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  728. }
  729. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  730. Dictionary<string, object> Obj = new Dictionary<string, object>();
  731. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  732. if (query != null)
  733. {
  734. query.SeoTitle = BankName;
  735. query.SettleBankName = SettleBankName;
  736. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  737. query.BankCardPositiveImage = BankCardPositiveImage; //银行卡正面照
  738. UserAuthRecord auth = maindb.UserAuthRecord.FirstOrDefault(m => m.UserId == Id);
  739. if (auth != null)
  740. {
  741. auth.BankCardAccount = SettleBankCardNo; //银行卡账号
  742. }
  743. maindb.SaveChanges();
  744. }
  745. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  746. }
  747. // 提交代付签约
  748. [Authorize]
  749. public JsonResult ChangeBankCardCheck(string value)
  750. {
  751. value = DesDecrypt(value);
  752. JsonData data = JsonMapper.ToObject(value);
  753. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  754. string Mobile = data["Mobile"].ToString();
  755. string BankName = data["BankName"].ToString(); //开户行全称
  756. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  757. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  758. string BankCardPositiveImage = data["BankCardPositiveImage"].ToString(); //银行卡正面照
  759. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  760. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  761. if (mobilecheck == null)
  762. {
  763. return Json(new AppResultJson() { Status = "-1", Info = "短信验证码不正确" });
  764. }
  765. if (mobilecheck.CheckCode != MobileCode)
  766. {
  767. return Json(new AppResultJson() { Status = "-1", Info = "短信验证码不正确" });
  768. }
  769. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  770. Dictionary<string, object> Obj = new Dictionary<string, object>();
  771. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  772. if (query != null)
  773. {
  774. query.SeoTitle = BankName;
  775. query.SettleBankName = SettleBankName;
  776. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  777. query.BankCardPositiveImage = BankCardPositiveImage; //银行卡正面照
  778. maindb.SaveChanges();
  779. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  780. }
  781. return Json(new AppResultJson() { Status = "-1", Info = "认证失败,请重试", Data = Obj });
  782. }
  783. [Authorize]
  784. public JsonResult ChangeBankCard2(string value)
  785. {
  786. value = DesDecrypt(value);
  787. JsonData data = JsonMapper.ToObject(value);
  788. AppResultJson result = ChangeBankCard2Do(value);
  789. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  790. }
  791. public AppResultJson ChangeBankCard2Do(string value)
  792. {
  793. JsonData data = JsonMapper.ToObject(value);
  794. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  795. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  796. string Mobile = data["Mobile"].ToString();
  797. string BankName = data["BankName"].ToString(); //开户行全称
  798. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  799. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  800. string BankCardPositiveImage = data["BankCardPositiveImage"].ToString(); //银行卡正面照
  801. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  802. if (mobilecheck == null)
  803. {
  804. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  805. }
  806. if (mobilecheck.CheckCode != MobileCode)
  807. {
  808. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  809. }
  810. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  811. Dictionary<string, object> Obj = new Dictionary<string, object>();
  812. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  813. if (query != null)
  814. {
  815. query.SeoTitle = BankName;
  816. query.SettleBankName = SettleBankName;
  817. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  818. query.BankCardPositiveImage = BankCardPositiveImage; //银行卡正面照
  819. UserAuthRecord auth = maindb.UserAuthRecord.FirstOrDefault(m => m.UserId == Id);
  820. if (auth != null)
  821. {
  822. auth.BankCardAccount = SettleBankCardNo; //银行卡账号
  823. }
  824. maindb.SaveChanges();
  825. }
  826. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  827. }
  828. #endregion
  829. #region 创客-我的-设置-安全退出
  830. [Authorize]
  831. public JsonResult Logout(string value)
  832. {
  833. value = DesDecrypt(value);
  834. JsonData data = JsonMapper.ToObject(value);
  835. AppResultJson result = LogoutDo(value);
  836. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  837. }
  838. public AppResultJson LogoutDo(string value)
  839. {
  840. JsonData data = JsonMapper.ToObject(value);
  841. string UserId = data["UserId"].ToString(); //创客Id
  842. Dictionary<string, object> Obj = new Dictionary<string, object>();
  843. // TODO:退出登录需要处理的逻辑,待定
  844. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  845. }
  846. #endregion
  847. #region 创客-我的-设置-忘记支付密码验证
  848. [Authorize]
  849. public JsonResult CheckForgetPwd(string value)
  850. {
  851. value = DesDecrypt(value);
  852. JsonData data = JsonMapper.ToObject(value);
  853. AppResultJson result = CheckForgetPwdDo(value);
  854. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  855. }
  856. public AppResultJson CheckForgetPwdDo(string value)
  857. {
  858. JsonData data = JsonMapper.ToObject(value);
  859. string RealName = data["RealName"].ToString(); //真实姓名
  860. string CertId = data["CertId"].ToString(); //身份证号
  861. string Mobile = data["Mobile"].ToString(); //手机号
  862. string MobileCode = data["MobileCode"].ToString(); //短信验证码
  863. if (string.IsNullOrEmpty(data["Mobile"].ToString()))
  864. {
  865. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  866. }
  867. if (data["Mobile"].ToString().Length > 11)
  868. {
  869. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  870. }
  871. if (function.CheckMobile(data["Mobile"].ToString()) == "")
  872. {
  873. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  874. }
  875. MobileCodeCheck mobilecheck = RedisDbconn.Instance.Get<MobileCodeCheck>("MobileCodeCheck:" + Mobile);
  876. if (mobilecheck == null)
  877. {
  878. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  879. }
  880. if (mobilecheck.CheckCode != MobileCode)
  881. {
  882. return new AppResultJson() { Status = "-1", Info = "短信验证码不正确" };
  883. }
  884. RedisDbconn.Instance.Clear("MobileCodeCheck:" + Mobile);
  885. Dictionary<string, object> Obj = new Dictionary<string, object>();
  886. // TODO:验证接口,待定
  887. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  888. }
  889. #endregion
  890. #region 创客-我的-设置-提交实名认证资料
  891. [Authorize]
  892. public JsonResult PostAuth(string value)
  893. {
  894. value = DesDecrypt(value);
  895. JsonData data = JsonMapper.ToObject(value);
  896. AppResultJson result = PostAuthDo(value);
  897. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  898. }
  899. public AppResultJson PostAuthDo(string value)
  900. {
  901. JsonData data = JsonMapper.ToObject(value);
  902. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  903. string RealName = data["RealName"].ToString(); //真实姓名
  904. string CertId = data["CertId"].ToString(); //身份证号
  905. string Areas = data["Areas"].ToString(); //所在地区
  906. string Mobile = data["Mobile"].ToString(); //手机号
  907. string BankName = data["BankName"].ToString(); //开户行全称
  908. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  909. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  910. string CertFrontImage = data["CertFrontImage"].ToString(); //身份证正面照
  911. string CertReverseImage = data["CertReverseImage"].ToString(); //身份证反面照
  912. string HandCertImage = data["HandCertImage"].ToString(); //手持身份证
  913. string BankCardPositiveImage = data["BankCardPositiveImage"].ToString(); //银行卡正面照
  914. string BankMobile = data["BankMobile"].ToString(); //银行预留手机号
  915. string Distribute = "";
  916. if (value.Contains("\"Distribute\""))
  917. {
  918. Distribute = data["Distribute"].ToString();
  919. }
  920. if (string.IsNullOrEmpty(data["BankMobile"].ToString()))
  921. {
  922. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  923. }
  924. if (data["BankMobile"].ToString().Length > 11)
  925. {
  926. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  927. }
  928. if (function.CheckMobile(data["BankMobile"].ToString()) == "")
  929. {
  930. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  931. }
  932. Dictionary<string, object> Obj = new Dictionary<string, object>();
  933. bool checkCertId = maindb.Users.Any(m => m.CertId == CertId);
  934. if (checkCertId)
  935. {
  936. return new AppResultJson() { Status = "-1", Info = "您输入的身份证号已经认证过了,请更换身份证" };
  937. }
  938. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  939. if (query != null)
  940. {
  941. string result = BankCardCheckForThree.Instance.Do(SettleBankCardNo, CertId, RealName);
  942. JsonData jsonObj = JsonMapper.ToObject(result);
  943. if (jsonObj["code"].ToString() == "200")
  944. {
  945. if (jsonObj["data"]["result"].ToString() == "0")
  946. {
  947. query.AuthFlag = 1;
  948. query.AuthDate = DateTime.Now;
  949. query.RealName = RealName; //真实姓名
  950. query.CertId = CertId; //身份证号
  951. query.Areas = Areas; //所在地区
  952. query.SeoTitle = BankName;
  953. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  954. query.SettleBankName = SettleBankName; //结算银行名称
  955. query.CertFrontImage = CertFrontImage; //身份证正面照
  956. query.CertReverseImage = CertReverseImage; //身份证反面照
  957. query.HandCertImage = HandCertImage; //手持身份证
  958. query.BankCardPositiveImage = BankCardPositiveImage; //银行卡正面照
  959. maindb.SaveChanges();
  960. UserAuthRecord auth = maindb.UserAuthRecord.Add(new UserAuthRecord()
  961. {
  962. CreateDate = DateTime.Now,
  963. UserId = Id, //创客
  964. RealName = RealName, //真实姓名
  965. IdcardNo = CertId, //身份证号码
  966. BankCardAccount = SettleBankCardNo, //银行卡账号
  967. BankMobile = BankMobile, //银行预留手机号码
  968. }).Entity;
  969. maindb.SaveChanges();
  970. //实名认证成功后消息推送
  971. Users users = maindb.Users.FirstOrDefault(m => m.Id == query.ParentUserId);
  972. RedisDbconn.Instance.AddList("MsgPersonalQueue", Newtonsoft.Json.JsonConvert.SerializeObject(new MsgPersonal()
  973. {
  974. UserId = users.Id, //创客Id
  975. MsgType = 2,
  976. Title = "来新人啦", //标题
  977. Summary = "您的码牌系统有新人加入了,请进入码牌-我的创客中查看!",//简介
  978. CreateDate = DateTime.Now,
  979. }));
  980. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  981. }
  982. else
  983. {
  984. return new AppResultJson() { Status = "-1", Info = jsonObj["data"]["desc"].ToString() };
  985. }
  986. }
  987. else
  988. {
  989. return new AppResultJson() { Status = "-1", Info = jsonObj["msg"].ToString() };
  990. }
  991. }
  992. return new AppResultJson() { Status = "-1", Info = "认证失败,请重试" };
  993. }
  994. [Authorize]
  995. public JsonResult PostAuth2(string value, string CertFrontBase64, string CertReverseBase64)
  996. {
  997. value = DesDecrypt(value);
  998. JsonData data = JsonMapper.ToObject(value);
  999. AppResultJson result = PostAuth2Do(value, CertFrontBase64, CertReverseBase64);
  1000. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  1001. }
  1002. public AppResultJson PostAuth2Do(string value, string CertFrontBase64, string CertReverseBase64)
  1003. {
  1004. JsonData data = JsonMapper.ToObject(value);
  1005. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1006. string RealName = data["RealName"].ToString(); //真实姓名
  1007. string CertId = data["CertId"].ToString(); //身份证号
  1008. string Areas = data["Areas"].ToString(); //所在地区
  1009. string Mobile = data["Mobile"].ToString(); //手机号
  1010. string BankName = data["BankName"].ToString(); //开户行全称
  1011. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  1012. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  1013. string CertFrontImage = data["CertFrontImage"].ToString(); //身份证正面照
  1014. string CertReverseImage = data["CertReverseImage"].ToString(); //身份证反面照
  1015. // string CertFrontBase64 = data["CertFrontBase64"].ToString(); //身份证正面照
  1016. // string CertReverseBase64 = data["CertReverseBase64"].ToString(); //身份证反面照
  1017. string HandCertImage = data["HandCertImage"].ToString(); //手持身份证
  1018. string BankCardPositiveImage = data["BankCardPositiveImage"].ToString(); //银行卡正面照
  1019. string BankMobile = data["BankMobile"].ToString(); //银行预留手机号
  1020. string Distribute = "";
  1021. if (value.Contains("\"Distribute\""))
  1022. {
  1023. Distribute = data["Distribute"].ToString();
  1024. }
  1025. if (string.IsNullOrEmpty(data["BankMobile"].ToString()))
  1026. {
  1027. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  1028. }
  1029. if (data["BankMobile"].ToString().Length > 11)
  1030. {
  1031. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  1032. }
  1033. if (function.CheckMobile(data["BankMobile"].ToString()) == "")
  1034. {
  1035. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  1036. }
  1037. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1038. bool checkCertId = maindb.Users.Any(m => m.CertId == CertId);
  1039. if (checkCertId)
  1040. {
  1041. return new AppResultJson() { Status = "-1", Info = "您输入的身份证号已经认证过了,请更换身份证" };
  1042. }
  1043. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  1044. if (query != null)
  1045. {
  1046. string result = BankCardCheckForThree.Instance.Do(SettleBankCardNo, CertId, RealName);
  1047. JsonData jsonObj = JsonMapper.ToObject(result);
  1048. if (jsonObj["code"].ToString() == "200")
  1049. {
  1050. if (jsonObj["data"]["result"].ToString() == "0")
  1051. {
  1052. query.AuthFlag = 1;
  1053. query.AuthDate = DateTime.Now;
  1054. query.RealName = RealName; //真实姓名
  1055. query.CertId = CertId; //身份证号
  1056. query.Areas = Areas; //所在地区
  1057. query.SeoTitle = BankName;
  1058. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  1059. query.SettleBankName = SettleBankName; //结算银行名称
  1060. query.CertFrontImage = CertFrontImage; //身份证正面照
  1061. query.CertReverseImage = CertReverseImage; //身份证反面照
  1062. query.HandCertImage = HandCertImage; //手持身份证
  1063. query.BankCardPositiveImage = BankCardPositiveImage; //银行卡正面照
  1064. maindb.SaveChanges();
  1065. UserAuthRecord auth = maindb.UserAuthRecord.Add(new UserAuthRecord()
  1066. {
  1067. CreateDate = DateTime.Now,
  1068. UserId = Id, //创客
  1069. RealName = RealName, //真实姓名
  1070. IdcardNo = CertId, //身份证号码
  1071. BankCardAccount = SettleBankCardNo, //银行卡账号
  1072. BankMobile = BankMobile, //银行预留手机号码
  1073. }).Entity;
  1074. maindb.SaveChanges();
  1075. //实名认证成功后消息推送
  1076. Users users = maindb.Users.FirstOrDefault(m => m.Id == query.ParentUserId);
  1077. RedisDbconn.Instance.AddList("MsgPersonalQueue", Newtonsoft.Json.JsonConvert.SerializeObject(new MsgPersonal()
  1078. {
  1079. UserId = users.Id, //创客Id
  1080. MsgType = 2,
  1081. Title = "来新人啦", //标题
  1082. Summary = "您的码牌系统有新人加入了,请进入码牌-我的创客中查看!",//简介
  1083. CreateDate = DateTime.Now,
  1084. }));
  1085. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  1086. }
  1087. else
  1088. {
  1089. return new AppResultJson() { Status = "-1", Info = jsonObj["data"]["desc"].ToString() };
  1090. }
  1091. }
  1092. else
  1093. {
  1094. return new AppResultJson() { Status = "-1", Info = jsonObj["msg"].ToString() };
  1095. }
  1096. }
  1097. return new AppResultJson() { Status = "-1", Info = "认证失败,请重试" };
  1098. }
  1099. #endregion
  1100. #region 创客-我的-提现实名认证资料
  1101. [Authorize]
  1102. public JsonResult CashAuth(string value)
  1103. {
  1104. value = DesDecrypt(value);
  1105. JsonData data = JsonMapper.ToObject(value);
  1106. AppResultJson result = CashAuthDo(value);
  1107. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  1108. }
  1109. public AppResultJson CashAuthDo(string value)
  1110. {
  1111. JsonData data = JsonMapper.ToObject(value);
  1112. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1113. string CertFrontImage = data["CertFrontImage"].ToString(); //身份证正面照
  1114. string CertReverseImage = data["CertReverseImage"].ToString(); //身份证反面照
  1115. // string BankName = data["BankName"].ToString(); //开户行全称
  1116. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  1117. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  1118. string BankMobile = data["BankMobile"].ToString(); //银行预留手机号
  1119. if (string.IsNullOrEmpty(data["BankMobile"].ToString()))
  1120. {
  1121. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  1122. }
  1123. if (data["BankMobile"].ToString().Length > 11)
  1124. {
  1125. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  1126. }
  1127. if (function.CheckMobile(data["BankMobile"].ToString()) == "")
  1128. {
  1129. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  1130. }
  1131. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1132. string check = RedisDbconn.Instance.Get<string>("CashAuth:" + Id);
  1133. if (!string.IsNullOrEmpty(check))
  1134. {
  1135. return new AppResultJson() { Status = "-1", Info = "资料审核中, 请稍后再试" };
  1136. }
  1137. RedisDbconn.Instance.Set("CashAuth:" + Id, "1");
  1138. RedisDbconn.Instance.SetExpire("CashAuth:" + Id, 300);
  1139. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  1140. if (query != null)
  1141. {
  1142. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  1143. query.SettleBankName = SettleBankName; //结算银行名称
  1144. query.CertFrontImage = CertFrontImage; //身份证正面照
  1145. query.CertReverseImage = CertReverseImage; //身份证反面照
  1146. UserAuthRecord auth = maindb.UserAuthRecord.FirstOrDefault(m => m.UserId == Id);
  1147. if (auth != null)
  1148. {
  1149. auth.BankCardAccount = SettleBankCardNo; //银行卡账号
  1150. auth.BankMobile = BankMobile; //银行预留手机号码
  1151. }
  1152. maindb.SaveChanges();
  1153. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  1154. }
  1155. return new AppResultJson() { Status = "-1", Info = "认证失败,请重试" };
  1156. }
  1157. [Authorize]
  1158. public JsonResult CashAuth2(string value, string CertFrontBase64, string CertReverseBase64)
  1159. {
  1160. value = DesDecrypt(value);
  1161. JsonData data = JsonMapper.ToObject(value);
  1162. AppResultJson result = CashAuth2Do(value, CertFrontBase64, CertReverseBase64);
  1163. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  1164. }
  1165. public AppResultJson CashAuth2Do(string value, string CertFrontBase64, string CertReverseBase64)
  1166. {
  1167. JsonData data = JsonMapper.ToObject(value);
  1168. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1169. string CertFrontImage = data["CertFrontImage"].ToString(); //身份证正面照
  1170. string CertReverseImage = data["CertReverseImage"].ToString(); //身份证反面照
  1171. // string CertFrontBase64 = data["CertFrontBase64"].ToString(); //身份证正面照
  1172. // string CertReverseBase64 = data["CertReverseBase64"].ToString(); //身份证反面照
  1173. // string BankName = data["BankName"].ToString(); //开户行全称
  1174. string SettleBankName = data["SettleBankName"].ToString(); //结算银行名称
  1175. string SettleBankCardNo = data["SettleBankCardNo"].ToString(); //结算银行卡号
  1176. string BankMobile = data["BankMobile"].ToString(); //银行预留手机号
  1177. if (string.IsNullOrEmpty(data["BankMobile"].ToString()))
  1178. {
  1179. return new AppResultJson() { Status = "-1", Info = "请填写手机号" };
  1180. }
  1181. if (data["BankMobile"].ToString().Length > 11)
  1182. {
  1183. return new AppResultJson() { Status = "-1", Info = "手机号最多11个字符" };
  1184. }
  1185. if (function.CheckMobile(data["BankMobile"].ToString()) == "")
  1186. {
  1187. return new AppResultJson() { Status = "-1", Info = "请填写正确的手机号" };
  1188. }
  1189. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1190. string check = RedisDbconn.Instance.Get<string>("CashAuth:" + Id);
  1191. if (!string.IsNullOrEmpty(check))
  1192. {
  1193. return new AppResultJson() { Status = "-1", Info = "资料审核中, 请稍后再试" };
  1194. }
  1195. RedisDbconn.Instance.Set("CashAuth:" + Id, "1", 600);
  1196. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  1197. if (query != null)
  1198. {
  1199. query.SettleBankCardNo = SettleBankCardNo; //结算银行卡号
  1200. query.SettleBankName = SettleBankName; //结算银行名称
  1201. query.CertFrontImage = CertFrontImage; //身份证正面照
  1202. query.CertReverseImage = CertReverseImage; //身份证反面照
  1203. UserAuthRecord auth = maindb.UserAuthRecord.FirstOrDefault(m => m.UserId == Id);
  1204. if (auth != null)
  1205. {
  1206. auth.BankCardAccount = SettleBankCardNo; //银行卡账号
  1207. auth.BankMobile = BankMobile; //银行预留手机号码
  1208. }
  1209. maindb.SaveChanges();
  1210. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  1211. }
  1212. return new AppResultJson() { Status = "-1", Info = "认证失败,请重试" };
  1213. }
  1214. #endregion
  1215. #region 创客-我的-获取提现认证失败原因
  1216. [Authorize]
  1217. public JsonResult CashAuthFailInfo(string value)
  1218. {
  1219. value = DesDecrypt(value);
  1220. JsonData data = JsonMapper.ToObject(value);
  1221. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1222. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1223. Users query = UsersDbconn.Instance.Get(Id) ?? new Users();
  1224. string Remark = function.CheckNull(query.Remark);
  1225. if (Remark.StartsWith("代付失败原因:"))
  1226. {
  1227. return Json(new AppResultJson() { Status = "-1", Info = Remark.Replace("代付失败原因:", "") });
  1228. }
  1229. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1230. }
  1231. #endregion
  1232. #region 创客-我的-设置-提交忘记支付密码
  1233. [Authorize]
  1234. public JsonResult ForgetPayPwd(string value)
  1235. {
  1236. value = DesDecrypt(value);
  1237. JsonData data = JsonMapper.ToObject(value);
  1238. AppResultJson result = ForgetPayPwdDo(value);
  1239. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  1240. }
  1241. public AppResultJson ForgetPayPwdDo(string value)
  1242. {
  1243. JsonData data = JsonMapper.ToObject(value);
  1244. string PayPwd = data["PayPwd"].ToString(); //支付密码
  1245. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1246. Users query = new Users();
  1247. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1248. query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  1249. if (query != null)
  1250. {
  1251. query.PayPwd = function.MD532(PayPwd); //支付密码
  1252. maindb.SaveChanges();
  1253. }
  1254. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  1255. }
  1256. #endregion
  1257. #region 创客-我的-设置-设置支付密码
  1258. [Authorize]
  1259. public JsonResult SetPayPwd(string value)
  1260. {
  1261. value = DesDecrypt(value);
  1262. JsonData data = JsonMapper.ToObject(value);
  1263. AppResultJson result = SetPayPwdDo(value);
  1264. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  1265. }
  1266. public AppResultJson SetPayPwdDo(string value)
  1267. {
  1268. JsonData data = JsonMapper.ToObject(value);
  1269. string PayPwd = data["PayPwd"].ToString(); //支付密码
  1270. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1271. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1272. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  1273. if (query != null)
  1274. {
  1275. query.UpdateDate = DateTime.Now; //修改时间
  1276. query.PayPwd = function.MD532(PayPwd); //支付密码\
  1277. maindb.SaveChanges();
  1278. }
  1279. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  1280. }
  1281. #endregion
  1282. #region 创客-我的-设置-验证原支付密码
  1283. [Authorize]
  1284. public JsonResult CheckPayPwd(string value)
  1285. {
  1286. value = DesDecrypt(value);
  1287. JsonData data = JsonMapper.ToObject(value);
  1288. string PayPwd = data["PayPwd"].ToString(); //支付密码
  1289. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1290. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1291. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id) ?? new Users();
  1292. if (string.IsNullOrEmpty(query.PayPwd))
  1293. {
  1294. return Json(new AppResultJson() { Status = "-1", Info = "请设置支付密码" });
  1295. }
  1296. if (query.PayPwd != function.MD532(PayPwd))
  1297. {
  1298. return Json(new AppResultJson() { Status = "-1", Info = "原支付密码不正确" });
  1299. }
  1300. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1301. }
  1302. #endregion
  1303. #region 创客-我的-设置-验证登录密码
  1304. [Authorize]
  1305. public JsonResult CheckLoginPwd(string value)
  1306. {
  1307. value = DesDecrypt(value);
  1308. JsonData data = JsonMapper.ToObject(value);
  1309. string LoginPwd = data["LoginPwd"].ToString(); //支付密码
  1310. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1311. Users query = new Users();
  1312. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1313. query = UsersDbconn.Instance.Get(Id) ?? new Users();
  1314. if (query.LoginPwd != function.MD532(LoginPwd))
  1315. {
  1316. return Json(new AppResultJson() { Status = "-1", Info = "登录密码不正确" });
  1317. }
  1318. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1319. }
  1320. #endregion
  1321. #region 我的-设置-获取实名认证四要素
  1322. [Authorize]
  1323. public JsonResult AuthInfo(string value)
  1324. {
  1325. value = DesDecrypt(value);
  1326. JsonData data = JsonMapper.ToObject(value);
  1327. Dictionary<string, object> Obj = AuthInfoDo(value);
  1328. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1329. }
  1330. public Dictionary<string, object> AuthInfoDo(string value)
  1331. {
  1332. JsonData data = JsonMapper.ToObject(value);
  1333. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1334. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1335. Users query = UsersDbconn.Instance.Get(Id) ?? new Users();
  1336. Obj.Add("RealName", DefaultRealName(query)); //真实姓名
  1337. Obj.Add("CertId", query.CertId); //身份证号
  1338. Obj.Add("Mobile", query.Mobile); //手机号
  1339. Obj.Add("SettleBankCardNo", query.SettleBankCardNo); //结算银行卡号
  1340. Obj.Add("SettleBankName", query.SettleBankName); //结算银行卡名称
  1341. Obj.Add("BankName", query.SeoTitle); //开户行全称
  1342. return Obj;
  1343. }
  1344. #endregion
  1345. #region 创客-首页-交易分析-个人业绩-趋势图
  1346. [Authorize]
  1347. public JsonResult PersonalPerformanceTrend(string value)
  1348. {
  1349. value = DesDecrypt(value);
  1350. JsonData data = JsonMapper.ToObject(value);
  1351. Dictionary<string, object> Obj = PersonalPerformanceTrendDo(value);
  1352. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1353. }
  1354. public Dictionary<string, object> PersonalPerformanceTrendDo(string value)
  1355. {
  1356. JsonData data = JsonMapper.ToObject(value);
  1357. string UserId = data["UserId"].ToString(); //创客Id
  1358. string Kind = data["Kind"].ToString(); //查询类别
  1359. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1360. //总交易趋势数据
  1361. List<Dictionary<string, object>> MainTradeList = new List<Dictionary<string, object>>();
  1362. if (Kind == "1")
  1363. {
  1364. for (int i = 7; i >= 1; i--)
  1365. {
  1366. DateTime Date = DateTime.Now.AddDays(-i);
  1367. var date = Date.ToString("yyyyMMdd");
  1368. decimal HelpAmount = 0;
  1369. DataTable dt = OtherMySqlConn.dtable("SELECT SUM(TradeAmount) TradeAmount FROM HelpProfitMerTradeSummay WHERE MerchantId IN(SELECT MerchantId FROM HelpProfitMerIds WHERE UserId=" + UserId + ") AND TradeDate=" + date + "");
  1370. foreach (DataRow items in dt.Rows)
  1371. {
  1372. HelpAmount = decimal.Parse(function.CheckNum(items["TradeAmount"].ToString()));
  1373. }
  1374. var amount = UserTradeDaySummaryDbconn.Instance.GetDateTrade(int.Parse(UserId), Date.ToString("yyyyMMdd"));
  1375. var total = amount + HelpAmount;
  1376. Dictionary<string, object> item = new Dictionary<string, object>();
  1377. item.Add("Time", Date.ToString("MMdd")); //日期/月份
  1378. item.Add("TradeAmt", UserTradeDaySummaryDbconn.Instance.GetDateTrade(int.Parse(UserId), Date.ToString("yyyyMMdd"))); //交易额
  1379. MainTradeList.Add(item);
  1380. }
  1381. }
  1382. else
  1383. {
  1384. for (int i = 6; i >= 1; i--)
  1385. {
  1386. DateTime Month = DateTime.Now.AddMonths(-i);
  1387. var month = Month.ToString("yyyyMM");
  1388. decimal HelpAmount = 0;
  1389. DataTable dt = OtherMySqlConn.dtable("SELECT SUM(TradeAmount) TradeAmount FROM HelpProfitMerTradeSummay WHERE MerchantId IN(SELECT MerchantId FROM HelpProfitMerIds WHERE UserId=" + UserId + ") AND TradeMonth=" + month + "");
  1390. foreach (DataRow items in dt.Rows)
  1391. {
  1392. HelpAmount = decimal.Parse(function.CheckNum(items["TradeAmount"].ToString()));
  1393. }
  1394. var amount = UserTradeDaySummaryDbconn.Instance.GetMonthTrade(int.Parse(UserId), Month.ToString("yyyyMM"));
  1395. var total = amount + HelpAmount;
  1396. Dictionary<string, object> item = new Dictionary<string, object>();
  1397. item.Add("Time", Month.ToString("yyyyMM")); //日期/月份
  1398. item.Add("TradeAmt", total); //交易额
  1399. MainTradeList.Add(item);
  1400. }
  1401. }
  1402. Obj.Add("MainTrade", MainTradeList);
  1403. //新增创客总数趋势数据
  1404. List<Dictionary<string, object>> AddMakerList = new List<Dictionary<string, object>>();
  1405. if (Kind == "1")
  1406. {
  1407. for (int i = 7; i >= 1; i--)
  1408. {
  1409. DateTime Date = DateTime.Now.AddDays(-i);
  1410. Dictionary<string, object> item = new Dictionary<string, object>();
  1411. item.Add("Time", Date.ToString("MMdd")); //日期/月份
  1412. item.Add("Count", UsersDbconn.Instance.GetNewUserCount(int.Parse(UserId), Date.ToString("yyyyMMdd"))); //交易额
  1413. AddMakerList.Add(item);
  1414. }
  1415. }
  1416. else
  1417. {
  1418. for (int i = 6; i >= 1; i--)
  1419. {
  1420. DateTime Month = DateTime.Now.AddMonths(-i);
  1421. Dictionary<string, object> item = new Dictionary<string, object>();
  1422. item.Add("Time", Month.ToString("yyyyMM")); //日期/月份
  1423. item.Add("Count", UsersDbconn.Instance.GetNewUserCount(int.Parse(UserId), Month.ToString("yyyyMM"))); //交易额
  1424. AddMakerList.Add(item);
  1425. }
  1426. }
  1427. Obj.Add("AddMaker", AddMakerList);
  1428. //新增激活商户总数趋势数据
  1429. List<Dictionary<string, object>> AddActMerchantList = new List<Dictionary<string, object>>();
  1430. for (int i = 7; i >= 1; i--)
  1431. {
  1432. Dictionary<string, object> item = new Dictionary<string, object>();
  1433. if (Kind == "1")
  1434. {
  1435. DateTime time = DateTime.Now.AddDays(-i);
  1436. string Date = time.ToString("MMdd");
  1437. item.Add("Time", Date); //日期/月份
  1438. item.Add("Count", UserDataDbconn.Instance.GetPosActCount(int.Parse(UserId), time.ToString("yyyyMMdd"))); //数量
  1439. }
  1440. else
  1441. {
  1442. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1443. item.Add("Time", Month); //日期/月份
  1444. item.Add("Count", UserDataDbconn.Instance.GetPosActCount(int.Parse(UserId), Month)); //数量
  1445. }
  1446. AddActMerchantList.Add(item);
  1447. }
  1448. Obj.Add("AddActMerchant", AddActMerchantList);
  1449. return Obj;
  1450. }
  1451. #endregion
  1452. #region 创客-首页-交易分析-团队业绩-趋势图
  1453. [Authorize]
  1454. public JsonResult TeamPerformanceTrend(string value)
  1455. {
  1456. value = DesDecrypt(value);
  1457. JsonData data = JsonMapper.ToObject(value);
  1458. Dictionary<string, object> Obj = TeamPerformanceTrendDo(value);
  1459. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1460. }
  1461. public Dictionary<string, object> TeamPerformanceTrendDo(string value)
  1462. {
  1463. JsonData data = JsonMapper.ToObject(value);
  1464. string UserId = data["UserId"].ToString(); //创客Id
  1465. string Kind = data["Kind"].ToString(); //查询类别
  1466. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1467. //总交易趋势数据
  1468. List<Dictionary<string, object>> MainTradeList = new List<Dictionary<string, object>>();
  1469. if (Kind == "1")
  1470. {
  1471. for (int i = 7; i >= 1; i--)
  1472. {
  1473. DateTime Date = DateTime.Now.AddDays(-i);
  1474. var date = Date.ToString("yyyyMMdd");
  1475. decimal HelpAmount = 0;
  1476. DataTable dt = OtherMySqlConn.dtable("SELECT SUM(TradeAmount) TradeAmount FROM HelpProfitMerTradeSummay WHERE MerchantId IN(SELECT MerchantId FROM HelpProfitMerIds WHERE UserId IN(SELECT Id from Users WHERE ParentNav like '%," + UserId + ",%' OR Id=" + UserId + ")) AND TradeDate=" + date + "");
  1477. foreach (DataRow items in dt.Rows)
  1478. {
  1479. HelpAmount = decimal.Parse(function.CheckNum(items["TradeAmount"].ToString()));
  1480. }
  1481. var amount = UserTradeDaySummaryDbconn.Instance.GetDateTrade(int.Parse(UserId), Date.ToString("yyyyMMdd"), "team");
  1482. var total = amount + HelpAmount;
  1483. Dictionary<string, object> item = new Dictionary<string, object>();
  1484. item.Add("Time", Date.ToString("MMdd")); //日期/月份
  1485. item.Add("TradeAmt", total); //交易额
  1486. MainTradeList.Add(item);
  1487. }
  1488. }
  1489. else
  1490. {
  1491. for (int i = 6; i >= 1; i--)
  1492. {
  1493. DateTime Month = DateTime.Now.AddMonths(-i);
  1494. var month = Month.ToString("yyyyMM");
  1495. decimal HelpAmount = 0;
  1496. DataTable dt = OtherMySqlConn.dtable("SELECT SUM(TradeAmount) TradeAmount FROM HelpProfitMerTradeSummay WHERE MerchantId IN(SELECT MerchantId FROM HelpProfitMerIds WHERE UserId IN(SELECT Id from Users WHERE ParentNav like '%," + UserId + ",%' OR Id=" + UserId + ")) AND TradeMonth=" + month + "");
  1497. foreach (DataRow items in dt.Rows)
  1498. {
  1499. HelpAmount = decimal.Parse(function.CheckNum(items["TradeAmount"].ToString()));
  1500. }
  1501. var amount = UserTradeDaySummaryDbconn.Instance.GetMonthTrade(int.Parse(UserId), Month.ToString("yyyyMM"), "team");
  1502. var total = amount + HelpAmount;
  1503. Dictionary<string, object> item = new Dictionary<string, object>();
  1504. item.Add("Time", Month.ToString("yyyyMM")); //日期/月份
  1505. item.Add("TradeAmt", total); //交易额
  1506. MainTradeList.Add(item);
  1507. }
  1508. }
  1509. Obj.Add("MainTrade", MainTradeList);
  1510. //新增创客总数趋势数据
  1511. List<Dictionary<string, object>> AddMakerList = new List<Dictionary<string, object>>();
  1512. if (Kind == "1")
  1513. {
  1514. for (int i = 7; i >= 1; i--)
  1515. {
  1516. DateTime Date = DateTime.Now.AddDays(-i);
  1517. Dictionary<string, object> item = new Dictionary<string, object>();
  1518. item.Add("Time", Date.ToString("MMdd")); //日期/月份
  1519. item.Add("Count", UsersDbconn.Instance.GetTeamNewUserCount(int.Parse(UserId), Date.ToString("yyyyMMdd"))); //交易额
  1520. AddMakerList.Add(item);
  1521. }
  1522. }
  1523. else
  1524. {
  1525. for (int i = 6; i >= 1; i--)
  1526. {
  1527. DateTime Month = DateTime.Now.AddMonths(-i);
  1528. Dictionary<string, object> item = new Dictionary<string, object>();
  1529. item.Add("Time", Month.ToString("yyyyMM")); //日期/月份
  1530. item.Add("Count", UsersDbconn.Instance.GetTeamNewUserCount(int.Parse(UserId), Month.ToString("yyyyMM"))); //交易额
  1531. AddMakerList.Add(item);
  1532. }
  1533. }
  1534. Obj.Add("AddMaker", AddMakerList);
  1535. //新增激活商户总数趋势数据
  1536. List<Dictionary<string, object>> AddActMerchantList = new List<Dictionary<string, object>>();
  1537. if (Kind == "1")
  1538. {
  1539. for (int i = 7; i >= 1; i--)
  1540. {
  1541. Dictionary<string, object> item = new Dictionary<string, object>();
  1542. DateTime time = DateTime.Now.AddDays(-i);
  1543. string Date = time.ToString("MMdd");
  1544. item.Add("Time", Date); //日期/月份
  1545. item.Add("Count", UserDataDbconn.Instance.GetTeamPosActCount(int.Parse(UserId), time.ToString("yyyyMMdd"))); //数量
  1546. AddActMerchantList.Add(item);
  1547. }
  1548. }
  1549. else
  1550. {
  1551. for (int i = 6; i >= 1; i--)
  1552. {
  1553. Dictionary<string, object> item = new Dictionary<string, object>();
  1554. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1555. item.Add("Time", Month); //日期/月份
  1556. item.Add("Count", UserDataDbconn.Instance.GetTeamPosActCount(int.Parse(UserId), Month)); //数量
  1557. AddActMerchantList.Add(item);
  1558. }
  1559. }
  1560. Obj.Add("AddActMerchant", AddActMerchantList);
  1561. return Obj;
  1562. }
  1563. #endregion
  1564. #region 创客-首页-我的创客-主界面创客列表
  1565. [Authorize]
  1566. public JsonResult MyMakerList(string value)
  1567. {
  1568. value = DesDecrypt(value);
  1569. JsonData data = JsonMapper.ToObject(value);
  1570. List<Dictionary<string, object>> dataList = MyMakerListDo(value);
  1571. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  1572. }
  1573. public List<Dictionary<string, object>> MyMakerListDo(string value)
  1574. {
  1575. JsonData data = JsonMapper.ToObject(value);
  1576. string RealName = data["RealName"].ToString(); //真实姓名
  1577. int UserLevel = int.Parse(function.CheckInt(data["UserLevel"].ToString())); //创客等级
  1578. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客Id
  1579. string Sort = data["Sort"].ToString(); //排序方式
  1580. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  1581. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  1582. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  1583. IQueryable<Users> query = maindb.Users.Where(m => m.ParentUserId == UserId && m.AuthFlag == 1 && !m.Mobile.EndsWith("d"));
  1584. if (!string.IsNullOrEmpty(RealName))
  1585. {
  1586. query = query.Where(m => (m.RealName == RealName || m.MakerCode == RealName));
  1587. }
  1588. if (Sort == "ThisMonthTrade")
  1589. {
  1590. query = query.OrderByDescending(m => m.ThisMonthTrade);
  1591. }
  1592. if (Sort == "AuthDate")
  1593. {
  1594. query = query.OrderByDescending(m => m.AuthDate);
  1595. }
  1596. if (PageNum == 1)
  1597. {
  1598. query = query.Take(PageSize);
  1599. }
  1600. else
  1601. {
  1602. int skipNum = PageSize * (PageNum - 1);
  1603. query = query.Skip(skipNum).Take(PageSize);
  1604. }
  1605. foreach (var subdata in query.ToList())
  1606. {
  1607. Dictionary<string, object> curData = new Dictionary<string, object>();
  1608. curData.Add("RealName", DefaultRealName(subdata)); //真实姓名
  1609. curData.Add("HeadPhoto", DefaultPic(subdata.HeadPhoto)); //头像
  1610. curData.Add("Id", subdata.Id); //Id
  1611. curData.Add("CreateDate", subdata.AuthDate == null ? "" : subdata.AuthDate.Value.ToString("yyyy-MM-dd")); //CreateDate
  1612. curData.Add("ThisMonthTrade", subdata.ThisMonthTrade); //本月交易额
  1613. dataList.Add(curData);
  1614. }
  1615. return dataList;
  1616. }
  1617. #endregion
  1618. #region 创客-首页-我的创客-搜索创客列表
  1619. [Authorize]
  1620. public JsonResult SearchMakerList(string value)
  1621. {
  1622. value = DesDecrypt(value);
  1623. JsonData data = JsonMapper.ToObject(value);
  1624. List<Dictionary<string, object>> dataList = SearchMakerListDo(value);
  1625. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList });
  1626. }
  1627. public List<Dictionary<string, object>> SearchMakerListDo(string value)
  1628. {
  1629. JsonData data = JsonMapper.ToObject(value);
  1630. string RealName = data["RealName"].ToString(); //真实姓名
  1631. int UserLevel = int.Parse(function.CheckInt(data["UserLevel"].ToString())); //创客等级
  1632. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客Id
  1633. string Sort = data["Sort"].ToString(); //排序方式
  1634. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  1635. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  1636. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  1637. string UserIdString = "," + UserId + ",";
  1638. IQueryable<Users> query = maindb.Users.Where(m => m.ParentNav.Contains(UserIdString) && m.AuthFlag == 1);
  1639. if (!string.IsNullOrEmpty(RealName))
  1640. {
  1641. query = query.Where(m => (m.RealName == RealName || m.MakerCode == RealName));
  1642. }
  1643. // if (UserLevel > 0)
  1644. // {
  1645. // query = query.Where(m => m.UserLevel == UserLevel);
  1646. // }
  1647. if (PageNum == 1)
  1648. {
  1649. query = query.Take(PageSize);
  1650. }
  1651. else
  1652. {
  1653. int skipNum = PageSize * (PageNum - 1);
  1654. query = query.Skip(skipNum).Take(PageSize);
  1655. }
  1656. foreach (var subdata in query.ToList())
  1657. {
  1658. // Users subdata = UsersDbconn.Instance.Get(item.UserId) ?? new Users();
  1659. Dictionary<string, object> curData = new Dictionary<string, object>();
  1660. curData.Add("RealName", DefaultRealName(subdata)); //真实姓名
  1661. curData.Add("HeadPhoto", DefaultPic(subdata.HeadPhoto)); //头像
  1662. curData.Add("Id", subdata.Id); //Id
  1663. curData.Add("CreateDate", subdata.CreateDate == null ? "" : subdata.CreateDate.Value.ToString("yyyy-MM-dd")); //CreateDate
  1664. curData.Add("ThisMonthTrade", UserTradeDaySummaryDbconn.Instance.GetMonthTrade(subdata.Id, DateTime.Now.ToString("yyyyMM"), "team")); //本月交易额
  1665. dataList.Add(curData);
  1666. }
  1667. return dataList;
  1668. }
  1669. #endregion
  1670. #region 创客-首页-我的创客-创客详情
  1671. [Authorize]
  1672. public JsonResult MyMakerDetail(string value)
  1673. {
  1674. value = DesDecrypt(value);
  1675. JsonData data = JsonMapper.ToObject(value);
  1676. Dictionary<string, object> Obj = MyMakerDetailDo(value);
  1677. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1678. }
  1679. public Dictionary<string, object> MyMakerDetailDo(string value)
  1680. {
  1681. JsonData data = JsonMapper.ToObject(value);
  1682. string UserId = data["UserId"].ToString(); //创客Id
  1683. string DateKind = data["DateKind"].ToString(); //查询时间
  1684. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1685. decimal TradeTotal = 0;
  1686. int ActTotal = 0;
  1687. if (DateKind == "1")
  1688. {
  1689. for (int i = 0; i <= 7; i++)
  1690. {
  1691. string Date = DateTime.Now.AddDays(-i).ToString("yyyyMMdd");
  1692. TradeTotal += UserTradeDaySummaryDbconn.Instance.GetDateTrade(int.Parse(UserId), Date, "team");
  1693. ActTotal += UserDataDbconn.Instance.GetTeamPosActCount(int.Parse(UserId), Date);
  1694. }
  1695. }
  1696. else if (DateKind == "2")
  1697. {
  1698. for (int i = 0; i <= 6; i++)
  1699. {
  1700. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1701. TradeTotal += UserTradeDaySummaryDbconn.Instance.GetMonthTrade(int.Parse(UserId), Month, "team");
  1702. ActTotal += UserDataDbconn.Instance.GetTeamPosActCount(int.Parse(UserId), Month);
  1703. }
  1704. }
  1705. Obj.Add("TradeTotal", TradeTotal); //总交易
  1706. Obj.Add("ActTotal", ActTotal); //总激活数
  1707. List<KqProducts> products = new KqProductsService().List(new List<FieldItem>(), "", 1, 100);
  1708. List<KqProducts> productall = products.Prepend(new KqProducts()
  1709. {
  1710. Id = 0,
  1711. Name = "全部",
  1712. }).ToList();
  1713. //交易分类占比
  1714. List<Dictionary<string, object>> TradePercentList = new List<Dictionary<string, object>>();
  1715. foreach (KqProducts product in products)
  1716. {
  1717. decimal Total = 0;
  1718. if (DateKind == "1")
  1719. {
  1720. for (int i = 0; i <= 7; i++)
  1721. {
  1722. string Date = DateTime.Now.AddDays(-i).ToString("yyyyMMdd");
  1723. Total += UserTradeDaySummaryDbconn.Instance.GetDateTradeForBrand(int.Parse(UserId), Date, product.Id, "team");
  1724. }
  1725. }
  1726. else if (DateKind == "2")
  1727. {
  1728. for (int i = 0; i <= 6; i++)
  1729. {
  1730. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1731. Total += UserTradeDaySummaryDbconn.Instance.GetMonthTradeForBrand(int.Parse(UserId), Month, product.Id, "team");
  1732. }
  1733. }
  1734. if (Total > 0)
  1735. {
  1736. Dictionary<string, object> item = new Dictionary<string, object>();
  1737. item.Add("Name", product.Name); //产品名称
  1738. item.Add("TradeAmt", Total); //交易额
  1739. TradePercentList.Add(item);
  1740. }
  1741. }
  1742. Obj.Add("TradePercent", TradePercentList);
  1743. //交易趋势图
  1744. List<Dictionary<string, object>> TradeTrendList = new List<Dictionary<string, object>>();
  1745. foreach (KqProducts product in productall)
  1746. {
  1747. Dictionary<string, object> item = new Dictionary<string, object>();
  1748. item.Add("Name", product.Name); //产品名称
  1749. List<Dictionary<string, object>> TimeList = new List<Dictionary<string, object>>();
  1750. if (DateKind == "1")
  1751. {
  1752. for (int i = 7; i >= 0; i--)
  1753. {
  1754. DateTime Date = DateTime.Now.AddDays(-i);
  1755. Dictionary<string, object> subitem = new Dictionary<string, object>();
  1756. subitem.Add("TimeString", Date.ToString("MMdd")); //交易日期/月份
  1757. if (product.Id > 0)
  1758. {
  1759. subitem.Add("TradeAmt", UserTradeDaySummaryDbconn.Instance.GetDateTradeForBrand(int.Parse(UserId), Date.ToString("yyyyMMdd"), product.Id, "team")); //交易额
  1760. }
  1761. else
  1762. {
  1763. subitem.Add("TradeAmt", UserTradeDaySummaryDbconn.Instance.GetDateTrade(int.Parse(UserId), Date.ToString("yyyyMMdd"), "team")); //交易额
  1764. }
  1765. TimeList.Add(subitem);
  1766. }
  1767. }
  1768. else if (DateKind == "2")
  1769. {
  1770. for (int i = 6; i >= 0; i--)
  1771. {
  1772. DateTime Month = DateTime.Now.AddMonths(-i);
  1773. Dictionary<string, object> subitem = new Dictionary<string, object>();
  1774. subitem.Add("TimeString", Month.ToString("yyyyMM")); //交易日期/月份
  1775. if (product.Id > 0)
  1776. {
  1777. subitem.Add("TradeAmt", UserTradeDaySummaryDbconn.Instance.GetMonthTradeForBrand(int.Parse(UserId), Month.ToString("yyyyMM"), product.Id, "team")); //交易额
  1778. }
  1779. else
  1780. {
  1781. subitem.Add("TradeAmt", UserTradeDaySummaryDbconn.Instance.GetMonthTrade(int.Parse(UserId), Month.ToString("yyyyMM"), "team")); //交易额
  1782. }
  1783. TimeList.Add(subitem);
  1784. }
  1785. }
  1786. item.Add("Times", TimeList); //交易额
  1787. TradeTrendList.Add(item);
  1788. }
  1789. Obj.Add("TradeTrend", TradeTrendList);
  1790. //新增激活商户分类占比
  1791. List<Dictionary<string, object>> ActMerchantPercentList = new List<Dictionary<string, object>>();
  1792. foreach (KqProducts product in products)
  1793. {
  1794. int Total = 0;
  1795. if (DateKind == "1")
  1796. {
  1797. for (int i = 0; i <= 7; i++)
  1798. {
  1799. string Date = DateTime.Now.AddDays(-i).ToString("yyyyMMdd");
  1800. Total += UserDataDbconn.Instance.GetTeamBrandPosActCount(int.Parse(UserId), product.Id, Date);
  1801. }
  1802. }
  1803. else if (DateKind == "2")
  1804. {
  1805. for (int i = 0; i <= 6; i++)
  1806. {
  1807. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1808. Total += UserDataDbconn.Instance.GetTeamBrandPosActCount(int.Parse(UserId), product.Id, Month);
  1809. }
  1810. }
  1811. if (Total > 0)
  1812. {
  1813. Dictionary<string, object> item = new Dictionary<string, object>();
  1814. item.Add("Name", product.Name); //产品名称
  1815. item.Add("ActCount", Total); //激活数
  1816. ActMerchantPercentList.Add(item);
  1817. }
  1818. }
  1819. Obj.Add("ActMerchantPercent", ActMerchantPercentList);
  1820. //新增激活商户趋势图
  1821. List<Dictionary<string, object>> ActMerchantTrendList = new List<Dictionary<string, object>>();
  1822. foreach (KqProducts product in productall)
  1823. {
  1824. Dictionary<string, object> item = new Dictionary<string, object>();
  1825. item.Add("Name", product.Name); //产品名称
  1826. List<Dictionary<string, object>> TimeList = new List<Dictionary<string, object>>();
  1827. if (DateKind == "1")
  1828. {
  1829. for (int i = 7; i >= 0; i--)
  1830. {
  1831. DateTime Date = DateTime.Now.AddDays(-i);
  1832. Dictionary<string, object> subitem = new Dictionary<string, object>();
  1833. subitem.Add("TimeString", Date.ToString("MMdd")); //统计日期/月份
  1834. if (product.Id > 0)
  1835. {
  1836. subitem.Add("ActCount", UserDataDbconn.Instance.GetTeamBrandPosActCount(int.Parse(UserId), product.Id, Date.ToString("yyyyMMdd"))); //激活数
  1837. }
  1838. else
  1839. {
  1840. subitem.Add("ActCount", UserDataDbconn.Instance.GetTeamPosActCount(int.Parse(UserId), Date.ToString("yyyyMMdd"))); //激活数
  1841. }
  1842. TimeList.Add(subitem);
  1843. }
  1844. }
  1845. else if (DateKind == "2")
  1846. {
  1847. for (int i = 6; i >= 0; i--)
  1848. {
  1849. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1850. Dictionary<string, object> subitem = new Dictionary<string, object>();
  1851. subitem.Add("TimeString", Month); //统计日期/月份
  1852. if (product.Id > 0)
  1853. {
  1854. subitem.Add("ActCount", UserDataDbconn.Instance.GetTeamBrandPosActCount(int.Parse(UserId), product.Id, Month)); //激活数
  1855. }
  1856. else
  1857. {
  1858. subitem.Add("ActCount", UserDataDbconn.Instance.GetTeamPosActCount(int.Parse(UserId), Month)); //激活数
  1859. }
  1860. TimeList.Add(subitem);
  1861. }
  1862. }
  1863. item.Add("Times", TimeList); //交易额
  1864. ActMerchantTrendList.Add(item);
  1865. }
  1866. Obj.Add("ActMerchantTrend", ActMerchantTrendList);
  1867. //创客新增趋势图
  1868. List<Dictionary<string, object>> MakerAddList = new List<Dictionary<string, object>>();
  1869. if (DateKind == "1")
  1870. {
  1871. for (int i = 7; i >= 0; i--)
  1872. {
  1873. string Date = DateTime.Now.AddDays(-i).ToString("yyyyMMdd");
  1874. Dictionary<string, object> item = new Dictionary<string, object>();
  1875. item.Add("TimeString", Date);
  1876. item.Add("AddCount", UsersDbconn.Instance.GetTeamNewUserCount(int.Parse(UserId), Date));
  1877. MakerAddList.Add(item);
  1878. }
  1879. }
  1880. else if (DateKind == "2")
  1881. {
  1882. for (int i = 6; i >= 0; i--)
  1883. {
  1884. string Month = DateTime.Now.AddMonths(-i).ToString("yyyyMM");
  1885. Dictionary<string, object> item = new Dictionary<string, object>();
  1886. item.Add("TimeString", Month);
  1887. item.Add("AddCount", UsersDbconn.Instance.GetTeamNewUserCount(int.Parse(UserId), Month));
  1888. MakerAddList.Add(item);
  1889. }
  1890. }
  1891. Obj.Add("MakerAdd", MakerAddList);
  1892. return Obj;
  1893. }
  1894. #endregion
  1895. #region 首页-我的创客-未实名创客
  1896. [Authorize]
  1897. public JsonResult MyMakerForNotAuth(string value)
  1898. {
  1899. value = DesDecrypt(value);
  1900. JsonData data = JsonMapper.ToObject(value);
  1901. long TotalCount = 0;
  1902. List<Dictionary<string, object>> dataList = MyMakerForNotAuthDo(value, out TotalCount);
  1903. Dictionary<string, object> Other = new Dictionary<string, object>();
  1904. Other.Add("TotalCount", TotalCount);
  1905. return Json(new AppResultJson() { Status = "1", Info = "", Data = dataList, Other = Other });
  1906. }
  1907. public List<Dictionary<string, object>> MyMakerForNotAuthDo(string value, out long TotalCount)
  1908. {
  1909. JsonData data = JsonMapper.ToObject(value);
  1910. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客Id
  1911. int PageSize = int.Parse(function.CheckInt(data["PageSize"].ToString()));
  1912. int PageNum = int.Parse(function.CheckInt(data["PageNum"].ToString()));
  1913. List<Dictionary<string, object>> dataList = new List<Dictionary<string, object>>();
  1914. IQueryable<Users> query = maindb.Users.Where(m => m.ParentUserId == UserId && m.AuthFlag == 0);
  1915. TotalCount = query.Count();
  1916. if (PageNum == 1)
  1917. {
  1918. query = query.Take(PageSize);
  1919. }
  1920. else
  1921. {
  1922. int skipNum = PageSize * (PageNum - 1);
  1923. query = query.Skip(skipNum).Take(PageSize);
  1924. }
  1925. foreach (var subdata in query.ToList())
  1926. {
  1927. // Users subdata = UsersDbconn.Instance.Get(item.UserId) ?? new Users();
  1928. Dictionary<string, object> curData = new Dictionary<string, object>();
  1929. string RealName = DefaultRealName(subdata);
  1930. if (string.IsNullOrEmpty(RealName))
  1931. {
  1932. RealName = subdata.SeoTitle;
  1933. }
  1934. curData.Add("RealName", RealName); //真实姓名
  1935. curData.Add("HeadPhoto", DefaultPic(subdata.HeadPhoto)); //头像
  1936. curData.Add("Mobile", subdata.Mobile); //手机号
  1937. curData.Add("Id", subdata.Id); //Id
  1938. curData.Add("CreateDate", subdata.CreateDate == null ? "" : subdata.CreateDate.Value.ToString("yyyy-MM-dd HH:mm:ss")); //CreateDate
  1939. dataList.Add(curData);
  1940. }
  1941. return dataList;
  1942. }
  1943. #endregion
  1944. #region 创客-首页-我的创客-主界面数据
  1945. [Authorize]
  1946. public JsonResult MyMakerData(string value)
  1947. {
  1948. value = DesDecrypt(value);
  1949. JsonData data = JsonMapper.ToObject(value);
  1950. Dictionary<string, object> Obj = MyMakerDataDo(value);
  1951. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1952. }
  1953. public Dictionary<string, object> MyMakerDataDo(string value)
  1954. {
  1955. JsonData data = JsonMapper.ToObject(value);
  1956. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客Id
  1957. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1958. int MakerTotal = maindb.Users.Count(m => m.ParentUserId == UserId);
  1959. int AuthCount = maindb.Users.Count(m => m.ParentUserId == UserId && m.AuthFlag == 1);
  1960. int NotAuthCount = MakerTotal - AuthCount;
  1961. DateTime start = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
  1962. int ThisMonthCount = maindb.Users.Count(m => m.ParentUserId == UserId && m.AuthFlag == 1 && m.AuthDate >= start);
  1963. Obj.Add("MakerTotal", MakerTotal); //创客总数
  1964. Obj.Add("AuthCount", AuthCount); //已实名总数
  1965. Obj.Add("NotAuthCount", NotAuthCount); //未实名总数
  1966. Obj.Add("ThisMonthCount", ThisMonthCount); //当月新增
  1967. return Obj;
  1968. }
  1969. #endregion
  1970. #region 创客-我的-个人资料-我的名片
  1971. [Authorize]
  1972. public JsonResult MyCard(string value)
  1973. {
  1974. value = DesDecrypt(value);
  1975. JsonData data = JsonMapper.ToObject(value);
  1976. Dictionary<string, object> Obj = MyCardDo(value);
  1977. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  1978. }
  1979. public Dictionary<string, object> MyCardDo(string value)
  1980. {
  1981. JsonData data = JsonMapper.ToObject(value);
  1982. Dictionary<string, object> Obj = new Dictionary<string, object>();
  1983. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  1984. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id) ?? new Users();
  1985. string filename = function.MD5_16(Id + "2022");
  1986. string filepath = "/static/ReferenceQrCode/";
  1987. if (!System.IO.File.Exists(function.getPath(filepath + filename + ".png")))
  1988. {
  1989. string path = function.CreateQRCode2(ConfigurationManager.AppSettings["SourceHost"].ToString() + "/p/user-inviteregist-1?Id=" + Id, filename, filepath);
  1990. path = path.Replace("//", "/");
  1991. query.ReferenceQrCode = filepath + filename + ".png";
  1992. maindb.SaveChanges();
  1993. }
  1994. Obj.Add("RealName", DefaultRealName(query)); //真实姓名
  1995. Obj.Add("HeadPhoto", DefaultPic(query.HeadPhoto)); //头像
  1996. Obj.Add("ReferenceQrCode", Host + filepath.TrimStart('/') + filename + ".png"); //推广二维码地址
  1997. Obj.Add("MakerCode", query.MakerCode); //创客编号
  1998. Obj.Add("InvitePhoto", Host + filepath.TrimStart('/') + filename + ".png"); //DefaultPic(query.SignImgUrl)); //邀请图片
  1999. return Obj;
  2000. }
  2001. #endregion
  2002. #region 创客-首页-检测是否有级别
  2003. [Authorize]
  2004. public JsonResult CheckUserLevel(string value)
  2005. {
  2006. value = DesDecrypt(value);
  2007. JsonData data = JsonMapper.ToObject(value);
  2008. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString())); //创客Id
  2009. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2010. UserRank rank = maindb.UserRank.FirstOrDefault(m => m.UserId == UserId && m.Status == 0);
  2011. if (rank != null)
  2012. {
  2013. Obj.Add("BeforeLevel", rank.WhiteRank);
  2014. Obj.Add("AfterLevel", rank.Rank);
  2015. rank.Status = 1;
  2016. maindb.SaveChanges();
  2017. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  2018. }
  2019. return Json(new AppResultJson() { Status = "-1", Info = "" });
  2020. }
  2021. #endregion
  2022. #region 创客-我的-盟主中心-盟主信息详情
  2023. [Authorize]
  2024. public JsonResult LeaderInfo(string value)
  2025. {
  2026. value = DesDecrypt(value);
  2027. JsonData data = JsonMapper.ToObject(value);
  2028. Dictionary<string, object> Obj = LeaderInfoDo(value);
  2029. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  2030. }
  2031. public Dictionary<string, object> LeaderInfoDo(string value)
  2032. {
  2033. JsonData data = JsonMapper.ToObject(value);
  2034. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2035. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString()));
  2036. Users query = maindb.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
  2037. UserAccount account = maindb.UserAccount.FirstOrDefault(m => m.Id == UserId) ?? new UserAccount();
  2038. Obj.Add("LeaderLevel", query.LeaderLevel); //盟主等级(0 无 1 小盟主 2 大盟主)
  2039. Obj.Add("LeaderReserve", account.LeaderReserve); //盟主储备金
  2040. Obj.Add("LeaderBalanceAmount", account.LeaderBalanceAmount); //可提现金额
  2041. return Obj;
  2042. }
  2043. #endregion
  2044. #region 创客-提交签名图片
  2045. [Authorize]
  2046. public JsonResult UploadSignPic(string value)
  2047. {
  2048. value = DesDecrypt(value);
  2049. JsonData data = JsonMapper.ToObject(value);
  2050. AppResultJson result = UploadSignPicDo(value);
  2051. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  2052. }
  2053. public AppResultJson UploadSignPicDo(string value)
  2054. {
  2055. JsonData data = JsonMapper.ToObject(value);
  2056. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  2057. string SignPic = data["SignPic"].ToString(); //签名图片
  2058. if(string.IsNullOrEmpty(SignPic))
  2059. {
  2060. return new AppResultJson() { Status = "-1", Info = "签名图片不能为空" };
  2061. }
  2062. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2063. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id);
  2064. if (query != null)
  2065. {
  2066. query.IsSign = 1;
  2067. query.SignDate = DateTime.Now;
  2068. query.SignPic = SignPic; //签名图片
  2069. maindb.SaveChanges();
  2070. }
  2071. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  2072. }
  2073. #endregion
  2074. #region 创客-是否签名
  2075. [Authorize]
  2076. public JsonResult SignCheck(string value)
  2077. {
  2078. value = DesDecrypt(value);
  2079. JsonData data = JsonMapper.ToObject(value);
  2080. Dictionary<string, object> Obj = SignCheckDo(value);
  2081. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  2082. }
  2083. public Dictionary<string, object> SignCheckDo(string value)
  2084. {
  2085. JsonData data = JsonMapper.ToObject(value);
  2086. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2087. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  2088. Users query = maindb.Users.FirstOrDefault(m => m.Id == Id) ?? new Users();
  2089. Obj.Add("IsSign", query.IsSign); //是否签名
  2090. return Obj;
  2091. }
  2092. #endregion
  2093. #region 通用-通过创客编号查询
  2094. [Authorize]
  2095. public JsonResult ForCode(string value)
  2096. {
  2097. value = DesDecrypt(value);
  2098. JsonData data = JsonMapper.ToObject(value);
  2099. string MakerCode = data["MakerCode"].ToString(); //创客编号
  2100. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2101. UserForMakerCode userfor = UserForMakerCodeDbconn.Instance.Get(MakerCode) ?? new UserForMakerCode();
  2102. Users query = UsersDbconn.Instance.Get(userfor.UserId) ?? new Users();
  2103. if (query.AuthFlag != 1)
  2104. {
  2105. return Json(new AppResultJson() { Status = "-1", Info = "创客未认证" });
  2106. }
  2107. Obj.Add("Id", query.Id); //创客Id
  2108. Obj.Add("RealName", query.RealName); //真实姓名
  2109. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  2110. }
  2111. #endregion
  2112. #region 通用-灰度测试UserId集合
  2113. [Authorize]
  2114. public JsonResult UserIdForGrayTest(string value)
  2115. {
  2116. value = DesDecrypt(value);
  2117. JsonData data = JsonMapper.ToObject(value);
  2118. List<string> Obj = UserIdForGrayTestDo(value);
  2119. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  2120. }
  2121. public List<string> UserIdForGrayTestDo(string value)
  2122. {
  2123. JsonData data = JsonMapper.ToObject(value);
  2124. List<string> Obj = new List<string>();
  2125. SystemSet set = maindb.SystemSet.FirstOrDefault() ?? new SystemSet();
  2126. if (!string.IsNullOrEmpty(set.RightInfo))
  2127. {
  2128. string[] RightInfos = set.RightInfo.Split('\n');
  2129. foreach (string sub in RightInfos)
  2130. {
  2131. UserForMakerCode code = maindb.UserForMakerCode.FirstOrDefault(m => m.MakerCode == sub);
  2132. if (code != null)
  2133. {
  2134. Obj.Add(code.UserId.ToString());
  2135. }
  2136. }
  2137. }
  2138. return Obj;
  2139. }
  2140. #endregion
  2141. #region 企业创客-个人中心主界面
  2142. [Authorize]
  2143. public JsonResult BusinessMain(string value)
  2144. {
  2145. value = DesDecrypt(value);
  2146. JsonData data = JsonMapper.ToObject(value);
  2147. Dictionary<string, object> Obj = BusinessMainDo(value);
  2148. return Json(new AppResultJson() { Status = "1", Info = "", Data = Obj });
  2149. }
  2150. public Dictionary<string, object> BusinessMainDo(string value)
  2151. {
  2152. JsonData data = JsonMapper.ToObject(value);
  2153. string PartnerCount = data["PartnerCount"].ToString(); //伙伴总数
  2154. string ThisMonthTrade = data["ThisMonthTrade"].ToString(); //本月交易额
  2155. string ThisMonthAct = data["ThisMonthAct"].ToString(); //本月激活商户
  2156. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2157. Users query = new Users();
  2158. int Id = int.Parse(function.CheckInt(data["Id"].ToString()));
  2159. query = maindb.Users.FirstOrDefault(m => m.Id == Id) ?? new Users();
  2160. return Obj;
  2161. }
  2162. #endregion
  2163. #region 创客-我的-添加展业地区
  2164. [Authorize]
  2165. public JsonResult AddAgentAreas(string value)
  2166. {
  2167. value = DesDecrypt(value);
  2168. JsonData data = JsonMapper.ToObject(value);
  2169. AppResultJson result = AddAgentAreasDo(value);
  2170. return Json(new AppResultJson() { Status = result.Status, Info = result.Info, Data = result.Data });
  2171. }
  2172. public AppResultJson AddAgentAreasDo(string value)
  2173. {
  2174. JsonData data = JsonMapper.ToObject(value);
  2175. int UserId = int.Parse(function.CheckInt(data["UserId"].ToString()));
  2176. string AgentAreas = data["AgentAreas"].ToString(); //展业地区
  2177. if(string.IsNullOrEmpty(AgentAreas))
  2178. {
  2179. return new AppResultJson() { Status = "-1", Info = "展业地区不能为空" };
  2180. }
  2181. Dictionary<string, object> Obj = new Dictionary<string, object>();
  2182. Users query = maindb.Users.FirstOrDefault(m => m.Id == UserId);
  2183. if (query != null)
  2184. {
  2185. query.UpdateDate = DateTime.Now;
  2186. query.AgentAreas = AgentAreas; //展业地区
  2187. maindb.SaveChanges();
  2188. }
  2189. return new AppResultJson() { Status = "1", Info = "", Data = Obj };
  2190. }
  2191. #endregion
  2192. #region 检查签名是否合法,合法返回1,不合法返回提示信息
  2193. /// <summary>
  2194. /// 检查签名是否合法,合法返回1,不合法返回提示信息
  2195. /// </summary>
  2196. /// <param name="value">请求的参数(json字符串)</param>
  2197. /// <param name="signField">要签名的字段</param>
  2198. /// <returns></returns>
  2199. private string CheckSign(string value, string[] signField)
  2200. {
  2201. JsonData json = JsonMapper.ToObject(value);
  2202. Dictionary<string, string> dic = new Dictionary<string, string>();
  2203. for (int i = 0; i < signField.Length; i++)
  2204. {
  2205. dic.Add(signField[i], json[signField[i]].ToString());
  2206. }
  2207. string sign = json["sign"].ToString(); //客户端签名字符串
  2208. return new Sign().sign(dic, sign);
  2209. }
  2210. #endregion
  2211. }
  2212. }