SUser.cs 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722
  1. using System;
  2. using Castle.ActiveRecord;
  3. using System.Text;
  4. using System.Data.SqlClient;
  5. using System.Data;
  6. using NHibernate.Criterion;
  7. namespace BizCom
  8. {
  9. [ActiveRecord("S_User")]
  10. public class SUser : ComBase<SUser>
  11. {
  12. /// <summary>
  13. /// 内部编号
  14. /// </summary>
  15. [PrimaryKey(PrimaryKeyType.Native)]
  16. public int ID { get; set; }
  17. private string _userCode="";
  18. /// <summary>
  19. ///会员编号
  20. /// </summary>
  21. [Property]
  22. public string UserCode
  23. {
  24. get{ return _userCode; }
  25. set{ _userCode=value; }
  26. }
  27. private string _userName="";
  28. /// <summary>
  29. ///会员名
  30. /// </summary>
  31. [Property]
  32. public string UserName
  33. {
  34. get{ return _userName; }
  35. set{ _userName=value; }
  36. }
  37. private string _nickName="";
  38. /// <summary>
  39. ///呢称
  40. /// </summary>
  41. [Property]
  42. public string NickName
  43. {
  44. get{ return _nickName; }
  45. set{ _nickName=value; }
  46. }
  47. private string _realName="";
  48. /// <summary>
  49. ///
  50. /// </summary>
  51. [Property]
  52. public string RealName
  53. {
  54. get{ return _realName; }
  55. set{ _realName=value; }
  56. }
  57. private string _userPic="";
  58. /// <summary>
  59. ///
  60. /// </summary>
  61. [Property]
  62. public string UserPic
  63. {
  64. get{ return _userPic; }
  65. set{ _userPic=value; }
  66. }
  67. private string _email="";
  68. /// <summary>
  69. ///邮箱
  70. /// </summary>
  71. [Property]
  72. public string Email
  73. {
  74. get{ return _email; }
  75. set{ _email=value; }
  76. }
  77. private string _mobile="";
  78. /// <summary>
  79. ///手机
  80. /// </summary>
  81. [Property]
  82. public string Mobile
  83. {
  84. get{ return _mobile; }
  85. set{ _mobile=value; }
  86. }
  87. private string _passWord="";
  88. /// <summary>
  89. ///密码
  90. /// </summary>
  91. [Property]
  92. public string PassWord
  93. {
  94. get{ return _passWord; }
  95. set{ _passWord=value; }
  96. }
  97. private string _regionCode="";
  98. /// <summary>
  99. ///所属地区编号
  100. /// </summary>
  101. [Property]
  102. public string RegionCode
  103. {
  104. get{ return _regionCode; }
  105. set{ _regionCode=value; }
  106. }
  107. private int _sex=0;
  108. /// <summary>
  109. ///性别
  110. /// </summary>
  111. [Property]
  112. public int Sex
  113. {
  114. get{ return _sex; }
  115. set{ _sex=value; }
  116. }
  117. /// <summary>
  118. ///注册时间
  119. /// </summary>
  120. [Property]
  121. public DateTime? RegisterTime { get; set; }
  122. /// <summary>
  123. ///上一次登陆时间
  124. /// </summary>
  125. [Property]
  126. public DateTime? PreTime { get; set; }
  127. /// <summary>
  128. ///最后一次登录时间
  129. /// </summary>
  130. [Property]
  131. public DateTime? LastTime { get; set; }
  132. private string _loginIP="";
  133. /// <summary>
  134. ///登录IP
  135. /// </summary>
  136. [Property]
  137. public string LoginIP
  138. {
  139. get{ return _loginIP; }
  140. set{ _loginIP=value; }
  141. }
  142. private string _ticket="";
  143. /// <summary>
  144. ///登录票根
  145. /// </summary>
  146. [Property]
  147. public string Ticket
  148. {
  149. get{ return _ticket; }
  150. set{ _ticket=value; }
  151. }
  152. private int _userCoins=0;
  153. /// <summary>
  154. ///
  155. /// </summary>
  156. [Property]
  157. public int UserCoins
  158. {
  159. get{ return _userCoins; }
  160. set{ _userCoins=value; }
  161. }
  162. private int _userPoints=0;
  163. /// <summary>
  164. ///会员积分
  165. /// </summary>
  166. [Property]
  167. public int UserPoints
  168. {
  169. get{ return _userPoints; }
  170. set{ _userPoints=value; }
  171. }
  172. private double _userMoney=0;
  173. /// <summary>
  174. ///
  175. /// </summary>
  176. [Property]
  177. public double UserMoney
  178. {
  179. get{ return _userMoney; }
  180. set{ _userMoney=value; }
  181. }
  182. private bool _isFreeze=false;
  183. /// <summary>
  184. ///是否冻结
  185. /// </summary>
  186. [Property]
  187. public bool IsFreeze
  188. {
  189. get{ return _isFreeze; }
  190. set{ _isFreeze=value; }
  191. }
  192. private int _schoolID = 0;
  193. /// <summary>
  194. ///关联学校
  195. /// </summary>
  196. [Property]
  197. public int SchoolID
  198. {
  199. get { return _schoolID; }
  200. set { _schoolID = value; }
  201. }
  202. private bool _isVerify = false;
  203. /// <summary>
  204. ///是否手机验证
  205. /// </summary>
  206. [Property]
  207. public bool IsVerify
  208. {
  209. get { return _isVerify; }
  210. set { _isVerify = value; }
  211. }
  212. private string _rKey = "";
  213. /// <summary>
  214. ///
  215. /// </summary>
  216. [Property]
  217. public string RKey
  218. {
  219. get { return _rKey; }
  220. set { _rKey = value; }
  221. }
  222. private string _major = "";
  223. /// <summary>
  224. ///
  225. /// </summary>
  226. [Property]
  227. public string Major
  228. {
  229. get { return _major; }
  230. set { _major = value; }
  231. }
  232. private string _qQ = "";
  233. /// <summary>
  234. ///
  235. /// </summary>
  236. [Property]
  237. public string QQ
  238. {
  239. get { return _qQ; }
  240. set { _qQ = value; }
  241. }
  242. private string _weiXin = "";
  243. /// <summary>
  244. ///
  245. /// </summary>
  246. [Property]
  247. public string WeiXin
  248. {
  249. get { return _weiXin; }
  250. set { _weiXin = value; }
  251. }
  252. private string _openid = "";
  253. /// <summary>
  254. ///
  255. /// </summary>
  256. [Property]
  257. public string openid
  258. {
  259. get { return _openid; }
  260. set { _openid = value; }
  261. }
  262. private string _unionid = "";
  263. /// <summary>
  264. ///
  265. /// </summary>
  266. [Property]
  267. public string unionid
  268. {
  269. get { return _unionid; }
  270. set { _unionid = value; }
  271. }
  272. private string _studentNo = "";
  273. /// <summary>
  274. ///
  275. /// </summary>
  276. [Property]
  277. public string StudentNo
  278. {
  279. get { return _studentNo; }
  280. set { _studentNo = value; }
  281. }
  282. private string _miniopenid = "";
  283. /// <summary>
  284. ///
  285. /// </summary>
  286. [Property]
  287. public string miniopenid
  288. {
  289. get { return _miniopenid; }
  290. set { _miniopenid = value; }
  291. }
  292. private string _ptTags = "";
  293. /// <summary>
  294. ///+
  295. /// </summary>
  296. [Property]
  297. public string ptTags
  298. {
  299. get { return _ptTags; }
  300. set { _ptTags = value; }
  301. }
  302. private string _soTags = "";
  303. /// <summary>
  304. ///
  305. /// </summary>
  306. [Property]
  307. public string soTags
  308. {
  309. get { return _soTags; }
  310. set { _soTags = value; }
  311. }
  312. private int _userType = 0;
  313. /// <summary>
  314. ///
  315. /// </summary>
  316. [Property]
  317. public int UserType
  318. {
  319. get { return _userType; }
  320. set { _userType = value; }
  321. }
  322. private int _bc = 0;
  323. /// <summary>
  324. ///违约次数
  325. /// </summary>
  326. [Property]
  327. public int bc
  328. {
  329. get { return _bc; }
  330. set { _bc = value; }
  331. }
  332. /// <summary>
  333. ///
  334. /// </summary>
  335. [Property]
  336. public DateTime? bctime { get; set; }
  337. private int _isremind = 0;
  338. /// <summary>
  339. ///
  340. /// </summary>
  341. [Property]
  342. public int isremind
  343. {
  344. get { return _isremind; }
  345. set { _isremind = value; }
  346. }
  347. private double _putMoney = 0;
  348. /// <summary>
  349. ///
  350. /// </summary>
  351. [Property]
  352. public double PutMoney
  353. {
  354. get { return _putMoney; }
  355. set { _putMoney = value; }
  356. }
  357. private double _earnMoney = 0;
  358. /// <summary>
  359. ///
  360. /// </summary>
  361. [Property]
  362. public double EarnMoney
  363. {
  364. get { return _earnMoney; }
  365. set { _earnMoney = value; }
  366. }
  367. private int _inviteId = 0;
  368. /// <summary>
  369. ///
  370. /// </summary>
  371. [Property]
  372. public int inviteId
  373. {
  374. get { return _inviteId; }
  375. set { _inviteId = value; }
  376. }
  377. private string _grade = "";
  378. /// <summary>
  379. ///
  380. /// </summary>
  381. [Property]
  382. public string Grade
  383. {
  384. get { return _grade; }
  385. set { _grade = value; }
  386. }
  387. private string _faculties = "";
  388. /// <summary>
  389. ///
  390. /// </summary>
  391. [Property]
  392. public string Faculties
  393. {
  394. get { return _faculties; }
  395. set { _faculties = value; }
  396. }
  397. private string _className = "";
  398. /// <summary>
  399. ///
  400. /// </summary>
  401. [Property]
  402. public string ClassName
  403. {
  404. get { return _className; }
  405. set { _className = value; }
  406. }
  407. private int _addressId = 0;
  408. /// <summary>
  409. ///
  410. /// </summary>
  411. [Property]
  412. public int addressId
  413. {
  414. get { return _addressId; }
  415. set { _addressId = value; }
  416. }
  417. public static void Del(object id)
  418. {
  419. StringBuilder sql = new StringBuilder();
  420. sql.AppendFormat("delete from S_User where id=" + id);
  421. ExecuteNonQuery(sql.ToString());
  422. }
  423. public static SUser GetByWeixin(string unionid)
  424. {
  425. SUser SUser = FindFirst(Expression.Sql(string.Format("unionid='{0}'", unionid)));
  426. return SUser;
  427. }
  428. public static SUser Get(string uname, string pwd)
  429. {
  430. return FindFirst(Expression.Sql(string.Format("lgName='{0}' and lgPwd='{1}'", uname, pwd)));
  431. }
  432. public static SUser GetByWeixinMiniOpenId(string uid,string opid)
  433. {
  434. SUser SUser = FindFirst(Expression.Sql(string.Format("unionid='{0}' or miniopenid='{1}'", uid, opid)));
  435. return SUser;
  436. }
  437. public static SUser GetByWeixinMiniOpenId(string opid)
  438. {
  439. SUser SUser = FindFirst(Expression.Sql(string.Format("miniopenid='{0}'", opid)));
  440. return SUser;
  441. }
  442. public static void UserSave(SUser user, string ip, string ticket)
  443. {
  444. UserSave(user, true,ip,ticket);
  445. }
  446. public static void UserSave(SUser user, bool isFeed,string ip,string ticket)
  447. {
  448. user.RegisterTime = DateTime.Now;
  449. user.LoginIP = ip;
  450. user.Ticket = ticket;
  451. user.Create();
  452. }
  453. public static double GetUserMoney(int userId)
  454. {
  455. object obj = DbConn.ExecuteScalar("select usermoney from s_user where ID=" + userId);
  456. return Convert.ToDouble(obj);
  457. }
  458. public static string GetOpenId(int userId)
  459. {
  460. object obj = DbConn.ExecuteScalar("select miniopenid from s_user where ID=" + userId);
  461. if (obj != null) return obj.ToString();
  462. return "";
  463. }
  464. /// <summary>
  465. /// 查询是否已经存在当前用户
  466. /// </summary>
  467. /// <param name="userName"></param>
  468. /// <returns></returns>
  469. public static bool CheckExitsUser(string userName)
  470. {
  471. return CheckExits("UserName", userName);
  472. }
  473. public static bool CheckExitsNickName(string name)
  474. {
  475. string sql = "select count(0) from lc_user where username='{0}' or nickname='{0}'";
  476. object result = DbConn.ExecuteScalar(string.Format(sql, name, name));
  477. if (result == null) return false;
  478. if (Convert.ToInt32(result) > 0) return true;
  479. return false;
  480. }
  481. public static bool CheckExitsByWhere(string sWhere, string parms)
  482. {
  483. return Exists(sWhere, parms.Split(','));
  484. }
  485. /// <summary>
  486. /// 查询某个字段值是否存在
  487. /// </summary>
  488. /// <param name="fieldName"></param>
  489. /// <param name="fieldValue"></param>
  490. /// <returns></returns>
  491. public static bool CheckExits(string fieldName, string fieldValue)
  492. {
  493. return Exists(fieldName + "=?", fieldValue);
  494. }
  495. public static bool CheckUser(string key)
  496. {
  497. string sql = "select count(0) from lc_user where userName='{0}' or mobile='{0}' or email='{0}'";
  498. object result = DbConn.ExecuteScalar(string.Format(sql, key));
  499. if (result != null && Convert.ToInt32(result) > 0)
  500. return true;
  501. return false;
  502. }
  503. public static SUser GetUserBySomeCondition(string user, string mail, string mobile)
  504. {
  505. user = user == "" ? "$$$" : user;
  506. mobile = mobile == "" ? "$$$" : mobile;
  507. mail = mail == "" ? "$$$" : mail;
  508. return FindFirst(Expression.Sql(string.Format("UserName='{0}' or Mobile='{1}' or Email='{2}'", user, mobile, mail)));
  509. }
  510. /// <summary>
  511. /// 找回密码
  512. /// </summary>
  513. /// <param name="user"></param>
  514. /// <param name="email"></param>
  515. /// <returns></returns>
  516. public static SUser GetByUserMail(string user, string email)
  517. {
  518. //return Exists("Email=? and SecretSignal=?", email, secretSignal);
  519. SUser SUser = FindFirst(Expression.And(Expression.Eq("Email", email), Expression.Eq("UserName", user)));
  520. return SUser;
  521. }
  522. public static SUser GetByIdMail(int id, string email)
  523. {
  524. //return Exists("Email=? and SecretSignal=?", email, secretSignal);
  525. SUser SUser = FindFirst(Expression.And(Expression.Eq("Email", email), Expression.Eq("ID", id)));
  526. return SUser;
  527. }
  528. public static SUser GetByMail(string user)
  529. {
  530. //return Exists("Email=? and SecretSignal=?", email, secretSignal);
  531. SUser SUser = FindFirst(Expression.Or(Expression.Eq("Email", user), Expression.Eq("Mobile", user)));
  532. return SUser;
  533. }
  534. public static SUser GetUser(string user)
  535. {
  536. //return Exists("Email=? and SecretSignal=?", email, secretSignal);
  537. SUser SUser = FindFirst(Expression.Or(Expression.Eq("Email", user), Expression.Eq("Mobile", user)));
  538. return SUser;
  539. }
  540. /// <summary>
  541. /// 查询cookie的票据是否符合
  542. /// </summary>
  543. /// <param name="userName"></param>
  544. /// <param name="ticket"></param>
  545. /// <returns></returns>
  546. public static SUser GetUserByCookie(string userName, string ticket)
  547. {
  548. //FindFirst(Expression.And(Expression.Eq("UserName", userName), Expression.Eq("Ticket", ticket)));
  549. SUser SUser = FindFirst(Expression.Sql(string.Format("(Mobile='{0}' or Email='{0}') and Ticket='{1}'", userName, ticket)));
  550. return SUser;
  551. }
  552. /// <summary>
  553. /// 查询用户名密码
  554. /// </summary>
  555. /// <param name="key"></param>
  556. /// <param name="passWrod"></param>
  557. /// <returns></returns>
  558. public static SUser GetUserByPassWord(string key, string passWrod)
  559. {
  560. SUser SUser = FindFirst(Expression.Sql(string.Format("(Mobile='{0}' or Email='{0}') and PassWord='{1}'", key, passWrod)));
  561. return SUser;
  562. }
  563. public static SUser GetUserByUserId(string UserId, string passWrod)
  564. {
  565. SUser SUser = FindFirst(Expression.Sql(string.Format("ID='{0}'and PassWord='{1}'", UserId, passWrod)));
  566. return SUser;
  567. }
  568. public static SUser GetUserByUserId(string UserId)
  569. {
  570. SUser SUser = FindFirst(Expression.Sql(string.Format("ID='{0}'", UserId)));
  571. return SUser;
  572. }
  573. public static SUser GetUserByMobile(string mobile)
  574. {
  575. SUser SUser = FindFirst(Expression.Sql(string.Format("Mobile='{0}'", mobile)));
  576. return SUser;
  577. }
  578. public static void ResetPwd(string userIds)
  579. {
  580. string sql = "Update Lc_User set PassWord='4kTUiQQOdDM=' where ID in(" + userIds + ")";
  581. DbConn.ExecuteNonQuery(sql);
  582. }
  583. /// <summary>
  584. /// 验证手机
  585. /// </summary>
  586. /// <param name="userId"></param>
  587. /// <param name="mobile"></param>
  588. /// <param name="verifyCode"></param>
  589. /// <returns></returns>
  590. public static string VerifyMobile(int userId, string mobile, string verifyCode)
  591. {
  592. string errMsg = "";
  593. SqlParameter[] sqlParameter ={
  594. new SqlParameter("@userId", SqlDbType.Int, 4),
  595. new SqlParameter("@mobile", SqlDbType.VarChar, 20),
  596. new SqlParameter("@verifyCode", SqlDbType.VarChar, 10),
  597. new SqlParameter("@errMsg",SqlDbType.VarChar,100)};
  598. sqlParameter[0].Value = userId;
  599. sqlParameter[1].Value = mobile;
  600. sqlParameter[2].Value = verifyCode;
  601. sqlParameter[3].Direction = ParameterDirection.Output;
  602. DbConn.ExecuteScalar(CommandType.StoredProcedure, "sp_VerifyMobile", sqlParameter);
  603. errMsg = sqlParameter[3].Value.ToString();
  604. return errMsg;
  605. }
  606. /// <summary>
  607. /// 发送短信验证
  608. /// </summary>
  609. /// <param name="userId"></param>
  610. /// <param name="mobile"></param>
  611. /// <param name="verifyCode"></param>
  612. /// <returns></returns>
  613. public static string SendSmsVerify(int userId, string mobile, string verifyCode)
  614. {
  615. string errMsg = "";
  616. SqlParameter[] sqlParameter ={
  617. new SqlParameter("@userId", SqlDbType.Int, 4),
  618. new SqlParameter("@mobile", SqlDbType.VarChar, 20),
  619. new SqlParameter("@verifyCode", SqlDbType.VarChar, 10),
  620. new SqlParameter("@errMsg",SqlDbType.VarChar,100)};
  621. sqlParameter[0].Value = userId;
  622. sqlParameter[1].Value = mobile;
  623. sqlParameter[2].Value = verifyCode;
  624. sqlParameter[3].Direction = ParameterDirection.Output;
  625. DbConn.ExecuteScalar(CommandType.StoredProcedure, "sp_SendSms", sqlParameter);
  626. errMsg = sqlParameter[3].Value.ToString();
  627. return errMsg;
  628. }
  629. /// <summary>
  630. /// 用户登录
  631. /// </summary>
  632. /// <param name="key"></param>
  633. /// <param name="passWrod"></param>
  634. /// <returns></returns>
  635. public static SUser UserLogin(string key, string passWrod,string ip,string ticket)
  636. {
  637. SUser SUser = GetUserByPassWord(key, passWrod);
  638. //找不到
  639. if (SUser == null) return null;
  640. //更改用户登录状态
  641. SUser.LoginIP = ip; //CommonHelper.ClientIP;
  642. SUser.Ticket = ticket;// CommonHelper.GetLoginTicket(SUser.UserName, SUser.LoginIP);
  643. SUser.LastTime = DateTime.Now;
  644. SUser.Update();
  645. return SUser;
  646. }
  647. }
  648. }