From 8b1376a256d8750f718276cbe475cb6f1f7ebddc Mon Sep 17 00:00:00 2001
From: luodangjia <luodangjia>
Date: 星期二, 13 八月 2024 11:14:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponListVOVO.java              |   41 ++++++++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java          |    6 +
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java            |    7 +
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/CouponListDto.java              |   20 +++++
 ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java       |    6 +
 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/TAppCouponMapper.xml                  |   19 ++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java            |    4 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java |   19 ++++
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppCouponController.java    |   31 ++++++-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java      |    6 +
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java           |   46 ++++++++++
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java             |    2 
 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java    |    6 +
 13 files changed, 203 insertions(+), 10 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/CouponListDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/CouponListDto.java
new file mode 100644
index 0000000..fe130a9
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/CouponListDto.java
@@ -0,0 +1,20 @@
+package com.ruoyi.account.api.dto;
+
+import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.common.core.web.page.BasePage;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("小程序扫一扫获取优惠券列表DTO")
+public class CouponListDto extends BasePage {
+    @ApiModelProperty("用户id 前端忽略")
+    private Long userId;
+    @ApiModelProperty("预付价格")
+    private BigDecimal payMoney;
+
+}
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java
index 645a948..7db26de 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/dto/GrantCouponDto.java
@@ -13,7 +13,7 @@
     private String userIds;
     @ApiModelProperty("优惠券id")
     private Integer couponId;
-    @ApiModelProperty("发放方式 1积分 2现金")
+    @ApiModelProperty("发放方式 1积分 2现金 3=后台赠送前端忽略")
     private Integer waysToObtain;
     @ApiModelProperty("结束时间 前端忽略")
     private LocalDateTime endTime;
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
index e3ea1b3..f2cae45 100644
--- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppCouponClient.java
@@ -1,5 +1,6 @@
 package com.ruoyi.account.api.feignClient;
 
+import com.ruoyi.account.api.dto.GrantCouponDto;
 import com.ruoyi.account.api.factory.AppCouponFallbackFactory;
 import com.ruoyi.account.api.factory.AppUserFallbackFactory;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
@@ -40,4 +41,9 @@
      */
     @PostMapping("/t-app-coupon/getExchangeRecordByCouponId")
     R<PageInfo<ExchangeRecordVO>> getExchangeRecordByCouponId(@RequestBody ExchangeRecordGoodsQuery couponId);
+    /**
+     * 后台远程调用 给用户发放优惠券
+     */
+    @PostMapping("/t-app-coupon/grantCoupon")
+    R  grantCoupon(@RequestBody GrantCouponDto dto);
 }
diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponListVOVO.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponListVOVO.java
new file mode 100644
index 0000000..ca3ede2
--- /dev/null
+++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponListVOVO.java
@@ -0,0 +1,41 @@
+package com.ruoyi.account.api.vo;
+
+import com.ruoyi.common.core.web.domain.BasePojo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springframework.beans.factory.annotation.Autowired;
+
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
+
+@Data
+@ApiModel("管理后台 优惠券兑换记录列表返回VO")
+public class CouponListVOVO extends BasePojo {
+    @ApiModelProperty(value = "优惠券名称")
+    private String couponName;
+    @ApiModelProperty(value = "优惠方式 1满减 2折扣")
+    private Integer preferentialMode;
+    @ApiModelProperty(value = "满减--优惠金额")
+    private BigDecimal discountAmount;
+    @ApiModelProperty(value = "满减--使用门槛 满减条件")
+    private BigDecimal meetTheConditions;
+    @ApiModelProperty(value = "折扣--折扣")
+    private BigDecimal discount;
+    @ApiModelProperty(value = "折扣--最高折扣金额")
+    private BigDecimal maximumDiscountAmount;
+    @ApiModelProperty(value = "优惠券数量")
+    private Integer couponCount;
+    @ApiModelProperty(value = "有效期")
+    private String validityTime;
+    @ApiModelProperty(value = "结束时间 前端忽略")
+    private LocalDateTime endTime;
+    @ApiModelProperty(value = "是否可用")
+    private Integer isUse;
+    @ApiModelProperty(value = "优惠券id")
+    private Long couponId;
+    @ApiModelProperty(value = "优惠券id")
+    private BigDecimal payMoney;
+    @ApiModelProperty(value = "最高折扣金额 用于判断哪一张优惠券优惠力度最大 前端忽略")
+    private BigDecimal money;
+}
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
index 4d8eb24..4099d98 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/OtherFallbackFactory.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.dto.TagListQueryDto;
 import com.ruoyi.account.api.dto.UnitListQueryDto;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TCompany;
 import com.ruoyi.other.api.domain.TUserTag;
