123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- package com.qrservice.admin.service.impl;
- import com.alibaba.fastjson.JSON;
- import com.qrservice.admin.config.ServiceProperties;
- import com.qrservice.admin.dao.online.MerchantInfoDao;
- import com.qrservice.admin.dao.settle.MerchantUserDao;
- import com.qrservice.admin.exception.CheckException;
- import com.qrservice.admin.model.bussiness.MerchantInfo;
- import com.qrservice.admin.model.dto.merchant.MerchantUserDto;
- import com.qrservice.admin.model.dto.merchant.MerchantUserFdDto;
- import com.qrservice.admin.model.dto.merchant.MerchantUserUpDto;
- import com.qrservice.admin.model.manage.MerchantUser;
- import com.qrservice.admin.model.param.CommonInfo;
- import com.qrservice.admin.service.CommonService;
- import com.qrservice.admin.service.MerchantUserService;
- import com.qrservice.admin.util.CopyUtils;
- import com.qrservice.admin.util.QueryHelp;
- import com.qrservice.admin.util.SHA256Util;
- import org.bson.Document;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.data.domain.Page;
- import org.springframework.data.domain.Pageable;
- import org.springframework.data.mongodb.core.query.BasicUpdate;
- import org.springframework.data.mongodb.core.query.Criteria;
- import org.springframework.data.mongodb.core.query.Query;
- import org.springframework.data.mongodb.core.query.Update;
- import org.springframework.stereotype.Service;
- import javax.servlet.http.HttpServletRequest;
- import java.util.Date;
- /**
- * @Company: AllPay
- * @Author: lei.chen
- * @Date: 2020/8/24 10:03
- */
- @Service
- public class MerchantUserServiceImpl implements MerchantUserService {
- private final ServiceProperties properties;
- private final MerchantUserDao dao;
- private final MerchantInfoDao infoDao;
- private final CommonService service;
- @Autowired
- public MerchantUserServiceImpl(ServiceProperties properties,MerchantUserDao dao,MerchantInfoDao infoDao,CommonService service) {
- this.dao = dao;
- this.infoDao = infoDao;
- this.service = service;
- this.properties = properties;
- }
- @Override
- public String addMerchantUser(MerchantUserDto dto) throws Exception {
- MerchantUser one = dao.findOne(new Query().addCriteria(Criteria.where("merchantId").is(dto.getMerchantId())).addCriteria(
- Criteria.where("userName.fullName").is(dto.getUserName().getFullName())
- ));
- if(one != null){
- throw new CheckException("The merchant user already exists");
- }
- //查询用户商户的基本信息填充用户信息
- MerchantInfo merchant = infoDao.findOne(new Query().addCriteria(Criteria.where("merchantId").is(dto.getMerchantId())));
- if(merchant == null ){
- throw new CheckException("No Merchant Id");
- }
- MerchantUser merchantUser = new MerchantUser();
- CopyUtils.Copy(dto,merchantUser);
- merchantUser.setUserType(properties.getMerchantUser());
- merchantUser.setUserId(dto.getUserName().getFullName()+"@"+dto.getMerchantId());
- merchantUser.setPassword(SHA256Util.getSHA256(properties.getPwd()));
- merchantUser.setUserContact(merchant.getLegalPerson());
- merchantUser.setUserName(dto.getUserName());
- merchantUser.setUserStatus(properties.getStatusNormal());
- merchantUser.setPasswordUpdateDate(new Date());
- merchantUser.setUpdateTime(new Date());
- merchantUser.setCreateTime(new Date());
- dao.insert(merchantUser);
- return "Merchant user "+dto.getMerchantId()+"/"+merchantUser.getUserName().getFullName()+" added";
- }
- @Override
- public Page<MerchantUser> findMerchantUser(Pageable pageable, MerchantUserFdDto dto, HttpServletRequest request) {
- Query query = QueryHelp.getQuery(dto, new Query());
- CommonInfo mid = service.findMid(request);
- query.addCriteria(Criteria.where("merchantId").in(mid.getListMid()));
- query.fields().include("userName").include("merchantId").include("userGroup")
- .include("userStatus").include("createTime").include("updateTime").include("userId");
- Page<MerchantUser> pageInfo = dao.findByPageAndSort(pageable, query);
- return pageInfo;
- }
- @Override
- public String updateMerchantUser(MerchantUserUpDto dto) {
- String string = JSON.toJSONString(dto);
- Query query = new Query().addCriteria(Criteria.where("merchantId").is(dto.getMerchantId()));
- MerchantUser one = dao.findOne(query);
- if(one == null){
- throw new CheckException("No Merchant Id");
- }
- Document parse = Document.parse(string);
- Update update = new BasicUpdate(new Document("$set",parse));
- if(parse == null || parse.size()==0){
- throw new CheckException("Update Error!");
- }
- dao.updateMulti(query,update);
- update.set("updateTime",new Date());
- dao.updateMulti(query,update);
- return "Merchant user "+one.getMerchantId()+"/"+one.getUserName().getFullName()+" updated";
- }
- }
|