UserClueServiceImpl.java 8.7 KB

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