无关风月
2024-08-22 32f131a95f82706cc07e5948354f634d65e87a1d
Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/mx_charging_pile

# Conflicts:
# ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java
16个文件已修改
1个文件已删除
3个文件已添加
282 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-chargingPile/src/main/resources/template/充电桩申请记录.xlsx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/factory/OrderFallbackFactory.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/feignClient/OrderClient.java 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/pom.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/TGoods.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/dto/ExchangeDto.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/UserSiteFallbackFactory.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/OrderCodeUtil.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/utils/SecurityUtils.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/ShopUserStart.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WxLoginController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/util/PointDetailUtil.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/pom.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TApplyChargingPileController.java 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TExchangeOrderController.java 46 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TGoodsController.java 63 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-chargingPile/src/main/resources/template/充电桩申请记录.xlsx
Binary files differ
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>
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());
            }
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);
ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/api/vo/ExchangeDto.java
File was deleted
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>
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;
}
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;
}
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());
            }
        };
    }
ruoyi-common/ruoyi-common-core/src/main/java/com/ruoyi/common/core/utils/OrderCodeUtil.java
New file
@@ -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"));
    }
}
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);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/query/ShopUserStart.java
New file
@@ -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;
}
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
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));
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);
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
ruoyi-service/ruoyi-chargingPile/pom.xml
@@ -15,6 +15,7 @@
    </description>
    <dependencies>
        <dependency>
            <groupId>com.ruoyi</groupId>
            <artifactId>ruoyi-api-account</artifactId>
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 = "详情")
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();
    }
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){