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()); 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/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; @@ -152,6 +153,12 @@ */ void backGoodsorder(String orderId, BigDecimal money); /** * è·åå¯éæ¬¾ä¿¡æ¯ * @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 @@ -490,6 +488,31 @@ } @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();