CmUserService.java 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296
  1. package com.caimei.modules.user.service;
  2. import com.caimei.constants.UserIdentity;
  3. import com.caimei.constants.UserPermission;
  4. import com.caimei.constants.UserType;
  5. import com.caimei.form.JsonForm;
  6. import com.caimei.modules.order.entity.OrderUserInfo;
  7. import com.caimei.modules.user.dao.CmBindDao;
  8. import com.caimei.modules.user.dao.CmUserDao;
  9. import com.caimei.modules.user.entity.CmBind;
  10. import com.caimei.modules.user.entity.CmUser;
  11. import com.caimei.modules.user.utils.ValidateUtil;
  12. import com.thinkgem.jeesite.common.persistence.Page;
  13. import com.thinkgem.jeesite.common.service.CrudService;
  14. import com.thinkgem.jeesite.common.utils.StringUtils;
  15. import org.springframework.beans.factory.annotation.Autowired;
  16. import org.springframework.stereotype.Service;
  17. import org.springframework.transaction.annotation.Transactional;
  18. import javax.annotation.Resource;
  19. import java.util.HashMap;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * 用户Service
  24. *
  25. * @author ZCP
  26. * @version 2017-10-10
  27. */
  28. @Service
  29. @Transactional(readOnly = true)
  30. public class CmUserService extends CrudService<CmUserDao, CmUser> {
  31. @Autowired
  32. CmUserDao cmUserDao;
  33. @Resource
  34. CmBindDao cmBindDao;
  35. public CmUser get(String id) {
  36. return super.get(id);
  37. }
  38. public List<CmUser> findList(CmUser cmUser) {
  39. return super.findList(cmUser);
  40. }
  41. // todo lwt 普通用户管理操作
  42. // public List<CmUser> findAllPersonalUser() {
  43. // return cmUserDao.findAllPersonalUser();
  44. // }
  45. //
  46. // public List<CmUser> findUserByRegisterType(Integer registerUserTypeID) {
  47. // return cmUserDao.findUserByRegisterType(registerUserTypeID);
  48. // }
  49. //
  50. public Page<CmUser> findPage(Page<CmUser> page, CmUser cmUser) {
  51. return super.findPage(page, cmUser);
  52. }
  53. @Transactional(readOnly = false)
  54. public void save(CmUser cmUser) {
  55. super.save(cmUser);
  56. }
  57. @Transactional(readOnly = false)
  58. public void insert(CmUser cmUser) {
  59. cmUserDao.insert(cmUser);
  60. }
  61. @Transactional(readOnly = false)
  62. public void delete(CmUser cmUser) {
  63. super.delete(cmUser);
  64. }
  65. @Transactional(readOnly = false)
  66. public void update(CmUser cmUser) {
  67. cmUserDao.update(cmUser);
  68. }
  69. @Transactional(readOnly = false)
  70. public void unBindClub(CmUser cmUser) {
  71. cmUser.setCompanyUserID(null); //置空所属企业用户对应UserID
  72. cmUser.setName(null);//置空组织名称
  73. cmUser.setUserIdentity(UserIdentity.NORMAL_USER.getCode());
  74. cmUser.setUserPermission(UserPermission.NORMAL.getCode());//用户权限改成普通人
  75. cmUser.setRegisterUserTypeID(UserType.VISITOR.getCode() + "");//设为游离员工
  76. cmUser.setClubStatus(null);
  77. cmUser.setClubID(null);
  78. cmUserDao.update(cmUser);
  79. }
  80. @Transactional(readOnly = false)
  81. public void unBindShop(CmUser cmUser) {
  82. cmUser.setCompanyUserID(null); //置空所属企业用户对应UserID
  83. cmUser.setName(null);//置空组织名称
  84. cmUser.setUserIdentity(UserIdentity.NORMAL_USER.getCode());
  85. cmUser.setUserPermission(UserPermission.NORMAL.getCode());//用户权限改成普通人
  86. cmUser.setRegisterUserTypeID(UserType.VISITOR.getCode() + "");//设为游离员工
  87. cmUser.setManufacturerStatus(null);
  88. cmUser.setShopID(null);
  89. cmUserDao.update(cmUser);
  90. }
  91. @Transactional(readOnly = false)
  92. public void unBindWeChat(CmUser cmUser) {
  93. cmUser.setOpenID(null);//解除与微信的关联
  94. cmUserDao.update(cmUser);
  95. List<CmBind> cmbinds = cmBindDao.findCmbindByUserId(cmUser.getUserID());
  96. CmBind cmbind = cmbinds.get(0);
  97. cmbind.setUserID(null);//微信与用户解绑
  98. cmbind.setRegisterUserTypeID(UserType.WXUSER.getCode() + "");//设为微信游客
  99. cmBindDao.update(cmbind);
  100. }
  101. /**
  102. * 查询员工(不包括企业用户)
  103. *
  104. * @param companyUserID
  105. * @return
  106. */
  107. public List<CmUser> findByCompanyUserID(Integer companyUserID) {
  108. return cmUserDao.findByCompanyUserID(companyUserID);
  109. }
  110. /**
  111. * 通过企业用户ID 更新员工状态
  112. *
  113. * @param clubStatus
  114. * @param manufacturerStatus
  115. * @param companyUserID
  116. */
  117. @Transactional(readOnly = false)
  118. public void updateEmployeeStatus(Integer userPermission, String clubStatus, String manufacturerStatus, String tipStatus, Integer companyUserID) {
  119. cmUserDao.updateEmployeeStatus(userPermission, clubStatus, manufacturerStatus, tipStatus, companyUserID);
  120. }
  121. @Transactional(readOnly = false)
  122. public void updateUserStatus(String manufacturerStatus, Integer userID, String validFlag) {
  123. cmUserDao.updateUserStatus(manufacturerStatus, userID, validFlag);
  124. }
  125. /**
  126. * 通过企业用户ID 更新员工权限
  127. *
  128. * @param companyUserID
  129. */
  130. @Transactional(readOnly = false)
  131. public void updateEmployeePermission(Integer userPermission, Integer companyUserID) {
  132. cmUserDao.updateEmployeePermission(userPermission, companyUserID);
  133. }
  134. /**
  135. * 企业审核未通过 使申请者变为普通用户
  136. *
  137. * @return
  138. */
  139. @Transactional(readOnly = false)
  140. public void initEmployeeInfo() {
  141. cmUserDao.initEmployeeInfo();
  142. }
  143. /**
  144. * 根据手机号码查询用户
  145. *
  146. * @param mobile
  147. * @return
  148. */
  149. @Transactional(readOnly = true)
  150. public CmUser findUserByMobile(String mobile) {
  151. return cmUserDao.findUserByMobile(mobile);
  152. }
  153. /**
  154. * 通过企业手机号码查询用户
  155. *
  156. * @param cmUser
  157. * @return
  158. */
  159. @Transactional(readOnly = true)
  160. public List<CmUser> findListBuyBindMobile(CmUser cmUser) {
  161. return cmUserDao.findListBuyBindMobile(cmUser);
  162. }
  163. /**
  164. * @return
  165. * @Author ye.qin
  166. * @Description //TODO 修改用户的可用余额
  167. * @Date 2019\5\23 0023 13:56
  168. * @Param
  169. */
  170. @Transactional(readOnly = false)
  171. public void updateAbleUserMoney1(OrderUserInfo user) {
  172. cmUserDao.updateAbleUserMoney(user);
  173. }
  174. /**
  175. * @Author ye.qin
  176. * @Description //TODO 设置余额
  177. * @Date 2019\6\20 0020 16:40
  178. * @Param
  179. * @return
  180. */
  181. // @Transactional(readOnly = false)
  182. // public void setBalance(CmUser user, Double amount) {
  183. // if(UserType.isMaker(Integer.parseInt(user.getRegisterUserTypeID()))){
  184. // return;
  185. // }
  186. // if(UserType.isClub(Integer.parseInt(user.getRegisterUserTypeID()))){
  187. // user = get(user.getCompanyUserID().toString());
  188. // }
  189. // logger.info("----------------------->原余额:" + user.getUserMoney() + "==原可用余额:"+user.getAbleUserMoney());
  190. // //减操作不更新可用余额
  191. // if(amount < 0d){
  192. // user.setUserMoney(user.getUserMoney()+amount);
  193. // }else{
  194. // user.setUserMoney(user.getUserMoney()+amount);
  195. // user.setAbleUserMoney(user.getAbleUserMoney()+amount);
  196. // }
  197. // logger.info("----------------------->设置余额:" + amount);
  198. // logger.info("----------------------->当前余额:" + user.getUserMoney() + "==当前可用余额:"+user.getAbleUserMoney());
  199. // cmUserDao.updateMoney(user);
  200. // }
  201. /**
  202. * @return
  203. * @Author ye.qin
  204. * @Description //TODO 获取用户余额
  205. * @Date 2019\6\25 0025 17:36
  206. * @Param
  207. */
  208. @Transactional(readOnly = true)
  209. public OrderUserInfo getBalance(OrderUserInfo bean) {
  210. CmUser user = get(bean.getUserId().toString());
  211. if (user != null) {
  212. if (user.getRegisterUserTypeID() != null) {
  213. //协销
  214. if (UserType.isMaker(Integer.parseInt(user.getRegisterUserTypeID()))) {
  215. bean.setUserMoney(0d);
  216. bean.setAbleUserMoney(0d);
  217. return bean;
  218. }
  219. //会所
  220. if (UserType.isClub(Integer.parseInt(user.getRegisterUserTypeID()))) {
  221. user = get(user.getUserID().toString());
  222. }
  223. }
  224. bean.setUserMoney(user.getUserMoney());
  225. bean.setAbleUserMoney(user.getAbleUserMoney());
  226. }
  227. return bean;
  228. }
  229. /**
  230. * 编辑用户信息验证新手机号是否可用
  231. */
  232. public Map<String, String> checkMobile(String mobile, Integer userID, String source) {
  233. Map<String, String> result = new HashMap<>(2);
  234. if (StringUtils.isEmpty(mobile)) {
  235. result.put("code", "-1");
  236. result.put("msg", "手机号不能为空");
  237. return result;
  238. }
  239. List<CmUser> users = cmUserDao.selectByMobileOrEmail(mobile, source);
  240. if (users != null && users.size() > 0) {
  241. for (int i = 0; i < users.size(); i++) {
  242. //查到的用户不是自己
  243. if (!users.get(i).getUserID().equals(userID)) {
  244. //获取不可用原因
  245. JsonForm validReason = ValidateUtil.findValidReason(mobile, users.get(i));
  246. result.put("code", "-1");
  247. result.put("msg", validReason.getReturn_message());
  248. } else {
  249. //查到的用户是自己
  250. if ((mobile.equals(users.get(i).getBindMobile()) || mobile.equals(users.get(i).getEmail()))) {
  251. //手机号与机构/供应商联系人手机号相同
  252. result.put("code", "1");
  253. result.put("msg", "该手机号可以使用");
  254. break;
  255. } else {
  256. //手机号与机构/供应商运营人员手机号相同
  257. JsonForm validReason = ValidateUtil.findValidReason(mobile, users.get(i));
  258. result.put("code", "-1");
  259. result.put("msg", validReason.getReturn_message());
  260. }
  261. }
  262. }
  263. } else {
  264. result.put("code", "1");
  265. result.put("msg", "该账号可以注册");
  266. }
  267. return result;
  268. }
  269. }