UserClueServiceImpl.java 8.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242
  1. package com.goafanti.customer.service.impl;
  2. import com.goafanti.common.constant.AFTConstants;
  3. import com.goafanti.common.dao.*;
  4. import com.goafanti.common.enums.IdentityProcess;
  5. import com.goafanti.common.enums.UserLevel;
  6. import com.goafanti.common.error.BusinessException;
  7. import com.goafanti.common.model.*;
  8. import com.goafanti.common.utils.PasswordUtil;
  9. import com.goafanti.core.mybatis.BaseMybatisDao;
  10. import com.goafanti.core.shiro.token.TokenManager;
  11. import com.goafanti.customer.bo.InputUserClueBo;
  12. import com.goafanti.customer.bo.InputUserClueList;
  13. import com.goafanti.customer.bo.InputUserClueTransferBo;
  14. import com.goafanti.customer.bo.OutUserClueExcel;
  15. import com.goafanti.customer.service.UserClueService;
  16. import org.springframework.stereotype.Service;
  17. import javax.annotation.Resource;
  18. import java.util.Date;
  19. import java.util.List;
  20. import java.util.UUID;
  21. @Service
  22. public class UserClueServiceImpl extends BaseMybatisDao<UserMapper> implements UserClueService {
  23. @Resource
  24. private UserMapper userMapper;
  25. @Resource
  26. private UserMidMapper userMidMapper;
  27. @Resource
  28. private UserTransferLogMapper userTransferLogMapper;
  29. @Resource
  30. private AdminMapper adminMapper;
  31. @Resource
  32. private UserLockReleaseMapper userLockReleaseMapper;
  33. @Resource
  34. private UserNamesMapper userNamesMapper;
  35. @Resource
  36. private OrganizationContactBookMapper organizationContactBookMapper;
  37. @Resource
  38. private OrganizationIdentityMapper organizationIdentityMapper;
  39. @Resource(name = "passwordUtil")
  40. private PasswordUtil passwordUtil;
  41. @Override
  42. public Object list(InputUserClueList in) {
  43. if (TokenManager.hasRole(AFTConstants.SUPERADMIN)){
  44. in.setShiroType(0);
  45. }
  46. if (in.getShiroType()==null){
  47. in.setShiroType(2);
  48. }
  49. in.setAid(TokenManager.getAdminId());
  50. if(in.getEndTime()!=null)in.setEndTime(in.getEndTime()+ " 23:59:59");
  51. return findPage("selectUserClueList", "selectUserClueCount", in);
  52. }
  53. @Override
  54. public Object add(InputUserClueBo in) throws BusinessException{
  55. User user = new User();
  56. Date now = new Date();
  57. String aid= TokenManager.getAdminId();
  58. String uid = UUID.randomUUID().toString();
  59. String identifyId = UUID.randomUUID().toString();
  60. user.setId(uid);
  61. user.setSource(1);// 客户来源为录入
  62. user.setIdentifyName(in.getUserName());
  63. user.setNickname(in.getUserName());
  64. user.setUsername(in.getUserName());
  65. user.setStatus(AFTConstants.USER_STATUS_NORMAL);
  66. user.setShareType(1);
  67. user.setAid(TokenManager.getAdminId());
  68. user.setClueAid(TokenManager.getAdminId());
  69. // user.setAid("1");
  70. user.setType(1);
  71. user.setLvl(UserLevel.CERTIFIED.getCode());
  72. user.setCreateTime(now);
  73. user.setTransferTime(now);
  74. user.setUpdateTime(now);
  75. user.setSignBills(0);
  76. user.setNewChannel(0);
  77. user.setMobile(in.getContactMobile());
  78. user.setPassword(AFTConstants.INITIALPASSWORD);
  79. user.setInformationMaintainer(TokenManager.getAdminId());
  80. double f = 0;
  81. user.setIntegrity(f);
  82. // user.setInformationMaintainer("1");
  83. user.setChannel(0);
  84. user.setClueProcess(0);
  85. user.setClueStatus(1);
  86. user.setClueTime(now);
  87. passwordUtil.encryptPassword(user);
  88. String aname = adminMapper.queryById(TokenManager.getAdminId()).getName();
  89. //判定客户名称
  90. checkUserName(in);
  91. UserMid um=new UserMid();
  92. um.setAid(user.getAid());
  93. um.setUid(uid);
  94. userMidMapper.insertSelective(um);
  95. // 创建企业认证信息
  96. OrganizationIdentity oi = new OrganizationIdentity();
  97. oi.setUnitName(in.getUserName());
  98. oi.setId(identifyId);
  99. oi.setUid(uid);
  100. oi.setContacts(in.getContacts());
  101. oi.setContactMobile(in.getContactMobile());
  102. oi.setHighTechZone(AFTConstants.NO);
  103. oi.setInternational(AFTConstants.NO);
  104. oi.setListed(AFTConstants.NO);
  105. oi.setAuditStatus(IdentityProcess.SUCCESS.getCode()); // 实名企业
  106. organizationIdentityMapper.insert(oi);
  107. userMapper.insertSelective(user);
  108. UserNames un=new UserNames();
  109. un.setUid(uid);
  110. un.setAid(aid);
  111. un.setName(user.getNickname());
  112. userNamesMapper.insertSelective(un);
  113. // 新增企业联系人
  114. OrganizationContactBook cob = new OrganizationContactBook();
  115. cob.setAid(TokenManager.getAdminId());
  116. cob.setAname(aname);
  117. cob.setId(UUID.randomUUID().toString());
  118. cob.setUid(uid);
  119. cob.setName(in.getContacts());
  120. cob.setMobile(in.getContactMobile());
  121. cob.setMajor(AFTConstants.YES);
  122. organizationContactBookMapper.insert(cob);
  123. addUserTransferLog(user,22,null);
  124. return 1;
  125. }
  126. @Override
  127. public String pushImportUserClue(List<OutUserClueExcel> list) {
  128. StringBuilder msg = new StringBuilder();
  129. int size=0;
  130. for (OutUserClueExcel outUserClueExcel : list) {
  131. InputUserClueBo inUserClueBo = new InputUserClueBo();
  132. inUserClueBo.setUserName(outUserClueExcel.getNickname());
  133. inUserClueBo.setContactMobile(outUserClueExcel.getContactMobile());
  134. inUserClueBo.setContacts(outUserClueExcel.getContacts());
  135. try {
  136. add(inUserClueBo);
  137. }catch (Exception e){
  138. size++;
  139. msg.append("客户[").append(outUserClueExcel.getNickname()).append("]已存在系统中,导入失改。 ");
  140. }
  141. }
  142. if (size==0)msg.append("客户新增成功");
  143. return msg.toString();
  144. }
  145. @Override
  146. public Object updateTransfer(InputUserClueTransferBo in) {
  147. String[] split = in.getUid().split(",");
  148. for (String uid : split) {
  149. userTransfer(uid,in);
  150. }
  151. return 1;
  152. }
  153. private void userTransfer(String uid,InputUserClueTransferBo in) {
  154. User user = userMapper.queryById(uid);
  155. Date date = new Date();
  156. if (!user.getAid().equals(TokenManager.getAdminId())){
  157. throw new BusinessException("只能操作所属客户");
  158. }
  159. String aid=in.getTransferId();
  160. int type = 0;
  161. if (in.getType()==0){
  162. user.setAid(in.getTransferId());
  163. user.setClueProcess(1);
  164. user.setClueTransferTime(date);
  165. type=23;
  166. }else if (in.getType()==1){
  167. user.setClueProcess(2);
  168. user.setAid(user.getClueAid());
  169. type=24;
  170. aid=user.getClueAid();
  171. }else if (in.getType()==2){
  172. user.setClueProcess(3);
  173. user.setTransferTime(date);
  174. userMapper.update(user);
  175. type=25;
  176. }else if (in.getType()==3){
  177. user.setClueProcess(4);
  178. user.setShareType(0);
  179. user.setTransferTime(date);
  180. type=26;
  181. if (userLockReleaseMapper.selectByUidGetCount(aid,user.getId())==0){
  182. UserLockRelease ulr=new UserLockRelease();
  183. ulr.setId(UUID.randomUUID().toString());
  184. ulr.setAid(TokenManager.getAdminId());
  185. ulr.setUid(user.getId());
  186. ulr.setLockTime(date);
  187. ulr.setStatus(0);
  188. ulr.setType(0);
  189. userLockReleaseMapper.insert(ulr);
  190. }
  191. organizationContactBookMapper.updateAdmin(user.getId(),TokenManager.getAdminId());
  192. }
  193. userMapper.update(user);
  194. addUserTransferLog(user,type,aid);
  195. }
  196. /**
  197. *
  198. * @param user 客户信息
  199. * @param type 22=导入线索客户,23=转交线索客户,24=退回线索客户,25=移除线索客户,26=领取线索客户
  200. */
  201. private void addUserTransferLog(User user,Integer type,String transferId) {
  202. UserTransferLog u = new UserTransferLog();
  203. u.setUid(user.getId());
  204. u.setAid(TokenManager.getAdminId());
  205. if (type==23||type==24){
  206. u.setTakeAid(transferId);
  207. }
  208. u.setType(type);
  209. userTransferLogMapper.insertSelective(u);
  210. }
  211. private void checkUserName(InputUserClueBo in) throws BusinessException{
  212. if (!userMapper.checkUser("", in.getUserName(), "", 1, null, null).isEmpty())
  213. throw new BusinessException("客户已经存在");
  214. String name2=null;
  215. if (in.getUserName().contains("(")){
  216. name2=in.getUserName().replace("(","(").replace(")",")");
  217. }else if (in.getUserName().contains("(")){
  218. name2=in.getUserName().replace("(","(").replace(")",")");
  219. }
  220. if (name2!=null){
  221. if (!userMapper.checkUser("", name2, "", 1, null, null).isEmpty())
  222. throw new BusinessException("客户已经存在");
  223. }
  224. }
  225. }