From 32f131a95f82706cc07e5948354f634d65e87a1d Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 22 八月 2024 09:45:53 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java                      |    6 
 ruoyi-api/ruoyi-api-order/pom.xml                                                                                  |    4 
 ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/OrderCodeUtil.java                        |   26 +++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java                              |    3 
 ruoyi-service/ruoyi-chargingPile/pom.xml                                                                           |    1 
 ruoyi-api/ruoyi-api-other/pom.xml                                                                                  |    4 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java                      |    7 -
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java                                   |    7 +
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml                                 |    4 
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/ShopUserStart.java                                 |   18 +++
 ruoyi-api/ruoyi-api-chargingPile/src/main/resources/template/充电桩申请记录.xlsx                                          |    0 
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java                           |   63 +++++++++---
 /dev/null                                                                                                          |   18 ---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java                   |   46 ++++----
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java                                     |    3 
 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java                |    7 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java                   |   10 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java |   45 ++++++++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java                   |    2 
 ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java                           |    8 -
 20 files changed, 200 insertions(+), 82 deletions(-)

diff --git "a/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx" "b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx"
new file mode 100644
index 0000000..70d48b0
--- /dev/null
+++ "b/ruoyi-api/ruoyi-api-chargingPile/src/main/resources/template/\345\205\205\347\224\265\346\241\251\347\224\263\350\257\267\350\256\260\345\275\225.xlsx"
Binary files differ
diff --git a/ruoyi-api/ruoyi-api-order/pom.xml b/ruoyi-api/ruoyi-api-order/pom.xml
index 687c8a0..6bdc239 100644
--- a/ruoyi-api/ruoyi-api-order/pom.xml
+++ b/ruoyi-api/ruoyi-api-order/pom.xml
@@ -28,6 +28,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-other</artifactId>
+        </dependency>
 
     </dependencies>
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
index 04ea275..8f689c3 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java
@@ -1,13 +1,10 @@
 package com.ruoyi.order.api.factory;
 
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.order.api.feignClient.ChargingOrderClient;
+import com.ruoyi.common.core.dto.ExchangeDto;
 import com.ruoyi.order.api.feignClient.OrderClient;
-import com.ruoyi.order.api.model.TChargingOrder;
-import com.ruoyi.order.api.model.TExchangeOrder;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
 import com.ruoyi.order.api.vo.TActivityVO;
-import com.ruoyi.order.api.vo.ExchangeDto;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springframework.cloud.openfeign.FallbackFactory;
@@ -43,7 +40,7 @@
             }
 
             @Override
-            public R<Long> getExchangeById(Integer goodsIds, Long userId) {
+            public R<Long> getExchangeById(Integer goodsIds, Long userId,Integer goodType) {
                 return R.fail("根据订单数" + cause.getMessage());
             }
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
index ff507cd..0d8fb3e 100644
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
+++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java
@@ -2,14 +2,11 @@
 
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
-import com.ruoyi.order.api.factory.ChargingOrderFallbackFactory;
+import com.ruoyi.common.core.dto.ExchangeDto;
 import com.ruoyi.order.api.factory.OrderFallbackFactory;
-import com.ruoyi.order.api.model.TExchangeOrder;
-import com.ruoyi.order.api.vo.ExchangeDto;
 import com.ruoyi.order.api.query.TActivityStatisticsQuery;
 import com.ruoyi.order.api.vo.TActivityVO;
 import org.springframework.cloud.openfeign.FeignClient;
-import org.springframework.web.bind.annotation.GetMapping;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestParam;
@@ -35,7 +32,8 @@
     public R<List<String>> getCodeByOrderId(String goodsIds);
     //查询已兑换的订单数
     @PostMapping("/t-exchange-order/getById")
-    public R<Long> getExchangeById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId);
+    public R<Long> getExchangeById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId,@RequestParam("goodType") Integer goodType);
+
     @PostMapping("/t-exchange-order/create")
     public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto);
 
diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java
deleted file mode 100644
index e0bdeb2..0000000
--- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java
+++ /dev/null
@@ -1,18 +0,0 @@
-package com.ruoyi.order.api.vo;
-
-import io.swagger.annotations.ApiModelProperty;
-import lombok.Data;
-
-@Data
-public class ExchangeDto {
-    @ApiModelProperty("商品id")
-    Integer goodId;
-    @ApiModelProperty("地址id")
-    Integer addressId;
-    @ApiModelProperty("备注")
-    String remark;
-    @ApiModelProperty(hidden = true)
-    Long userId;
-
-
-}
diff --git a/ruoyi-api/ruoyi-api-other/pom.xml b/ruoyi-api/ruoyi-api-other/pom.xml
index 0e43900..df1d49e 100644
--- a/ruoyi-api/ruoyi-api-other/pom.xml
+++ b/ruoyi-api/ruoyi-api-other/pom.xml
@@ -28,6 +28,10 @@
                 </exclusion>
             </exclusions>
         </dependency>
+        <dependency>
+            <groupId>com.ruoyi</groupId>
+            <artifactId>ruoyi-api-account</artifactId>
+        </dependency>
     </dependencies>
 
 </project>
\ No newline at end of file
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java
index 2e32a95..43fa2a1 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java
@@ -103,5 +103,8 @@
     @ApiModelProperty(value = "销量")
     @TableField(exist = false)
     private Integer salesCount;
+    @ApiModelProperty(value = "1商品2优惠卷")
+    @TableField(exist = false)
+    private Integer goodType;
 
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java
index 9c3969d..d0d3c50 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java
@@ -1,4 +1,4 @@
-package com.ruoyi.other.api.dto;
+package com.ruoyi.common.core.dto;
 
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -14,5 +14,10 @@
     @ApiModelProperty(hidden = true)
     Long userId;
 
+    @ApiModelProperty("1商品2优惠卷")
+    Integer goodType;
+    @ApiModelProperty(hidden = true)
+    Integer point;
+
 
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
index 84e6aa2..f36972c 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java
@@ -36,7 +36,7 @@
     
             @Override
             public R delUserSite(Long userId) {
-                return R.fail("删除用户站点失败:" + throwable.getMessage());
+                throw new RuntimeException("删除用户站点失败:" + throwable.getMessage());
             }
         };
     }
diff --git a/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/OrderCodeUtil.java b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/OrderCodeUtil.java
new file mode 100644
index 0000000..145a2a6
--- /dev/null
+++ b/ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/OrderCodeUtil.java
@@ -0,0 +1,26 @@
+package com.ruoyi.common.core.utils;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.Random;
+
+public class OrderCodeUtil {
+
+    public static String getOrderCode(String code){
+        LocalDateTime now = LocalDateTime.now();
+        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
+        String formattedDate = now.format(formatter);
+
+        // 四位随机数
+        Random random = new Random();
+        int randomNumber = random.nextInt(9999); // 生成0-9998之间的随机数
+        String formattedRandomNumber = String.format("%04d", randomNumber); // 补齐到4位
+
+        // 拼接日期和随机数
+        return code+formattedDate + formattedRandomNumber;
+    }
+    public static void main(String[] args) {
+        // 测试方法
+        System.out.println(getOrderCode("DH"));
+    }
+}
diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java
index 78a5393..5cc6b28 100644
--- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java
+++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java
@@ -114,4 +114,11 @@
         BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
         return passwordEncoder.matches(rawPassword, encodedPassword);
     }
