server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java
@@ -12,6 +12,7 @@ import com.doumee.dao.business.vo.GoodsorderExportVO; import com.doumee.dao.business.vo.GoodsorderTotalDataVO; import com.doumee.dao.business.web.request.GoodsorderBackDTO; import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO; import com.doumee.dao.business.web.response.GoodsorderDetailDTO; import com.doumee.service.business.GoodsorderService; import com.doumee.service.business.GoodsorderService; @@ -122,7 +123,7 @@ * @param id * @return */ @ApiOperation("æ ¹æ®IDæ¥è¯¢") @ApiOperation("强å¶ç»ç®è®¢å") @PostMapping("/closerGoodsorder") @RequiresPermissions("business:goodsorder:query") public ApiResponse closerGoodsorder(@RequestParam String id){ @@ -131,11 +132,18 @@ } @ApiOperation("æ ¹æ®IDæ¥è¯¢") @ApiOperation("鿬¾") @PostMapping("/backGoodsorder") @RequiresPermissions("business:goodsorder:query") public ApiResponse backGoodsorder(@RequestBody GoodsorderBackDTO goodsorderBackDTO){ goodsorderService.backGoodsorder(goodsorderBackDTO.getOrderId(),goodsorderBackDTO.getMoney()); goodsorderService.backGoodsorder(goodsorderBackDTO.getOrderId(),goodsorderBackDTO.getMoney(),goodsorderBackDTO.getReason()); return ApiResponse.success(null); } @ApiOperation("è·åå¯é款信æ¯") @PostMapping("/getGoodsorderCanBanlanceDTO") @RequiresPermissions("business:goodsorder:query") public ApiResponse<GoodsorderCanBanlanceDTO> getGoodsorderCanBanlanceDTO(@RequestParam String orderId){ return ApiResponse.success(goodsorderService.getGoodsorderCanBanlanceDTO(orderId)); } } server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderBackDTO.java
@@ -18,4 +18,7 @@ @ApiModelProperty(value = "鿬¾éé¢") private BigDecimal money; @ApiModelProperty(value = "鿬¾éé¢") private String reason; } server/services/src/main/java/com/doumee/dao/business/web/request/GoodsorderCanBanlanceDTO.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,31 @@ package com.doumee.dao.business.web.request; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.apache.poi.ss.usermodel.HorizontalAlignment; import java.math.BigDecimal; /** * @author T14 */ @Data @ApiModel("订å鿬¾ä¿¡æ¯") public class GoodsorderCanBanlanceDTO { @ApiModelProperty(value = "å 弿¼ééé¢") private BigDecimal goodsorderMoney; @ApiModelProperty(value = "ç»ç®") private BigDecimal closeMoney; @ApiModelProperty(value = "å·²ééé¢") private BigDecimal hasRefundMoney; @ApiModelProperty(value = "å¯ééé¢") private BigDecimal canBanlanceMoney; } server/services/src/main/java/com/doumee/service/business/GoodsorderService.java
@@ -8,6 +8,7 @@ import com.doumee.dao.business.model.Goodsorder; import com.doumee.dao.business.vo.GoodsorderExportVO; import com.doumee.dao.business.vo.GoodsorderTotalDataVO; import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO; import com.doumee.dao.business.web.response.HomeResponse; import com.doumee.dao.business.web.response.GoodsorderDetailDTO; import com.doumee.dao.business.web.response.RidesDetailResponse; @@ -150,7 +151,13 @@ * 鿬¾ * @param orderId */ void backGoodsorder(String orderId, BigDecimal money); void backGoodsorder(String orderId, BigDecimal money ,String reason); /** * è·åå¯éæ¬¾ä¿¡æ¯ * @param orderId */ GoodsorderCanBanlanceDTO getGoodsorderCanBanlanceDTO(String orderId); /** server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java
@@ -26,6 +26,7 @@ import com.doumee.dao.business.model.MemberRides; import com.doumee.dao.business.vo.GoodsorderExportVO; import com.doumee.dao.business.vo.GoodsorderTotalDataVO; import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO; import com.doumee.dao.business.web.request.MemberRidesQuery; import com.doumee.dao.business.web.request.RefundDTO; import com.doumee.dao.business.web.response.*; @@ -56,10 +57,7 @@ import java.net.UnknownHostException; import java.sql.Ref; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Objects; import java.util.*; import java.util.stream.Collectors; @Service @@ -462,7 +460,7 @@ } @Override public void backGoodsorder(String orderId, BigDecimal money) { public void backGoodsorder(String orderId, BigDecimal money,String reason) { LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); Goodsorder goodsorder = goodsorderMapper.selectById(orderId); @@ -483,13 +481,38 @@ refundDTO.setRefundAmount(money); refundDTO.setTotalAmount(goodsorder.getMoney()); refundDTO.setMemberId(goodsorder.getMemberId()); refundDTO.setReason("å¹³å°é款"); refundDTO.setReason(reason); refundDTO.setType(Constants.REFUND_TYPE.BACK.getKey()); Refund refund = wxMiniUtilService.wxRefund(refundDTO); } } @Override public GoodsorderCanBanlanceDTO getGoodsorderCanBanlanceDTO(String orderId) { Goodsorder goodsorder = goodsorderMapper.selectById(orderId); QueryWrapper<Refund> wrapper = new QueryWrapper<>(); wrapper.lambda() .eq(Refund::getObjId,orderId) .orderByDesc(Refund::getCreateDate); List<Refund> refunds = refundMapper.selectList(wrapper); GoodsorderCanBanlanceDTO goodsorderCanBanlanceDTO = new GoodsorderCanBanlanceDTO(); goodsorderCanBanlanceDTO.setGoodsorderMoney(goodsorder.getMoney()); goodsorderCanBanlanceDTO.setCloseMoney(goodsorder.getCloseMoney()); if (!CollectionUtils.isEmpty(refunds)){ BigDecimal reduce = refunds.stream().map(s -> s.getMoney()).reduce(new BigDecimal("0"), (a, b) -> b.add(a)); Refund refund = refunds.stream().findFirst().orElse(null); goodsorderCanBanlanceDTO.setHasRefundMoney(reduce); goodsorderCanBanlanceDTO.setCanBanlanceMoney(refund.getCanBalance().subtract(refund.getMoney())); }else { goodsorderCanBanlanceDTO.setHasRefundMoney(new BigDecimal("0")); goodsorderCanBanlanceDTO.setCanBanlanceMoney(goodsorder.getMoney()); } return goodsorderCanBanlanceDTO; } @Override public GoodsorderTotalDataVO getTotalData(Goodsorder param){ GoodsorderTotalDataVO model = new GoodsorderTotalDataVO();