@@ -79,6 +80,11 @@
             public R<Map<Integer, String>> getVipMap(List<Integer> ids) {
                 return R.fail("获取会员map:" + throwable.getMessage());
             }
+
+            @Override
+            public R<List<CouponListVOVO>> getCouponInfoByCouponIds(List<CouponListVOVO> list) {
+                return R.fail("我的优惠券列表获取信息:"+throwable.getMessage());
+            }
         };
     }
 }
diff --git a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
index c300997..d07fd62 100644
--- a/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
+++ b/ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/OtherClient.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.dto.TagListQueryDto;
 import com.ruoyi.account.api.dto.UnitListQueryDto;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.common.core.constant.ServiceNameConstants;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.other.api.domain.TCompany;
@@ -56,7 +57,11 @@
     @PostMapping(value = "/vip/getVipMap")
     R<Map<Integer, String>> getVipMap(@RequestBody List<Integer> ids);
 
-
+    /**
+     * 小程序远程调用 获取优惠券信息
+     */
+    @PostMapping(value = "/t-coupon/getCouponInfoByCouponIds")
+    R<List<CouponListVOVO>> getCouponInfoByCouponIds(@RequestBody List<CouponListVOVO> list);
 
 
 
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 b7e95ae..bf67953 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
@@ -2,15 +2,20 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.dto.GrantCouponDto;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.account.service.TAppCouponService;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.feignClient.OtherClient;
+import io.swagger.annotations.ApiModelProperty;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -35,6 +40,24 @@
 public class TAppCouponController {
     @Autowired
     private TAppCouponService tAppCouponService;
+    @Autowired
+    private OtherClient otherClient;
+
+    /**
+     * 查询用户可用优惠券数量
+     * @param dto
+     * @return
+     */
+
+    @ApiOperation(value = "选择优惠券分页查询", tags = {"小程序-扫一扫"})
+    @PostMapping(value = "/scan/couponList")
+    public AjaxResult<PageInfo<CouponListVOVO>> couponList(@RequestBody CouponListDto dto) {
+        // todo token获取用户id
+        Long userId = 11L;
+        dto.setUserId(userId);
+        PageInfo<CouponListVOVO> res = tAppCouponService.couponList(dto);
+        return AjaxResult.ok(res);
+    }
 
     /**
      * 管理后台远程调用 根据优惠券ids 查询对应的发放数量
@@ -46,11 +69,11 @@
         List<Integer> res = new ArrayList<>();
         String[] split = couponIds.split(",");
         // 查询每个优惠券的发放数量
-        List<TAppCoupon> couponId = tAppCouponService.list(new QueryWrapper<TAppCoupon>()
-                .in("coupon_id", Arrays.asList(split)));
         for (String s : split) {
             res.add(tAppCouponService.list(new QueryWrapper<TAppCoupon>()
-                    .eq("coupon_id", s)).size());
+                    .eq("coupon_id", s)
+                    .eq("del_flag",0)
+            ).size());
         }
         return R.ok(res);
     }
@@ -80,7 +103,7 @@
      * 后台远程调用 给用户发放优惠券
      */
     @PostMapping("/grantCoupon")
-    public R  getExchangeRecordByCouponId(@RequestBody GrantCouponDto dto){
+    public R  grantCoupon(@RequestBody GrantCouponDto dto){
         List<TAppCoupon> res = new ArrayList<>();
         for (String s : dto.getUserIds().split(",")) {
             TAppCoupon tAppCoupon = new TAppCoupon();
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
index 7c51221..a891991 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/TAppUserController.java
@@ -7,11 +7,14 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.account.api.dto.*;
 import com.ruoyi.account.api.model.*;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.service.*;
 import com.ruoyi.account.util.GiveVipUtil;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
+import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.domain.BasePojo;
+import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
 import com.ruoyi.order.api.feignClient.ChargingOrderClient;
 import com.ruoyi.order.api.feignClient.ExchangeOrderClient;
@@ -67,10 +70,11 @@
     @Resource
     private ExchangeOrderClient exchangeOrderClient;
 
+
+
     @ApiOperation(value = "管理后台-根据手机号查询用户ids", tags = {"管理后台-活动费用统计"})
     @PostMapping(value = "/user/getUserIdsByPhone")
     public R<List<Long>> getUserIdsByPhone(@RequestParam("phone") String phone) {
-
         return R.ok(appUserService.list(new QueryWrapper<TAppUser>().like("phone",phone)).stream().map(TAppUser::getId).collect(Collectors.toList()));
     }
     @Resource
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
index 9bbf837..bde3dab 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/mapper/TAppCouponMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.common.core.web.page.PageInfo;
 import org.apache.ibatis.annotations.Param;
@@ -20,4 +21,7 @@
 public interface TAppCouponMapper extends BaseMapper<TAppCoupon> {
 
     List<ExchangeRecordVO> pageList(@Param("pageInfo")PageInfo<ExchangeRecordVO> pageInfo,@Param("req") ExchangeRecordGoodsQuery dto);
+
+    List<CouponListVOVO> couponList(@Param("pageInfo")PageInfo<CouponListVOVO> pageInfo,@Param("userId") Long userId);
+
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
index 88e6aa1..5c518fe 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/TAppCouponService.java
@@ -1,9 +1,12 @@
 package com.ruoyi.account.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 
 /**
@@ -17,4 +20,7 @@
 public interface TAppCouponService extends IService<TAppCoupon> {
 
     PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery couponId);
+
+    PageInfo<CouponListVOVO> couponList(CouponListDto dto);
+
 }
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
index 98dc39f..a821517 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/TAppCouponServiceImpl.java
@@ -1,15 +1,19 @@
 package com.ruoyi.account.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.dto.CouponListDto;
 import com.ruoyi.account.api.model.TAppCoupon;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
 import com.ruoyi.account.mapper.TAppCouponMapper;
 import com.ruoyi.account.service.TAppCouponService;
 import com.ruoyi.common.core.utils.DateUtils;
+import com.ruoyi.common.core.web.page.BasePage;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.order.api.feignClient.OrderClient;
 import com.ruoyi.other.api.domain.TCoupon;
+import com.ruoyi.other.api.feignClient.OtherClient;
 import org.apache.poi.ss.formula.functions.T;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -32,6 +36,8 @@
 
     @Autowired
     private OrderClient orderClient;
+    @Autowired
+    private OtherClient otherClient;
     @Override
     public PageInfo<ExchangeRecordVO> pagelist(ExchangeRecordGoodsQuery dto) {
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
@@ -98,4 +104,17 @@
         pageInfo.setRecords(list);
         return pageInfo;
     }
+
+    @Override
+    public PageInfo<CouponListVOVO> couponList(CouponListDto dto) {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+        PageInfo<CouponListVOVO> pageInfo = new PageInfo<>(dto.getPageCurr(),dto.getPageSize());
+        List<CouponListVOVO> list = this.baseMapper.couponList(pageInfo,dto.getUserId());
+        for (CouponListVOVO couponListVOVO : list) {
+            couponListVOVO.setValidityTime("有效期:"+format.format(couponListVOVO.getCreateTime())+" - "+format.format(couponListVOVO.getEndTime()));
+        }
+        List<CouponListVOVO> data = otherClient.getCouponInfoByCouponIds(list).getData();
+        pageInfo.setRecords(data);
+        return pageInfo;
+    }
 }
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 7b8852a..b94f498 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
@@ -57,5 +57,24 @@
         </where>
         ORDER BY create_time DESC
     </select>
+    <select id="couponList" resultType="com.ruoyi.account.api.vo.CouponListVOVO">
+        SELECT
+            t1.app_user_id AS appUserId,
+            t1.coupon_id AS couponId,
+            MAX(t1.end_time) AS endTime,
+            MAX(t1.create_time) AS createTime,
+            MAX(t1.status) AS status,
+            COUNT(*) AS couponCount
+        FROM
+            t_app_coupon t1
+        WHERE
+            t1.del_flag = 0
+          AND t1.app_user_id = #{userId}
+          AND t1.status = 1
+        and t1.endTime &gt;= now()
+        GROUP BY
+            t1.coupon_id,
+            t1.end_time
+    </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
index 61ac718..cbcd8b3 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TCouponController.java
@@ -4,7 +4,9 @@
 import com.ruoyi.account.api.dto.GrantCouponDto;
 import com.ruoyi.account.api.feignClient.AppCouponClient;
 import com.ruoyi.account.api.query.ExchangeRecordGoodsQuery;
+import com.ruoyi.account.api.vo.CouponListVOVO;
 import com.ruoyi.account.api.vo.ExchangeRecordVO;
+import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.web.domain.AjaxResult;
 import com.ruoyi.common.core.web.page.PageInfo;
 import com.ruoyi.other.api.domain.TCoupon;
@@ -18,6 +20,7 @@
 import io.swagger.annotations.ApiImplicitParams;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
@@ -89,8 +92,8 @@
         return AjaxResult.ok(data);
     }
     @ApiOperation(tags = {"管理后台-优惠券管理"},value = "发放优惠券")
-    @GetMapping(value = "/pageList")
-    public AjaxResult pageList(@RequestBody GrantCouponDto dto) {
+    @GetMapping(value = "/grantCoupon")
+    public AjaxResult grantCoupon(@RequestBody GrantCouponDto dto) {
         TCoupon byId = tCouponService.getById(dto.getCouponId());
         Integer waysToObtain = byId.getWaysToObtain();
         dto.setWaysToObtain(waysToObtain);
@@ -102,13 +105,50 @@
                 dto.setEndTime(LocalDateTime.now().plusDays(byId.getDays()));
                 break;
         }
-        // 远程送优惠券
+        appCouponClient.grantCoupon(dto);
         return AjaxResult.success();
     }
+
     @ApiOperation(tags = {"管理后台-优惠券管理"},value = "优惠券列表分页查询")
     @PostMapping(value = "/pageList")
     public AjaxResult<PageInfo<TCoupon>> pageList(@RequestBody CouponQuery dto) {
         return AjaxResult.ok(tCouponService.pageList(dto));
     }
+
+    /**
+     * 小程序远程调用 获取优惠券信息
+     */
+    @PostMapping(value = "/getCouponInfoByCouponIds")
+    public R<List<CouponListVOVO>> getCouponInfoByCouponIds(@RequestBody List<CouponListVOVO> list) {
+        for (CouponListVOVO couponListVOVO : list) {
+            TCoupon byId = tCouponService.getById(couponListVOVO.getCouponId());
+            BeanUtils.copyProperties(byId,couponListVOVO);
+            couponListVOVO.setCouponName(byId.getName());
+            // 根据预付金额 判断是否满足
+            if (byId.getMeetTheConditions().compareTo(BigDecimal.ZERO) == 0){
+                // 无门槛
+                couponListVOVO.setIsUse(1);
+            }else if (couponListVOVO.getPayMoney().compareTo(byId.getMeetTheConditions()) < 0){
+                couponListVOVO.setIsUse(0);
+            }else{
+                couponListVOVO.setIsUse(1);
+            }
+            // 根据优惠券类型和预付金额 判断哪一个优惠券减免的金额最大 将其排在第一位
+            if (couponListVOVO.getIsUse() == 1){
+                switch (byId.getPreferentialMode()){
+                    case 1:
+                            couponListVOVO.setMoney(byId.getDiscountAmount());
+                        break;
+                    case 2:
+                        
+                        break;
+                }
+            }else{
+                couponListVOVO.setMoney(BigDecimal.ZERO);
+            }
+
+        }
+        return R.ok(list);
+    }
 }
 

--
Gitblit v1.7.1