+    
+    
+    public static void main(String[] args) {
+        BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
+        String encode = passwordEncoder.encode("49a15811ea47e8e9c6d8f3ef4d7bbc54");
+        System.err.println(encode);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/ShopUserStart.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/ShopUserStart.java
new file mode 100644
index 0000000..6542093
--- /dev/null
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/ShopUserStart.java
@@ -0,0 +1,18 @@
+package com.ruoyi.system.query;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @author zhibing.pu
+ * @date 2024/8/21 20:24
+ */
+@Data
+@ApiModel
+public class ShopUserStart {
+    @ApiModelProperty("用户id")
+    private Long userId;
+    @ApiModelProperty("注释")
+    private String remark;
+}
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
index d2f4568..db11e3f 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
@@ -1,6 +1,7 @@
 package com.ruoyi.account.controller;
 
 
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.dto.GrantCouponDto;
@@ -35,6 +36,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import javax.annotation.Resource;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
@@ -54,6 +56,8 @@
 public class TAppCouponController {
     @Autowired
     private TAppCouponService tAppCouponService;
+    @Resource
+    private OtherClient otherClient;
 
     @Autowired
     private TAppUserCarService appUserCarService;
@@ -63,11 +67,11 @@
     private ChargingPileClient chargingPileClient;
     @Autowired
     private ChargingOrderClient chargingOrderClient;
-    
+
     @Resource
     private ChargingGunClient chargingGunClient;
-    
-    
+
+
     /**
      * 小程序扫一扫 添加车辆
      * @param dto
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
index 58cc16d..2fcec55 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java
@@ -57,9 +57,9 @@
         String openid = body.getOpenid();
         String sessionKey = body.getSessionKey();
         // 用户信息解密 数据验签
-        if (StringUtils.isNotBlank(data.getSignature())) {
-            WxUtils.verifySignature(data.getRawData(), sessionKey, data.getSignature());
-        }
+//        if (StringUtils.isNotBlank(data.getSignature())) {
+//            WxUtils.verifySignature(data.getRawData(), sessionKey, data.getSignature());
+//        }
         AppletUserDecodeData appletUserDecodeData = WxUtils.encryptedData(data.getEncryptedData(), sessionKey,  data.getIv());
         appletUserDecodeData.setOpenId(openid);
         return AjaxResult.ok(appUserService.wxLogin(appletUserDecodeData));
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java
index 3070952..bb183a1 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java
@@ -3,6 +3,7 @@
 
 import com.ruoyi.account.api.model.TAppUserIntegralChange;
 import com.ruoyi.account.service.TAppUserIntegralChangeService;
+import com.ruoyi.common.core.utils.OrderCodeUtil;
 import org.springframework.stereotype.Component;
 
 import javax.annotation.Resource;
@@ -14,7 +15,7 @@
     public void addDetail(Integer old,Integer now,Integer type,Long userId,String extension,String code){
 
         TAppUserIntegralChange tAppUserIntegralChange= new TAppUserIntegralChange();
-        tAppUserIntegralChange.setCode(code);
+        tAppUserIntegralChange.setCode(OrderCodeUtil.getOrderCode("DH"));
         tAppUserIntegralChange.setAppUserId(userId);
         tAppUserIntegralChange.setChangeType(type);
         tAppUserIntegralChange.setHistoricalIntegral(old);
diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
index 0692cd9..2823142 100644
--- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
+++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml
@@ -43,13 +43,13 @@
                 AND  t2.phone LIKE concat('%',#{req.phone}, '%')
             </if>
             <if test="req.status != null and req.status = 1">
-                AND t1.status =1 and t1.endTime &gt;= now()
+                AND t1.status =1 and t1.end_time &gt;= now()
             </if>
             <if test="req.status != null and req.status = 2">
                 AND t1.status =2
             </if>
             <if test="req.status != null and req.status = 3">
-                AND t1.status =1 and t1.endTime &lt;= now() and t1.del_flag = 0
+                AND t1.status =1 and t1.end_time &lt;= now() and t1.del_flag = 0
             </if>
             <if test="req.status != null and req.status = 4">
                 AND t1.del_flag = 0
diff --git a/ruoyi-service/ruoyi-chargingPile/pom.xml b/ruoyi-service/ruoyi-chargingPile/pom.xml
index 1a16816..59ba844 100644
--- a/ruoyi-service/ruoyi-chargingPile/pom.xml
+++ b/ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -15,6 +15,7 @@
     </description>
 
     <dependencies>
+
         <dependency>
             <groupId>com.ruoyi</groupId>
             <artifactId>ruoyi-api-account</artifactId>
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
index 1d259d8..f60dca5 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java
@@ -1,11 +1,16 @@
 package com.ruoyi.chargingPile.controller;
 
 
+import com.alibaba.excel.EasyExcelFactory;
+import com.alibaba.excel.ExcelWriter;
+import com.alibaba.excel.write.builder.ExcelWriterBuilder;
+import com.alibaba.excel.write.metadata.WriteSheet;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.chargingPile.api.dto.ApplyChargingQuery;
 import com.ruoyi.chargingPile.api.dto.ApplyChargingRemarkDto;
 import com.ruoyi.chargingPile.api.model.TApplyChargingPile;
 import com.ruoyi.chargingPile.service.TApplyChargingPileService;
+import com.ruoyi.common.core.constant.Constants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.log.annotation.Log;
@@ -13,8 +18,16 @@
 import com.ruoyi.common.log.enums.OperatorType;
 import com.ruoyi.common.security.service.TokenService;
 import io.swagger.annotations.ApiOperation;
+import org.apache.commons.codec.CharEncoding;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
+import java.net.URLEncoder;
+import java.util.List;
 
 /**
  * <p>
@@ -69,9 +82,35 @@
 
 
     @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "导出")
-    @PostMapping(value = "/export")
-    public R export() {
-            return R.ok();
+    @PutMapping(value = "/export")
+    public R export(HttpServletResponse response) {
+        try {
+        response.setCharacterEncoding(Constants.UTF8);
+        response.setContentType("application/vnd.ms-excel");
+        response.setHeader("Access-Control-Expose-Headers", "Content-disposition");
+        response.setHeader("Content-Disposition", "attachment;filename=" +
+                URLEncoder.encode("申请建桩数据", CharEncoding.UTF_8) + ".xlsx");
+        } catch (UnsupportedEncodingException e) {
+            return R.fail("excel导出失败!");
+        }
+        try {
+            List<TApplyChargingPile> list = applyChargingPileService.lambdaQuery().list();
+
+            // excel模板封装
+            ExcelWriterBuilder excelWriterBuilder = EasyExcelFactory.write(response.getOutputStream());
+            InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("template/" +"充电桩申请记录" + ".xlsx");
+            // 自动释放资源
+            try (ExcelWriter excelWriter = excelWriterBuilder.withTemplate(stream).build()) {
+                WriteSheet writeSheet = EasyExcelFactory.writerSheet().build();
+                excelWriter.fill(list, writeSheet);
+                excelWriter.finish();
+            } catch (Exception e) {
+                return R.fail("excel导出失败!");
+            }
+        } catch (IOException e) {
+            return R.fail("excel导出失败!");
+        }
+        return R.ok();
     }
 
     @ApiOperation(tags = {"后台-申请表单-申请建桩"},value = "详情")
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
index 690d828..de60d7f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java
@@ -16,11 +16,10 @@
 import com.ruoyi.order.dto.ExchangeOrderGoodsInfo;
 import com.ruoyi.order.dto.GetMyExchangeOrder;
 import com.ruoyi.order.dto.MyExchangeOrderList;
-import com.ruoyi.order.service.TChargingOrderService;
 import com.ruoyi.order.service.TExchangeOrderService;
 import com.ruoyi.order.service.TShoppingOrderService;
-import com.ruoyi.order.service.TVipOrderService;
-import com.ruoyi.other.api.dto.ExchangeDto;
+import com.ruoyi.common.core.dto.ExchangeDto;
+import com.ruoyi.common.core.utils.OrderCodeUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.util.StringUtils;
@@ -153,34 +152,37 @@
 
 
     @PostMapping("/getById")
-    public R<Long> getById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId){
-          return R.ok(exchangeOrderService.lambdaQuery().eq(TExchangeOrder::getGoodsId,goodId).eq(TExchangeOrder::getAppUserId,userId).ne(TExchangeOrder::getStatus,4).count());
+    public R<Long> getById(@RequestParam("goodId") Integer goodId,@RequestParam("userId")  Long userId,@RequestParam("goodType") Integer goodType){
+        if (goodType==1){
+            return R.ok(exchangeOrderService.lambdaQuery().eq(TExchangeOrder::getGoodsId,goodId).eq(TExchangeOrder::getAppUserId,userId).ne(TExchangeOrder::getStatus,4).count());
+        }else {
+            return R.ok(exchangeOrderService.lambdaQuery().eq(TExchangeOrder::getCouponId,goodId).eq(TExchangeOrder::getAppUserId,userId).ne(TExchangeOrder::getStatus,4).count());
+        }
     }
 
     @PostMapping("/create")
     public R<Long> exchangeCreate(@RequestBody ExchangeDto exchangeDto){
         TExchangeOrder tExchangeOrder = new TExchangeOrder();
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-        String code = "DH" + Math.random() * 1000 + sdf.format(new Date());
-        tExchangeOrder.setCode(code);
+        tExchangeOrder.setCode(OrderCodeUtil.getOrderCode("DH"));
         tExchangeOrder.setAppUserId(exchangeDto.getUserId());
-        tExchangeOrder.setOrderType(0);
-        tExchangeOrder.setGoodsId(0);
-        tExchangeOrder.setCouponId(0);
-        tExchangeOrder.setPurchaseQuantity(0);
-        tExchangeOrder.setAppUserAddressId(0L);
-        tExchangeOrder.setPoints(0);
+        tExchangeOrder.setOrderType(exchangeDto.getGoodType());
+        if (exchangeDto.getGoodType()==1) {
+            tExchangeOrder.setGoodsId(exchangeDto.getGoodId());
+        }else {
+            tExchangeOrder.setCouponId(exchangeDto.getGoodId());
+        }
+        tExchangeOrder.setPurchaseQuantity(1);
+        tExchangeOrder.setAppUserAddressId(Long.valueOf(exchangeDto.getAddressId()));
+        tExchangeOrder.setPoints(exchangeDto.getPoint());
         tExchangeOrder.setRemark("");
-        tExchangeOrder.setStatus(0);
-        tExchangeOrder.setExpressCompany("");
-        tExchangeOrder.setExpressNumber("");
-        tExchangeOrder.setConsignerId(0);
-        tExchangeOrder.setConsignerTime(LocalDateTime.now());
-        tExchangeOrder.setReceivingTime(LocalDateTime.now());
-        tExchangeOrder.setCancellationTime(LocalDateTime.now());
-        tExchangeOrder.setCancellationId(0);
+        if (exchangeDto.getGoodType()==1){
+            tExchangeOrder.setStatus(0);
+        }else {
+            tExchangeOrder.setStatus(3);
+        }
         tExchangeOrder.setCreateTime(LocalDateTime.now());
         tExchangeOrder.setDelFlag(false);
+        exchangeOrderService.save(tExchangeOrder);
         return R.ok();
 
     }
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
index a834bb4..dd71e57 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java
@@ -1,6 +1,9 @@
 package com.ruoyi.other.controller;
+import java.time.LocalDateTime;
 
 
+import com.ruoyi.account.api.dto.GrantCouponDto;
+import com.ruoyi.account.api.feignClient.AppCouponClient;
 import com.ruoyi.account.api.feignClient.AppUserClient;
 import com.ruoyi.account.api.model.TAppUser;
 import com.ruoyi.common.core.domain.R;
@@ -9,13 +12,14 @@
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.api.feignClient.OrderClient;
-import com.ruoyi.other.api.domain.TActivity;
+import com.ruoyi.other.api.domain.TCoupon;
 import com.ruoyi.other.api.domain.TGoods;
+import com.ruoyi.common.core.dto.ExchangeDto;
 import com.ruoyi.other.api.dto.AdvertisingDTO;
 import com.ruoyi.order.api.vo.ExchangeDto;
 import com.ruoyi.other.api.dto.GoodsDTO;
 import com.ruoyi.other.service.TActivityService;
-import com.ruoyi.other.service.TAdvertisingService;
+import com.ruoyi.other.service.TCouponService;
 import com.ruoyi.other.service.TGoodsService;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -45,6 +49,10 @@
     private AppUserClient appUserClient;
     @Resource
     private OrderClient orderClient;
+    @Resource
+    private AppCouponClient appCouponClient;
+    @Resource
+    private TCouponService couponService;
 
 
 
@@ -100,29 +108,48 @@
     @ApiOperation(tags = {"小程序-兑换商城"},value = "兑换商品")
     @PostMapping(value = "/app/shop")
     public AjaxResult<PageInfo<TGoods>> shop(@RequestBody ExchangeDto exchangeDto) {
-        //查询当前商品信息
-        TGoods good = goodsService.getById(exchangeDto.getGoodId());
-
         //检查当前用户积分是否够
         Long userId = tokenService.getLoginUserApplet().getUserId();
+        Integer point = 0;
+
+        if (exchangeDto.getGoodType()==1) {
+            //查询当前商品信息
+            TGoods good = goodsService.getById(exchangeDto.getGoodId());
+            point = good.getRedeemPoints();
+            //检查当前用户是否到达兑换上限
+            Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData();
+            if (good.getLimitExchangeTimes() != -1 && count >= good.getLimitExchangeTimes()) {
+                return AjaxResult.error("当前用户已到达兑换上限");
+            }
         TAppUser user = appUserClient.getUserById(userId).getData();
         if (user.getPoints()<good.getRedeemPoints()){
             return AjaxResult.error("当前用户积分不足");
+             }
+        }else {
+            TCoupon coupon = couponService.getById(exchangeDto.getGoodId());
+            point = coupon.getRedeemPoints();
+
+            Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId,exchangeDto.getGoodType()).getData();
+            if (coupon.getInventoryQuantity() != -1 && count >= coupon.getInventoryQuantity()) {
+                return AjaxResult.error("当前用户已到达兑换上限");
+            }
         }
-        //检查当前用户是否到达兑换上限
-        Long count = orderClient.getExchangeById(exchangeDto.getGoodId(), userId).getData();
-        if (good.getLimitExchangeTimes()!=-1&&count>=good.getLimitExchangeTimes()){
-            return AjaxResult.error("当前用户已到达兑换上限");
-        }
+        exchangeDto.setPoint(point);
         //生成积分兑换成功的订单
-//        orderClient.exchangeCreate(exchangeDto);
-
-        //如果是优惠卷,赠送优惠卷给用户
-
-
-
-
+        orderClient.exchangeCreate(exchangeDto);
+        if (exchangeDto.getGoodType()==2) {
+            //如果是优惠卷,赠送优惠卷给用户
+            GrantCouponDto grantCouponDto = new GrantCouponDto();
+            grantCouponDto.setUserIds(userId.toString());
+            grantCouponDto.setCouponId(exchangeDto.getGoodId());
+            grantCouponDto.setWaysToObtain(1);
+            grantCouponDto.setEndTime(LocalDateTime.now());
+            appCouponClient.grantCoupon(grantCouponDto);
+        }
         //生成消耗积分的记录
+
+
+
         return AjaxResult.success();
 
 
@@ -132,7 +159,7 @@
     /**
      * 根据id获取商品信息
      * @param id
-     * @return1
+     * @return
      */
     @PostMapping("/getGoodsById/{id}")
     public R<TGoods> getGoodsById(@PathVariable Integer id){

--
Gitblit v1.7.1