| | |
| | | import com.doumee.core.utils.Utils; |
| | | import com.doumee.dao.business.IdentityInfoMapper; |
| | | import com.doumee.dao.business.MemberMapper; |
| | | import com.doumee.dao.business.OrdersMapper; |
| | | import com.doumee.dao.business.ShopInfoMapper; |
| | | import com.doumee.dao.business.SmsrecordMapper; |
| | | import com.doumee.dao.business.model.IdentityInfo; |
| | | import com.doumee.dao.business.model.Member; |
| | | import com.doumee.dao.business.model.ShopInfo; |
| | | import com.doumee.dao.business.model.MemberRevenue; |
| | | import com.doumee.dao.business.model.Orders; |
| | | import com.doumee.dao.business.model.Smsrecord; |
| | | import com.doumee.dao.dto.MemberListQueryDTO; |
| | | import com.doumee.dao.dto.UpdMobileRequest; |
| | | import com.doumee.dao.dto.WxPhoneRequest; |
| | | import com.doumee.dao.vo.AccountResponse; |
| | | import com.doumee.dao.vo.MemberDetailVO; |
| | | import com.doumee.dao.vo.MemberListVO; |
| | | import com.doumee.dao.vo.UserCenterVO; |
| | | import com.doumee.service.business.MemberService; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | |
| | | private IdentityInfoMapper identityInfoMapper; |
| | | |
| | | @Autowired |
| | | private OrdersMapper ordersMapper; |
| | | private SmsrecordMapper smsrecordMapper; |
| | | |
| | | @Autowired |
| | | private JwtTokenUtil jwtTokenUtil; |
| | |
| | | |
| | | @Autowired |
| | | private RedisTemplate<String,Object> redisTemplate; |
| | | |
| | | @Autowired |
| | | private ShopInfoMapper shopInfoMapper; |
| | | |
| | | |
| | | @Override |
| | |
| | | if (pageWrap.getModel().getName() != null) { |
| | | queryWrapper.lambda().like(Member::getName, pageWrap.getModel().getName()); |
| | | } |
| | | if (pageWrap.getModel().getWorkerIdentity() != null) { |
| | | queryWrapper.lambda().eq(Member::getWorkerIdentity, pageWrap.getModel().getWorkerIdentity()); |
| | | } |
| | | if (pageWrap.getModel().getDriverIdentity() != null) { |
| | | queryWrapper.lambda().eq(Member::getDriverIdentity, pageWrap.getModel().getDriverIdentity()); |
| | | } |
| | | if (pageWrap.getModel().getChefIdentity() != null) { |
| | | queryWrapper.lambda().eq(Member::getChefIdentity, pageWrap.getModel().getChefIdentity()); |
| | | } |
| | | if (pageWrap.getModel().getAmount() != null) { |
| | | queryWrapper.lambda().eq(Member::getAmount, pageWrap.getModel().getAmount()); |
| | | } |
| | |
| | | if (pageWrap.getModel().getArea() != null) { |
| | | queryWrapper.lambda().eq(Member::getArea, pageWrap.getModel().getArea()); |
| | | } |
| | | //如果查询接单方 |
| | | queryWrapper.lambda().and(Constants.equalsInteger(pageWrap.getModel().getType(),Constants.ONE ),w1->{ |
| | | w1.eq(Member::getWorkerIdentity,Constants.TWO ) |
| | | .or().eq(Member::getChefIdentity,Constants.TWO ) |
| | | .or().eq(Member::getDriverIdentity,Constants.TWO ); |
| | | }); |
| | | queryWrapper.lambda().ge(pageWrap.getModel().getStartTime()!=null, Member::getCreateTime,pageWrap.getModel().getStartTime()); |
| | | queryWrapper.lambda().le(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime()); |
| | | |
| | |
| | | if (StringUtils.isBlank(openId)) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "获取openid失败!请联系管理员"); |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenid, openId).eq(Member::getUserType,Constants.ZERO) |
| | | .eq(Member::getDeleted, Constants.ZERO).ne(Member::getStatus, Constants.TWO).last("limit 1")); |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getOpenid, openId) |
| | | .ne(Member::getUserType,Constants.ONE) |
| | | .eq(Member::getDeleted, Constants.ZERO) |
| | | .ne(Member::getStatus, Constants.TWO).last("limit 1")); |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setOpenid(openId); |
| | | if(Objects.isNull(member)){ |
| | |
| | | String token = JwtTokenUtil.generateTokenForRedis(member.getId(), Constants.ZERO, JSONObject.toJSONString(member), redisTemplate); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setMember(member); |
| | | // 门店用户身份时,返回申请的门店状态 |
| | | fillShopInfo(accountResponse, member); |
| | | return accountResponse; |
| | | } catch (WxErrorException e) { |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "微信登录异常!请联系管理员"); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | |
| | | if(Objects.isNull(mobile)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未获取到手机号"); |
| | | } |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getTelephone,mobile).eq(Member::getUserType,Constants.ZERO) |
| | | Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() |
| | | .eq(Member::getTelephone,mobile) |
| | | .ne(Member::getUserType,Constants.ONE) |
| | | .ne(Member::getStatus, Constants.TWO).last("limit 1")); |
| | | if(Objects.nonNull(member)){ |
| | | if(!Constants.equalsInteger(member.getStatus(),Constants.ZERO)){ |
| | |
| | | member.setTelephone(mobile); |
| | | member.setNickName(mobile); |
| | | // member.setCoverImage("1.png"); |
| | | member.setWorkerIdentity(Constants.ZERO); |
| | | member.setDriverIdentity(Constants.ZERO); |
| | | member.setChefIdentity(Constants.ZERO); |
| | | member.setAmount(Constants.ZERO.longValue()); |
| | | member.setTotalAmount(Constants.ZERO.longValue()); |
| | | member.setStatus(Constants.ZERO); |
| | |
| | | AccountResponse accountResponse = new AccountResponse(); |
| | | accountResponse.setToken(token); |
| | | accountResponse.setMember(member); |
| | | // 门店用户身份时,返回申请的门店状态 |
| | | fillShopInfo(accountResponse, member); |
| | | return accountResponse; |
| | | } catch (Exception e) { |
| | | e.printStackTrace(); |
| | |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 门店用户身份时,填充门店审核状态 |
| | | */ |
| | | private void fillShopInfo(AccountResponse response, Member member) { |
| | | if (Constants.TWO.equals(member.getUserType())) { |
| | | ShopInfo shopInfo = shopInfoMapper.selectOne(new QueryWrapper<ShopInfo>().lambda() |
| | | .eq(ShopInfo::getRegionMemberId, member.getId()) |
| | | .eq(ShopInfo::getDeleted, Constants.ZERO) |
| | | .last("limit 1")); |
| | | if (shopInfo != null) { |
| | | response.setShopId(shopInfo.getId()); |
| | | response.setShopAuditStatus(shopInfo.getAuditStatus()); |
| | | } |
| | | } |
| | | } |
| | | |
| | | |
| | | @Override |
| | |
| | | userCenterVO.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).getCode())); |
| | | userCenterVO.setUserAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.USER_AGREEMENT).getCode())); |
| | | userCenterVO.setPrivacyAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRIVACY_AGREEMENT).getCode())); |
| | | |
| | | // userCenterVO.setFeeStandards(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.FEE_STANDARDS).getCode())); |
| | | // userCenterVO.setServerIntroduce(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_INTRODUCE).getCode())); |
| | | // userCenterVO.setServerPhone(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_PHONE).getCode())); |
| | | userCenterVO.setServerIntroduce(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.SERVER_INTRODUCE).getCode())); |
| | | return userCenterVO; |
| | | } |
| | | |
| | |
| | | redisTemplate.delete(token); |
| | | } |
| | | |
| | | |
| | | /***************管理端会员列表接口*************/ |
| | | |
| | | @Override |
| | | public PageData<MemberListVO> findMemberListPage(PageWrap<MemberListQueryDTO> pageWrap) { |
| | | IPage<Member> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); |
| | | MemberListQueryDTO query = pageWrap.getModel(); |
| | | QueryWrapper<Member> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.lambda().eq(Member::getDeleted, Constants.ZERO); |
| | | queryWrapper.lambda().eq(Member::getUserType, Constants.ZERO); |
| | | if (query != null) { |
| | | if (StringUtils.isNotBlank(query.getKeyword())) { |
| | | queryWrapper.lambda().and(w -> w |
| | | .like(Member::getName, query.getKeyword()) |
| | | .or().like(Member::getTelephone, query.getKeyword())); |
| | | } |
| | | if (query.getStatus() != null) { |
| | | queryWrapper.lambda().eq(Member::getStatus, query.getStatus()); |
| | | } |
| | | if (query.getStartTime() != null) { |
| | | queryWrapper.lambda().ge(Member::getCreateTime, query.getStartTime()); |
| | | } |
| | | if (query.getEndTime() != null) { |
| | | queryWrapper.lambda().le(Member::getCreateTime, Utils.Date.getEnd(query.getEndTime())); |
| | | } |
| | | } |
| | | for (PageWrap.SortData sortData : pageWrap.getSorts()) { |
| | | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { |
| | | queryWrapper.orderByDesc(sortData.getProperty()); |
| | | } else { |
| | | queryWrapper.orderByAsc(sortData.getProperty()); |
| | | } |
| | | } |
| | | IPage<Member> memberPage = memberMapper.selectPage(page, queryWrapper); |
| | | IPage<MemberListVO> voPage = memberPage.convert(this::toListVO); |
| | | return PageData.from(voPage); |
| | | } |
| | | |
| | | @Override |
| | | public MemberDetailVO findMemberDetail(Integer id) { |
| | | Member member = memberMapper.selectById(id); |
| | | if (Objects.isNull(member) || Constants.equalsInteger(member.getDeleted(), Constants.ONE)) { |
| | | throw new BusinessException(ResponseStatus.DATA_EMPTY); |
| | | } |
| | | MemberDetailVO detail = new MemberDetailVO(); |
| | | detail.setId(member.getId()); |
| | | detail.setNickName(member.getNickName()); |
| | | detail.setName(member.getName()); |
| | | detail.setTelephone(member.getTelephone()); |
| | | detail.setAmount(member.getAmount()); |
| | | detail.setTotalAmount(member.getTotalAmount()); |
| | | detail.setStatus(member.getStatus()); |
| | | detail.setUseIdentity(member.getUseIdentity()); |
| | | detail.setOpenid(member.getOpenid()); |
| | | detail.setUserType(member.getUserType()); |
| | | detail.setBusinessStatus(member.getBusinessStatus()); |
| | | detail.setScore(member.getScore()); |
| | | detail.setReceiveNum(member.getReceiveNum()); |
| | | detail.setPublishNum(member.getPublishNum()); |
| | | detail.setCreateTime(member.getCreateTime()); |
| | | detail.setLoginTime(member.getLoginTime()); |
| | | detail.setLoginTimes(member.getLoginTimes()); |
| | | detail.setProvince(member.getProvince()); |
| | | detail.setCity(member.getCity()); |
| | | detail.setArea(member.getArea()); |
| | | detail.setAutoReceiveStatus(member.getAutoReceiveStatus()); |
| | | if (StringUtils.isNotBlank(member.getCoverImage())) { |
| | | String path = systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.RESOURCE_PATH).getCode() |
| | | + systemDictDataBiz.queryByCode(Constants.SYSTEM, Constants.MEMBER_FILES).getCode(); |
| | | detail.setFullCoverImage(path + member.getCoverImage()); |
| | | } |
| | | return detail; |
| | | } |
| | | |
| | | private MemberListVO toListVO(Member member) { |
| | | MemberListVO vo = new MemberListVO(); |
| | | vo.setId(member.getId()); |
| | | vo.setNickName(member.getNickName()); |
| | | vo.setName(member.getName()); |
| | | vo.setTelephone(member.getTelephone()); |
| | | vo.setCreateTime(member.getCreateTime()); |
| | | vo.setStatus(member.getStatus()); |
| | | return vo; |
| | | } |
| | | |
| | | |
| | | |
| | | |
| | | @Override |
| | | public void verifyUserPhone(UpdMobileRequest request){ |
| | | if(Objects.isNull(request) |
| | | || Objects.isNull(request.getMemberId()) |
| | | || StringUtils.isBlank(request.getPhone()) |
| | | || StringUtils.isBlank(request.getCode()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | Member member = memberMapper.selectById(request.getMemberId()); |
| | | if(StringUtils.isNotBlank(member.getTelephone())&&!member.getTelephone().equals(request.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"手机号错误"); |
| | | } |
| | | this.verifyPhoneCode(request.getCode(),request.getPhone()); |
| | | } |
| | | |
| | | public void verifyPhoneCode(String code,String phone){ |
| | | //验证码 |
| | | Smsrecord smsrecord = smsrecordMapper.selectOne(new QueryWrapper<Smsrecord>().lambda() |
| | | .eq(Smsrecord::getDeleted,Constants.ZERO) |
| | | .eq(Smsrecord::getCode,code) |
| | | .eq(Smsrecord::getPhone,phone) |
| | | .last(" limit 1") |
| | | ); |
| | | if(Objects.isNull(smsrecord)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"验证码错误!"); |
| | | } |
| | | if(!Constants.equalsInteger(smsrecord.getStatus(),Constants.ZERO)){ |
| | | if(Constants.equalsInteger(smsrecord.getStatus(),Constants.ONE)){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"验证码已使用"); |
| | | }else{ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"验证码已过期"); |
| | | } |
| | | } |
| | | smsrecordMapper.update(new UpdateWrapper<Smsrecord>().lambda() |
| | | .set(Smsrecord::getStatus,Constants.ONE) |
| | | .eq(Smsrecord::getId,smsrecord.getId()) |
| | | ); |
| | | } |
| | | |
| | | @Override |
| | | public void updateUserPhone(UpdMobileRequest request){ |
| | | if(Objects.isNull(request) |
| | | || Objects.isNull(request.getMemberId()) |
| | | || StringUtils.isBlank(request.getPhone()) |
| | | || StringUtils.isBlank(request.getCode()) |
| | | ){ |
| | | throw new BusinessException(ResponseStatus.BAD_REQUEST); |
| | | } |
| | | //判断新手机号是否已被使用 |
| | | if(memberMapper.selectCount(new QueryWrapper<Member>().lambda().eq(Member::getTelephone,request.getPhone()))>Constants.ZERO){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"对不起,新手机号已被绑定,无法进行换绑!"); |
| | | } |
| | | Member member = memberMapper.selectById(request.getMemberId()); |
| | | if(StringUtils.isNotBlank(member.getTelephone())&&member.getTelephone().equals(request.getPhone())){ |
| | | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"无法更换相同手机号"); |
| | | } |
| | | this.verifyPhoneCode(request.getCode(),request.getPhone()); |
| | | memberMapper.update(new UpdateWrapper<Member>().lambda() |
| | | .set(Member::getTelephone,request.getPhone()) |
| | | .eq(Member::getId,request.getMemberId()) |
| | | ); |
| | | } |
| | | |
| | | } |