From d98b610bd0793dd5d29f623400a1d0a81bb55334 Mon Sep 17 00:00:00 2001 From: MrShi <1878285526@qq.com> Date: 星期四, 21 八月 2025 17:46:27 +0800 Subject: [PATCH] 优化 --- server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 249 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 176 insertions(+), 73 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 8b094d9..1b5f608 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 @@ -101,6 +101,7 @@ orders.setPayStatus(Constants.ZERO); orders.setDeleted(Constants.ZERO); orders.setReleaseMemberId(orders.getMember().getId()); + orders.setCommentStatus(Constants.ZERO); //鏌ヨ鎵嬬画璐� 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)){ @@ -121,6 +122,7 @@ if(Constants.equalsInteger(orders.getType(),Constants.TWO)){ orders.setStatus(Constants.ordersStatus.waitPay.getKey()); orders.setOutTradeNo(UUID.randomUUID().toString().replace("-","")); + orders.setPayAccount(orders.getEstimatedAccount()); //鍞よ捣鏀粯涓氬姟 objects = this.getWxPayResponse(orders,orders.getMember().getOpenid()); orderReleaseVO.setObject(objects); @@ -182,7 +184,7 @@ request.setOutTradeNo(orders.getOutTradeNo()); request.setNotifyUrl(WxMiniConfig.wxProperties.getNotifyUrl());//杩欎釜鍥炶皟url蹇呴』鏄痟ttps寮�澶寸殑 Amount amount = new Amount(); - amount.setTotal(1);//orders.getEstimatedAccount().intValue()); + amount.setTotal(1);//orders.getPayAccount().intValue()); request.setAmount(amount); // PrepayResponse res = WxMiniConfig.wxPayService.prepay(request); // 璺熶箣鍓嶄笅鍗曠ず渚嬩竴鏍凤紝濉厖棰勪笅鍗曞弬鏁� @@ -328,12 +330,40 @@ } @Override - @Transactional(rollbackFor = {BusinessException.class,Exception.class}) - public void updateById(Orders orders) { + public void update(Orders orders){ if(Objects.isNull(orders) - || Objects.isNull(orders.getId())){ + || Objects.isNull(orders.getId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } + Orders model = ordersMapper.selectById(orders.getId()); + if(!Constants.equalsInteger(model.getReleaseMemberId(),orders.getMember().getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + if(Constants.equalsInteger(model.getIsUpdate(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸蹭慨鏀癸紝寰呮帴鍗曟柟纭锛屾棤娉曡繘琛岃鎿嶄綔"); + } + if(!Constants.equalsInteger(model.getType(),Constants.TWO)){ + if(Constants.equalsInteger(model.getStatus(),Constants.ZERO)||Constants.equalsInteger(model.getStatus(),Constants.ONE)){ + this.updateById(orders); + }else if(Constants.equalsInteger(model.getStatus(),Constants.TWO)){ + this.updOrderData(orders,model); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED); + } + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED); + } + + + + } + + + +// @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void updateById(Orders orders) { + Orders model = ordersMapper.selectById(orders.getId()); if(Constants.equalsInteger(model.getType(),Constants.TWO)){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"姝ょ被璁㈠崟鏃犳硶杩涜淇敼"); @@ -362,6 +392,7 @@ || StringUtils.isEmpty(multifile.getName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"闄勪欢淇℃伅閿欒"); } + multifile.setId(null); multifile.setIsdeleted(Constants.ZERO); multifile.setCreateDate(new Date()); multifile.setObjId(orders.getId()); @@ -378,7 +409,7 @@ return; } for (Orders orders: orderss) { - this.updateById(orders); + //this.updateById(orders); } } @@ -501,8 +532,11 @@ queryWrapper.like(org.apache.commons.lang3.StringUtils.isNotBlank(model.getCode()),Orders::getCode, model.getCode()); queryWrapper.eq(Objects.nonNull(model.getType()),Orders::getType, model.getType()); queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus, model.getStatus()); + queryWrapper.eq(Objects.nonNull(model.getCommentStatus()),Orders::getCommentStatus, model.getCommentStatus()); + queryWrapper.eq(Objects.nonNull(model.getReleaseMemberId()),Orders::getReleaseMemberId, model.getReleaseMemberId()); + queryWrapper.eq(Objects.nonNull(model.getAcceptMemberId()),Orders::getAcceptMemberId, model.getAcceptMemberId()); queryWrapper.eq(Objects.nonNull(model.getAcceptType()),Orders::getAcceptType, model.getAcceptType()); - queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name", model.getReleaseName()); + queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getReleaseName()),"m1.name like '%"+model.getReleaseName()+"%' or m1.TELEPHONE like '%"+model.getReleaseName()+"%' "); queryWrapper.apply(org.apache.commons.lang3.StringUtils.isNotBlank(model.getAcceptName()),"( i.LINK_NAME like '%"+model.getAcceptName()+"%' or i.company_name like '%"+model.getAcceptName()+"%' or i.TELEPHONE like '%"+model.getAcceptName()+"%' ) "); IPage<Orders> iPage = ordersMapper.selectJoinPage(page,Orders.class,queryWrapper); for (Orders orders:iPage.getRecords()) { @@ -595,22 +629,23 @@ if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ嚜宸辩殑璁㈠崟鏃犳硶杩涜璇ユ搷浣�"); } + member = memberMapper.selectById(member.getId()); //鏌ヨ鐢ㄦ埛鏄惁鏈夊搴旇韩浠� if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ if(!Constants.equalsInteger(member.getWorkerIdentity(),Constants.TWO)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鍓嶅線涓汉涓績杩涜韬唤璁よ瘉!"); } }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ if(!Constants.equalsInteger(member.getDriverIdentity(),Constants.TWO)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鍓嶅線涓汉涓績杩涜韬唤璁よ瘉!"); } }else{ if(!Constants.equalsInteger(member.getChefIdentity(),Constants.TWO)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"韬唤淇℃伅寮傚父锛岃鍓嶅線涓汉涓績杩涜韬唤璁よ瘉!"); } } - ordersMapper.update(new UpdateWrapper<Orders>().lambda().eq(Orders::getId,orders.getId()) + 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()) @@ -670,50 +705,36 @@ /** * 鍙戝崟鏂逛慨鏀硅鍗� - 宸叉帴鍗曠姸鎬� - * @param updOrderDataDTO */ - @Override +// @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) - public void updOrderData(UpdOrderDataDTO updOrderDataDTO){ - if(Objects.isNull(updOrderDataDTO) - || Objects.isNull(updOrderDataDTO.getOrderId()) - || Objects.isNull(updOrderDataDTO.getStartDate()) - || Objects.isNull(updOrderDataDTO.getEndDate())){ + public void updOrderData(Orders orders,Orders model){ + if(Objects.isNull(orders) + || Objects.isNull(orders.getStartDate()) + || Objects.isNull(orders.getEndDate())){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } - Orders orders = ordersMapper.selectById(updOrderDataDTO.getOrderId()); - if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ - throw new BusinessException(ResponseStatus.DATA_EMPTY); - } - if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); - } - if(!Constants.equalsInteger(orders.getReleaseMemberId(),updOrderDataDTO.getMember().getId())){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); - } - if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){ - throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸蹭慨鏀癸紝寰呮帴鍗曟柟纭锛屾棤娉曡繘琛岃鎿嶄綔"); - } - orders.setStartDate(updOrderDataDTO.getStartDate()); - orders.setEndDate(updOrderDataDTO.getEndDate()); - orders.setTotalDays(updOrderDataDTO.getTotalDays()); + model.setTotalDays(DateUtil.daysBetweenDates(orders.getEndDate(),orders.getStartDate())+1); + model.setStartDate(orders.getStartDate()); + model.setEndDate(orders.getEndDate()); //鐢ㄨ溅绫诲瀷 - if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ - if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)) { - orders.setPriceNum1(updOrderDataDTO.getTotalDays()); + if(Constants.equalsInteger(model.getType(),Constants.ONE)){ + if(Constants.equalsInteger(model.getCarType(),Constants.ZERO)) { + model.setPriceNum1(orders.getTotalDays()); } - }else if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ - if(Constants.equalsInteger(orders.getWorkType(),Constants.ONE)||(Constants.equalsInteger(orders.getWorkType(),Constants.TWO)&&Constants.equalsInteger(orders.getCarType(),Constants.ZERO))){ - orders.setPriceNum1(updOrderDataDTO.getTotalDays()); + }else if(Constants.equalsInteger(model.getType(),Constants.ZERO)){ + if(Constants.equalsInteger(model.getWorkType(),Constants.ONE)|| + (Constants.equalsInteger(model.getWorkType(),Constants.TWO)&&Constants.equalsInteger(model.getCarType(),Constants.ZERO))){ + model.setPriceNum1(orders.getTotalDays()); } }else{ - orders.setPriceNum1(updOrderDataDTO.getTotalDays()); + model.setPriceNum1(orders.getTotalDays()); } Long total = this.getTotal(orders); ordersMapper.update(new UpdateWrapper<Orders>().lambda() - .set(Orders::getStartDate,updOrderDataDTO.getStartDate()) - .set(Orders::getEndDate,updOrderDataDTO.getEndDate()) - .set(Orders::getTotalDays,updOrderDataDTO.getTotalDays()) + .set(Orders::getStartDate,model.getStartDate()) + .set(Orders::getEndDate,model.getEndDate()) + .set(Orders::getTotalDays,model.getTotalDays()) .set(Orders::getIsUpdate,Constants.ONE) .set(Orders::getIsUpdateTime,new Date()) .set(Orders::getUpdateTime,new Date()) @@ -722,8 +743,8 @@ ); //鍒涘缓鎿嶄綔鏃ュ織 Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_ORDER; - this.saveOrderLog(orders,ordersLog, - ordersLog.getInfo(),updOrderDataDTO.getMember().getId(),null); + this.saveOrderLog(model,ordersLog, + ordersLog.getInfo(),orders.getMember().getId(),null); //TODO 閫氱煡鎺ュ崟浜� 璁㈠崟鍙戠敓鍙樻洿 } @@ -779,7 +800,7 @@ if(!Constants.equalsInteger(orders.getAcceptMemberId(),confirmUpdOrderDTO.getMember().getId())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); } - if( Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){ + if(!Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)){ ordersMapper.update(new UpdateWrapper<Orders>().lambda() .set(Orders::getIsUpdate,Constants.TWO) .set(Orders::getUpdateTime,new Date()) @@ -799,7 +820,7 @@ .eq(Orders::getId,orders.getId()) ); - memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId())); + memberMapper.update(new UpdateWrapper<Member>().lambda().setSql("receive_num = receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId())); //璁板綍涓嶅悓鎰忎慨鏀圭殑鏃ュ織 Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_DISAGREE; @@ -810,18 +831,55 @@ } - /** - * 鍙戝崟鏂瑰彇娑堣鍗� - * @param orderId - * @param member - */ @Override - @Transactional(rollbackFor = {BusinessException.class,Exception.class}) - public void releaseCancelOrder(Integer orderId,Member member){ + public void cancelOrder(Integer orderId,Member member){ Orders orders = ordersMapper.selectById(orderId); if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY); } + if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + this.releaseCancelOrder(orders,member); + }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){ + this.receiveCancelOrder(orders,member); + }else{ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + + } + + + @Override + public String cancelTips(Integer orderId,Member member){ + Orders orders = ordersMapper.selectById(orderId); + if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + + Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode()); + Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() + .apply(" DATE(cancel_time) = DATE(NOW()) ") + .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey()) + .eq(Orders::getReleaseMemberId,member.getId())); + //鏌ヨ鍙栨秷娆℃暟 + if(totalCancelTimes<=cancelTimes){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟,濡傞渶澶勭悊璇疯仈绯诲鏈�"); + } + + Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode()); + Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate()); + if(hours < cancelTimeHour){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�"); + } + return "浠婃棩杩樺彲涓诲姩鍙栨秷"+(totalCancelTimes-cancelTimes)+"娆★紝鏄惁纭鍙栨秷"; + + } + + /** + * 鍙戝崟鏂瑰彇娑堣鍗� + * @param member + */ + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void releaseCancelOrder(Orders orders,Member member){ if(!(Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.wait.getKey()) ||Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.waitPay.getKey()) || Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey()))){ @@ -893,30 +951,27 @@ //TODO 鍙戝崟鏂瑰彇娑堣鍗曢�氱煡鎺ュ崟鏂� //鍑忓皯鎺ュ崟閲� - 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 = (receive_num - 1) ").eq(Member::getId,orders.getAcceptMemberId())); } //鍑忓皯鍙戝崟閲� - 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 = (publish_num - 1)").eq(Member::getId,orders.getReleaseMemberId())); //鏃ュ織瀛樺偍 Constants.OrdersLog ordersLog = Constants.OrdersLog.RELEASE_CANCEL; this.saveOrderLog(orders,ordersLog, ordersLog.getInfo(),member.getId(),null); + + + } /** * 鎺ュ崟鏂瑰彇娑堟帴鍗� - * @param orderId * @param member */ - @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) - public void receiveCancelOrder(Integer orderId,Member member){ - Orders orders = ordersMapper.selectById(orderId); - if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ - throw new BusinessException(ResponseStatus.DATA_EMPTY); - } + public void receiveCancelOrder(Orders orders,Member member){ if(!Constants.equalsInteger(orders.getStatus(),Constants.ordersStatus.accept.getKey())){ throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); } @@ -948,7 +1003,7 @@ ); //鍑忓皯鎺ュ崟閲� - 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 = receive_num - 1 ").eq(Member::getId,orders.getAcceptMemberId())); //鏃ュ織瀛樺偍 Constants.OrdersLog ordersLog = Constants.OrdersLog.CANCEL; this.saveOrderLog(orders,ordersLog, @@ -994,7 +1049,7 @@ orders.setOutTradeNo(UUID.randomUUID().toString().replace("-","")); ordersMapper.updateById(orders); //鍞よ捣鏀粯涓氬姟 - object = this.getWxPayResponse(orders,orders.getMember().getOpenid()); + object = this.getWxPayResponse(orders,doneOrderDTO.getMember().getOpenid()); orderReleaseVO.setObject(object); }else{ orders.setStatus(Constants.ordersStatus.done.getKey()); @@ -1147,13 +1202,14 @@ .set(Orders::getUpdateTime,new Date()) .set(Orders::getCommentTime,new Date()) .set(Orders::getCommentLevel,commentDTO.getLevel()) + .set(org.apache.commons.lang3.StringUtils.isNotBlank(commentDTO.getInfo()),Orders::getCommentInfo,commentDTO.getInfo()) .set(Orders::getCommentType,Constants.ZERO) .eq(Orders::getId,orders.getId()) ); memberMapper.update(new UpdateWrapper<Member>().lambda() - .set(Member::getScore," ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )") - .set(Member::getTotalScore," total_score +" + commentDTO.getLevel()) - .set(Member::getScoreOrderNum," score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId()) + .setSql(" score = ( total_score +" + commentDTO.getLevel() + " ) / (score_order_num + 1 )") + .setSql(" total_score = total_score +" + commentDTO.getLevel()) + .setSql(" score_order_num = score_order_num + 1 " ).eq(Member::getId,orders.getAcceptMemberId()) ); //鏃ュ織瀛樺偍 Constants.OrdersLog ordersLog = Constants.OrdersLog.COMMENT; @@ -1171,7 +1227,7 @@ @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public String payNotify(String preOrderId,String paymentNo){ - Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getCode,preOrderId).last("limit 1")); + Orders orders = ordersMapper.selectOne(new QueryWrapper<Orders>().lambda().eq(Orders::getOutTradeNo,preOrderId).last("limit 1")); if(Constants.equalsInteger(orders.getType(),Constants.TWO)){ //鐢ㄩ璁㈠崟 濡傛灉宸茬粡娴佽浆鍒板凡鏀粯 鍒欑洿鎺ヨ繑鍥� if(!Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){ @@ -1214,6 +1270,8 @@ //瀛樺偍娴佹按璁板綍 MemberRevenue memberRevenue = new MemberRevenue(); memberRevenue.setCreateTime(new Date()); + memberRevenue.setDeleted(Constants.ZERO); + memberRevenue.setTransactionNo(orders.getCode()); memberRevenue.setMemberId(orders.getAcceptMemberId()); memberRevenue.setType(orders.getType()); memberRevenue.setOptType(Constants.ONE); @@ -1233,8 +1291,8 @@ //鏇存柊鎺ュ崟鐢ㄦ埛鐨勪綑棰濅笌鍘嗗彶鎬婚噾棰� memberMapper.update(new UpdateWrapper<Member>().lambda() - .set(Member::getAmount,"amount + " + orders.getReceiveAccount() ) - .set(Member::getTotalAmount,"amount + " + orders.getReceiveAccount() ) + .setSql(" amount = ( amount + " + orders.getReceiveAccount() +")" ) + .setSql(" total_amount = ( amount + " + orders.getReceiveAccount() + ")" ) .eq(Member::getId,member.getId()) ); @@ -1320,7 +1378,7 @@ //鎺ュ崟鏂� 鎴戠殑璁㈠崟 queryWrapper.eq(Orders::getAcceptMemberId,model.getMember().getId()); queryWrapper.eq(Objects.nonNull(model.getStatus()),Orders::getStatus,model.getStatus()); - queryWrapper.orderByDesc(Orders::getCreateTime); + queryWrapper.orderByDesc(Orders::getAcceptTime); }else{ //鏌ヨ鐢ㄦ埛鐨勬帴鍗曟潈閲� ReceiveWeight receiveWeight = receiveWeightMapper.selectOne(new QueryWrapper<ReceiveWeight>().lambda().eq(ReceiveWeight::getDeleted,Constants.ZERO).apply(" RECEIVE_MIN < "+model.getMember().getReceiveNum()+" and RECEIVE_MAX > " + model.getMember().getReceiveNum()).last(" limit 1 ")); @@ -1427,7 +1485,7 @@ @Override - public Orders getDetail(Integer id,Integer userType) { + public Orders getDetail(Integer id,Member member) { Orders orders = ordersMapper.selectJoinOne(Orders.class,new MPJLambdaWrapper<Orders>() .selectAll(Orders.class) .select(" m1.name " , Orders::getReleaseName) @@ -1472,11 +1530,56 @@ orders.setMultifileList(multifileList); } orders.setStatusName(Constants.ordersStatus.getName(orders.getStatus())); + orders.setCancelStatus(Constants.ZERO); + this.getPriceUnit(orders); + if(orders.getStatus() <= Constants.ordersStatus.accept.getKey()){ + if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗 + Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIMES).getCode()); + Long cancelTimes = ordersMapper.selectCount(new QueryWrapper<Orders>().lambda() + .apply(" DATE(cancel_time) = DATE(NOW()) ") + .eq(Orders::getStatus,Constants.ordersStatus.cancel.getKey()) + .eq(Orders::getReleaseMemberId,orders.getReleaseMemberId())); + //鏌ヨ鍙栨秷娆℃暟 + if(totalCancelTimes<=cancelTimes){ + orders.setCancelStatus(Constants.ONE); + return orders; + } + Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RELEASE_CANCEL_TIME).getCode()); + Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate()); + if(hours < cancelTimeHour){ + orders.setCancelStatus(Constants.ONE); + return orders; + } + }else if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){ + //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗 + Integer totalCancelTimes = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIMES).getCode()); + Long cancelTimes = orderLogMapper.selectCount(new QueryWrapper<OrderLog>().lambda() + .apply(" DATE(create_time) = DATE(NOW()) ") + .eq(OrderLog::getObjType,Constants.OrdersLog.CANCEL.getKey()) + .eq(OrderLog::getMemberId,member.getId())); + //鏌ヨ鍙栨秷娆℃暟 + if(totalCancelTimes<=cancelTimes){ + orders.setCancelStatus(Constants.ONE); + return orders; + } + Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode()); + Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate()); + if(hours < cancelTimeHour){ + orders.setCancelStatus(Constants.ONE); + return orders; + } + } + } else{ + orders.setCancelStatus(Constants.ONE); + } return orders; } + + public synchronized String getNextCode(Integer type){ String prefix = "YG"; if(!Constants.equalsInteger(type,Constants.ZERO)){ -- Gitblit v1.9.3