CustomerServiceImpl.java 43 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011
  1. package com.goafanti.customer.service.impl;
  2. import java.lang.reflect.InvocationTargetException;
  3. import java.text.ParseException;
  4. import java.text.SimpleDateFormat;
  5. import java.util.Date;
  6. import java.util.HashMap;
  7. import java.util.HashSet;
  8. import java.util.List;
  9. import java.util.Map;
  10. import java.util.Set;
  11. import java.util.UUID;
  12. import javax.annotation.Resource;
  13. import org.apache.commons.beanutils.BeanUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.stereotype.Service;
  16. import org.springframework.transaction.annotation.Transactional;
  17. import com.goafanti.common.bo.Error;
  18. import com.goafanti.common.constant.AFTConstants;
  19. import com.goafanti.common.constant.ErrorConstants;
  20. import com.goafanti.common.dao.BusinessGlossoryMapper;
  21. import com.goafanti.common.dao.OrganizationContactBookMapper;
  22. import com.goafanti.common.dao.OrganizationIdentityMapper;
  23. import com.goafanti.common.dao.UserBusinessMapper;
  24. import com.goafanti.common.dao.UserFollowBusinessMapper;
  25. import com.goafanti.common.dao.UserFollowMapper;
  26. import com.goafanti.common.dao.UserIdentityMapper;
  27. import com.goafanti.common.dao.UserMapper;
  28. import com.goafanti.common.enums.CustomerStatusFiled;
  29. import com.goafanti.common.enums.DeleteStatus;
  30. import com.goafanti.common.enums.IdentityProcess;
  31. import com.goafanti.common.enums.MemberStatus;
  32. import com.goafanti.common.enums.UserLevel;
  33. import com.goafanti.common.enums.UserType;
  34. import com.goafanti.common.error.BusinessException;
  35. import com.goafanti.common.model.Admin;
  36. import com.goafanti.common.model.OrganizationContactBook;
  37. import com.goafanti.common.model.OrganizationIdentity;
  38. import com.goafanti.common.model.User;
  39. import com.goafanti.common.model.UserBusiness;
  40. import com.goafanti.common.model.UserFollow;
  41. import com.goafanti.common.model.UserFollowBusiness;
  42. import com.goafanti.common.model.UserIdentity;
  43. import com.goafanti.common.utils.BeanUtilsExt;
  44. import com.goafanti.common.utils.PasswordUtil;
  45. import com.goafanti.common.utils.StringUtils;
  46. import com.goafanti.core.mybatis.BaseMybatisDao;
  47. import com.goafanti.core.mybatis.page.Pagination;
  48. import com.goafanti.core.shiro.token.TokenManager;
  49. import com.goafanti.customer.bo.BusinessListBo;
  50. import com.goafanti.customer.bo.BussinessFollowBo;
  51. import com.goafanti.customer.bo.CustomerExcelBo;
  52. import com.goafanti.customer.bo.CustomerListIn;
  53. import com.goafanti.customer.bo.CustomerListOut;
  54. import com.goafanti.customer.bo.CustomerOrganizationDetailBo;
  55. import com.goafanti.customer.bo.CustomerPersonalDetailBo;
  56. import com.goafanti.customer.bo.CustomerSimpleBo;
  57. import com.goafanti.customer.bo.FollowBusinessBo;
  58. import com.goafanti.customer.bo.FollowListBo;
  59. import com.goafanti.customer.bo.StatisticBo;
  60. import com.goafanti.customer.service.CustomerService;
  61. @Service
  62. public class CustomerServiceImpl extends BaseMybatisDao<UserMapper> implements CustomerService {
  63. @Autowired
  64. private UserMapper userMapper;
  65. @Autowired
  66. private UserIdentityMapper userIdentityMapper;
  67. @Autowired
  68. private OrganizationIdentityMapper organizationIdentityMapper;
  69. @Autowired
  70. private OrganizationContactBookMapper organizationContactBookMapper;
  71. @Resource(name = "passwordUtil")
  72. private PasswordUtil passwordUtil;
  73. @Resource
  74. private UserFollowMapper userFollowMapper;
  75. @Resource
  76. private UserBusinessMapper userBusinessMapper;
  77. @Resource
  78. private UserFollowBusinessMapper userFollowBusinessMapper;
  79. @Resource
  80. private BusinessGlossoryMapper businessGlossoryMapper;
  81. @Override
  82. public Pagination<CustomerListOut> listPrivatePersonalCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
  83. cli.setType(AFTConstants.USER_TYPE_PERSONAL);
  84. cli.setAid(TokenManager.getAdminId());
  85. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
  86. Map<String,Object> params = disposeParams(cli);
  87. @SuppressWarnings("unchecked")
  88. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectPersonalCustomerList","selectPersonalCustomerCount",params,pageNo,pageSize);
  89. return list;
  90. }
  91. @Override
  92. public Pagination<CustomerListOut> listPublicPersonalCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
  93. cli.setType(AFTConstants.USER_TYPE_PERSONAL);
  94. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PUBLIC));
  95. Map<String,Object> params = disposeParams(cli);
  96. @SuppressWarnings("unchecked")
  97. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectPersonalCustomerList","selectPersonalCustomerCount",params,pageNo,pageSize);
  98. return list;
  99. }
  100. @Override
  101. public Pagination<CustomerListOut> listAllPersonalCustomer(CustomerListIn cli, Integer pageNo, Integer pageSize) {
  102. cli.setType(AFTConstants.USER_TYPE_PERSONAL);
  103. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
  104. Map<String,Object> params = disposeParams(cli);
  105. if(null!=cli.getExpertAudit())params.put("expertAudit", cli.getExpertAudit());
  106. @SuppressWarnings("unchecked")
  107. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectPersonalCustomerList","selectPersonalCustomerCount",params,pageNo,pageSize);
  108. return list;
  109. }
  110. @Override
  111. public Pagination<CustomerListOut> listAllManagePersonalCustomer(CustomerListIn cli, Integer pageNo, Integer pageSize) {
  112. cli.setType(AFTConstants.USER_TYPE_PERSONAL);
  113. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
  114. Map<String,Object> params = disposeParams(cli);
  115. @SuppressWarnings("unchecked")
  116. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectManagePersonalCustomerList","selectManagePersonalCustomerCount",params,pageNo,pageSize);
  117. return list;
  118. }
  119. @Override
  120. public Pagination<CustomerListOut> listPrivateOrganizationCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
  121. cli.setType(AFTConstants.USER_TYPE_ORGANIZATION);
  122. cli.setAid(TokenManager.getAdminId());
  123. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
  124. Map<String,Object> params = disposeParams(cli);
  125. @SuppressWarnings("unchecked")
  126. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectOrganizationCustomerList","selectOrganizationCustomerCount",params,pageNo,pageSize);
  127. return list;
  128. }
  129. @Override
  130. public Pagination<CustomerListOut> listPublicOrganizationCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
  131. cli.setType(AFTConstants.USER_TYPE_ORGANIZATION);
  132. /*cli.setAid(TokenManager.getAdminId());*/
  133. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PUBLIC));
  134. Map<String,Object> params = disposeParams(cli);
  135. @SuppressWarnings("unchecked")
  136. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectOrganizationCustomerList","selectOrganizationCustomerCount",params,pageNo,pageSize);
  137. return list;
  138. }
  139. @Override
  140. public Pagination<CustomerListOut> listAllOrganizationCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
  141. cli.setType(AFTConstants.USER_TYPE_ORGANIZATION);
  142. Map<String,Object> params = disposeParams(cli);
  143. @SuppressWarnings("unchecked")
  144. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectOrganizationCustomerList","selectOrganizationCustomerCount",params,pageNo,pageSize);
  145. return list;
  146. }
  147. @Override
  148. public Pagination<CustomerListOut> listAllManageOrganizationCustomer(CustomerListIn cli, Integer pageNo,Integer pageSize) {
  149. cli.setType(AFTConstants.USER_TYPE_ORGANIZATION);
  150. cli.setShareType(String.valueOf(AFTConstants.USER_SHARE_PRIVATE));
  151. Map<String,Object> params = disposeParams(cli);
  152. @SuppressWarnings("unchecked")
  153. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("selectManageOrganizationCustomerList","selectManageOrganizationCustomerCount",params,pageNo,pageSize);
  154. return list;
  155. }
  156. private Map<String,Object> disposeParams(CustomerListIn cli){
  157. Map<String,Object> params = new HashMap<String, Object>();
  158. if(StringUtils.isNotBlank(cli.getType())) params.put("type", Integer.parseInt(cli.getType()));
  159. if(StringUtils.isNotBlank(cli.getShareType())) params.put("shareType", Integer.parseInt(cli.getShareType()));
  160. if(StringUtils.isNotBlank(cli.getName())) params.put("name", cli.getName());
  161. if(StringUtils.isNotBlank(cli.getProvince())) params.put("province", Integer.parseInt(cli.getProvince()));
  162. if(StringUtils.isNotBlank(cli.getCity())) params.put("city", Integer.parseInt(cli.getCity()));
  163. if(StringUtils.isNotBlank(cli.getArea())) params.put("area", Integer.parseInt(cli.getArea()));
  164. if(StringUtils.isNotBlank(cli.getContacts())) params.put("contacts", cli.getContacts());
  165. if(StringUtils.isNotBlank(cli.getContactMobile())) params.put("contactMobile", cli.getContactMobile());
  166. if(StringUtils.isNotBlank(cli.getStartDate())) params.put("startDate", cli.getStartDate());
  167. if(StringUtils.isNotBlank(cli.getEndDate())) params.put("endDate", cli.getEndDate());
  168. if(StringUtils.isNotBlank(cli.getExpert())) params.put("expert", Integer.parseInt(cli.getExpert()));
  169. if(StringUtils.isNotBlank(cli.getIndustry())) params.put("industry", Integer.parseInt(cli.getIndustry()));
  170. if(StringUtils.isNotBlank(cli.getInternational())) params.put("international", Integer.parseInt(cli.getInternational()));
  171. if(StringUtils.isNotBlank(cli.getAuditStatus())) params.put("auditStatus", Integer.parseInt(cli.getAuditStatus()));
  172. if(StringUtils.isNotBlank(cli.getBusinessAudit())) params.put("businessAudit", Integer.parseInt(cli.getBusinessAudit()));
  173. if(StringUtils.isNotBlank(cli.getCurrentMemberStatus())) params.put("currentMemberStatus", Integer.parseInt(cli.getCurrentMemberStatus()));
  174. if(StringUtils.isNotBlank(cli.getLvl())) params.put("lvl", Integer.parseInt(cli.getLvl()));
  175. if(StringUtils.isNotBlank(cli.getListed())) params.put("listed", Integer.parseInt(cli.getListed()));
  176. if(StringUtils.isNotBlank(cli.getHighTechZone())) params.put("highTechZone", Integer.parseInt(cli.getHighTechZone()));
  177. if(StringUtils.isNotBlank(cli.getExpert())) params.put("expert", Integer.parseInt(cli.getExpert()));
  178. if(StringUtils.isNotBlank(cli.getCelebrity())) params.put("celebrity", Integer.parseInt(cli.getCelebrity()));
  179. if(StringUtils.isNotBlank(cli.getAid())) params.put("aid", cli.getAid());
  180. if(StringUtils.isNotBlank(cli.getIsMember())) params.put("isMember", Integer.parseInt(cli.getIsMember()));
  181. if(StringUtils.isNotBlank(cli.getStatus())) params.put("status", Integer.parseInt(cli.getStatus()));
  182. if(StringUtils.isNotBlank(cli.getSocietyTag())) params.put("societyTag", cli.getSocietyTag());
  183. if(StringUtils.isNotBlank(cli.getStartDate())) params.put("startDate", cli.getStartDate()+" 00:00:00");
  184. if(StringUtils.isNotBlank(cli.getEndDate())) params.put("endDate", cli.getEndDate()+" 23:59:59");
  185. return params;
  186. }
  187. @Override
  188. public List<CustomerSimpleBo> findCustomerByName(String name) {
  189. return userMapper.findCustomerByName(name);
  190. }
  191. @Override
  192. public int judgeCustomerByName(String name) {
  193. return userMapper.judgeCustomerByName(name);
  194. }
  195. @Override
  196. @Transactional
  197. public int addCustomer(String name, String contacts, String contactMobile, Integer type,String societyTag) throws BusinessException{
  198. User user = new User();
  199. Date now = new Date();
  200. String uid = UUID.randomUUID().toString();
  201. String identifyId = UUID.randomUUID().toString();
  202. user.setId(uid);
  203. user.setIdentifyName(name);
  204. user.setSource(AFTConstants.USER_SOURCE_CREATE);
  205. user.setNickname(name);
  206. user.setStatus(AFTConstants.USER_STATUS_NORMAL);
  207. user.setShareType(AFTConstants.NO);
  208. user.setAid(TokenManager.getAdminId());
  209. user.setType(type);
  210. user.setCurrentMemberStatus(MemberStatus.NORMAL.getCode());
  211. user.setLvl(UserLevel.CERTIFIED.getCode());
  212. user.setSocietyTag(societyTag);
  213. user.setCreateTime(now);
  214. user.setUpdateTime(now);
  215. user.setMobile(contactMobile);
  216. user.setPassword(AFTConstants.INITIALPASSWORD);
  217. user.setIsMember(AFTConstants.NO);
  218. user.setBusinessAudit(AFTConstants.NO);
  219. passwordUtil.encryptPassword(user);
  220. if(type == UserType.PERSONAL.getCode()){
  221. if(userMapper.checkUser("", "", contactMobile, type,null,null).size()>0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, name,""));
  222. UserIdentity ui = new UserIdentity();
  223. ui.setId(identifyId);
  224. ui.setUid(uid);
  225. ui.setContacts(contacts);
  226. ui.setContactMobile(contactMobile);
  227. ui.setUsername(name);
  228. ui.setExpert(AFTConstants.NO);
  229. ui.setCelebrity(AFTConstants.NO);
  230. ui.setInternational(AFTConstants.NO);
  231. ui.setAuditStatus(IdentityProcess.SUCCESS.getCode());//认证个人
  232. userIdentityMapper.insert(ui);
  233. }else if(type == UserType.ORGANIZATION.getCode()){
  234. if(userMapper.judgeCustomerByName(name)>0) throw new BusinessException(new Error(ErrorConstants.CUSTOMER_ALREADY_EXIST, name,""));
  235. // 创建企业认证信息
  236. OrganizationIdentity oi = new OrganizationIdentity();
  237. oi.setUnitName(name);
  238. oi.setId(identifyId);
  239. oi.setUid(uid);
  240. oi.setContacts(contacts);
  241. oi.setContactMobile(contactMobile);
  242. oi.setHighTechZone(AFTConstants.NO);
  243. oi.setInternational(AFTConstants.NO);
  244. oi.setListed(AFTConstants.NO);
  245. oi.setAuditStatus(IdentityProcess.SUCCESS.getCode()); //实名企业
  246. organizationIdentityMapper.insert(oi);
  247. }
  248. userMapper.insert(user);
  249. //新增企业联系人
  250. OrganizationContactBook cob = new OrganizationContactBook();
  251. cob.setAid(TokenManager.getAdminId());
  252. cob.setId(UUID.randomUUID().toString());
  253. cob.setUid(uid);
  254. cob.setName(contacts);
  255. cob.setMobile(contactMobile);
  256. organizationContactBookMapper.insert(cob);
  257. return 1;
  258. }
  259. @Override
  260. public CustomerPersonalDetailBo findPersonalCustomerDetail(String uid) {
  261. return userMapper.findPersonalCustomerDetail(uid);
  262. }
  263. @Override
  264. public CustomerOrganizationDetailBo findOrganizationCustomerDetail(String uid) {
  265. return userMapper.findOrganizationCustomerDetail(uid);
  266. }
  267. @Override
  268. @Transactional
  269. public int updateOrganizationCustomer(CustomerOrganizationDetailBo bo) {
  270. OrganizationIdentity oi = new OrganizationIdentity();
  271. User user = new User();
  272. try {
  273. BeanUtilsExt.copyProperties(oi, bo);
  274. user.setId(bo.getUid());
  275. user.setSocietyTag(bo.getSocietyTag());
  276. user.setCompanyLogoUrl(bo.getCompanyLogoUrl());
  277. user.setIntroduction(bo.getIntroduction());
  278. user.setUpdateTime(new Date());
  279. user.setBusinessAudit(bo.getBusinessAudit());
  280. } catch (IllegalAccessException |InvocationTargetException e) {
  281. e.printStackTrace();
  282. }
  283. organizationIdentityMapper.updateByPrimaryKeySelective(oi);
  284. userMapper.updateByPrimaryKeySelective(user);
  285. return 1;
  286. }
  287. @Override
  288. public int updatePersonalCustomer(CustomerPersonalDetailBo bo) {
  289. UserIdentity ui = new UserIdentity();
  290. User user = new User();
  291. try {
  292. BeanUtilsExt.copyProperties(ui, bo);
  293. user.setId(bo.getUid());
  294. user.setSocietyTag(bo.getSocietyTag());
  295. user.setHeadPortraitUrl(bo.getHeadPortraitUrl());
  296. user.setIntroduction(bo.getIntroduction());
  297. user.setUpdateTime(new Date());
  298. user.setBusinessAudit(bo.getBusinessAudit());
  299. if(null==bo.getExpertAudit()&&bo.getExpert()==1)ui.setExpertAudit(2);
  300. } catch (InvocationTargetException | IllegalAccessException e) {
  301. e.printStackTrace();
  302. }
  303. userIdentityMapper.updateByPrimaryKeySelective(ui);
  304. userMapper.updateByPrimaryKeySelective(user);
  305. return 1;
  306. }
  307. @SuppressWarnings("unchecked")
  308. @Override
  309. public Pagination<FollowListBo> listFollowHistory(Integer pageNo, Integer pageSize,String uid,String businessGlossoryId) {
  310. Map<String, Object> params = new HashMap<String, Object>();
  311. if(StringUtils.isNotBlank(uid))params.put("uid", uid);
  312. if(StringUtils.isNotBlank(businessGlossoryId)) params.put("businessGlossoryId", businessGlossoryId);
  313. return (Pagination<FollowListBo>)findPage("selectFollowHistoryList","selectFollowHistoryCount",params, pageNo, pageSize);
  314. }
  315. @Override
  316. public User findUserAccountDetail(String uid) {
  317. return userMapper.findUserAccountDetail(uid);
  318. }
  319. @Override
  320. public int updateUserAccount(User user) {
  321. return userMapper.updateByPrimaryKeySelective(user);
  322. }
  323. @Override
  324. public List<OrganizationContactBook> findCustomerContacts(String uid) {
  325. return userMapper.findCustomerContacts(uid,TokenManager.getAdminId());
  326. }
  327. @Override
  328. @Transactional
  329. public int addFollow(FollowBusinessBo fbb) throws BusinessException{
  330. if(fbb.getUserBusinessList().size()<1) throw new BusinessException(new Error(ErrorConstants.AT_LEAST_A_BUSINESS,"",""));
  331. //更新跟进记录表
  332. SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  333. UserFollow userFollow = new UserFollow();
  334. String followId = UUID.randomUUID().toString();
  335. userFollow.setId(followId);
  336. userFollow.setAid(TokenManager.getAdminId());
  337. userFollow.setContactType(Integer.parseInt(fbb.getContactType()));
  338. userFollow.setEffective(DeleteStatus.UNDELETE.getCode());
  339. try {
  340. userFollow.setCreateTime(format.parse(fbb.getFollowTime()));
  341. } catch (ParseException e) {
  342. e.printStackTrace();
  343. }
  344. userFollow.setOcbId(fbb.getOcbId());
  345. userFollow.setResult(fbb.getResult());
  346. userFollow.setUid(fbb.getUid());
  347. int followCount = userBusinessMapper.selectFollowCountByUAid(fbb.getUid(), TokenManager.getAdminId()) + 1;
  348. userFollow.setFollowCount(followCount);
  349. userFollowMapper.insert(userFollow);
  350. String ufbId = "";
  351. UserBusiness userBusiness = null;
  352. UserFollowBusiness userFollowBusiness = null;
  353. for(UserBusiness ub: fbb.getUserBusinessList()){
  354. userBusiness = new UserBusiness();
  355. userFollowBusiness = new UserFollowBusiness();
  356. ufbId = UUID.randomUUID().toString();
  357. if(StringUtils.isNotBlank(ub.getId())){
  358. //更新业务表
  359. userBusiness.setId(ub.getId());
  360. userBusiness.setBusinessGlossoryId(ub.getBusinessGlossoryId());
  361. userBusiness.setCustomerStatus(ub.getCustomerStatus());
  362. userBusiness.setFollowSituation(ub.getFollowSituation());
  363. userBusiness.setUid(fbb.getUid());
  364. try {
  365. userBusiness.setUpdateTime(format.parse(fbb.getFollowTime()));
  366. } catch (ParseException e) {
  367. e.printStackTrace();
  368. }
  369. userBusiness.setAid(TokenManager.getAdminId());
  370. userBusinessMapper.updateByPrimaryKeySelective(userBusiness);
  371. //更新业务中间表
  372. userFollowBusiness.setBusinessId(ub.getId());
  373. userFollowBusiness.setCustomerStatus(ub.getCustomerStatus());
  374. userFollowBusiness.setFollowSituation(ub.getFollowSituation());
  375. userFollowBusiness.setId(ufbId);
  376. userFollowBusiness.setFollowId(followId);
  377. userFollowBusiness.setRemarks(ub.getRemarks());
  378. userFollowBusiness.setBusinessGlossoryId(ub.getBusinessGlossoryId());
  379. userFollowBusinessMapper.insert(userFollowBusiness);
  380. }else{
  381. //检测是否可以创建业务
  382. if(userBusinessMapper.judgeBusiness(fbb.getUid(), ub.getBusinessGlossoryId(), "")>0){
  383. String businessName = businessGlossoryMapper.selectByPrimaryKey(ub.getBusinessGlossoryId()).getName();
  384. throw new BusinessException(new Error(ErrorConstants.BUSINESS_ALREADY_EXIST,businessName,""));
  385. }
  386. String ubId = UUID.randomUUID().toString();
  387. //更新业务表
  388. userBusiness.setId(ubId);
  389. userBusiness.setBusinessGlossoryId(ub.getBusinessGlossoryId());
  390. try {
  391. userBusiness.setCreateTime(format.parse(fbb.getFollowTime()));
  392. userBusiness.setUpdateTime(format.parse(fbb.getFollowTime()));
  393. } catch (ParseException e) {
  394. e.printStackTrace();
  395. }
  396. userBusiness.setCustomerStatus(ub.getCustomerStatus());
  397. userBusiness.setFollowSituation(ub.getFollowSituation());
  398. userBusiness.setUid(fbb.getUid());
  399. userBusiness.setAid(TokenManager.getAdminId());
  400. userBusinessMapper.insert(userBusiness);
  401. //更新业务中间表
  402. userFollowBusiness.setBusinessId(ubId);
  403. userFollowBusiness.setCustomerStatus(ub.getCustomerStatus());
  404. userFollowBusiness.setFollowSituation(ub.getFollowSituation());
  405. userFollowBusiness.setId(ufbId);
  406. userFollowBusiness.setFollowId(followId);
  407. userFollowBusiness.setRemarks(ub.getRemarks());
  408. userFollowBusiness.setBusinessGlossoryId(ub.getBusinessGlossoryId());
  409. userFollowBusinessMapper.insert(userFollowBusiness);
  410. }
  411. }
  412. return 1;
  413. }
  414. @Override
  415. public FollowBusinessBo findFollowById(String followId) {
  416. return userMapper.findFollowById(followId);
  417. }
  418. @Override
  419. public List<UserBusiness> findBusinessByFollowId(String followId) {
  420. return userMapper.findBusinessByFollowId(followId);
  421. }
  422. @Override
  423. @Transactional
  424. public int updateFollow(FollowBusinessBo fbb) throws BusinessException{
  425. UserFollow userFollow = new UserFollow();
  426. SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  427. userFollow.setId(fbb.getFollowId());
  428. if(StringUtils.isNotBlank(fbb.getOcbId())) userFollow.setOcbId(fbb.getOcbId());
  429. userFollow.setResult(fbb.getResult());
  430. userFollow.setContactType(Integer.parseInt(fbb.getContactType()));
  431. userFollowMapper.updateByPrimaryKeySelective(userFollow); //修改拜访记录表
  432. UserFollowBusiness userFollowBusiness = null;
  433. for(UserBusiness ub: fbb.getUserBusinessList()){
  434. userFollowBusiness = new UserFollowBusiness();
  435. if(StringUtils.isNotBlank(ub.getId())){
  436. userFollowBusiness.setId(ub.getId());
  437. userFollowBusiness.setFollowSituation(ub.getFollowSituation());
  438. userFollowBusiness.setCustomerStatus(ub.getCustomerStatus());
  439. userFollowBusiness.setRemarks(ub.getRemarks());
  440. userFollowBusinessMapper.updateByPrimaryKeySelective(userFollowBusiness); //修改拜访记录中间表
  441. }else{
  442. //检测是否可以创建业务
  443. if(userBusinessMapper.judgeBusiness(fbb.getUid(), ub.getBusinessGlossoryId(), "")>0){
  444. String businessName = businessGlossoryMapper.selectByPrimaryKey(ub.getBusinessGlossoryId()).getName();
  445. throw new BusinessException(new Error(ErrorConstants.BUSINESS_ALREADY_EXIST,businessName,""));
  446. }
  447. String ubId = UUID.randomUUID().toString();
  448. UserBusiness userBusiness = new UserBusiness();
  449. //更新业务表
  450. userBusiness.setId(ubId);
  451. userBusiness.setBusinessGlossoryId(ub.getBusinessGlossoryId());
  452. try {
  453. userBusiness.setCreateTime(format.parse(fbb.getFollowTime()));
  454. userBusiness.setUpdateTime(format.parse(fbb.getFollowTime()));
  455. } catch (ParseException e) {
  456. e.printStackTrace();
  457. }
  458. userBusiness.setCustomerStatus(ub.getCustomerStatus());
  459. userBusiness.setFollowSituation(ub.getFollowSituation());
  460. userBusiness.setUid(fbb.getUid());
  461. userBusiness.setAid(TokenManager.getAdminId());
  462. userBusinessMapper.insert(userBusiness);
  463. //更新业务中间表
  464. String ufbId = UUID.randomUUID().toString();
  465. userFollowBusiness.setId(ufbId);
  466. userFollowBusiness.setFollowId(fbb.getFollowId());
  467. userFollowBusiness.setBusinessId(ubId);
  468. userFollowBusiness.setCustomerStatus(ub.getCustomerStatus());
  469. userFollowBusiness.setFollowSituation(ub.getFollowSituation());
  470. userFollowBusiness.setRemarks(ub.getRemarks());
  471. userFollowBusiness.setBusinessGlossoryId(ub.getBusinessGlossoryId());
  472. userFollowBusinessMapper.insert(userFollowBusiness);
  473. }
  474. }
  475. return 1;
  476. }
  477. @Override
  478. public Set<OrganizationContactBook> findAllContacts(String uid) {
  479. Set<OrganizationContactBook> result = new HashSet<OrganizationContactBook>();
  480. result.addAll(userMapper.findAllContacts(uid));
  481. return result;
  482. }
  483. @Override
  484. public int updateCustomerContacts(List<OrganizationContactBook> ocbList,String uid) {
  485. if(ocbList.size()>0){
  486. OrganizationContactBook ocb = null;
  487. for(OrganizationContactBook item: ocbList){
  488. ocb = new OrganizationContactBook();
  489. try {
  490. BeanUtils.copyProperties(ocb, item);
  491. if(StringUtils.isBlank(ocb.getId())){
  492. ocb.setId(UUID.randomUUID().toString());
  493. ocb.setUid(uid);
  494. ocb.setAid(TokenManager.getAdminId());
  495. organizationContactBookMapper.insert(ocb);
  496. }else{
  497. organizationContactBookMapper.updateByPrimaryKeySelective(ocb);
  498. }
  499. } catch (IllegalAccessException | InvocationTargetException e) {
  500. e.printStackTrace();
  501. }
  502. }
  503. }
  504. return 1;
  505. }
  506. @Override
  507. public int deleteFollow(String followId) {
  508. UserFollow uf = new UserFollow();
  509. uf.setId(followId);
  510. uf.setEffective(DeleteStatus.DELETED.getCode());
  511. return userFollowMapper.updateByPrimaryKeySelective(uf);
  512. }
  513. @Override
  514. public void checkCustomer(Set<CustomerExcelBo> boSet, Set<Integer> existRows, Set<Integer> filterRows) {
  515. List<User> list = null;
  516. CustomerExcelBo[] bos = (CustomerExcelBo[])boSet.toArray(new CustomerExcelBo[] {});
  517. for (int i=0;i<bos.length;i++) {
  518. CustomerExcelBo bo = bos[i];
  519. CustomerExcelBo ceb = null;
  520. for(int j=0;j<i;j++){
  521. ceb = bos[j];
  522. if(bo.getCustomerType().equals(AFTConstants.USER_TYPE_PERSONAL)){ //个人
  523. if(ceb.getMobile().equals(bo.getMobile()) && ceb.getCustomerType().equals(bo.getCustomerType())){
  524. bo.setUid(ceb.getUid());
  525. bo.setNewData(false);
  526. filterRows.add(bo.getRowNumber());
  527. break;
  528. }
  529. }else if(bo.getCustomerType().equals(AFTConstants.USER_TYPE_ORGANIZATION)){ //单位
  530. if(ceb.getIdentifyName().equals(bo.getIdentifyName()) && ceb.getCustomerType().equals(bo.getCustomerType())){
  531. bo.setUid(ceb.getUid());
  532. bo.setNewData(false);
  533. filterRows.add(bo.getRowNumber());
  534. break;
  535. }
  536. }
  537. }
  538. if(StringUtils.isBlank(bo.getUid())){ //是否已经存在
  539. if(bo.getCustomerType().equals(AFTConstants.USER_TYPE_PERSONAL)){
  540. list = userMapper.checkUser("", "", bo.getMobile(), Integer.parseInt(bo.getCustomerType()),null,null);
  541. }else if(bo.getCustomerType().equals(AFTConstants.USER_TYPE_ORGANIZATION)){
  542. list = userMapper.checkUser("", bo.getIdentifyName(), "", Integer.parseInt(bo.getCustomerType()),null,null);
  543. }
  544. if (list.size() > 0) {
  545. bo.setUid(list.get(0).getId());
  546. bo.setNewData(false);
  547. if (userBusinessMapper.judgeBusiness(bo.getUid(), Integer.parseInt(bo.getBusinessGlossoryId()),"") > 0) {
  548. existRows.add(bo.getRowNumber());
  549. }
  550. }else{
  551. bo.setUid(UUID.randomUUID().toString());
  552. bo.setNewData(true);
  553. }
  554. }else{
  555. if (userBusinessMapper.judgeBusiness(bo.getUid(), Integer.parseInt(bo.getBusinessGlossoryId()),"") > 0) {
  556. existRows.add(bo.getRowNumber());
  557. }
  558. }
  559. }
  560. }
  561. @Override
  562. @Transactional
  563. public int saveUploadData(Set<CustomerExcelBo> boSet) {
  564. Date now = new Date();
  565. String uid = "";
  566. for(CustomerExcelBo bo : boSet){
  567. uid = bo.getUid();
  568. if(bo.isNewData()){ //新建客户
  569. createUser(bo, uid, now);
  570. createIdentity(bo, bo.getCustomerType(), uid);
  571. createBusiness(bo, uid, now);
  572. createContacts(bo, uid);
  573. }else{ //新建业务
  574. createBusiness(bo, uid, now);
  575. if(organizationContactBookMapper.checkContacts(uid, bo.getMobile(), TokenManager.getAdminId())<=0){
  576. createContacts(bo, uid);
  577. }
  578. }
  579. }
  580. return 1;
  581. }
  582. private void createUser(CustomerExcelBo bo,String uid,Date now){
  583. User user = new User();
  584. user.setId(uid);
  585. user.setIdentifyName(bo.getIdentifyName());
  586. user.setSource(AFTConstants.USER_SOURCE_CREATE);
  587. user.setNickname(bo.getIdentifyName());
  588. user.setStatus(AFTConstants.USER_STATUS_NORMAL);
  589. user.setShareType(AFTConstants.USER_SHARE_PRIVATE);
  590. user.setAid(TokenManager.getAdminId());
  591. user.setType(Integer.parseInt(bo.getCustomerType()));
  592. user.setCurrentMemberStatus(MemberStatus.NORMAL.getCode());
  593. user.setLvl(UserLevel.CERTIFIED.getCode());
  594. user.setCreateTime(now);
  595. user.setUpdateTime(now);
  596. user.setMobile(bo.getMobile());
  597. user.setPassword(AFTConstants.INITIALPASSWORD);
  598. user.setIsMember(AFTConstants.NO);
  599. user.setBusinessAudit(AFTConstants.NO);
  600. passwordUtil.encryptPassword(user);
  601. userMapper.insert(user);
  602. }
  603. private void createIdentity(CustomerExcelBo bo,String type,String uid){
  604. String identifyId = UUID.randomUUID().toString();
  605. if(type.equals(AFTConstants.USER_TYPE_PERSONAL)){
  606. //新增个人认证信息
  607. UserIdentity ui = new UserIdentity();
  608. ui.setId(identifyId);
  609. ui.setUid(uid);
  610. ui.setContacts(bo.getContacts());
  611. ui.setContactMobile(bo.getMobile());
  612. ui.setUsername(bo.getIdentifyName());
  613. ui.setExpert(AFTConstants.NO);
  614. ui.setCelebrity(AFTConstants.NO);
  615. ui.setInternational(AFTConstants.NO);
  616. ui.setAuditStatus(5);
  617. userIdentityMapper.insert(ui);
  618. }else if(type.equals(AFTConstants.USER_TYPE_ORGANIZATION)){
  619. // 创建企业认证信息
  620. OrganizationIdentity oi = new OrganizationIdentity();
  621. oi.setId(identifyId);
  622. oi.setUnitName(bo.getIdentifyName());
  623. oi.setUid(uid);
  624. oi.setContacts(bo.getContacts());
  625. oi.setContactMobile(bo.getMobile());
  626. oi.setHighTechZone(AFTConstants.NO);
  627. oi.setInternational(AFTConstants.NO);
  628. oi.setListed(AFTConstants.NO);
  629. oi.setAuditStatus(5); //实名企业
  630. organizationIdentityMapper.insert(oi);
  631. }
  632. }
  633. private void createContacts(CustomerExcelBo bo,String uid){
  634. //新增企业联系人
  635. OrganizationContactBook cob = new OrganizationContactBook();
  636. cob.setAid(TokenManager.getAdminId());
  637. cob.setId(UUID.randomUUID().toString());
  638. cob.setUid(uid);
  639. cob.setName(bo.getContacts());
  640. cob.setMobile(bo.getMobile());
  641. organizationContactBookMapper.insert(cob);
  642. }
  643. private void createBusiness(CustomerExcelBo bo,String uid,Date now){
  644. //新增业务
  645. UserBusiness ub = new UserBusiness();
  646. ub.setId(UUID.randomUUID().toString());
  647. ub.setAid(TokenManager.getAdminId());
  648. ub.setBusinessGlossoryId(Integer.parseInt(bo.getBusinessGlossoryId()));
  649. ub.setUid(uid);
  650. ub.setCreateTime(now);
  651. ub.setUpdateTime(now);
  652. ub.setCustomerStatus(Integer.parseInt(bo.getCustomerStatus()));
  653. ub.setFollowSituation(Integer.parseInt(bo.getFollowSituation()));
  654. userBusinessMapper.insert(ub);
  655. }
  656. @Override
  657. public int updateByOperatorType(String uid, String operatorType,Object... params) {
  658. User user = new User();
  659. user.setId(uid);
  660. if(operatorType.equals(AFTConstants.USER_TRANSFER_TO_PUBLIC)){
  661. user.setShareType(AFTConstants.USER_SHARE_PUBLIC);
  662. user.setAid("");
  663. }else if(operatorType.equals(AFTConstants.USER_RECEIVE)){
  664. user.setAid(TokenManager.getAdminId());
  665. user.setShareType(AFTConstants.USER_SHARE_PRIVATE);
  666. }else if(operatorType.equals(AFTConstants.USER_DELETE)){
  667. user.setStatus(AFTConstants.USER_STATUS_CANCEL);
  668. }else if(operatorType.equals(AFTConstants.USER_TRANSFER_TO_OTHER)){
  669. user.setAid(String.valueOf(params[0]));
  670. }
  671. return userMapper.updateByPrimaryKeySelective(user);
  672. }
  673. @SuppressWarnings("unchecked")
  674. @Override
  675. public Pagination<StatisticBo> customerStatistics(Date sDate, Date eDate, String depNo, String businessGlossoryId, Integer pageNo, Integer pageSize) {
  676. Map<String,Object> params = new HashMap<String,Object>();
  677. if(null != sDate) params.put("sDate", sDate);
  678. if(null != eDate) params.put("eDate", eDate);
  679. if(StringUtils.isNotBlank(depNo)) params.put("depNo", depNo);
  680. if(StringUtils.isNotBlank(businessGlossoryId)) params.put("businessGlossoryId", businessGlossoryId);
  681. Pagination<StatisticBo> page = (Pagination<StatisticBo>)findPage("customerStatisticsList", "customerStatisticsCount", params, pageNo, pageSize);
  682. return page;
  683. }
  684. @SuppressWarnings("unchecked")
  685. @Override
  686. public Pagination<StatisticBo> businessStatistic(Date sDate, Date eDate,String depNo, String businessGlossoryId,Integer pageNo, Integer pageSize) {
  687. Map<String,Object> params = new HashMap<String,Object>();
  688. if(null != sDate) params.put("sDate", sDate);
  689. if(null != eDate) params.put("eDate", eDate);
  690. if(StringUtils.isNotBlank(depNo)) params.put("depNo", depNo);
  691. if(StringUtils.isNotBlank(businessGlossoryId)) params.put("businessGlossoryId", businessGlossoryId);
  692. Pagination<StatisticBo> page = (Pagination<StatisticBo>)findPage("businessStatisticList", "businessStatisticCount", params, pageNo, pageSize);
  693. return page;
  694. }
  695. @SuppressWarnings("unchecked")
  696. @Override
  697. public Pagination<StatisticBo> followStatistic(Date sDate, Date eDate, String depNo, Integer pageNo, Integer pageSize) {
  698. Map<String,Object> params = new HashMap<String,Object>();
  699. if(null != sDate) params.put("sDate", sDate);
  700. if(null != eDate) params.put("eDate", eDate);
  701. if(StringUtils.isNotBlank(depNo)) params.put("depNo", depNo);
  702. Pagination<StatisticBo> page = (Pagination<StatisticBo>)findPage("followStatisticList", "followStatisticCount", params, pageNo, pageSize);
  703. return page;
  704. }
  705. @SuppressWarnings("unchecked")
  706. @Override
  707. public Pagination<BusinessListBo> listBusiness(BusinessListBo blo,Integer pageNo,Integer pageSize) {
  708. blo.setAid(TokenManager.getAdminId());
  709. return (Pagination<BusinessListBo>) findPage("selectBusinessList", "selectBusinessCount", disposeParams(blo), pageNo, pageSize);
  710. }
  711. @SuppressWarnings("unchecked")
  712. @Override
  713. public Pagination<BusinessListBo> listAllBusiness(BusinessListBo blo, Integer pageNo, Integer pageSize) {
  714. return (Pagination<BusinessListBo>) findPage("selectBusinessList", "selectBusinessCount", disposeParams(blo), pageNo, pageSize);
  715. }
  716. @SuppressWarnings("unchecked")
  717. @Override
  718. public Pagination<BusinessListBo> listManageBusiness(BusinessListBo blo,Integer pageNo,Integer pageSize) {
  719. blo.setAid(TokenManager.getAdminId());
  720. return (Pagination<BusinessListBo>) findPage("selectBusinessManageList", "selectBusinessManageCount", disposeParams(blo), pageNo, pageSize);
  721. }
  722. private Map<String,Object> disposeParams(BusinessListBo blo){
  723. Map<String, Object> params = new HashMap<String, Object>();
  724. if(StringUtils.isNotBlank(blo.getUid())) params.put("uid", blo.getUid());
  725. if(StringUtils.isNotBlank(blo.getAid())) params.put("aid", blo.getAid());
  726. if(StringUtils.isNotBlank(blo.getAdminName())) params.put("adminName", blo.getAdminName());
  727. if(StringUtils.isNotBlank(blo.getBusinessGlossoryId())) params.put("businessGlossoryId", blo.getBusinessGlossoryId());
  728. if(StringUtils.isNotBlank(blo.getStartDate())) params.put("startDate", blo.getStartDate()+" 00:00:00");
  729. if(StringUtils.isNotBlank(blo.getEndDate())) params.put("endDate", blo.getEndDate()+ " 23:59:59");
  730. if(StringUtils.isNotBlank(blo.getIdentifyName())) params.put("identifyName", blo.getIdentifyName());
  731. if(StringUtils.isNoneBlank(blo.getFollowSituation())) params.put("followSituation", blo.getFollowSituation());
  732. if(StringUtils.isNotBlank(blo.getCustomerStatus())) params.put("customerStatus", blo.getCustomerStatus());
  733. return params;
  734. }
  735. @Override
  736. public List<BusinessListBo> findBusinessGlossory() {
  737. return userBusinessMapper.findBusinessGlossory();
  738. }
  739. @Override
  740. public int judgeBusiness(String uid, Integer businessGlossoryId) {
  741. return userBusinessMapper.judgeBusiness(uid,businessGlossoryId,"");
  742. }
  743. @Override
  744. @Transactional
  745. public void addBusinessAndFollow(BussinessFollowBo bfb) throws ParseException {
  746. UserBusiness ub = new UserBusiness();
  747. String ubId = UUID.randomUUID().toString();
  748. SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  749. ub.setCustomerStatus(Integer.parseInt(bfb.getCustomerStatus()));
  750. ub.setFollowSituation(Integer.parseInt(bfb.getFollowSituation()));
  751. ub.setId(ubId);
  752. ub.setUid(bfb.getUid());
  753. ub.setAid(TokenManager.getAdminId());
  754. ub.setRemarks(bfb.getRemarks());
  755. ub.setBusinessGlossoryId(Integer.parseInt(bfb.getBusinessGlossoryId()));
  756. ub.setUpdateTime(format.parse(bfb.getCreateTime()));
  757. ub.setCreateTime(format.parse(bfb.getCreateTime()));
  758. userBusinessMapper.insert(ub);
  759. if (StringUtils.isNotBlank(bfb.getOcbId())) { // 跟进联系人不为空则添加跟进记录
  760. UserFollow uf = new UserFollow();
  761. String ufId = UUID.randomUUID().toString();
  762. uf.setId(ufId);
  763. uf.setUid(bfb.getUid());
  764. uf.setCreateTime(format.parse(bfb.getFollowTime()));
  765. uf.setOcbId(bfb.getOcbId());
  766. uf.setResult(bfb.getResult());
  767. uf.setContactType(Integer.parseInt(bfb.getContactType()));
  768. uf.setAid(TokenManager.getAdminId());
  769. uf.setEffective(0);
  770. int followCount = userBusinessMapper.selectFollowCountByUAid(bfb.getUid(), TokenManager.getAdminId()) + 1;
  771. uf.setFollowCount(followCount);
  772. userFollowMapper.insert(uf);
  773. UserFollowBusiness ufb = new UserFollowBusiness();
  774. ufb.setId(UUID.randomUUID().toString());
  775. ufb.setBusinessId(ubId);
  776. ufb.setFollowId(ufId);
  777. ufb.setCustomerStatus(ub.getCustomerStatus());
  778. ufb.setFollowSituation(ub.getFollowSituation());
  779. ufb.setBusinessGlossoryId(Integer.parseInt(bfb.getBusinessGlossoryId()));
  780. userFollowBusinessMapper.insert(ufb);
  781. }
  782. }
  783. @Override
  784. public List<UserBusiness> findBusinessByUAid(String uid, String aid) {
  785. return userBusinessMapper.findBusinessByUAid(uid,aid);
  786. }
  787. @Override
  788. public BussinessFollowBo findBusinessDetail(String businessId) {
  789. return userBusinessMapper.findBusinessDetail(businessId);
  790. }
  791. @Override
  792. public int updateBusiness(BussinessFollowBo bfb) {
  793. UserBusiness userBusiness = new UserBusiness();
  794. userBusiness.setId(bfb.getBusinessId());
  795. userBusiness.setCustomerStatus(Integer.parseInt(bfb.getCustomerStatus()));
  796. userBusiness.setFollowSituation(Integer.parseInt(bfb.getFollowSituation()));
  797. userBusiness.setRemarks(bfb.getRemarks());
  798. userBusiness.setUpdateTime(new Date());
  799. return userBusinessMapper.updateByPrimaryKeySelective(userBusiness);
  800. }
  801. @Override
  802. @Transactional
  803. public int addFollowOneBusiness(BussinessFollowBo bfb) throws ParseException {
  804. Date updateTime = new Date();
  805. SimpleDateFormat format = new SimpleDateFormat(AFTConstants.YYYYMMDDHHMMSS);
  806. UserBusiness userBusiness = new UserBusiness();
  807. userBusiness.setId(bfb.getBusinessId());
  808. userBusiness.setUpdateTime(updateTime);
  809. userBusiness.setCustomerStatus(Integer.parseInt(bfb.getCustomerStatus()));
  810. userBusiness.setFollowSituation(Integer.parseInt(bfb.getFollowSituation()));
  811. userBusinessMapper.updateByPrimaryKeySelective(userBusiness);
  812. UserFollow userFollow = new UserFollow();
  813. String followId = UUID.randomUUID().toString();
  814. int followCount = userBusinessMapper.selectFollowCountByUAid(bfb.getUid(), TokenManager.getAdminId()) + 1;
  815. userFollow.setId(followId);
  816. userFollow.setResult(bfb.getResult());
  817. userFollow.setCreateTime(format.parse(bfb.getFollowTime()));
  818. userFollow.setEffective(0);
  819. userFollow.setOcbId(bfb.getOcbId());
  820. userFollow.setFollowCount(followCount);
  821. userFollow.setContactType(Integer.parseInt(bfb.getContactType()));
  822. userFollow.setAid(TokenManager.getAdminId());
  823. userFollow.setUid(bfb.getUid());
  824. userFollowMapper.insert(userFollow);
  825. UserFollowBusiness userFollowBusiness = new UserFollowBusiness();
  826. String ufbId = UUID.randomUUID().toString();
  827. userFollowBusiness.setId(ufbId);
  828. userFollowBusiness.setFollowId(followId);
  829. userFollowBusiness.setBusinessGlossoryId(Integer.parseInt(bfb.getBusinessGlossoryId()));
  830. userFollowBusiness.setBusinessId(bfb.getBusinessId());
  831. userFollowBusiness.setCustomerStatus(Integer.parseInt(bfb.getCustomerStatus()));
  832. userFollowBusiness.setFollowSituation(Integer.parseInt(bfb.getFollowSituation()));
  833. userFollowBusiness.setRemarks(bfb.getRemarks());
  834. userFollowBusinessMapper.insert(userFollowBusiness);
  835. return 1;
  836. }
  837. @Override
  838. public BussinessFollowBo findFollowOneBusiness(String ufbId) {
  839. return userBusinessMapper.findFollowOneBusiness(ufbId);
  840. }
  841. @Override
  842. public int updateFollowOneBusiness(BussinessFollowBo bfb) {
  843. //修改业务跟进中间表
  844. UserFollowBusiness userFollowBusiness = new UserFollowBusiness();
  845. userFollowBusiness.setId(bfb.getUfbId());
  846. userFollowBusiness.setRemarks(bfb.getRemarks());
  847. userFollowBusiness.setCustomerStatus(Integer.parseInt(bfb.getCustomerStatus()));
  848. userFollowBusiness.setFollowSituation(Integer.parseInt(bfb.getFollowSituation()));
  849. userFollowBusinessMapper.updateByPrimaryKeySelective(userFollowBusiness);
  850. //修改跟进记录表
  851. UserFollow userFollow = new UserFollow();
  852. userFollow.setId(bfb.getFollowId());
  853. userFollow.setContactType(Integer.parseInt(bfb.getContactType()));
  854. userFollow.setResult(bfb.getResult());
  855. if(StringUtils.isNotBlank(bfb.getOcbId())) userFollow.setOcbId(bfb.getOcbId());
  856. userFollowMapper.updateByPrimaryKeySelective(userFollow);
  857. return 1;
  858. }
  859. @Override
  860. public int addOneContact(OrganizationContactBook ocb) {
  861. ocb.setAid(TokenManager.getAdminId());
  862. ocb.setId(UUID.randomUUID().toString());
  863. return organizationContactBookMapper.insert(ocb);
  864. }
  865. @Override
  866. public int deleteBusiness(String businessId) {
  867. return userBusinessMapper.deleteByPrimaryKey(businessId);
  868. }
  869. @Override
  870. public int updateBusinessToStop(String businessId) {
  871. UserBusiness ub = new UserBusiness();
  872. ub.setId(businessId);
  873. ub.setCustomerStatus(CustomerStatusFiled.STATUS_STOP.getCode());
  874. return userBusinessMapper.updateByPrimaryKeySelective(ub);
  875. }
  876. @Override
  877. public int deleteFollowOneBusiness(String ufbId) {
  878. UserFollowBusiness ufb = new UserFollowBusiness();
  879. ufb.setId(ufbId);
  880. return userFollowBusinessMapper.deleteByPrimaryKey(ufbId);
  881. }
  882. @Override
  883. public int deleteOneContact(String ocbId) {
  884. return organizationContactBookMapper.deleteByPrimaryKey(ocbId);
  885. }
  886. @Override
  887. public List<Admin> findAdminName() {
  888. String aid=TokenManager.getAdminId();
  889. return userMapper.findAdminName(aid);
  890. }
  891. @Override
  892. public int updatePersonalCustomerz(CustomerPersonalDetailBo bo) {
  893. UserIdentity ui = new UserIdentity();
  894. User user = new User();
  895. try {
  896. BeanUtilsExt.copyProperties(ui, bo);
  897. user.setId(bo.getUid());
  898. user.setSocietyTag(bo.getSocietyTag());
  899. user.setHeadPortraitUrl(bo.getHeadPortraitUrl());
  900. user.setIntroduction(bo.getIntroduction());
  901. user.setUpdateTime(new Date());
  902. user.setBusinessAudit(bo.getBusinessAudit());
  903. if(!StringUtils.isBlank(bo.getAid())){
  904. user.setAid(bo.getAid());
  905. user.setShareType(0);
  906. }
  907. } catch (InvocationTargetException | IllegalAccessException e) {
  908. e.printStackTrace();
  909. }
  910. userMapper.updateByPrimaryKeySelective(user);
  911. return 1;
  912. }
  913. @Override
  914. public Pagination<CustomerListOut> findEnteringAudit(CustomerListOut clo, Integer pageNo, Integer pageSize) {
  915. Map<String,Object> params = disposeParams(clo);
  916. if(!StringUtils.isBlank(clo.getAdminName()))params.put("adminName", clo.getAdminName());
  917. @SuppressWarnings("unchecked")
  918. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("findEnteringAuditList","findEnteringAuditCount",params,pageNo,pageSize);
  919. return list;
  920. }
  921. @Override
  922. public Pagination<CustomerListOut> findEnteringAuditIsNo(CustomerListOut clo, Integer pageNo, Integer pageSize) {
  923. clo.setAid(TokenManager.getAdminId());
  924. Map<String,Object> params = disposeParams(clo);
  925. if(!StringUtils.isBlank(clo.getAdminName()))params.put("adminName", clo.getAdminName());
  926. @SuppressWarnings("unchecked")
  927. Pagination<CustomerListOut> list = (Pagination<CustomerListOut>) findPage("findEnteringAuditIsNoList","findEnteringAuditIsNoCount",params,pageNo,pageSize);
  928. return list;
  929. }
  930. @Override
  931. public int updateEnteringAudit(User bo) {
  932. String id=bo.getId();
  933. Integer auditStatus=bo.getAuditStatus();
  934. String auditOpinion=bo.getAuditOpinion();
  935. return userMapper.updateEnteringAudit(id,auditStatus,auditOpinion);
  936. }
  937. }