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