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 >= now() + AND t1.status =1 and t1.end_time >= 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 <= now() and t1.del_flag = 0 + AND t1.status =1 and t1.end_time <= 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