MerchantUserServiceImpl.java 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. package com.qrservice.admin.service.impl;
  2. import com.alibaba.fastjson.JSON;
  3. import com.qrservice.admin.config.ServiceProperties;
  4. import com.qrservice.admin.dao.online.MerchantInfoDao;
  5. import com.qrservice.admin.dao.settle.MerchantUserDao;
  6. import com.qrservice.admin.exception.CheckException;
  7. import com.qrservice.admin.model.bussiness.MerchantInfo;
  8. import com.qrservice.admin.model.dto.merchant.MerchantUserDto;
  9. import com.qrservice.admin.model.dto.merchant.MerchantUserFdDto;
  10. import com.qrservice.admin.model.dto.merchant.MerchantUserUpDto;
  11. import com.qrservice.admin.model.manage.MerchantUser;
  12. import com.qrservice.admin.model.param.CommonInfo;
  13. import com.qrservice.admin.service.CommonService;
  14. import com.qrservice.admin.service.MerchantUserService;
  15. import com.qrservice.admin.util.CopyUtils;
  16. import com.qrservice.admin.util.QueryHelp;
  17. import com.qrservice.admin.util.SHA256Util;
  18. import org.bson.Document;
  19. import org.springframework.beans.factory.annotation.Autowired;
  20. import org.springframework.data.domain.Page;
  21. import org.springframework.data.domain.Pageable;
  22. import org.springframework.data.mongodb.core.query.BasicUpdate;
  23. import org.springframework.data.mongodb.core.query.Criteria;
  24. import org.springframework.data.mongodb.core.query.Query;
  25. import org.springframework.data.mongodb.core.query.Update;
  26. import org.springframework.stereotype.Service;
  27. import javax.servlet.http.HttpServletRequest;
  28. import java.util.Date;
  29. /**
  30. * @Company: AllPay
  31. * @Author: lei.chen
  32. * @Date: 2020/8/24 10:03
  33. */
  34. @Service
  35. public class MerchantUserServiceImpl implements MerchantUserService {
  36. private final ServiceProperties properties;
  37. private final MerchantUserDao dao;
  38. private final MerchantInfoDao infoDao;
  39. private final CommonService service;
  40. @Autowired
  41. public MerchantUserServiceImpl(ServiceProperties properties,MerchantUserDao dao,MerchantInfoDao infoDao,CommonService service) {
  42. this.dao = dao;
  43. this.infoDao = infoDao;
  44. this.service = service;
  45. this.properties = properties;
  46. }
  47. @Override
  48. public String addMerchantUser(MerchantUserDto dto) throws Exception {
  49. MerchantUser one = dao.findOne(new Query().addCriteria(Criteria.where("merchantId").is(dto.getMerchantId())).addCriteria(
  50. Criteria.where("userName.fullName").is(dto.getUserName().getFullName())
  51. ));
  52. if(one != null){
  53. throw new CheckException("The merchant user already exists");
  54. }
  55. //查询用户商户的基本信息填充用户信息
  56. MerchantInfo merchant = infoDao.findOne(new Query().addCriteria(Criteria.where("merchantId").is(dto.getMerchantId())));
  57. if(merchant == null ){
  58. throw new CheckException("No Merchant Id");
  59. }
  60. MerchantUser merchantUser = new MerchantUser();
  61. CopyUtils.Copy(dto,merchantUser);
  62. merchantUser.setUserType(properties.getMerchantUser());
  63. merchantUser.setUserId(dto.getUserName().getFullName()+"@"+dto.getMerchantId());
  64. merchantUser.setPassword(SHA256Util.getSHA256(properties.getPwd()));
  65. merchantUser.setUserContact(merchant.getLegalPerson());
  66. merchantUser.setUserName(dto.getUserName());
  67. merchantUser.setUserStatus(properties.getStatusNormal());
  68. merchantUser.setPasswordUpdateDate(new Date());
  69. merchantUser.setUpdateTime(new Date());
  70. merchantUser.setCreateTime(new Date());
  71. dao.insert(merchantUser);
  72. return "Merchant user "+dto.getMerchantId()+"/"+merchantUser.getUserName().getFullName()+" added";
  73. }
  74. @Override
  75. public Page<MerchantUser> findMerchantUser(Pageable pageable, MerchantUserFdDto dto, HttpServletRequest request) {
  76. Query query = QueryHelp.getQuery(dto, new Query());
  77. CommonInfo mid = service.findMid(request);
  78. query.addCriteria(Criteria.where("merchantId").in(mid.getListMid()));
  79. query.fields().include("userName").include("merchantId").include("userGroup")
  80. .include("userStatus").include("createTime").include("updateTime").include("userId");
  81. Page<MerchantUser> pageInfo = dao.findByPageAndSort(pageable, query);
  82. return pageInfo;
  83. }
  84. @Override
  85. public String updateMerchantUser(MerchantUserUpDto dto) {
  86. String string = JSON.toJSONString(dto);
  87. Query query = new Query().addCriteria(Criteria.where("merchantId").is(dto.getMerchantId()));
  88. MerchantUser one = dao.findOne(query);
  89. if(one == null){
  90. throw new CheckException("No Merchant Id");
  91. }
  92. Document parse = Document.parse(string);
  93. Update update = new BasicUpdate(new Document("$set",parse));
  94. if(parse == null || parse.size()==0){
  95. throw new CheckException("Update Error!");
  96. }
  97. dao.updateMulti(query,update);
  98. update.set("updateTime",new Date());
  99. dao.updateMulti(query,update);
  100. return "Merchant user "+one.getMerchantId()+"/"+one.getUserName().getFullName()+" updated";
  101. }
  102. }