From c4bd6e7e1fadfac44466d589ee4d5dfcf77c2a59 Mon Sep 17 00:00:00 2001 From: jiangping <jp@doumee.com> Date: 星期二, 15 七月 2025 09:26:54 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- server/services/src/main/java/com/doumee/service/business/impl/OrdersServiceImpl.java | 862 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 844 insertions(+), 18 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 73c6b13..50586b7 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 @@ -1,26 +1,44 @@ package com.doumee.service.business.impl; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.doumee.biz.system.SystemDictDataBiz; +import com.doumee.config.wx.WxMiniConfig; +import com.doumee.config.wx.WxMiniUtilService; 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.DateUtil; import com.doumee.core.utils.Utils; -import com.doumee.dao.business.OrdersMapper; -import com.doumee.dao.business.model.Orders; +import com.doumee.dao.business.*; +import com.doumee.dao.business.model.*; +import com.doumee.dao.dto.*; import com.doumee.service.business.OrdersService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Amount; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.Payer; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.PrepayRequest; +import com.wechat.pay.java.service.partnerpayments.jsapi.model.PrepayWithRequestPaymentResponse; import jodd.util.StringUtil; +import org.apache.poi.sl.image.ImageHeaderEMF; +import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import java.math.BigDecimal; +import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.UUID; /** * 璁㈠崟淇℃伅璁板綍Service瀹炵幇 @@ -33,13 +51,139 @@ @Autowired private OrdersMapper ordersMapper; + @Autowired + private SystemDictDataBiz systemDictDataBiz; + + @Autowired + private CategoryMapper categoryMapper; + + @Autowired + private MultifileMapper multifileMapper; + + @Autowired + private OrderLogMapper orderLogMapper; + + @Autowired + private MemberMapper memberMapper; + + @Autowired + private MemberRevenueMapper memberRevenueMapper; + + @Autowired + private WxMiniUtilService wxMiniUtilService; + @Override - public Integer create(Orders orders) { + @Transactional(rollbackFor = {Exception.class,BusinessException.class}) + public Object create(Orders orders) { + Object objects = null; + this.initVerification(orders); + orders.setCreateTime(new Date()); + orders.setPayStatus(Constants.ZERO); + //TODO 璁㈠崟缂栧彿瑙勫垯 - + Category category = categoryMapper.selectOne(new QueryWrapper<Category>().lambda() + .eq(Category::getDeleted,Constants.ZERO).eq(Category::getType,Constants.THREE) + .eq(Category::getName,orders.getType()) + .last("limit 1") + ); + if(Objects.isNull(category)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍙傛暟閰嶇疆閿欒,璇疯仈绯荤鐞嗗憳"); + } + //鐢ㄩ璁㈠崟 + if(Constants.equalsInteger(orders.getType(),Constants.TWO)){ + orders.setStatus(Constants.ZERO); + //鍞よ捣鏀粯涓氬姟 + objects = this.getWxPayResponse(orders,orders.getMember().getOpenid()); + }else{ + orders.setStatus(Constants.ONE); + } ordersMapper.insert(orders); - return 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(),"闄勪欢淇℃伅閿欒"); + } + multifile.setIsdeleted(Constants.ZERO); + multifile.setCreateDate(new Date()); + multifile.setObjId(orders.getId()); + multifile.setObjType(Constants.ONE); + } + multifileMapper.insert(multifileList); + } + //鏇存柊鐢ㄦ埛鍙戝崟閲� + memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum," (receive_num + 1 )").eq(Member::getId,orders.getMember().getId())); + + //鍒涘缓鎿嶄綔鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.UPLOAD; + String orderTypeInfo = "鐢ㄥ伐鍗�"; + if(!Constants.equalsInteger(orders.getType(),Constants.ZERO)){ + orderTypeInfo = Constants.equalsInteger(orders.getType(),Constants.ONE)?"鐢ㄨ溅鍗�":"閫侀鍗�"; + }else{ + if(Constants.equalsInteger(orders.getWorkType(),Constants.ZERO)){ + orderTypeInfo = orderTypeInfo + "-閲囨憳宸�"; + }else{ + orderTypeInfo = orderTypeInfo + (Constants.equalsInteger(orders.getWorkType(),Constants.ONE)?"-鍒嗘嫞宸�":"-鍖呰宸�"); + } + } + String logInfo = ordersLog.getInfo() + .replace("{param}",orderTypeInfo); + this.saveOrderLog(orders,ordersLog, + logInfo,orders.getReleaseMemberId(),null); + return objects; } + + private Object getWxPayResponse(Orders orders,String openid){ + Object response = null; + //璋冭捣鏀粯 + PrepayRequest request = new PrepayRequest(); + request.setAttach("createOrder"); + request.setDescription("杩戝揩璁㈠崟鏀粯"); + request.setSpMchid(WxMiniConfig.wxProperties.getMchId()); + request.setSpAppid(WxMiniConfig.wxProperties.getAppId()); + request.setSubMchid(WxMiniConfig.wxProperties.getSubMchId()); + request.setSubAppid(WxMiniConfig.wxProperties.getSubAppId()); + Payer payer = new Payer(); + payer.setSubOpenid(openid); + request.setPayer(payer); + request.setOutTradeNo(orders.getCode()); + request.setNotifyUrl(WxMiniConfig.wxProperties.getNotifyUrl());//杩欎釜鍥炶皟url蹇呴』鏄痟ttps寮�澶寸殑 + Amount amount = new Amount(); + amount.setTotal(orders.getEstimatedAccount().intValue()); + request.setAmount(amount); +// PrepayResponse res = WxMiniConfig.wxPayService.prepay(request); + // 璺熶箣鍓嶄笅鍗曠ず渚嬩竴鏍凤紝濉厖棰勪笅鍗曞弬鏁� + PrepayWithRequestPaymentResponse resParam = WxMiniConfig.jsapiExtService.prepayWithRequestPayment(request,WxMiniConfig.wxProperties.getSubAppId()); + response =resParam; + return response; + } + + /** + * 鏃ュ織淇℃伅 + * @param orders 璁㈠崟淇℃伅 + * @param ordersLog 璁㈠崟鏀寔鍒嗙被 + * @param logInfo 鏃ュ織鍐呭 + * @param memberId 绉诲姩绔搷浣滀汉 + * @param userId 绯荤粺鎿嶄綔浜� + */ + public void saveOrderLog(Orders orders,Constants.OrdersLog ordersLog,String logInfo,Integer memberId,Integer userId){ + OrderLog orderLog = new OrderLog(); + orderLog.setCreateTime(orders.getUpdateTime()); + orderLog.setDeleted(Constants.ZERO); + orderLog.setOrderId(orders.getId()); + orderLog.setTitle(ordersLog.getName()); + orderLog.setLogInfo(logInfo); + orderLog.setObjType(ordersLog.getKey()); + orderLog.setOrderStatus(orders.getStatus()); + orderLog.setMemberId(memberId); + orderLog.setCreateUser(userId); + orderLog.setOptUserType(ordersLog.getUserType()); + orderLogMapper.insert(orderLog); + } + @@ -53,22 +197,78 @@ || 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()) - || (!( Constants.equalsInteger(orders.getType(),Constants.ZERO) - && Constants.equalsInteger(orders.getWorkType(),Constants.TWO) ) && Objects.isNull(orders.getPrice()) ) - || ( Constants.equalsInteger(orders.getType(),Constants.ONE) && Objects.isNull(orders.getTransportTypeId()) ) - + || Objects.isNull(orders.getEstimatedAccount()) + || Objects.isNull(orders.getPrice()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } - - if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ - - + 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) + ){ + orders.setPriceNum2(Constants.ONE); } - - + if(Objects.isNull(orders.getPriceNum2())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ + if(Constants.equalsInteger(orders.getWorkType(),Constants.TWO) + && Objects.isNull(orders.getCarType())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + }else if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ + if(Objects.isNull(orders.getTransportTypeId()) + || Objects.isNull(orders.getCarType()) + || Objects.isNull(orders.getTransportNum()) + || StringUtils.isEmpty(orders.getTransportUnit()) + || StringUtils.isEmpty(orders.getLocationEnd()) + || Objects.isNull(orders.getLatEnd()) + || Objects.isNull(orders.getLgtEnd()) + || CollectionUtils.isEmpty(orders.getWayInfoDTOList()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + 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()) + ||Objects.isNull(wayInfoDTO.getLat()) + ||Objects.isNull(wayInfoDTO.getLgt()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + } + orders.setWayInfo(JSONObject.toJSONString(orders.getWayInfoDTOList())); + }else{ + //鐢ㄩ璁㈠崟 + if(CollectionUtils.isEmpty(orders.getCateringDTOList())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Long sumPrice = 0L; + for (CateringDTO cateringDTO:orders.getCateringDTOList()) { + if(Objects.isNull(cateringDTO) + || StringUtils.isEmpty(cateringDTO.getName()) + || Objects.isNull(cateringDTO.getPrice()) + || Objects.isNull(cateringDTO.getNum()) + ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鐢ㄩ鏍囧噯鏁版嵁閿欒"); + } + sumPrice = sumPrice + (cateringDTO.getPrice() * cateringDTO.getNum()) ; + } + if(!sumPrice.equals(orders.getPrice())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鍗曚环璁$畻閿欒"); + } + orders.setWayInfo(JSONObject.toJSONString(orders.getCateringDTOList())); + } + if(!orders.getEstimatedAccount().equals(this.getTotal(orders))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"閲戦璁$畻閿欒!"); + } } @@ -94,7 +294,47 @@ } @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public void updateById(Orders orders) { + if(Objects.isNull(orders) + || Objects.isNull(orders.getId())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Orders model = ordersMapper.selectById(orders.getId()); + if(Constants.equalsInteger(model.getType(),Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"姝ょ被璁㈠崟鏃犳硶杩涜淇敼"); + } + if(!Constants.equalsInteger(model.getStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); + } + this.initVerification(orders); + orders.setUpdateTime(new Date()); + Category category = categoryMapper.selectOne(new QueryWrapper<Category>().lambda() + .eq(Category::getDeleted,Constants.ZERO).eq(Category::getType,Constants.THREE) + .eq(Category::getName,orders.getType()) + .last("limit 1") + ); + if(Objects.isNull(category)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鍙傛暟閰嶇疆閿欒,璇疯仈绯荤鐞嗗憳"); + } + multifileMapper.update(new UpdateWrapper<Multifile>().lambda().set(Multifile::getIsdeleted,Constants.ONE).eq(Multifile::getObjType,Constants.ONE) + .eq(Multifile::getObjId,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(),"闄勪欢淇℃伅閿欒"); + } + multifile.setIsdeleted(Constants.ZERO); + multifile.setCreateDate(new Date()); + multifile.setObjId(orders.getId()); + multifile.setObjType(Constants.ONE); + } + multifileMapper.insert(multifileList); + } ordersMapper.updateById(orders); } @@ -212,9 +452,6 @@ if (pageWrap.getModel().getPayAccount() != null) { queryWrapper.lambda().eq(Orders::getPayAccount, pageWrap.getModel().getPayAccount()); } - if (pageWrap.getModel().getPriceRemark() != null) { - queryWrapper.lambda().eq(Orders::getPriceRemark, pageWrap.getModel().getPriceRemark()); - } if (pageWrap.getModel().getCarType() != null) { queryWrapper.lambda().eq(Orders::getCarType, pageWrap.getModel().getCarType()); } @@ -307,4 +544,593 @@ QueryWrapper<Orders> wrapper = new QueryWrapper<>(orders); return ordersMapper.selectCount(wrapper); } + + + /** + * 鎵嬪姩鎺ュ崟 + * @param orderId + */ + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void accept(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.getStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); + } + if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鎮ㄨ嚜宸辩殑璁㈠崟鏃犳硶杩涜璇ユ搷浣�"); + } + //鏌ヨ鐢ㄦ埛鏄惁鏈夊搴旇韩浠� + if(Constants.equalsInteger(orders.getType(),Constants.ZERO)){ + if(!Constants.equalsInteger(member.getWorkerIdentity(),Constants.TWO)){ + 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(),"韬唤淇℃伅寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + }else{ + if(!Constants.equalsInteger(member.getChefIdentity(),Constants.TWO)){ + 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.TWO); + ordersMapper.updateById(orders); + //鏇存柊鎺ュ崟閲� + memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum," (publish_num + 1 )").eq(Member::getId,member.getId())); + + //鍒涘缓鎿嶄綔鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.RECEIVE; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),member.getId(),null); + + //TODO 寰俊鍏紬鍙锋彁閱� 宸叉帴鍗曟彁閱� + + + + } + + + /** + * 寮�濮嬩綔涓� + * @param orderId + * @param member + */ + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void begin(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.getStatus(),Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); + } + if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + if(Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼寰呯‘璁わ紝鏃犳硶杩涜璇ユ搷浣�"); + } + orders.setUpdateTime(new Date()); + orders.setStatus(Constants.THREE); + orders.setWorkStartTime(new Date()); + ordersMapper.updateById(orders); + + //鍒涘缓鎿嶄綔鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.BEGIN; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),member.getId(),null); + } + + + /** + * 鍙戝崟鏂逛慨鏀硅鍗� - 宸叉帴鍗曠姸鎬� + * @param updOrderDataDTO + */ + @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()) + || Objects.isNull(updOrderDataDTO.getTotalDays())){ + 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.TWO)){ + 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()); + //鐢ㄨ溅绫诲瀷 + if(Constants.equalsInteger(orders.getType(),Constants.ONE)){ + if(Constants.equalsInteger(orders.getCarType(),Constants.ZERO)) { + orders.setPriceNum1(updOrderDataDTO.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{ + orders.setPriceNum1(updOrderDataDTO.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::getIsUpdate,Constants.ONE) + .set(Orders::getUpdateTime,"now()") + .set(Orders::getEstimatedAccount,total) + .eq(Orders::getId,orders.getId()) + ); + //鍒涘缓鎿嶄綔鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_ORDER; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),updOrderDataDTO.getMember().getId(),null); + + //TODO 閫氱煡鎺ュ崟浜� 璁㈠崟鍙戠敓鍙樻洿 + } + + + public Long getTotal(Orders orders){ + 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) + ){ + orders.setPriceNum2(Constants.ONE); + } + return orders.getPrice() * orders.getPriceNum1() * orders.getPriceNum2(); + } + + + /** + * 鎺ュ崟鏂瑰鐞嗚鍗曚慨鏀� + * @param confirmUpdOrderDTO + */ + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void confirmUpd(ConfirmUpdOrderDTO confirmUpdOrderDTO){ + if(Objects.isNull(confirmUpdOrderDTO) + || Objects.isNull(confirmUpdOrderDTO.getOrderId()) + || Objects.isNull(confirmUpdOrderDTO.getStatus()) + || !(Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ONE)|| + Constants.equalsInteger(confirmUpdOrderDTO.getStatus(),Constants.ZERO)) + ){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + Orders orders = ordersMapper.selectById(confirmUpdOrderDTO.getOrderId()); + if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(orders.getStatus(),Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇ユ搷浣�"); + } + if(!Constants.equalsInteger(orders.getIsUpdate(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟淇敼鐘舵�佸凡娴佽浆锛屾棤娉曡繘琛岃鎿嶄綔"); + } + 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()") + .eq(Orders::getId,orders.getId()) + ); + //璁板綍鍚屾剰淇敼鐨勬棩蹇� + Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_AGREE; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null); + }else{ + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getIsUpdate,Constants.TWO) + .set(Orders::getUpdateTime,"now()") + .set(Orders::getStatus,Constants.ONE) + .set(Orders::getAcceptMemberId,null) + .set(Orders::getAcceptType,null) + .eq(Orders::getId,orders.getId()) + ); + + memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,confirmUpdOrderDTO.getMember().getId())); + + //璁板綍涓嶅悓鎰忎慨鏀圭殑鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.UPD_DISAGREE; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),confirmUpdOrderDTO.getMember().getId(),null); + + //TODO 鍙戦�佷笉鍚屾剰鍙樻洿閫氱煡 + + } + } + + + /** + * 鍙戝崟鏂瑰彇娑堣鍗� + * @param orderId + * @param member + */ + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void releaseCancelOrder(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.getStatus(),Constants.ONE) + ||Constants.equalsInteger(orders.getStatus(),Constants.ZERO) + || Constants.equalsInteger(orders.getStatus(),Constants.TWO))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); + } + if(Constants.equalsInteger(orders.getReleaseMemberId(),member.getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + //寰呮敮浠樼敤椁愯鍗�/寰呮帴鍗曡鍗曡繘琛屽彇娑� + if(Constants.equalsInteger(orders.getStatus(),Constants.ONE) + ||Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){ + if(Constants.equalsInteger(orders.getType(),Constants.TWO)&&Constants.equalsInteger(orders.getStatus(),Constants.ONE)){ + //閫�娆句笟鍔� + WithdrawalOrders withdrawalOrders = new WithdrawalOrders(); + withdrawalOrders.setCreateTime(new Date()); + withdrawalOrders.setMemberId(orders.getReleaseMemberId()); + withdrawalOrders.setAmount(orders.getPayAccount()); + withdrawalOrders.setWxExternalNo("refund_"+orders.getCode()); + withdrawalOrders.setStatus(Constants.ONE); + withdrawalOrders.setDoneTime(new Date()); + withdrawalOrders.setType(Constants.ONE); + withdrawalOrders.setObjId(orders.getId()); + wxMiniUtilService.wxRefund(withdrawalOrders,orders); + } + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getStatus,99) + .set(Orders::getUpdateTime,"now()") + .set(Orders::getCancelTime,"now()") + .set(Orders::getCancelType,Constants.ZERO) + .eq(Orders::getId,orders.getId()) + ); + }else{ + //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗 + 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,99) + .eq(Orders::getReleaseMemberId,orders.getReleaseMemberId())); + //鏌ヨ鍙栨秷娆℃暟 + 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+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�"); + } + + if(Constants.equalsInteger(orders.getType(),Constants.TWO)){ + //閫�娆句笟鍔� + WithdrawalOrders withdrawalOrders = new WithdrawalOrders(); + withdrawalOrders.setCreateTime(new Date()); + withdrawalOrders.setMemberId(orders.getReleaseMemberId()); + withdrawalOrders.setAmount(orders.getPayAccount()); + withdrawalOrders.setWxExternalNo("refund_"+orders.getCode()); + withdrawalOrders.setStatus(Constants.ONE); + withdrawalOrders.setDoneTime(new Date()); + withdrawalOrders.setType(Constants.ONE); + withdrawalOrders.setObjId(orders.getId()); + wxMiniUtilService.wxRefund(withdrawalOrders,orders); + } + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getStatus,99) + .set(Orders::getUpdateTime,"now()") + .set(Orders::getCancelTime,"now()") + .set(Orders::getCancelType,Constants.ONE) + .eq(Orders::getId,orders.getId()) + ); + //TODO 鍙戝崟鏂瑰彇娑堣鍗曢�氱煡鎺ュ崟鏂� + + //鍑忓皯鎺ュ崟閲� + memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"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())); + + //鏃ュ織瀛樺偍 + 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); + } + if(!Constants.equalsInteger(orders.getStatus(),Constants.TWO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); + } + if(Constants.equalsInteger(orders.getAcceptMemberId(),member.getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + //鍒ゆ柇鏄惁鍙慨鏀� 宸插彇娑堟鏁� 涓� 鏃堕棿闄愬埗 + 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){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"浠婃棩璁㈠崟涓诲姩鍙栨秷娆℃暟宸茶秴鍑�"+totalCancelTimes+"娆�,鏃犳硶鍙栨秷璁㈠崟,濡傞渶澶勭悊璇疯仈绯诲鏈�"); + } + + Integer cancelTimeHour = Integer.valueOf(systemDictDataBiz.queryByCode(Constants.SYSTEM,Constants.RECEIVE_CANCEL_TIME).getCode()); + Long hours = DateUtil.getBetweenHours(new Date(),orders.getStartDate()); + if(hours < cancelTimeHour){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璺濈璁㈠崟寮�濮嬫椂闂翠笉瓒�"+cancelTimeHour+"灏忔椂,鏃犳硶鍙栨秷璁㈠崟锛屽闇�澶勭悊璇疯仈绯诲鏈�"); + } + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getUpdateTime,"now()") + .set(Orders::getStatus,Constants.ONE) + .set(Orders::getAcceptMemberId,null) + .set(Orders::getAcceptType,null) + .eq(Orders::getId,orders.getId()) + ); + + //鍑忓皯鎺ュ崟閲� + memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getReceiveNum,"receive_num - 1").eq(Member::getId,orders.getAcceptMemberId())); + //鏃ュ織瀛樺偍 + Constants.OrdersLog ordersLog = Constants.OrdersLog.CANCEL; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),member.getId(),null); + + //TODO 鎺ュ崟鏂瑰彇娑堣鍗曢�氱煡 + + } + + + /** + * 瀹屾垚璁㈠崟 + * @param doneOrderDTO + */ + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public Object doneOrder(DoneOrderDTO doneOrderDTO){ + if(Objects.isNull(doneOrderDTO)||Objects.isNull(doneOrderDTO.getOrderId())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Orders orders = ordersMapper.selectById(doneOrderDTO.getOrderId()); + if(!Constants.equalsInteger(orders.getType(),Constants.TWO)&&Objects.isNull(doneOrderDTO.getAmount())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + if(Objects.isNull(orders)||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(orders.getStatus(),Constants.THREE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); + } + if(Constants.equalsInteger(orders.getReleaseMemberId(),doneOrderDTO.getMember().getId())){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炴偍鐨勮鍗曟棤娉曡繘琛岃鎿嶄綔"); + } + Object object = null; + //鐢ㄩ璁㈠崟 + if(!Constants.equalsInteger(orders.getType(),Constants.TWO)){ + orders.setPayAccount(doneOrderDTO.getAmount()); + //鎻愭垚閲戦 + Long tcje = Long.valueOf(new BigDecimal(orders.getPayAccount().toString()).multiply(orders.getPlatformRata()).intValue()); + orders.setReceiveAccount(orders.getPayAccount() - tcje); + ordersMapper.updateById(orders); + //鍞よ捣鏀粯涓氬姟 + object = this.getWxPayResponse(orders,orders.getMember().getOpenid()); + }else{ + orders.setStatus(Constants.FOUR); + //鏃ュ織瀛樺偍 + Constants.OrdersLog ordersLog = Constants.OrdersLog.DONE; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),doneOrderDTO.getMember().getId(),null); + } + return object; + } + + + + + @Override + @Transactional(rollbackFor = {BusinessException.class,Exception.class}) + public void platformCancel(Integer orderId, LoginUserInfo loginUserInfo){ + 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.getStatus(),Constants.ONE)||Constants.equalsInteger(orders.getStatus(),Constants.TWO) + ||Constants.equalsInteger(orders.getStatus(),Constants.THREE))){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜鍙栨秷"); + } + //濡傛灉宸叉敮浠� 鍒欓渶瑕佽繘琛岄��娆� + if(Constants.equalsInteger(orders.getPayStatus(),Constants.ONE)){ + WithdrawalOrders withdrawalOrders = new WithdrawalOrders(); + withdrawalOrders.setCreateTime(new Date()); + withdrawalOrders.setMemberId(orders.getReleaseMemberId()); + withdrawalOrders.setAmount(orders.getPayAccount()); + withdrawalOrders.setWxExternalNo("refund_"+orders.getCode()); + withdrawalOrders.setStatus(Constants.ONE); + withdrawalOrders.setDoneTime(new Date()); + withdrawalOrders.setType(Constants.ONE); + withdrawalOrders.setObjId(orders.getId()); + wxMiniUtilService.wxRefund(withdrawalOrders,orders); + } + + //鍑忓皯鍙戝崟閲� + memberMapper.update(new UpdateWrapper<Member>().lambda().set(Member::getPublishNum,"publish_num - 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())); + } + + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getStatus,99) + .set(Orders::getUpdateTime,"now()") + .set(Orders::getCancelTime,"now()") + .set(Orders::getCancelType,Constants.TWO) + .eq(Orders::getId,orders.getId()) + ); + + //鏃ュ織瀛樺偍 + Constants.OrdersLog ordersLog = Constants.OrdersLog.SYSTEM_CANCEL; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),null,loginUserInfo.getId()); + } + + + + + @Override + public void comment(CommentDTO commentDTO){ + if(Objects.isNull(commentDTO) + || Objects.isNull(commentDTO.getOrderId()) + || Objects.isNull(commentDTO.getLevel()) + || commentDTO.getLevel()<1 || commentDTO.getLevel() > 5 ){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + Orders orders = ordersMapper.selectById(commentDTO.getOrderId()); + if(Objects.isNull(orders) + ||Constants.equalsInteger(orders.getDeleted(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + if(!Constants.equalsInteger(orders.getStatus(),Constants.FOUR)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟鐘舵�佸凡娴佽浆,鏃犳硶杩涜璇勪环"); + } + if(Constants.equalsInteger(orders.getCommentStatus(),Constants.ONE)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"璁㈠崟宸茶瘎浠凤紒"); + } + + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getCommentStatus,Constants.ONE) + .set(Orders::getUpdateTime,"now()") + .set(Orders::getCommentTime,"now()") + .set(Orders::getCommentLevel,commentDTO.getLevel()) + .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()) + ); + + //鏃ュ織瀛樺偍 + Constants.OrdersLog ordersLog = Constants.OrdersLog.COMMENT; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),orders.getAcceptMemberId(),null); + } + + + + + /** + * 鏀粯鍥炶皟 + * @param preOrderId + * @param paymentNo + * @return + */ + @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")); + if(Constants.equalsInteger(orders.getType(),Constants.TWO)){ + //鐢ㄩ璁㈠崟 濡傛灉宸茬粡娴佽浆鍒板凡鏀粯 鍒欑洿鎺ヨ繑鍥� + if(!Constants.equalsInteger(orders.getStatus(),Constants.ZERO)){ + return ("澶勭悊鎴愬姛!"); + }else{ + //澶勭悊鏀粯瀹屾垚閫昏緫 + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getUpdateTime,"now()") + .set(Orders::getStatus,Constants.ONE) + .set(Orders::getPayStatus,Constants.ONE) + .set(Orders::getWxExternalNo,paymentNo) + .eq(Orders::getId,orders.getId()) + ); + + //瀛樺偍鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.PAY; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),orders.getReleaseMemberId(),null); + } + }else{ + //闈炵敤椁愮被璁㈠崟 + if(!Constants.equalsInteger(orders.getStatus(),Constants.THREE)){ + return ("澶勭悊鎴愬姛!"); + }else{ + //澶勭悊鏀粯瀹屾垚閫昏緫 + ordersMapper.update(new UpdateWrapper<Orders>().lambda() + .set(Orders::getUpdateTime,"now()") + .set(Orders::getStatus,Constants.FOUR) + .set(Orders::getPayStatus,Constants.ONE) + .set(Orders::getWxExternalNo,paymentNo) + .set(Orders::getFinishTime,"now()") + .eq(Orders::getId,orders.getId()) + ); + + Member member = memberMapper.selectById(orders.getAcceptMemberId()); + //瀛樺偍娴佹按璁板綍 + MemberRevenue memberRevenue = new MemberRevenue(); + memberRevenue.setCreateTime(new Date()); + memberRevenue.setMemberId(orders.getAcceptMemberId()); + memberRevenue.setType(orders.getType()); + memberRevenue.setOptType(Constants.ONE); + memberRevenue.setBeforeAmount(member.getAmount()); + memberRevenue.setAmount(orders.getReceiveAccount()); + memberRevenue.setAfterAmount(member.getAmount() + orders.getReceiveAccount()); + memberRevenue.setObjId(orders.getId()); + memberRevenue.setObjType(Constants.ZERO); + memberRevenue.setStatus(Constants.ZERO); + memberRevenueMapper.insert(memberRevenue); + + //鏇存柊鎺ュ崟鐢ㄦ埛鐨勪綑棰濅笌鍘嗗彶鎬婚噾棰� + memberMapper.update(new UpdateWrapper<Member>().lambda() + .set(Member::getAmount,"amount + " + orders.getReceiveAccount() ) + .set(Member::getTotalAmount,"amount + " + orders.getReceiveAccount() ) + .eq(Member::getId,member.getId()) + ); + + //瀛樺偍鏃ュ織 + Constants.OrdersLog ordersLog = Constants.OrdersLog.PAY; + this.saveOrderLog(orders,ordersLog, + ordersLog.getInfo(),orders.getReleaseMemberId(),null); + + //TODO 閫氱煡鎺ュ崟鏂� 娆鹃」宸插埌璐� + } + } + return ("澶勭悊鎴愬姛!"); + } + } -- Gitblit v1.9.3