|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult; | 
|---|
|  |  |  | import cn.binarywang.wx.miniapp.bean.WxMaPhoneNumberInfo; | 
|---|
|  |  |  | import com.alibaba.fastjson.JSONObject; | 
|---|
|  |  |  | import com.doumee.biz.system.SystemDictDataBiz; | 
|---|
|  |  |  | import com.doumee.config.jwt.JwtTokenUtil; | 
|---|
|  |  |  | import com.doumee.config.wx.WxMiniConfig; | 
|---|
|  |  |  | 
|---|
|  |  |  | import nonapi.io.github.classgraph.json.Id; | 
|---|
|  |  |  | import org.apache.commons.lang3.StringUtils; | 
|---|
|  |  |  | import org.springframework.beans.factory.annotation.Autowired; | 
|---|
|  |  |  | import org.springframework.data.redis.core.RedisTemplate; | 
|---|
|  |  |  | import org.springframework.stereotype.Service; | 
|---|
|  |  |  | import org.springframework.util.CollectionUtils; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | import javax.annotation.Resource; | 
|---|
|  |  |  | import java.util.Date; | 
|---|
|  |  |  | import java.util.List; | 
|---|
|  |  |  | import java.util.Objects; | 
|---|
|  |  |  | import java.util.Random; | 
|---|
|  |  |  | import java.util.concurrent.TimeUnit; | 
|---|
|  |  |  | import java.util.stream.Collectors; | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public Member findById(Integer id) { | 
|---|
|  |  |  | return memberMapper.selectById(id); | 
|---|
|  |  |  | Member member = memberMapper.selectById(id); | 
|---|
|  |  |  | if(Objects.isNull(member)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotBlank(member.getCoverImage())){ | 
|---|
|  |  |  | String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() | 
|---|
|  |  |  | +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode(); | 
|---|
|  |  |  | member.setFullCoverImage(path + member.getCoverImage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | return member; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | 
|---|
|  |  |  | 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().ne(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime()); | 
|---|
|  |  |  | queryWrapper.lambda().le(pageWrap.getModel().getEndTime()!=null,Member::getCreateTime,pageWrap.getModel().getEndTime()); | 
|---|
|  |  |  |  | 
|---|
|  |  |  | for(PageWrap.SortData sortData: pageWrap.getSorts()) { | 
|---|
|  |  |  | if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /***************小程序接口*************/ | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | /** | 
|---|
|  |  |  | * 微信小程序登录 | 
|---|
|  |  |  | * @param code | 
|---|
|  |  |  | 
|---|
|  |  |  | if (StringUtils.isBlank(openId)) { | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "获取openid失败!请联系管理员"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("openid", openId).eq("isdeleted", Constants.ZERO).last("limit 1")); | 
|---|
|  |  |  | Member member = memberMapper.selectOne(new QueryWrapper<Member>().eq("openid", openId).eq("DELETED", Constants.ZERO).last("limit 1")); | 
|---|
|  |  |  | AccountResponse accountResponse = new AccountResponse(); | 
|---|
|  |  |  | accountResponse.setOpenid(openId); | 
|---|
|  |  |  | if(Objects.isNull(member)){ | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public AccountResponse wxAuthPhone(WxPhoneRequest wxPhoneRequest) { | 
|---|
|  |  |  | if(Objects.isNull(wxPhoneRequest) | 
|---|
|  |  |  | || StringUtils.isBlank(wxPhoneRequest.getCode()) | 
|---|
|  |  |  | || StringUtils.isBlank(wxPhoneRequest.getOpenid())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | try { | 
|---|
|  |  |  | if(Objects.isNull(wxPhoneRequest) | 
|---|
|  |  |  | || StringUtils.isBlank(wxPhoneRequest.getCode()) | 
|---|
|  |  |  | || StringUtils.isBlank(wxPhoneRequest.getOpenid())){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | WxMaPhoneNumberInfo userPhoneInfo = WxMiniConfig.wxMaService.getUserService().getPhoneNumber(wxPhoneRequest.getCode()); | 
|---|
|  |  |  | String mobile = userPhoneInfo.getPhoneNumber(); | 
|---|
|  |  |  | if(Objects.isNull(mobile)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"未获取到手机号"); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | Member member =  memberMapper.selectOne(new QueryWrapper<Member>().lambda().eq(Member::getTelephone,mobile).last("limit 1")); | 
|---|
|  |  |  | member.setOpenid(wxPhoneRequest.getOpenid()); | 
|---|
|  |  |  | if(Objects.nonNull(member)){ | 
|---|
|  |  |  | memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getTelephone,mobile) | 
|---|
|  |  |  | .set(Member::getOpenid,wxPhoneRequest.getOpenid()).set(Member::getUpdateTime,new Date()).eq(Member::getId,member.getId())); | 
|---|
|  |  |  | }else{ | 
|---|
|  |  |  | member = new Member(); | 
|---|
|  |  |  | member.setCreateTime(new Date()); | 
|---|
|  |  |  | member.setUpdateTime(member.getCreateTime()); | 
|---|
|  |  |  | member.setDeleted(Constants.ZERO); | 
|---|
|  |  |  | member.setOpenid(wxPhoneRequest.getOpenid()); | 
|---|
|  |  |  | member.setTelephone(mobile); | 
|---|
|  |  |  | member.setNickName(mobile); | 
|---|
|  |  |  | member.setCoverImage(""); | 
|---|
|  |  |  | //                member.setCoverImage("1.png"); | 
|---|
|  |  |  | member.setWorkerIdentity(Constants.ZERO); | 
|---|
|  |  |  | member.setDriverIdentity(Constants.ZERO); | 
|---|
|  |  |  | member.setChefIdentity(Constants.ZERO); | 
|---|
|  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void editMemberInfo(Member member){ | 
|---|
|  |  |  | if(Objects.isNull(member) | 
|---|
|  |  |  | || ( StringUtils.isBlank(member.getCoverImage()) || StringUtils.isBlank(member.getName()) || StringUtils.isBlank(member.getNickName()) || Objects.isNull(member.getAutoReceiveStatus()) )){ | 
|---|
|  |  |  | || ( StringUtils.isBlank(member.getCoverImage()) | 
|---|
|  |  |  | && StringUtils.isBlank(member.getName()) | 
|---|
|  |  |  | && StringUtils.isBlank(member.getNickName()) | 
|---|
|  |  |  | && Objects.isNull(member.getAutoReceiveStatus()) )){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.BAD_REQUEST); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | memberMapper.update(new UpdateWrapper<Member>().lambda() | 
|---|
|  |  |  | .set(StringUtils.isNotBlank(member.getNickName()),Member::getNickName,member.getNickName()) | 
|---|
|  |  |  | .set(StringUtils.isNotBlank(member.getName()),Member::getName,member.getName()) | 
|---|
|  |  |  | .set(StringUtils.isNotBlank(member.getCoverImage()),Member::getCoverImage,member.getCoverImage()) | 
|---|
|  |  |  | .set(Objects.nonNull(member.getAutoReceiveStatus()),Member::getCoverImage,member.getAutoReceiveStatus()) | 
|---|
|  |  |  | .set(Objects.nonNull(member.getAutoReceiveStatus()),Member::getAutoReceiveStatus,member.getAutoReceiveStatus()) | 
|---|
|  |  |  | .set(Member::getUpdateTime,new Date()) | 
|---|
|  |  |  | .eq(Member::getId,member.getId())); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  | if(Objects.isNull(member)){ | 
|---|
|  |  |  | throw new BusinessException(ResponseStatus.DATA_EMPTY); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | if(StringUtils.isNotBlank(member.getCoverImage())){ | 
|---|
|  |  |  | String path  = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RESOURCE_PATH).getCode() | 
|---|
|  |  |  | +systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.MEMBER_FILES).getCode(); | 
|---|
|  |  |  | member.setFullCoverImage(path + member.getCoverImage()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | UserCenterVO userCenterVO = new UserCenterVO(); | 
|---|
|  |  |  | userCenterVO.setReleaseTaskTotal(Constants.ZERO); | 
|---|
|  |  |  | userCenterVO.setWaitReceiveTotal(Constants.ZERO); | 
|---|
|  |  |  | 
|---|
|  |  |  | userCenterVO.setTaskingTotal(Constants.ZERO); | 
|---|
|  |  |  | userCenterVO.setDoneTotal(Constants.ZERO); | 
|---|
|  |  |  | userCenterVO.setReceiveTotal(Constants.ZERO); | 
|---|
|  |  |  | List<Orders> releaseOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getReleaseMemberId,member)); | 
|---|
|  |  |  | List<Orders> releaseOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO) | 
|---|
|  |  |  | .eq(Orders::getReleaseMemberId,member.getId())); | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(releaseOrders)){ | 
|---|
|  |  |  | userCenterVO.setReleaseTaskTotal(releaseOrders.size()); | 
|---|
|  |  |  | userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ZERO)).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setDoingTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)&&Constants.equalsInteger(i.getCommentStatus(),Constants.ZERO)).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setWaitCommentTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())&&Constants.equalsInteger(i.getCommentStatus(),Constants.ZERO)).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setDoingTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setWaitReceiveTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.wait.getKey())).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  | List<Orders> acceptOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getAcceptMemberId,member)); | 
|---|
|  |  |  | List<Orders> acceptOrders = ordersMapper.selectList(new QueryWrapper<Orders>().lambda().eq(Orders::getDeleted,Constants.ZERO).eq(Orders::getAcceptMemberId,member.getId())); | 
|---|
|  |  |  | if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(acceptOrders)){ | 
|---|
|  |  |  | userCenterVO.setReceiveTotal(acceptOrders.size()); | 
|---|
|  |  |  | userCenterVO.setTaskingTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.TWO)).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setDoneTotal(releaseOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.THREE)).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setTaskingTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.doing.getKey())).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | userCenterVO.setDoneTotal(acceptOrders.stream().filter(i->Constants.equalsInteger(i.getStatus(),Constants.ordersStatus.done.getKey())).collect(Collectors.toList()).size()); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | userCenterVO.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).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())); | 
|---|
|  |  |  | member.setUserCenterVO(userCenterVO); | 
|---|
|  |  |  | return member; | 
|---|
|  |  |  | } | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public UserCenterVO getPlatformAboutUs(){ | 
|---|
|  |  |  | UserCenterVO userCenterVO = new UserCenterVO(); | 
|---|
|  |  |  | userCenterVO.setAboutUs(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.ABOUT_US).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.setUserAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.USER_AGREEMENT).getCode())); | 
|---|
|  |  |  | userCenterVO.setPrivacyAgreement(StringUtils.trimToNull(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.PRIVACY_AGREEMENT).getCode())); | 
|---|
|  |  |  | return userCenterVO; | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  | @Override | 
|---|
|  |  |  | public void logOff(String token,Integer memberId){ | 
|---|
|  |  |  | memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" openid = null ").eq(Member::getId,memberId)); | 
|---|
|  |  |  | jwtTokenUtil.logoutForH5(token); | 
|---|
|  |  |  | } | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | } | 
|---|