CmUserService.java 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194
  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.CmUserDao;
  8. import com.caimei.modules.user.entity.CmUser;
  9. import com.caimei.modules.user.utils.ValidateUtil;
  10. import com.thinkgem.jeesite.common.persistence.Page;
  11. import com.thinkgem.jeesite.common.service.CrudService;
  12. import com.thinkgem.jeesite.common.utils.StringUtils;
  13. import org.springframework.stereotype.Service;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import javax.annotation.Resource;
  16. import java.util.HashMap;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * 用户Service
  21. *
  22. * @author ZCP
  23. * @version 2017-10-10
  24. */
  25. @Service
  26. @Transactional(readOnly = true)
  27. public class CmUserService extends CrudService<CmUserDao, CmUser> {
  28. @Resource
  29. private CmUserDao cmUserDao;
  30. public CmUser get(String id) {
  31. return super.get(id);
  32. }
  33. public List<CmUser> findList(CmUser cmUser) {
  34. return super.findList(cmUser);
  35. }
  36. public Page<CmUser> findPage(Page<CmUser> page, CmUser cmUser) {
  37. return super.findPage(page, cmUser);
  38. }
  39. @Transactional(readOnly = false)
  40. public void save(CmUser cmUser) {
  41. super.save(cmUser);
  42. }
  43. @Transactional(readOnly = false)
  44. public void insert(CmUser cmUser) {
  45. cmUserDao.insert(cmUser);
  46. }
  47. @Transactional(readOnly = false)
  48. public void delete(CmUser cmUser) {
  49. super.delete(cmUser);
  50. }
  51. @Transactional(readOnly = false)
  52. public void update(CmUser cmUser) {
  53. cmUserDao.update(cmUser);
  54. }
  55. @Transactional(readOnly = false)
  56. public void unBindClub(CmUser cmUser) {
  57. cmUser.setName(null);//置空组织名称
  58. cmUser.setUserIdentity(UserIdentity.NORMAL_USER.getCode());
  59. cmUser.setRegisterUserTypeID(UserType.VISITOR.getCode() + "");//设为游离员工
  60. cmUser.setClubID(null);
  61. cmUserDao.update(cmUser);
  62. }
  63. @Transactional(readOnly = false)
  64. public void unBindShop(CmUser cmUser) {
  65. cmUser.setName(null);//置空组织名称
  66. cmUser.setUserIdentity(UserIdentity.NORMAL_USER.getCode());
  67. cmUser.setRegisterUserTypeID(UserType.VISITOR.getCode() + "");//设为游离员工
  68. cmUser.setManufacturerStatus(null);
  69. cmUser.setShopID(null);
  70. cmUserDao.update(cmUser);
  71. }
  72. /**
  73. * 查询员工(不包括企业用户)
  74. *
  75. * @param companyUserID
  76. * @return
  77. */
  78. public List<CmUser> findByCompanyUserID(Integer companyUserID) {
  79. return cmUserDao.findByCompanyUserID(companyUserID);
  80. }
  81. @Transactional(readOnly = false)
  82. public void updateUserStatus(String manufacturerStatus, Integer userID, String validFlag) {
  83. cmUserDao.updateUserStatus(manufacturerStatus, userID, validFlag);
  84. }
  85. /**
  86. * 根据手机号码查询用户
  87. *
  88. * @param mobile
  89. * @return
  90. */
  91. @Transactional(readOnly = true)
  92. public CmUser findUserByMobile(String mobile) {
  93. return cmUserDao.findUserByMobile(mobile);
  94. }
  95. /**
  96. * 通过企业手机号码查询用户
  97. *
  98. * @param cmUser
  99. * @return
  100. */
  101. @Transactional(readOnly = true)
  102. public List<CmUser> findListBuyBindMobile(CmUser cmUser) {
  103. return cmUserDao.findListBuyBindMobile(cmUser);
  104. }
  105. /**
  106. * @return
  107. * @Author ye.qin
  108. * @Description 获取用户余额
  109. * @Date 2019\6\25 0025 17:36
  110. * @Param
  111. */
  112. @Transactional(readOnly = true)
  113. public OrderUserInfo getBalance(OrderUserInfo bean) {
  114. CmUser user = get(bean.getUserId().toString());
  115. if (user != null) {
  116. if (user.getRegisterUserTypeID() != null) {
  117. //协销
  118. if (UserType.isMaker(Integer.parseInt(user.getRegisterUserTypeID()))) {
  119. bean.setUserMoney(0d);
  120. bean.setAbleUserMoney(0d);
  121. return bean;
  122. }
  123. //会所
  124. if (UserType.isClub(Integer.parseInt(user.getRegisterUserTypeID()))) {
  125. user = get(user.getUserID().toString());
  126. }
  127. }
  128. bean.setUserMoney(user.getUserMoney());
  129. bean.setAbleUserMoney(user.getAbleUserMoney());
  130. }
  131. return bean;
  132. }
  133. /**
  134. * 编辑用户信息验证新手机号是否可用
  135. */
  136. public Map<String, String> checkMobile(String mobile, Integer userID, String source) {
  137. Map<String, String> result = new HashMap<>(2);
  138. if (StringUtils.isEmpty(mobile)) {
  139. result.put("code", "-1");
  140. result.put("msg", "手机号不能为空");
  141. return result;
  142. }
  143. List<CmUser> users = cmUserDao.selectByMobileOrEmail(mobile, source);
  144. if (users != null && users.size() > 0) {
  145. for (int i = 0; i < users.size(); i++) {
  146. //查到的用户不是自己
  147. if (!users.get(i).getUserID().equals(userID)) {
  148. //获取不可用原因
  149. JsonForm validReason = ValidateUtil.findValidReason(mobile, users.get(i));
  150. result.put("code", "-1");
  151. result.put("msg", validReason.getReturn_message());
  152. } else {
  153. //查到的用户是自己
  154. if ((mobile.equals(users.get(i).getBindMobile()) || mobile.equals(users.get(i).getEmail()))) {
  155. //手机号与机构/供应商联系人手机号相同
  156. result.put("code", "1");
  157. result.put("msg", "该手机号可以使用");
  158. break;
  159. } else {
  160. //手机号与机构/供应商运营人员手机号相同
  161. JsonForm validReason = ValidateUtil.findValidReason(mobile, users.get(i));
  162. result.put("code", "-1");
  163. result.put("msg", validReason.getReturn_message());
  164. }
  165. }
  166. }
  167. } else {
  168. result.put("code", "1");
  169. result.put("msg", "该账号可以注册");
  170. }
  171. return result;
  172. }
  173. }