From 15ec9481bb9768378a512530a8facb4dccdd62f6 Mon Sep 17 00:00:00 2001 From: k94314517 <8417338+k94314517@user.noreply.gitee.com> Date: 星期二, 18 二月 2025 14:51:07 +0800 Subject: [PATCH] 111 --- server/services/src/main/java/com/doumee/dao/business/model/DiscountMember.java | 10 + server/services/src/main/java/com/doumee/dao/business/vo/DiscountGoodsorderExportVO.java | 66 ++++++++ server/services/src/main/java/com/doumee/dao/business/web/request/DiscountMemberDTO.java | 52 ++++++ server/services/src/main/java/com/doumee/service/business/DiscountMemberService.java | 7 server/services/src/main/java/com/doumee/dao/business/model/DiscountLog.java | 5 server/services/src/main/java/com/doumee/service/business/GoodsorderService.java | 8 server/services/src/main/java/com/doumee/dao/business/DiscountLogMapper.java | 3 server/services/src/main/java/com/doumee/core/utils/DateUtil.java | 9 + server/platform/src/main/java/com/doumee/api/business/DiscountMemberController.java | 21 ++ server/web/src/main/java/com/doumee/api/web/HomeApi.java | 4 server/services/src/main/java/com/doumee/service/business/impl/DiscountMemberServiceImpl.java | 125 +++++++++++++++ server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java | 4 server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java | 29 +++ server/services/src/main/java/com/doumee/dao/business/web/response/GoodsorderDetailVO.java | 32 ++++ server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java | 49 +++++- 15 files changed, 412 insertions(+), 12 deletions(-) diff --git a/server/platform/src/main/java/com/doumee/api/business/DiscountMemberController.java b/server/platform/src/main/java/com/doumee/api/business/DiscountMemberController.java index c429612..26f53d2 100644 --- a/server/platform/src/main/java/com/doumee/api/business/DiscountMemberController.java +++ b/server/platform/src/main/java/com/doumee/api/business/DiscountMemberController.java @@ -7,6 +7,7 @@ import com.doumee.core.model.PageWrap; import com.doumee.core.model.PageData; import com.doumee.dao.business.model.DiscountMember; +import com.doumee.dao.business.web.request.DiscountMemberDTO; import com.doumee.service.business.DiscountMemberService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -85,6 +86,24 @@ @GetMapping("/{id}") @RequiresPermissions("business:discountmember:query") public ApiResponse findById(@PathVariable String id) { - return ApiResponse.success(discountMemberService.findById(id)); + return ApiResponse.success(discountMemberService.getDetail(id)); } + + @ApiOperation("濂楅鍗℃姤搴�") + @PostMapping("/cancel") + @RequiresPermissions("business:discountmember:update") + public ApiResponse cancel(@RequestBody DiscountMemberDTO model) { + discountMemberService.cancel(model); + return ApiResponse.success(null); + } + + @ApiOperation("濂楅鍗¤皟鏁�") + @PostMapping("/adjust") + @RequiresPermissions("business:discountmember:update") + public ApiResponse adjust(@RequestBody DiscountMemberDTO model) { + discountMemberService.adjust(model); + return ApiResponse.success(null); + } + + } diff --git a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java index de885c8..7f564cc 100644 --- a/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java +++ b/server/platform/src/main/java/com/doumee/api/business/GoodsorderController.java @@ -10,11 +10,13 @@ import com.doumee.core.utils.DateUtil; import com.doumee.dao.business.model.Goodsorder; import com.doumee.dao.business.model.WxBillDetail; +import com.doumee.dao.business.vo.DiscountGoodsorderExportVO; 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.dao.business.web.response.GoodsorderDetailVO; import com.doumee.service.business.GoodsorderService; import com.doumee.service.business.GoodsorderService; import com.doumee.service.business.RefundService; @@ -22,6 +24,7 @@ import io.swagger.annotations.ApiOperation; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.checkerframework.checker.units.qual.C; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; @@ -103,8 +106,26 @@ @RequiresPermissions("business:goodsorder:exportExcel") public void exportExcel (@RequestBody PageWrap<Goodsorder> pageWrap, HttpServletResponse response) { ExcelExporter.build(Goodsorder.class).exportWithFirstAndEnd(goodsorderService.findPage(pageWrap).getRecords(), "璁㈠崟鍒楄〃_"+System.currentTimeMillis(),"璁㈠崟鍒楄〃_"+ DateUtil.getPlusTime2(DateUtil.getCurrentDate()),null, response); - } + + + @ApiOperation("濂楅鍗¤鍗曞垪琛�-瀵煎嚭Excel") + @PostMapping("/discountExportExcel") + @RequiresPermissions("business:goodsorder:exportExcel") + public void discountExportExcel (@RequestBody PageWrap<Goodsorder> pageWrap, HttpServletResponse response) { + List<Goodsorder> goodsorders = goodsorderService.findPage(pageWrap).getRecords(); + List<DiscountGoodsorderExportVO> discountGoodsorderExportVOList = new ArrayList<>(); + for (Goodsorder goodsorder:goodsorders) { + DiscountGoodsorderExportVO discountGoodsorderExportVO = new DiscountGoodsorderExportVO(); + BeanUtils.copyProperties(goodsorder,discountGoodsorderExportVO); + discountGoodsorderExportVO.setPayMoney(discountGoodsorderExportVO.getPayMoney()); + discountGoodsorderExportVOList.add(discountGoodsorderExportVO); + } + ExcelExporter.build(DiscountGoodsorderExportVO.class).exportWithFirstAndEnd(discountGoodsorderExportVOList, "璁㈠崟鍒楄〃_"+System.currentTimeMillis(),"璁㈠崟鍒楄〃_"+ DateUtil.getPlusTime2(DateUtil.getCurrentDate()),null, response); + } + + + @ApiOperation("鏀舵鏄庣粏锛堝井淇″璐︽槑缁嗭級_鍒嗛〉鏌ヨ") @PostMapping("/pageAccountDetail") @RequiresPermissions("business:goodsorder:query") @@ -124,6 +145,12 @@ return ApiResponse.success(goodsorderService.getGoodsorderDetailDTO(id)); } + @ApiOperation("璁㈠崟璇︽儏-濂楅鍗�") + @GetMapping("/discountOrderDetail") + @RequiresPermissions("business:goodsorder:query") + public ApiResponse<GoodsorderDetailVO> discountOrderDetail(@RequestParam String id) { + return ApiResponse.success(goodsorderService.getGoodsorderDetailForDisCount(id)); + } /** * 寮哄埗缁撶畻璁㈠崟 diff --git a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java index 689c112..8f8188e 100644 --- a/server/services/src/main/java/com/doumee/core/utils/DateUtil.java +++ b/server/services/src/main/java/com/doumee/core/utils/DateUtil.java @@ -68,6 +68,15 @@ return dt1; } + public static String getXDaysAfter(Date date, Integer days){ + Timestamp currentTimestamp = new Timestamp(date.getTime()); + Calendar calendar = Calendar.getInstance(); + calendar.setTime(currentTimestamp); + calendar.add(Calendar.DAY_OF_YEAR, days-1); // 鍦ㄥ綋鍓嶆椂闂村熀纭�涓婃坊鍔犳寚瀹氱殑澶╂暟 + SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd"); + return formatter.format(calendar.getTime()); + } + /** * @author Pablo Descrption:取锟矫碉拷前锟斤拷锟斤拷getgetg get Date format * Example锛�2008-05-15 diff --git a/server/services/src/main/java/com/doumee/dao/business/DiscountLogMapper.java b/server/services/src/main/java/com/doumee/dao/business/DiscountLogMapper.java index 471c3b1..4a47c86 100644 --- a/server/services/src/main/java/com/doumee/dao/business/DiscountLogMapper.java +++ b/server/services/src/main/java/com/doumee/dao/business/DiscountLogMapper.java @@ -2,11 +2,12 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.doumee.dao.business.model.DiscountLog; +import com.github.yulichang.base.mapper.MPJJoinMapper; /** * @author 姹熻箘韫� * @date 2025/02/17 09:43 */ -public interface DiscountLogMapper extends BaseMapper<DiscountLog> { +public interface DiscountLogMapper extends MPJJoinMapper<DiscountLog> { } diff --git a/server/services/src/main/java/com/doumee/dao/business/model/DiscountLog.java b/server/services/src/main/java/com/doumee/dao/business/model/DiscountLog.java index ff473bf..5de1fdd 100644 --- a/server/services/src/main/java/com/doumee/dao/business/model/DiscountLog.java +++ b/server/services/src/main/java/com/doumee/dao/business/model/DiscountLog.java @@ -1,5 +1,6 @@ package com.doumee.dao.business.model; +import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -79,4 +80,8 @@ @ExcelColumn(name="鍏宠仈璁㈠崟缂栫爜(鍏宠仈goodsorder锛�") private String goodsorderId; + @ApiModelProperty(value = "鍒涘缓浜哄悕绉�") + @TableField(exist = false) + private String creatorName; + } diff --git a/server/services/src/main/java/com/doumee/dao/business/model/DiscountMember.java b/server/services/src/main/java/com/doumee/dao/business/model/DiscountMember.java index b333480..893616e 100644 --- a/server/services/src/main/java/com/doumee/dao/business/model/DiscountMember.java +++ b/server/services/src/main/java/com/doumee/dao/business/model/DiscountMember.java @@ -11,6 +11,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.math.BigDecimal; +import java.util.List; /** * 鐢ㄦ埛楠戣濂楅鍗″叧鑱旇〃 @@ -144,4 +145,13 @@ @ExcelColumn(name="浣跨敤娆℃暟",index = 4,width = 20) @TableField(exist = false) private Integer useTimes; + + @ApiModelProperty(value = "楠戣璁板綍") + @TableField(exist = false) + private List<DiscountLog> discountLogList; + + + @ApiModelProperty(value = "鎿嶄綔璁板綍") + @TableField(exist = false) + private List<DiscountLog> optLogList; } diff --git a/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java b/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java index 0034c79..8af42cf 100644 --- a/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java +++ b/server/services/src/main/java/com/doumee/dao/business/model/Goodsorder.java @@ -136,6 +136,10 @@ @TableField(exist = false) private Integer closeStatus; + @ApiModelProperty(value = "鎿嶄綔浜�") + @ExcelColumn(name="鎿嶄綔浜�",index = 9,width = 10,align = HorizontalAlignment.CENTER) + @TableField(exist = false) + private String refundUserName; @ApiModelProperty(value = "濂楅鍚嶇О", example = "2023-10-01 15:12:01") @TableField(exist = false) diff --git a/server/services/src/main/java/com/doumee/dao/business/vo/DiscountGoodsorderExportVO.java b/server/services/src/main/java/com/doumee/dao/business/vo/DiscountGoodsorderExportVO.java new file mode 100644 index 0000000..72855ff --- /dev/null +++ b/server/services/src/main/java/com/doumee/dao/business/vo/DiscountGoodsorderExportVO.java @@ -0,0 +1,66 @@ +package com.doumee.dao.business.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +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; +import java.util.Date; + +/** + * 璁㈠崟淇℃伅琛� + * @author 姹熻箘韫� + * @date 2023/09/27 18:06 + */ +@Data +@ApiModel("濂楅璁㈠崟瀵煎嚭瀵硅薄") +public class DiscountGoodsorderExportVO { + + @ApiModelProperty(value = "璁㈠崟缂栫爜") + @ExcelColumn(name="璁㈠崟缂栧彿",width = 10,index = 1,align = HorizontalAlignment.CENTER) + private String code; + + @ApiModelProperty(value = "濂楅鍗″悕绉�") + @ExcelColumn(name="濂楅鍗�",width = 10,index = 2,align = HorizontalAlignment.CENTER) + private String discountName; + + @ApiModelProperty(value = "鍚堣锛堝厓锛�") + @ExcelColumn(name="鍚堣锛堝厓锛�",width = 10,index = 3,align = HorizontalAlignment.CENTER) + private BigDecimal money; + + @ApiModelProperty(value = "瀹炰粯锛堝厓锛�") + @ExcelColumn(name="瀹炰粯锛堝厓锛�",width = 10,index = 4,align = HorizontalAlignment.CENTER) + private BigDecimal payMoney; + + @ApiModelProperty(value = "宸查��閲戦锛堝厓锛�") + @ExcelColumn(name="宸查��閲戦锛堝厓锛�",width = 10,index = 5,align = HorizontalAlignment.CENTER) + private BigDecimal refundMoney; + + @ApiModelProperty(value = "鐢ㄦ埛openid" ) + @TableField(exist = false) + @ExcelColumn(name="鐢ㄦ埛淇℃伅",index = 6 ,width = 10,align = HorizontalAlignment.CENTER) + private String openid; + + @ApiModelProperty(value = "鏀粯鏂瑰紡 0寰俊 1鏀粯瀹�") + @ExcelColumn(name="鏀粯鏂瑰紡",index = 7 ,width = 10,valueMapping = "0=寰俊锛�1=鏀粯瀹濓紱",align = HorizontalAlignment.CENTER) + private Integer payWay; + + @ApiModelProperty(value = "璁㈠崟鏉ユ簮") + @ExcelColumn(name="璁㈠崟鏉ユ簮",index = 8 ,width = 10,valueMapping = "0=灏忕▼搴忕锛�",align = HorizontalAlignment.CENTER) + private Integer origin; + + + @ApiModelProperty(value = "鎿嶄綔浜�") + @ExcelColumn(name="鎿嶄綔浜�",index = 9,width = 10,align = HorizontalAlignment.CENTER) + private String refundUserName; + + + @ApiModelProperty(value = "鍒涘缓鏃堕棿") + @ExcelColumn(name="鍒涘缓鏃堕棿",index = 10,width = 16,dateFormat = "yyyy-MM-dd HH:mm:ss",align = HorizontalAlignment.CENTER) + private Date createDate; + + +} diff --git a/server/services/src/main/java/com/doumee/dao/business/web/request/DiscountMemberDTO.java b/server/services/src/main/java/com/doumee/dao/business/web/request/DiscountMemberDTO.java new file mode 100644 index 0000000..948d31f --- /dev/null +++ b/server/services/src/main/java/com/doumee/dao/business/web/request/DiscountMemberDTO.java @@ -0,0 +1,52 @@ +package com.doumee.dao.business.web.request; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableName; +import com.doumee.core.annotation.excel.ExcelColumn; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; + +/** + * 鐢ㄦ埛楠戣濂楅鍗″叧鑱旇〃 + * @author 姹熻箘韫� + * @date 2025/02/17 09:43 + */ +@Data +public class DiscountMemberDTO { + + @ApiModelProperty(value = "缂栫爜") + private String id; + + @ApiModelProperty(value = "澶囨敞") + private String info; + + @ApiModelProperty(value = "绁ㄥ彿") + private String code; + + @ApiModelProperty(value = "鍚嶇О") + private String name; + + @ApiModelProperty(value = "鐢ㄦ埛opneid") + private String openid; + + @ApiModelProperty(value = "鐘舵�� 0姝e父 1浣滃簾 2杩囨湡鎴栫敤瀹�", example = "1") + private Integer status; + + @ApiModelProperty(value = "澧炲姞澶╂暟") + private Integer addDays; + + @ApiModelProperty(value = "閫変腑鏁版嵁") + private List<String> choseIdList; + + + + + + +} diff --git a/server/services/src/main/java/com/doumee/dao/business/web/response/GoodsorderDetailVO.java b/server/services/src/main/java/com/doumee/dao/business/web/response/GoodsorderDetailVO.java new file mode 100644 index 0000000..b196782 --- /dev/null +++ b/server/services/src/main/java/com/doumee/dao/business/web/response/GoodsorderDetailVO.java @@ -0,0 +1,32 @@ +package com.doumee.dao.business.web.response; + +import com.doumee.dao.business.model.DiscountMember; +import com.doumee.dao.business.model.Goodsorder; +import com.doumee.dao.business.model.Member; +import com.doumee.dao.business.model.Refund; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; + +/** + * @author T14 + */ +@Data +@ApiModel("璁㈠崟璇︽儏") +public class GoodsorderDetailVO { + + @ApiModelProperty(value = "璁㈠崟淇℃伅") + private Goodsorder goodsOrder; + + @ApiModelProperty(value = "涔板淇℃伅") + private Member member; + + @ApiModelProperty(value = "濂楅淇℃伅") + private DiscountMember discountMember; + + @ApiModelProperty(value = "閫�娆捐褰�") + private List<Refund> refundList; + +} diff --git a/server/services/src/main/java/com/doumee/service/business/DiscountMemberService.java b/server/services/src/main/java/com/doumee/service/business/DiscountMemberService.java index 2849dc7..5d56463 100644 --- a/server/services/src/main/java/com/doumee/service/business/DiscountMemberService.java +++ b/server/services/src/main/java/com/doumee/service/business/DiscountMemberService.java @@ -3,6 +3,8 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.dao.business.model.DiscountMember; +import com.doumee.dao.business.web.request.DiscountMemberDTO; + import java.util.List; /** @@ -63,6 +65,7 @@ */ DiscountMember findById(String id); + DiscountMember getDetail(String id); /** * 鏉′欢鏌ヨ鍗曟潯璁板綍 * @@ -94,4 +97,8 @@ * @return long */ long count(DiscountMember discountMember); + + void cancel(DiscountMemberDTO model); + + void adjust(DiscountMemberDTO model); } diff --git a/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java b/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java index d7bd238..452593d 100644 --- a/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java +++ b/server/services/src/main/java/com/doumee/service/business/GoodsorderService.java @@ -12,6 +12,7 @@ import com.doumee.dao.business.web.request.BackElecBikeRequest; import com.doumee.dao.business.web.request.GoodsorderBackDTO; import com.doumee.dao.business.web.request.GoodsorderCanBanlanceDTO; +import com.doumee.dao.business.web.response.GoodsorderDetailVO; import com.doumee.dao.business.web.response.HomeResponse; import com.doumee.dao.business.web.response.GoodsorderDetailDTO; import com.doumee.dao.business.web.response.RidesDetailResponse; @@ -143,7 +144,12 @@ */ GoodsorderDetailDTO getGoodsorderDetailDTO(String id); - + /** + * 濂楅鍗¤鍗曡鎯� + * @param id + * @return + */ + GoodsorderDetailVO getGoodsorderDetailForDisCount(String id); /** * 寮哄埗缁撶畻璁㈠崟 * @param id diff --git a/server/services/src/main/java/com/doumee/service/business/impl/DiscountMemberServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/DiscountMemberServiceImpl.java index a67d18e..f22b329 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/DiscountMemberServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/DiscountMemberServiceImpl.java @@ -1,13 +1,22 @@ package com.doumee.service.business.impl; +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.DiscountLogMapper; import com.doumee.dao.business.DiscountMemberMapper; import com.doumee.dao.business.join.DiscountMemberJoinMapper; import com.doumee.dao.business.model.Discount; +import com.doumee.dao.business.model.DiscountLog; import com.doumee.dao.business.model.DiscountMember; import com.doumee.dao.business.model.Member; +import com.doumee.dao.business.web.request.DiscountMemberDTO; +import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.DiscountMemberService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; @@ -15,13 +24,16 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; +import org.apache.shiro.SecurityUtils; import org.checkerframework.checker.units.qual.A; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; +import java.util.Date; import java.util.List; import java.util.Objects; +import java.util.stream.Collectors; /** * 鐢ㄦ埛楠戣濂楅鍗″叧鑱旇〃Service瀹炵幇 @@ -36,6 +48,10 @@ @Autowired private DiscountMemberJoinMapper discountMemberJoinMapper; + + @Autowired + private DiscountLogMapper discountLogMapper; + @Override public String create(DiscountMember discountMember) { @@ -83,6 +99,27 @@ } @Override + public DiscountMember getDetail(String id) { + DiscountMember discountMember = discountMemberMapper.selectById(id); + if(Objects.isNull(discountMember)){ + throw new BusinessException(ResponseStatus.DATA_EMPTY); + } + List<DiscountLog> discountLogList = discountLogMapper.selectJoinList(DiscountLog.class,new MPJLambdaWrapper<DiscountLog>() + .selectAll(DiscountLog.class) + .selectAs(SystemUser::getRealname,DiscountLog::getCreatorName) + .eq(DiscountLog::getDiscountMemberId,discountMember.getId()) + .eq(DiscountLog::getIsdeleted,Constants.ZERO) + .orderByDesc(DiscountLog::getId) + ); + if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(discountLogList)){ + discountMember.setDiscountLogList(discountLogList.stream().filter(i->Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList())); + discountMember.setOptLogList(discountLogList.stream().filter(i->!Constants.equalsInteger(i.getType(),Constants.ZERO)).collect(Collectors.toList())); + discountMember.setUseTimes(discountMember.getDiscountLogList().size()); + } + return discountMember; + } + + @Override public DiscountMember findOne(DiscountMember discountMember) { QueryWrapper<DiscountMember> wrapper = new QueryWrapper<>(discountMember); return discountMemberMapper.selectOne(wrapper); @@ -110,6 +147,94 @@ return PageData.from(discountMemberJoinMapper.selectJoinPage(page, DiscountMember.class,queryWrapper)); } + + @Override + public void cancel(DiscountMemberDTO model){ + LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + MPJLambdaWrapper<DiscountMember> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(DiscountMember.class) + .leftJoin(Member.class,Member::getId,DiscountMember::getMemberId) + .eq(DiscountMember::getStatus,Constants.ZERO) + .like(StringUtils.isNotBlank(model.getCode()),DiscountMember::getCode,model.getCode()) + .like(StringUtils.isNotBlank(model.getName()),DiscountMember::getName,model.getName()) + .like(StringUtils.isNotBlank(model.getOpenid()),Member::getOpenid,model.getOpenid()) + .eq(Objects.nonNull(model.getId()),DiscountMember::getId,model.getId()) + .in(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(model.getChoseIdList()) + ,DiscountMember::getId,model.getChoseIdList()) + .orderByDesc(DiscountMember::getId); + List<DiscountMember> list = discountMemberJoinMapper.selectJoinList(DiscountMember.class,queryWrapper); + if(CollectionUtils.isEmpty(list)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鍙姤搴熺殑濂楅鍗′俊鎭�"); + } + for (DiscountMember discountMember:list) { + discountMemberMapper.update(null,new UpdateWrapper<DiscountMember>().lambda() + .set(DiscountMember::getStatus,Constants.ONE) + .eq(DiscountMember::getId,discountMember.getId()) + ); + //鎿嶄綔鏃ュ織 + DiscountLog discountLog = new DiscountLog(); + discountLog.setIsdeleted(Constants.ZERO); + discountLog.setCreator(principal.getId()); + discountLog.setCreateDate(new Date()); + discountLog.setDiscountMemberId(discountMember.getId()); + discountLog.setType(Constants.ONE); + discountLog.setInfo(model.getInfo()); + discountLog.setEditInfo("閫�璐ч��鍗�"); + discountLog.setGoodsorderId(discountMember.getGoodsorderId()); + discountLogMapper.insert(discountLog); + } + } + + + + @Override + public void adjust(DiscountMemberDTO model){ + if(Objects.isNull(model) + || Objects.isNull(model.getAddDays())){ + throw new BusinessException(ResponseStatus.BAD_REQUEST); + } + LoginUserInfo principal = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal(); + MPJLambdaWrapper<DiscountMember> queryWrapper = new MPJLambdaWrapper<>(); + queryWrapper.selectAll(DiscountMember.class) + .leftJoin(Member.class,Member::getId,DiscountMember::getMemberId) + .eq(DiscountMember::getStatus,Constants.ZERO) + .like(StringUtils.isNotBlank(model.getCode()),DiscountMember::getCode,model.getCode()) + .like(StringUtils.isNotBlank(model.getName()),DiscountMember::getName,model.getName()) + .like(StringUtils.isNotBlank(model.getOpenid()),Member::getOpenid,model.getOpenid()) + .eq(Objects.nonNull(model.getId()),DiscountMember::getId,model.getId()) + .in(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(model.getChoseIdList()) + ,DiscountMember::getId,model.getChoseIdList()) + .orderByDesc(DiscountMember::getId); + List<DiscountMember> list = discountMemberJoinMapper.selectJoinList(DiscountMember.class,queryWrapper); + if(CollectionUtils.isEmpty(list)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏈煡璇㈠埌鍙皟鏁寸殑濂楅鍗′俊鎭�"); + } + for (DiscountMember discountMember:list) { + if(!Constants.equalsInteger(discountMember.getStatus(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"銆�"+discountMember.getCode()+"銆戝椁愬崱宸蹭綔搴燂紝鏃犳硶杩涜璇ユ搷浣�"); + } + String useEndDate = DateUtil.getXDaysAfter(discountMember.getUseEndDate(),model.getAddDays()); + discountMemberMapper.update(null,new UpdateWrapper<DiscountMember>().lambda() + //.setSql(" use_end_date = use_end_date::date + " + model.getAddDays() ) + .set(DiscountMember::getUseEndDate,useEndDate) + .eq(DiscountMember::getId,discountMember.getId()) + ); + //鎿嶄綔鏃ュ織 + DiscountLog discountLog = new DiscountLog(); + discountLog.setIsdeleted(Constants.ZERO); + discountLog.setCreator(principal.getId()); + discountLog.setCreateDate(new Date()); + discountLog.setDiscountMemberId(discountMember.getId()); + discountLog.setType(Constants.TWO); + discountLog.setGoodsorderId(discountMember.getGoodsorderId()); + discountLog.setEditInfo(model.getInfo()); + discountLog.setEditDays(model.getAddDays()); + discountLog.setInfo("灏嗘湁鏁堟湡澧炲姞"+model.getAddDays()+"澶�, 璋冩暣鍚庢湁鏁堟湡鑷�"+useEndDate); + discountLogMapper.insert(discountLog); + } + } + + @Override public long count(DiscountMember discountMember) { QueryWrapper<DiscountMember> wrapper = new QueryWrapper<>(discountMember); diff --git a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java index 43b7c48..bc917a3 100644 --- a/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java +++ b/server/services/src/main/java/com/doumee/service/business/impl/GoodsorderServiceImpl.java @@ -34,6 +34,7 @@ import com.doumee.dao.business.web.response.*; import com.doumee.dao.business.join.MemberRidesJoinMapper; import com.doumee.dao.business.model.*; +import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.GoodsorderService; import com.doumee.service.business.MemberRidesService; import com.doumee.service.business.PricingRuleService; @@ -200,13 +201,6 @@ if (Objects.nonNull(model.getEndDate())){ queryWrapper.le( Goodsorder::getPayDate, Utils.Date.getEnd(model.getEndDate())); } - -// queryWrapper.eq(model.getPayStatus() !=null,Goodsorder::getPayStatus,model.getPayStatus()); -// queryWrapper.like(model.getCode() !=null,Goodsorder::getCode,model.getCode()); -// queryWrapper.like(model.getId() !=null,Goodsorder::getId,model.getId()); -// queryWrapper.eq(model.getStatus() !=null,Goodsorder::getStatus,model.getStatus()); -// queryWrapper.like(model.getOnlineOrderid() !=null,Goodsorder::getOnlineOrderid,model.getOnlineOrderid()); -// queryWrapper.like(model.getOpenid() !=null,Member::getOpenid,model.getOpenid()); queryWrapper.eq(Goodsorder::getIsdeleted,Constants.ZERO); queryWrapper.eq(Goodsorder::getPayStatus,Constants.ONE); queryWrapper.orderByAsc(Goodsorder::getPayDate); @@ -328,6 +322,7 @@ queryWrapper.eq(Objects.nonNull(pageWrap.getModel().getType()),Goodsorder::getType,pageWrap.getModel().getType()); queryWrapper.select("(select sum(er.discount_price) from member_rides er where er.ordre_id=t.id and er.isdeleted=0) as discountMoney," + "(select er.status from member_rides er where er.ordre_id=t.id order by er.create_date desc limit 1) as memberRidesStatus"); + queryWrapper.select("( select s.realname from refund r left join system_user s on r.creator = s.id where r.obj_id = t.id order by r.id desc limit 1 ) ",Goodsorder::getRefundUserName); if(Objects.nonNull(pageWrap.getModel().getCloseStatus()) && pageWrap.getModel().getCloseStatus().equals(Constants.ZERO)){ queryWrapper.ne(Goodsorder::getStatus,Constants.GOODSORDER_STATUS.CLOSE.getKey()); } @@ -446,7 +441,6 @@ @Override public GoodsorderDetailDTO getGoodsorderDetailDTO(String id) { - List<PayOrderDTO> payOrderDTOList = new ArrayList<>(); Goodsorder goodsorder = goodsorderMapper.selectById(id); if(goodsorder == null){ @@ -495,6 +489,45 @@ goodsorderDetailDTO.setModel(goodsorder);//璁㈠崟瀵硅薄 return goodsorderDetailDTO; } + + + + @Override + public GoodsorderDetailVO getGoodsorderDetailForDisCount(String id){ + GoodsorderDetailVO goodsorderDetailVO = new GoodsorderDetailVO(); + Goodsorder goodsorder = goodsorderMapper.selectById(id); + if(goodsorder == null){ + throw new BusinessException(ResponseStatus.DATA_EMPTY ); + } + if(Constants.equalsInteger(goodsorder.getType(),Constants.ZERO)){ + throw new BusinessException(ResponseStatus.NOT_ALLOWED); + } + goodsorderDetailVO.setGoodsOrder(goodsorder); + Member member = memberMapper.selectById(goodsorder.getMemberId()); + if(Objects.nonNull(member)){ + goodsorderDetailVO.setMember(member); + } + //鏌ヨ鍟嗗搧淇℃伅 + DiscountMember discountMember = discountMemberMapper.selectById(goodsorder.getObjId()); + if(Objects.nonNull(discountMember)){ + goodsorderDetailVO.setDiscountMember(discountMember); + } + //鏌ヨ鎵�鏈夋湁閫�娆捐褰� + List<Refund> refunds = refundJoinMapper.selectJoinList(Refund.class, + new MPJLambdaWrapper<Refund>() + .selectAll(Refund.class) + .selectAs(SystemUser::getRealname,Refund::getCreatorName) + .leftJoin(SystemUser.class,SystemUser::getId,Refund::getCreator) + .eq(Refund::getObjId,goodsorder.getId()) + .orderByDesc(Refund::getId) + ); + goodsorderDetailVO.setRefundList(refunds); + + return goodsorderDetailVO; + } + + + @Override public void forceCloseGoodsorder(String orderId) { //鏌ヨ璁㈠崟 淇℃伅 diff --git a/server/web/src/main/java/com/doumee/api/web/HomeApi.java b/server/web/src/main/java/com/doumee/api/web/HomeApi.java index ff2fafa..8392c58 100644 --- a/server/web/src/main/java/com/doumee/api/web/HomeApi.java +++ b/server/web/src/main/java/com/doumee/api/web/HomeApi.java @@ -49,6 +49,10 @@ HomeResponse homeResponse = goodsorderService.getHome(getMemberId()); return ApiResponse.success("鏌ヨ鎴愬姛",homeResponse); } + + + + @ApiOperation(value = "娴嬭瘯鐢垫睜鎺у埗", notes = "娴嬭瘯鐢垫睜鎺у埗") @PostMapping("/testControl") public ApiResponse<APIResult<T0201_0500>> testControl(@RequestBody T8500 param) { -- Gitblit v1.9.3