| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
| | | import com.doumee.biz.system.SystemDictDataBiz; |
| | | import com.doumee.config.wx.SendWxMessage; |
| | | import com.doumee.core.annotation.excel.ExcelColumn; |
| | | import com.doumee.core.constants.Constants; |
| | | import com.doumee.core.constants.ResponseStatus; |
| | | import com.doumee.core.exception.BusinessException; |
| | | import com.doumee.core.model.LoginUserInfo; |
| | | import com.doumee.core.model.PageData; |
| | | import com.doumee.core.model.PageWrap; |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.CategoryMapper; |
| | | import com.doumee.dao.business.IdentityInfoMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.model.IdentityInfo; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.dto.AuditDTO; |
| | | import com.doumee.dao.system.model.SystemUser; |
| | | import com.doumee.service.business.AliSmsService; |
| | | import com.doumee.service.business.IdentityInfoService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | | import io.swagger.annotations.ApiModelProperty; |
| | | import me.chanjar.weixin.common.error.WxErrorException; |
| | | import nonapi.io.github.classgraph.json.Id; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.apache.shiro.SecurityUtils; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | import org.springframework.transaction.annotation.Transactional; |
| | | import org.springframework.util.CollectionUtils; |
| | | |
| | | import java.util.ArrayList; |
| | |
| | | @Autowired |
| | | private MemberMapper memberMapper; |
| | | @Autowired |
| | | private AliSmsService aliSmsService; |
| | | @Autowired |
| | | private SystemDictDataBiz systemDictDataBiz; |
| | | @Autowired |
| | | private CategoryMapper categoryMapper; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public Integer create(IdentityInfo identityInfo) { |
| | | if(Objects.isNull(identityInfo) |
| | | || Objects.isNull(identityInfo.getType()) |
| | | || Objects.isNull(identityInfo.getMemberId()) |
| | | || Objects.isNull(identityInfo.getAuthType()) |
| | | || Objects.isNull(identityInfo.getType()) |
| | | || Objects.isNull(identityInfo.getMemberId()) |
| | | || Objects.isNull(identityInfo.getAuthType()) |
| | | || StringUtils.isEmpty(identityInfo.getLinkName()) |
| | | || StringUtils.isEmpty(identityInfo.getTelephone()) |
| | | || StringUtils.isEmpty(identityInfo.getLocation()) |
| | |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | //查询用户是否已存在当前身份 |
| | | if(identityInfoMapper.selectCount(new QueryWrapper<IdentityInfo>().lambda().eq(IdentityInfo::getMemberId,identityInfo.getMemberId()) |
| | | .eq(IdentityInfo::getType,identityInfo.getType()))>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已存在该身份请刷新查看!"); |
| | | }; |
| | | identityInfo.setCreateTime(new Date()); |
| | | identityInfo.setAuditStatus(Constants.ZERO); |
| | | identityInfoMapper.insert(identityInfo); |
| | | IdentityInfo model = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda() |
| | | .eq(IdentityInfo::getMemberId,identityInfo.getMemberId()) |
| | | .eq(IdentityInfo::getType,identityInfo.getType()) |
| | | .last("limit 1") |
| | | ); |
| | | if(Objects.nonNull(model)){ |
| | | identityInfo.setId(model.getId()); |
| | | this.updateById(identityInfo); |
| | | return identityInfo.getId(); |
| | | } |
| | | |
| | | |
| | | //查询用户是否已存在当前身份 |
| | | if(identityInfoMapper.selectCount(new QueryWrapper<IdentityInfo>().lambda() |
| | | .eq(IdentityInfo::getDeleted,Constants.ZERO) |
| | | .eq(IdentityInfo::getMemberId,identityInfo.getMemberId()) |
| | | .eq(IdentityInfo::getType,identityInfo.getType()))>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已存在该身份请刷新查看!"); |
| | | }; |
| | | identityInfo.setDeleted(Constants.ZERO); |
| | | identityInfo.setCreateTime(new Date()); |
| | | identityInfo.setUpdateTime(identityInfo.getCreateTime()); |
| | | identityInfo.setAuditStatus(Constants.ONE); |
| | | identityInfoMapper.insert(identityInfo); |
| | | |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity,Constants.ONE) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity,Constants.ONE) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity,Constants.ONE) |
| | | .eq(Member::getId,identityInfo.getMemberId())); |
| | | return identityInfo.getId(); |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void updateById(IdentityInfo identityInfo) { |
| | | if(Objects.isNull(identityInfo) |
| | | || Objects.isNull(identityInfo.getId()) |
| | |
| | | if(!Constants.equalsInteger(model.getAuditStatus(),Constants.THREE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"当前状态无法进行该操作"); |
| | | } |
| | | identityInfo.setAuditRemark(""); |
| | | identityInfo.setUpdateTime(new Date()); |
| | | identityInfo.setAuditStatus(Constants.ONE); |
| | | identityInfoMapper.updateById(identityInfo); |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity,Constants.ONE) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity,Constants.ONE) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity,Constants.ONE) |
| | | .eq(Member::getId,identityInfo.getMemberId())); |
| | | } |
| | | |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void updateLocation(IdentityInfo identityInfo) { |
| | | if(Objects.isNull(identityInfo) |
| | | || Objects.isNull(identityInfo.getId()) |
| | |
| | | |
| | | @Override |
| | | public IdentityInfo findById(Integer id) { |
| | | IdentityInfo identityInfo = identityInfoMapper.selectById(id); |
| | | //缺失前缀 |
| | | identityInfo.setPrefix(""); |
| | | return identityInfo; |
| | | IdentityInfo model = identityInfoMapper.selectById(id); |
| | | String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INENTITY_FILES).getCode(); |
| | | model.setImgList(new ArrayList<>()); |
| | | if(StringUtils.isNotBlank(model.getImg1())){ |
| | | model.getImgList().add(path + model.getImg1()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg2())){ |
| | | model.getImgList().add(path + model.getImg2()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg3())) { |
| | | model.getImgList().add(path + model.getImg3()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg4())){ |
| | | model.getImgList().add(path + model.getImg4()); |
| | | } |
| | | return model; |
| | | } |
| | | |
| | | |
| | | @Override |
| | | public IdentityInfo findByMemberType(Integer type,Integer memberId){ |
| | | IdentityInfo identityInfo = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda() |
| | | IdentityInfo model = identityInfoMapper.selectOne(new QueryWrapper<IdentityInfo>().lambda() |
| | | .eq(IdentityInfo::getMemberId,memberId).eq(IdentityInfo::getType,type)); |
| | | if(Objects.nonNull(identityInfo)){ |
| | | //缺失前缀 |
| | | identityInfo.setPrefix(""); |
| | | if(Objects.nonNull(model)){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INENTITY_FILES).getCode(); |
| | | model.setImgList(new ArrayList<>()); |
| | | if(StringUtils.isNotBlank(model.getImg1())){ |
| | | model.getImgList().add(path + model.getImg1()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg2())){ |
| | | model.getImgList().add(path + model.getImg2()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg3())) { |
| | | model.getImgList().add(path + model.getImg3()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg4())){ |
| | | model.getImgList().add(path + model.getImg4()); |
| | | } |
| | | }else{ |
| | | identityInfo = new IdentityInfo(); |
| | | model = new IdentityInfo(); |
| | | } |
| | | return identityInfo; |
| | | return model; |
| | | } |
| | | |
| | | |
| | |
| | | |
| | | private void addMemberModelByType(Integer id,Integer type, List<IdentityInfo> list,String path) { |
| | | MPJLambdaWrapper<IdentityInfo> wrapper = new MPJLambdaWrapper<IdentityInfo>() |
| | | .selectAll(IdentityInfo.class).selectAs(SystemUser::getUsername,IdentityInfo::getEditorName) |
| | | .selectAll(IdentityInfo.class) |
| | | .selectAs(SystemUser::getUsername,IdentityInfo::getEditorName) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,IdentityInfo::getUpdateUser) |
| | | .orderByDesc(IdentityInfo::getCreateTime )//取最新一条 |
| | | .eq(IdentityInfo::getMemberId,id) |
| | |
| | | .last("limit 1"); |
| | | IdentityInfo model = identityInfoMapper.selectJoinOne(IdentityInfo.class,wrapper); |
| | | if(model !=null){ |
| | | model.setImgList(new ArrayList<>()); |
| | | if(StringUtils.isNotBlank(model.getImg1())){ |
| | | model.setImg1(path+model.getImg1()); |
| | | model.getImgList().add(model.getImg1()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg2())){ |
| | | model.setImg2(path+model.getImg2()); |
| | | model.getImgList().add(model.getImg2()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg3())) { |
| | | model.setImg3(path + model.getImg3()); |
| | | model.getImgList().add(model.getImg3()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg4())){ |
| | | model.setImg4(path+model.getImg4()); |
| | | model.getImgList().add(model.getImg4()); |
| | | } |
| | | initModelImage(model,path); |
| | | list.add(model); |
| | | } |
| | | } |
| | |
| | | MPJLambdaWrapper<IdentityInfo> queryWrapper = new MPJLambdaWrapper<>(); |
| | | Utils.MP.blankToNull(pageWrap.getModel()); |
| | | pageWrap.getModel().setDeleted(Constants.ZERO); |
| | | queryWrapper.selectAll(IdentityInfo.class).selectAs(SystemUser::getUsername,IdentityInfo::getEditorName) |
| | | queryWrapper.selectAll(IdentityInfo.class) |
| | | .selectAs(Member::getNickName,IdentityInfo::getMemberName) |
| | | .selectAs(Member::getOpenid,IdentityInfo::getOpenid) |
| | | .selectAs(SystemUser::getUsername,IdentityInfo::getEditorName) |
| | | .leftJoin(Member.class,Member::getId,IdentityInfo::getMemberId) |
| | | .leftJoin(SystemUser.class,SystemUser::getId,IdentityInfo::getUpdateUser); |
| | | if (pageWrap.getModel().getId() != null) { |
| | | queryWrapper.eq(IdentityInfo::getId, pageWrap.getModel().getId()); |
| | |
| | | queryWrapper.le(IdentityInfo::getUpdateTime, Utils.Date.getEnd(pageWrap.getModel().getUpdateTime())); |
| | | } |
| | | if (pageWrap.getModel().getRemark() != null) { |
| | | queryWrapper.eq(IdentityInfo::getRemark, pageWrap.getModel().getRemark()); |
| | | queryWrapper.like(IdentityInfo::getRemark, pageWrap.getModel().getRemark()); |
| | | } |
| | | if (pageWrap.getModel().getType() != null) { |
| | | queryWrapper.eq(IdentityInfo::getType, pageWrap.getModel().getType()); |
| | |
| | | queryWrapper.eq(IdentityInfo::getAuthType, pageWrap.getModel().getAuthType()); |
| | | } |
| | | if (pageWrap.getModel().getLinkName() != null) { |
| | | queryWrapper.eq(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName()); |
| | | queryWrapper.like(IdentityInfo::getLinkName, pageWrap.getModel().getLinkName()); |
| | | } |
| | | if (pageWrap.getModel().getTelephone() != null) { |
| | | queryWrapper.eq(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone()); |
| | | queryWrapper.like(IdentityInfo::getTelephone, pageWrap.getModel().getTelephone()); |
| | | } |
| | | if (pageWrap.getModel().getLocation() != null) { |
| | | queryWrapper.eq(IdentityInfo::getLocation, pageWrap.getModel().getLocation()); |
| | | queryWrapper.like(IdentityInfo::getLocation, pageWrap.getModel().getLocation()); |
| | | } |
| | | if (pageWrap.getModel().getCompanyName() != null) { |
| | | queryWrapper.eq(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName()); |
| | | queryWrapper.like(IdentityInfo::getCompanyName, pageWrap.getModel().getCompanyName()); |
| | | } |
| | | if (pageWrap.getModel().getLat() != null) { |
| | | queryWrapper.eq(IdentityInfo::getLat, pageWrap.getModel().getLat()); |
| | |
| | | queryWrapper.le(IdentityInfo::getAuditTime, Utils.Date.getEnd(pageWrap.getModel().getAuditTime())); |
| | | } |
| | | if (pageWrap.getModel().getAuditRemark() != null) { |
| | | queryWrapper.eq(IdentityInfo::getAuditRemark, pageWrap.getModel().getAuditRemark()); |
| | | queryWrapper.like(IdentityInfo::getAuditRemark, pageWrap.getModel().getAuditRemark()); |
| | | } |
| | | for(PageWrap.SortData sortData: pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | queryWrapper.orderByAsc(IdentityInfo::getAuditStatus ); |
| | | queryWrapper.orderByDesc(IdentityInfo::getCreateTime ); |
| | | PageData<IdentityInfo> result = PageData.from(identityInfoMapper.selectJoinPage(page,IdentityInfo.class, queryWrapper)); |
| | | if(result!=null && result.getRecords()!=null){ |
| | | String path = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() |
| | | +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.INENTITY_FILES).getCode(); |
| | | for (IdentityInfo model :result.getRecords()){ |
| | | initModelImage(model,path); |
| | | } |
| | | } |
| | | return PageData.from(identityInfoMapper.selectJoinPage(page,IdentityInfo.class, queryWrapper)); |
| | | |
| | | return result; |
| | | |
| | | } |
| | | |
| | | private void initModelImage(IdentityInfo model, String path) { |
| | | model.setImgList(new ArrayList<>()); |
| | | if(StringUtils.isNotBlank(model.getImg1())){ |
| | | model.setImg1(path+model.getImg1()); |
| | | model.getImgList().add(model.getImg1()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg2())){ |
| | | model.setImg2(path+model.getImg2()); |
| | | model.getImgList().add(model.getImg2()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg3())) { |
| | | model.setImg3(path + model.getImg3()); |
| | | model.getImgList().add(model.getImg3()); |
| | | } |
| | | if(StringUtils.isNotBlank(model.getImg4())){ |
| | | model.setImg4(path+model.getImg4()); |
| | | model.getImgList().add(model.getImg4()); |
| | | } |
| | | } |
| | | |
| | | @Override |
| | |
| | | QueryWrapper<IdentityInfo> wrapper = new QueryWrapper<>(identityInfo); |
| | | return identityInfoMapper.selectCount(wrapper); |
| | | } |
| | | |
| | | |
| | | @Autowired |
| | | private SendWxMessage sendWxMessage; |
| | | |
| | | @Override |
| | | @Transactional(rollbackFor = {BusinessException.class,Exception.class}) |
| | | public void audit(AuditDTO auditDTO){ |
| | | if(Objects.isNull(auditDTO) |
| | | || Objects.isNull(auditDTO.getId()) |
| | | || Objects.isNull(auditDTO.getAuditStatus()) |
| | | || auditDTO.getAuditStatus()<2 |
| | | || auditDTO.getAuditStatus()>3){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); |
| | | IdentityInfo identityInfo = identityInfoMapper.selectById(auditDTO.getId()); |
| | | if(Objects.isNull(identityInfo)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | if(!Constants.equalsInteger(identityInfo.getAuditStatus(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"已审批,请勿重复操作"); |
| | | } |
| | | Member member = memberMapper.selectById(identityInfo.getMemberId()); |
| | | if(Objects.isNull(member)){ |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | identityInfo.setAuditStatus(auditDTO.getAuditStatus()); |
| | | identityInfo.setAuditRemark(auditDTO.getAuditRemark()); |
| | | identityInfo.setAuditTime(new Date()); |
| | | Date date = new Date(); |
| | | identityInfoMapper.update(new UpdateWrapper<IdentityInfo>().lambda() |
| | | .set(IdentityInfo::getAuditStatus, auditDTO.getAuditStatus() ) |
| | | .set(StringUtils.isNotBlank(auditDTO.getAuditRemark()),IdentityInfo::getAuditRemark,auditDTO.getAuditRemark()) |
| | | .set(IdentityInfo::getAuditTime,date) |
| | | .set(IdentityInfo::getUpdateUser,user.getId()) |
| | | .set(IdentityInfo::getUpdateTime,date) |
| | | .eq(IdentityInfo::getId,identityInfo.getId()) |
| | | ); |
| | | |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getUpdateUser,user.getId()) |
| | | .set(Member::getUpdateTime,date) |
| | | .set(Constants.equalsInteger(auditDTO.getAuditStatus(),Constants.ZERO),Member::getAutoReceiveStatus,Constants.ONE) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.ZERO),Member::getWorkerIdentity, auditDTO.getAuditStatus() ) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.ONE),Member::getDriverIdentity , auditDTO.getAuditStatus() ) |
| | | .set(Constants.equalsInteger(identityInfo.getType(),Constants.TWO),Member::getChefIdentity , auditDTO.getAuditStatus() ) |
| | | .eq(Member::getId,identityInfo.getMemberId()) |
| | | ); |
| | | |
| | | //发送微信通知 |
| | | if(StringUtils.isNotBlank(member.getOpenid())){ |
| | | sendWxMessage.identityInfoMessage(member.getOpenid(),identityInfo); |
| | | } |
| | | |
| | | //短信通知 |
| | | aliSmsService.businessSendSms(Constants.smsContent.authentication.getKey(), |
| | | member.getTelephone(),null,null, |
| | | identityInfo,categoryMapper); |
| | | |
| | | } |
| | | } |