From 13d0fc75a48f91cb1e6efa124d5f838b382ea53c Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期五, 18 七月 2025 18:59:45 +0800 Subject: [PATCH] 调接口 --- server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 326 +++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 222 insertions(+), 104 deletions(-) diff --git a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java index f9a8129..a640402 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java @@ -17,6 +17,7 @@ import com.doumee.dao.business.*; import com.doumee.dao.business.model.*; import com.doumee.dao.dto.*; +import com.doumee.dao.vo.OrderReleaseVO; import com.doumee.service.business.OrdersService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -42,10 +43,7 @@ import javax.annotation.Resource; import java.math.BigDecimal; -import java.util.Date; -import java.util.List; -import java.util.Objects; -import java.util.UUID; +import java.util.*; import java.util.concurrent.TimeUnit; /** @@ -91,11 +89,21 @@ @Override @Transactional(rollbackFor = {Exception.class,BusinessException.class}) - public Object create(Orders orders) { + public OrderReleaseVO create(Orders orders) { + OrderReleaseVO orderReleaseVO = new OrderReleaseVO(); Object objects = null; this.initVerification(orders); orders.setCreateTime(new Date()); + orders.setUpdateTime(orders.getUpdateTime()); orders.setPayStatus(Constants.ZERO); + orders.setDeleted(Constants.ZERO); + orders.setReleaseMemberId(orders.getMember().getId()); + //鏌ヨ鎵嬬画璐� + Category platformCategory = categoryMapper.selectOne(new QueryWrapper<Category>().lambda().eq(Category::getType,Constants.THREE).eq(Category::getName,orders.getType()).eq(Category::getDeleted,Constants.ZERO).last("limit 1 ")); + if(Objects.isNull(platformCategory)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈缃钩鍙伴厤缃俊鎭�"); + } + orders.setPlatformRata(new BigDecimal(platformCategory.getDetail()).divide(new BigDecimal("100"))); //璁㈠崟缂栧彿 orders.setCode(this.getNextCode(orders.getType())); Category category = categoryMapper.selectOne(new QueryWrapper<Category>().lambda() @@ -111,15 +119,16 @@ orders.setStatus(Constants.ordersStatus.waitPay.getKey()); //鍞よ捣鏀粯涓氬姟 objects = this.getWxPayResponse(orders,orders.getMember().getOpenid()); + orderReleaseVO.setObject(objects); }else{ orders.setStatus(Constants.ordersStatus.wait.getKey()); } ordersMapper.insert(orders); + orderReleaseVO.setId(orders.getId()); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(orders.getMultifileList())){ List<Multifile> multifileList = orders.getMultifileList(); for (Multifile multifile:multifileList) { if(Objects.isNull(multifile) - || Objects.isNull(multifile.getObjType()) || StringUtils.isEmpty(multifile.getFileurl()) || StringUtils.isEmpty(multifile.getName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢淇℃伅閿欒"); @@ -132,7 +141,7 @@ multifileMapper.insert(multifileList); } //鏇存柊鐢ㄦ埛鍙戝崟閲� - memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum," (receive_num + 1 )").eq(Member::getId,orders.getMember().getId())); + memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" receive_num = ( receive_num + 1 )").eq(Member::getId,orders.getMember().getId())); //鍒涘缓鎿嶄綔鏃ュ織 Constants.OrdersLog ordersLog = Constants.OrdersLog.UPLOAD; @@ -150,7 +159,7 @@ .replace("{param}",orderTypeInfo); this.saveOrderLog(orders,ordersLog, logInfo,orders.getReleaseMemberId(),null); - return objects; + return orderReleaseVO; } private Object getWxPayResponse(Orders orders,String openid){ @@ -210,11 +219,11 @@ || Objects.isNull(orders.getStartDate()) || Objects.isNull(orders.getEndDate()) || StringUtil.isBlank(orders.getLocation()) - || StringUtil.isBlank(orders.getLocationRemark()) + || (!Constants.equalsInteger(Constants.ONE,orders.getType())&&StringUtil.isBlank(orders.getLocationRemark())) + || StringUtil.isBlank(orders.getLinkPhone()) || Objects.isNull(orders.getLat()) || Objects.isNull(orders.getLgt()) || Objects.isNull(orders.getCategoryId()) - || Objects.isNull(orders.getTotalDays()) || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Objects.isNull(orders.getWorkType())) || Objects.isNull(orders.getPriceNum1()) || Objects.isNull(orders.getEstimatedAccount()) @@ -222,19 +231,20 @@ ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - if((Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO )) - || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) - &&Constants.equalsInteger(orders.getCarType(),Constants.TWO)) - || Constants.equalsInteger(orders.getType(),Constants.ONE) + if( (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) && + ( Constants.equalsInteger(orders.getCarType(),Constants.ZERO) || Constants.equalsInteger(orders.getCarType(),Constants.ONE) )) + || (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ONE)) ){ + if(Objects.isNull(orders.getPriceNum2())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + }else{ orders.setPriceNum2(Constants.ONE); } - if(Objects.isNull(orders.getPriceNum2())){ - throw new BusinessException(ResponseStatus.BAD_REQUEST); - } + orders.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1); if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ if(Constants.equalsInteger(orders.getWorkType(),Constants.TWO) - && Objects.isNull(orders.getCarType())){ + && ( Objects.isNull(orders.getCarType()) ) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ @@ -243,6 +253,7 @@ || Objects.isNull(orders.getTransportNum()) || StringUtils.isEmpty(orders.getTransportUnit()) || StringUtils.isEmpty(orders.getLocationEnd()) + || StringUtils.isEmpty(orders.getCarUnit()) || Objects.isNull(orders.getLatEnd()) || Objects.isNull(orders.getLgtEnd()) || CollectionUtils.isEmpty(orders.getWayInfoDTOList()) @@ -252,9 +263,9 @@ for (WayInfoDTO wayInfoDTO:orders.getWayInfoDTOList()) { if(Objects.isNull(wayInfoDTO) ||StringUtils.isEmpty(wayInfoDTO.getLocation()) - ||StringUtils.isEmpty(wayInfoDTO.getProvince()) - ||StringUtils.isEmpty(wayInfoDTO.getCity()) - ||StringUtils.isEmpty(wayInfoDTO.getArea()) +// ||StringUtils.isEmpty(wayInfoDTO.getProvince()) +// ||StringUtils.isEmpty(wayInfoDTO.getCity()) +// ||StringUtils.isEmpty(wayInfoDTO.getArea()) ||Objects.isNull(wayInfoDTO.getLat()) ||Objects.isNull(wayInfoDTO.getLgt()) ){ @@ -287,6 +298,9 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閲戦璁$畻閿欒!"); } } + + + @@ -387,6 +401,28 @@ throw new BusinessException(ResponseStatus.DATA_EMPTY); } orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus())); + + if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ + if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){ + orders.setPriceUnit("鍏�/鏂�"); + }else if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)){ + orders.setPriceUnit("鍏�/浜�/澶�"); + }else{ + if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){ + orders.setPriceUnit("鍏�/浜�/澶�"); + }else if(Constants.equalsInteger(orders.getCarType(),Constants.ONE)){ + orders.setPriceUnit("鍏�/浜�/灏忔椂"); + }else{ + orders.setPriceUnit("鍏�/鏂�"); + } + } + }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ + if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){ + orders.setPriceUnit("鍏�/澶�"); + }else if(Constants.equalsInteger(orders.getCarType(),Constants.ONE)){ + orders.setPriceUnit("鍏�/娆�"); + } + } //闄勪欢淇℃伅 List<Multifile> multifileList = multifileMapper.selectList(new QueryWrapper<Multifile>().lambda().eq(Multifile::getObjId,orders.getId()) .eq(Multifile::getIsdeleted,Constants.ZERO).eq(Multifile::getObjType,Constants.ONE).orderByAsc(Multifile::getId)); @@ -503,11 +539,11 @@ if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)){ if(Objects.nonNull(orders.getPriceNum2())) { - orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum2() + "澶�"); + orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum1() + "澶�"); } }else{ if(Objects.nonNull(orders.getPriceNum2())) { - orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum2() + "娆�"); + orders.setOrderContent(orders.getOrderContent() + " | 鐢ㄨ溅" + orders.getPriceNum1() + "娆�"); } } }else{ @@ -567,14 +603,19 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); } } - orders.setUpdateTime(new Date()); - orders.setAcceptType(Constants.ZERO); - orders.setAcceptTime(new Date()); - orders.setAcceptMemberId(member.getId()); - orders.setStatus(Constants.ordersStatus.accept.getKey()); - ordersMapper.updateById(orders); + + ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId()) + .set(Orders::getUpdateTime,new Date()) + .set(Orders::getAcceptType,Constants.ZERO) + .set(Orders::getAcceptTime,new Date()) + .set(Orders::getAcceptMemberId,member.getId()) + .set(Orders::getStatus,Constants.ordersStatus.accept.getKey()) + ); + + + //鏇存柊鎺ュ崟閲� - memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum," (publish_num + 1 )").eq(Member::getId,member.getId())); + memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (publish_num + 1 )").eq(Member::getId,member.getId())); //鍒涘缓鎿嶄綔鏃ュ織 Constants.OrdersLog ordersLog = Constants.OrdersLog.RECEIVE; @@ -603,7 +644,7 @@ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); } - if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + if(!Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){ @@ -631,8 +672,7 @@ if(Objects.isNull(updOrderDataDTO) || Objects.isNull(updOrderDataDTO.getOrderId()) || Objects.isNull(updOrderDataDTO.getStartDate()) - || Objects.isNull(updOrderDataDTO.getEndDate()) - || Objects.isNull(updOrderDataDTO.getTotalDays())){ + || Objects.isNull(updOrderDataDTO.getEndDate())){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } Orders orders = ordersMapper.selectById(updOrderDataDTO.getOrderId()); @@ -642,7 +682,7 @@ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); } - if(Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){ + if(!Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){ @@ -669,8 +709,8 @@ .set(Orders::getEndDate,updOrderDataDTO.getEndDate()) .set(Orders::getTotalDays,updOrderDataDTO.getTotalDays()) .set(Orders::getIsUpdate,Constants.ONE) - .set(Orders::getIsUpdateTime,"now()") - .set(Orders::getUpdateTime,"now()") + .set(Orders::getIsUpdateTime,new Date()) + .set(Orders::getUpdateTime,new Date()) .set(Orders::getEstimatedAccount,total) .eq(Orders::getId,orders.getId()) ); @@ -683,14 +723,22 @@ } + @Override public Long getTotal(Orders orders){ + if(Objects.isNull(orders) + ||Objects.isNull(orders.getPrice()) + ||Objects.isNull(orders.getPriceNum1())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } if( - (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO )) || - (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) - &&Constants.equalsInteger(orders.getCarType(),Constants.TWO)) + (Constants.equalsInteger(orders.getType(),Constants.ZERO) && Constants.equalsInteger(orders.getWorkType(),Constants.ZERO )) || Constants.equalsInteger(orders.getType(),Constants.ONE) ){ orders.setPriceNum2(Constants.ONE); + }else{ + if(Objects.isNull(orders.getPriceNum2())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } } return orders.getPrice() * orders.getPriceNum1() * orders.getPriceNum2(); } @@ -721,13 +769,13 @@ if(!Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔"); } - if(Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){ + if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } if( Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){ ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getIsUpdate,Constants.TWO) - .set(Orders::getUpdateTime,"now()") + .set(Orders::getUpdateTime,new Date()) .eq(Orders::getId,orders.getId()) ); //璁板綍鍚屾剰淇敼鐨勬棩蹇� @@ -737,7 +785,7 @@ }else{ ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getIsUpdate,Constants.TWO) - .set(Orders::getUpdateTime,"now()") + .set(Orders::getUpdateTime,new Date()) .set(Orders::getStatus,Constants.ordersStatus.wait.getKey()) .set(Orders::getAcceptMemberId,null) .set(Orders::getAcceptType,null) @@ -774,7 +822,7 @@ || Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey()))){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); } - if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + if(!Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } //寰呮敮浠樼敤椁愯鍗�/寰呮帴鍗曡鍗曡繘琛屽彇娑� @@ -794,8 +842,8 @@ } ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey()) - .set(Orders::getUpdateTime,"now()") - .set(Orders::getCancelTime,"now()") + .set(Orders::getUpdateTime,new Date()) + .set(Orders::getCancelTime,new Date()) .set(Orders::getCancelType,Constants.ZERO) .eq(Orders::getId,orders.getId()) ); @@ -832,8 +880,8 @@ } ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey()) - .set(Orders::getUpdateTime,"now()") - .set(Orders::getCancelTime,"now()") + .set(Orders::getUpdateTime,new Date()) + .set(Orders::getCancelTime,new Date()) .set(Orders::getCancelType,Constants.ONE) .eq(Orders::getId,orders.getId()) ); @@ -867,7 +915,7 @@ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); } - if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){ + if(!Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗 @@ -887,7 +935,7 @@ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�"); } ordersMapper.update(new UpdateWrapper<Orders>().lambda() - .set(Orders::getUpdateTime,"now()") + .set(Orders::getUpdateTime,new Date()) .set(Orders::getStatus,Constants.ordersStatus.wait.getKey()) .set(Orders::getAcceptMemberId,null) .set(Orders::getAcceptType,null) @@ -926,9 +974,10 @@ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.doing.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); } - if(Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){ + if(!Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } + orders.setPayAccount(doneOrderDTO.getAmount()); Object object = null; //鐢ㄩ璁㈠崟 if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){ @@ -978,17 +1027,21 @@ } //鍑忓皯鍙戝崟閲� - memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum,"publish_num - 1").eq(Member::getId,orders.getReleaseMemberId())); + memberMapper.update(new UpdateWrapper<Member>().lambda() + .setSql("publish_num = ifnull(publish_num,0) - 1") + .eq(Member::getId,orders.getReleaseMemberId())); if(Constants.equalsInteger(orders.getStatus(),Constants.TWO)||Constants.equalsInteger(orders.getStatus(),Constants.THREE)){ //鍑忓皯鎺ュ崟閲� - memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId())); + memberMapper.update(new UpdateWrapper<Member>().lambda() + .setSql("receive_num = ifnull(receive_num,0) - 1") + .eq(Member::getId,orders.getAcceptMemberId())); } - + Date date = new Date(); ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getStatus,Constants.ordersStatus.cancel.getKey()) - .set(Orders::getUpdateTime,"now()") - .set(Orders::getCancelTime,"now()") + .set(Orders::getUpdateTime,date) + .set(Orders::getCancelTime,date) .set(Orders::getCancelType,Constants.TWO) .eq(Orders::getId,orders.getId()) ); @@ -1024,8 +1077,8 @@ ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getCommentStatus,Constants.ONE) - .set(Orders::getUpdateTime,"now()") - .set(Orders::getCommentTime,"now()") + .set(Orders::getUpdateTime,new Date()) + .set(Orders::getCommentTime,new Date()) .set(Orders::getCommentLevel,commentDTO.getLevel()) .set(Orders::getCommentType,Constants.ZERO) .eq(Orders::getId,orders.getId()) @@ -1063,9 +1116,11 @@ }else{ //澶勭悊鏀粯瀹屾垚閫昏緫 ordersMapper.update(new UpdateWrapper<Orders>().lambda() - .set(Orders::getUpdateTime,"now()") + .set(Orders::getUpdateTime,new Date()) .set(Orders::getStatus,Constants.ordersStatus.wait) .set(Orders::getPayStatus,Constants.ONE) + .set(Orders::getPayTime,new Date()) + .set(Orders::getPayMethod,Constants.ZERO) .set(Orders::getWxExternalNo,paymentNo) .eq(Orders::getId,orders.getId()) ); @@ -1082,11 +1137,13 @@ }else{ //澶勭悊鏀粯瀹屾垚閫昏緫 ordersMapper.update(new UpdateWrapper<Orders>().lambda() - .set(Orders::getUpdateTime,"now()") + .set(Orders::getUpdateTime,new Date()) .set(Orders::getStatus,Constants.FOUR) .set(Orders::getPayStatus,Constants.ONE) + .set(Orders::getPayTime,new Date()) + .set(Orders::getPayMethod,Constants.ZERO) .set(Orders::getWxExternalNo,paymentNo) - .set(Orders::getFinishTime,"now()") + .set(Orders::getFinishTime,new Date()) .eq(Orders::getId,orders.getId()) ); @@ -1143,15 +1200,19 @@ //鎺ュ崟鏂� 鎴戠殑璁㈠崟 queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId()); }else{ + queryWrapper.eq(Orders::getStatus,Constants.ordersStatus.wait.getKey()); //鎺ュ崟澶у巺 - queryWrapper.and(i-> + queryWrapper.and(Constants.equalsInteger(model.getMember().getWorkerIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getDriverIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getChefIdentity(),Constants.TWO),i-> i.eq(Constants.equalsInteger(model.getMember().getWorkerIdentity(),Constants.TWO),Orders::getType,Constants.ZERO) .or() .eq(Constants.equalsInteger(model.getMember().getDriverIdentity(),Constants.TWO),Orders::getType,Constants.ONE) .or() .eq(Constants.equalsInteger(model.getMember().getChefIdentity(),Constants.TWO),Orders::getType,Constants.TWO) ); - queryWrapper.eq(Orders::getStatus,Constants.ONE); + + queryWrapper.apply(!(Constants.equalsInteger(model.getMember().getWorkerIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getDriverIdentity(),Constants.TWO)||Constants.equalsInteger(model.getMember().getChefIdentity(),Constants.TWO))," 1 = 2 " + ); + } } for(PageWrap.SortData sortData: pageWrap.getSorts()) { @@ -1201,41 +1262,44 @@ //瀹氫綅璺濈 public void getDistance(Member member,Orders orders){ + try{ + if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ + if(Objects.nonNull(member.getWorkerIdentityModel())&&Objects.nonNull(member.getWorkerIdentityModel().getLgt()) + &&Objects.nonNull(member.getWorkerIdentityModel().getLat())){ + orders.setDistance( + GeoUtils.haversineDistance( + orders.getLgt().doubleValue(),orders.getLat().doubleValue(), + member.getWorkerIdentityModel().getLgt().doubleValue(), + member.getWorkerIdentityModel().getLat().doubleValue() + ) + ); + } - if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ - if(Objects.nonNull(member.getWorkerIdentityModel())&&Objects.nonNull(member.getWorkerIdentityModel().getLgt()) - &&Objects.nonNull(member.getWorkerIdentityModel().getLat())){ - orders.setDistance( - GeoUtils.haversineDistance( - orders.getLgt().doubleValue(),orders.getLat().doubleValue(), - member.getWorkerIdentityModel().getLgt().doubleValue(), - member.getWorkerIdentityModel().getLat().doubleValue() - ) - ); + }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ + if(Objects.nonNull(member.getDriverIdentityModel())&&Objects.nonNull(member.getDriverIdentityModel().getLgt()) + &&Objects.nonNull(member.getDriverIdentityModel().getLat())) { + orders.setDistance( + GeoUtils.haversineDistance( + orders.getLgt().doubleValue(), orders.getLat().doubleValue(), + member.getDriverIdentityModel().getLgt().doubleValue(), + member.getDriverIdentityModel().getLat().doubleValue() + ) + ); + } + }else{ + if(Objects.nonNull(member.getChefIdentityModel())&&Objects.nonNull(member.getChefIdentityModel().getLgt()) + &&Objects.nonNull(member.getChefIdentityModel().getLat())) { + orders.setDistance( + GeoUtils.haversineDistance( + orders.getLgt().doubleValue(),orders.getLat().doubleValue(), + member.getChefIdentityModel().getLgt().doubleValue(), + member.getChefIdentityModel().getLat().doubleValue() + ) + ); + } } - - }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ - if(Objects.nonNull(member.getDriverIdentityModel())&&Objects.nonNull(member.getDriverIdentityModel().getLgt()) - &&Objects.nonNull(member.getDriverIdentityModel().getLat())) { - orders.setDistance( - GeoUtils.haversineDistance( - orders.getLgt().doubleValue(), orders.getLat().doubleValue(), - member.getDriverIdentityModel().getLgt().doubleValue(), - member.getDriverIdentityModel().getLat().doubleValue() - ) - ); - } - }else{ - if(Objects.nonNull(member.getChefIdentityModel())&&Objects.nonNull(member.getChefIdentityModel().getLgt()) - &&Objects.nonNull(member.getChefIdentityModel().getLat())) { - orders.setDistance( - GeoUtils.haversineDistance( - orders.getLgt().doubleValue(),orders.getLat().doubleValue(), - member.getChefIdentityModel().getLgt().doubleValue(), - member.getChefIdentityModel().getLat().doubleValue() - ) - ); - } + }catch (Exception e){ + orders.setDistance(0L); } } @@ -1289,7 +1353,7 @@ if(!Constants.equalsInteger(type,Constants.ZERO)){ prefix = (Constants.equalsInteger(type,Constants.ONE)?"YH-":"DC-"); } - prefix = DateUtil.getDate(new Date(),"yyyyMMddHHmmss") +"-"; + prefix = prefix + DateUtil.getCurrDateTimeShort() +"-"; Integer countNum = (Integer) redisTemplate.opsForValue().get(Constants.RedisKeys.ORDER_CODE);//RedisUtil.getObject(redisTemplate, Constants.RedisKeys.ORDER_CODE, Integer.class); countNum = Constants.formatIntegerNum(countNum)+1; @@ -1321,11 +1385,60 @@ } - - //todo 鑷姩娲惧崟 + /** + * 鑷姩娲惧崟 + */ + @Override public void autoGrabOrders(){ + String autoConfirmTime = systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.AUTO_DISPATCH).getCode(); + List<Orders> ordersList = ordersMapper.selectList(new QueryWrapper<Orders>().lambda() + .eq(Orders::getStatus,Constants.ONE).eq(Orders::getCommentStatus,Constants.ZERO) + .apply(" DATE_ADD(create_time, INTERVAL "+autoConfirmTime+" MINUTE) < now() ") + .last("limit 100") + ); + for (Orders orders:ordersList) { + BigDecimal lat = orders.getLat(); + BigDecimal lgt = orders.getLgt(); + //鏌ヨ鑼冨洿鍐呯殑浼氬憳 + List<Member> memberList = memberMapper.selectList(new MPJLambdaWrapper<Member>().selectAll(Member.class) + .select(" ifnull((select r.level from receive_weight r where r.RECEIVE_MAX > t.RECEIVE_NUM and t.RECEIVE_NUM > r.RECEIVE_MIN limit 1 ),0) " ,Member::getLevel) + .select( " ifnull( (select CONVERT( ST_Distance_Sphere ( POINT ( ii.lgt, ii.lat ), POINT ( "+lgt+", "+lat+" )) /1000,DECIMAL(15,2)) from identity_info ii where ii.AUDIT_STATUS = 2 and type = 0 and ii.member_id = t.ID limit 1 ),0) ",Member::getDistance ) + .apply(" id in (" + + " select ii.member_id from identity_info ii where ii.AUDIT_STATUS = 2 and type = '"+orders.getType()+"' " + + " and ( CONVERT( ST_Distance_Sphere ( POINT ( ii.lgt, ii.lat ), POINT ( "+lgt+", "+lat+" )) /1000,DECIMAL(15,2))) < 100 " + + ") ") + .orderByDesc(Member::getLevel) + .orderByDesc(Member::getScore) + .orderByAsc(Member::getDistance) + .last(" limit 1 ") + ); + if(CollectionUtils.isEmpty(memberList)){ + continue; + } + Member member = memberList.get(Constants.ZERO); + //鑷姩娲惧崟 + Orders model = ordersMapper.selectById(orders.getStatus()); + if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){ + continue; + } + ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,model.getId()) + .set(Orders::getUpdateTime,new Date()) + .set(Orders::getAcceptType,Constants.ONE) + .set(Orders::getAcceptTime,new Date()) + .set(Orders::getAcceptMemberId,member.getId()) + .set(Orders::getStatus,Constants.ordersStatus.accept.getKey()) + ); + //鏇存柊鎺ュ崟閲� + memberMapper.update(new UpdateWrapper<Member>().lambda().setSql(" publish_num = (publish_num + 1 )").eq(Member::getId,member.getId())); + + //鍒涘缓鎿嶄綔鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.AUTO; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),member.getId(),null); + + } } //鑷姩璇勪环 璁㈠崟瀹屾垚7澶╁悗鑷姩璇勪环4鏄� @@ -1341,17 +1454,17 @@ for (Orders orders:ordersList) { ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getCommentStatus,Constants.ONE) - .set(Orders::getUpdateTime,"now()") - .set(Orders::getCommentTime,"now()") + .set(Orders::getUpdateTime,new Date()) + .set(Orders::getCommentTime,new Date()) .set(Orders::getCommentLevel,Constants.FOUR) .set(Orders::getCommentType,Constants.ZERO) .eq(Orders::getId,orders.getId()) ); memberMapper.update(new UpdateWrapper<Member>().lambda() - .set(Member::getScore," ( total_score +" + Constants.FOUR + " ) / (score_order_num + 1 )") - .set(Member::getTotalScore," total_score +" + Constants.FOUR) - .set(Member::getScoreOrderNum," score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId()) + .setSql(" score = ( ( total_score +" + Constants.FOUR + " ) / (score_order_num + 1 ) ) ") + .setSql(" total_score = ( total_score +" + Constants.FOUR + ")") + .setSql(" score_order_num = ( score_order_num + 1 ) " ).eq(Member::getId,orders.getAcceptMemberId()) ); //鏃ュ織瀛樺偍 @@ -1376,7 +1489,7 @@ for (Orders orders:ordersList) { ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getIsUpdate,Constants.TWO) - .set(Orders::getUpdateTime,"now()") + .set(Orders::getUpdateTime,new Date()) .eq(Orders::getId,orders.getId()) ); //璁板綍鍚屾剰淇敼鐨勬棩蹇� @@ -1388,6 +1501,11 @@ } + @Override + public void initializeCode(){ + //鏇存柊缂撳瓨 + redisTemplate.opsForValue().set(Constants.RedisKeys.ORDER_CODE,0); + } -- Gitblit v1.9.3