From bdac26042d8b95a2231426a0c84496c31fe6bab3 Mon Sep 17 00:00:00 2001
From: lisy <linlangsur163@163.com>
Date: 星期三, 12 七月 2023 17:35:34 +0800
Subject: [PATCH] 使用福利:积分商城的商品详情接口;开始课程的添加学员的身份证验证

---
 cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java                 |   22 ++
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java                  |    6 
 cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java                |    3 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/ProductDetailRequest.java  |   13 +
 cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java                                    |   44 ++++
 cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java                  |   49 +++++
 cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java             |  142 +++++++++++++++
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailsVo.java             |   58 ++++++
 cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java                       |    2 
 cloud-server-activity/src/main/resources/mapper/PointsMerchandiseStoreMapper.xml                         |    6 
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java     |    2 
 cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseStoreMapper.java            |   16 +
 cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java                          |    2 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java                 |    9 
 cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java                 |    9 +
 cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseStoreService.java          |   16 +
 cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java           |    5 
 cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailRequest.java         |   13 +
 cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseStoreServiceImpl.java |   20 ++
 cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ProductDetailsVo.java      |   58 ++++++
 cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java                          |    2 
 21 files changed, 486 insertions(+), 11 deletions(-)

diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
index b333e1f..5079f5f 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java
@@ -117,8 +117,7 @@
             if(null == userIdFormRedis){
                 return ResultUtil.tokenErr();
             }
-            istuService.addStuOfAppUser(stu,userIdFormRedis);
-            return ResultUtil.success();
+            return istuService.addStuOfAppUser(stu,userIdFormRedis);
         }catch (Exception e){
             return ResultUtil.runErr(ResultUtil.ERROR);
         }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
index c5fa489..dddad52 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java
@@ -277,11 +277,31 @@
 
 
     /**
+     * 商品详情
+     */
+    @ResponseBody
+    @PostMapping("/api/useBenefit/goodsDetails")
+    @ApiOperation(value = "积分商城-商品详情", tags = {"APP-使用福利"})
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
+            @ApiImplicitParam(value = "商品id", name = "goodId", required = true, dataType = "int"),
+            @ApiImplicitParam(value = "商品类型 1实物 2课包 3门票 4优惠券", name = "goodsType", required = true, dataType = "int"),
+    })
+    public ResultUtil<ProductDetailsVo> productDetails(Integer goodId, Integer goodsType){
+        try {
+            return ResultUtil.success(tauService.productDetails(goodId,goodsType));
+        }catch (Exception e){
+            return ResultUtil.runErr();
+        }
+    }
+
+
+    /**
      * 积分明细
      */
     @ResponseBody
     @PostMapping("/api/useBenefit/integralDetails")
-    @ApiOperation(value = "积分明细", tags = {"APP-使用福利"})
+    @ApiOperation(value = "积分商城-积分明细", tags = {"APP-使用福利"})
     @ApiImplicitParams({
             @ApiImplicitParam(name = "Authorization", value = "Bearer +token", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."),
             @ApiImplicitParam(value = "年月", name = "yearMonth", required = true, dataType = "string"),
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
index 7d045a8..7dc2d71 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
@@ -4,6 +4,8 @@
 import com.dsh.account.feignclient.activity.model.CommodityRequest;
 import com.dsh.account.feignclient.activity.model.IntegralCommodity;
 import com.dsh.account.feignclient.activity.model.PointsMerchandise;
+import com.dsh.account.feignclient.activity.model.ProductDetailRequest;
+import com.dsh.account.model.vo.userBenefitDetail.ProductDetailsVo;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
@@ -23,4 +25,7 @@
     @PostMapping("/base/pointMerchars/getRedeemedNums")
     public int getRedeemedQuantity(@RequestBody Integer goodId);
 
+    @PostMapping("/base/pointMerchars/getGoodDetails")
+    ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest);
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java
index 69d9377..84177d7 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java
@@ -39,7 +39,7 @@
     /**
      * 所属积分
      */
-    private BigDecimal integral;
+    private Integer integral;
     /**
      * 商品封面
      */
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/ProductDetailRequest.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/ProductDetailRequest.java
new file mode 100644
index 0000000..33659e0
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/ProductDetailRequest.java
@@ -0,0 +1,13 @@
+package com.dsh.account.feignclient.activity.model;
+
+
+import lombok.Data;
+
+@Data
+public class ProductDetailRequest {
+
+    Integer goodId;
+
+    Integer goodsType;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ProductDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ProductDetailsVo.java
new file mode 100644
index 0000000..9823330
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ProductDetailsVo.java
@@ -0,0 +1,58 @@
+package com.dsh.account.model.vo.userBenefitDetail;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class ProductDetailsVo {
+
+    @ApiModelProperty(value = "商品id")
+    private Integer goodId;
+
+    @ApiModelProperty(value = "图片列表")
+    private List<String> pics;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "适用人群")
+    private Integer belongsScope;
+
+    @ApiModelProperty(value = "已兑换数量")
+    private Integer redeemedNum;
+
+    @ApiModelProperty(value = "剩余数量")
+    private Integer residueNum;
+
+    @ApiModelProperty(value = "每人限额")
+    private Integer perLimit;
+
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+    @ApiModelProperty(value = "价值")
+    private BigDecimal cost;
+
+    @ApiModelProperty(value = "课时数")
+    private Integer courseHours;
+
+    @ApiModelProperty(value = "适用范围")
+    private String belongs;
+
+    @ApiModelProperty(value = "有效期开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "有效期结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "兑换说明")
+    private String contents;
+
+    @ApiModelProperty(value = "商品类型 1实物 2课包 3门票 4优惠券")
+    private Integer goodType;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
index e63f6f4..b8cf145 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java
@@ -124,4 +124,6 @@
 
     ResultUtil uploadAppUserHeadImg(Integer appUserId, MultipartFile file, HttpServletRequest request);
 
+    ProductDetailsVo productDetails(Integer goodId, Integer goodsType );
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
index f75c198..0006542 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java
@@ -30,7 +30,7 @@
  */
 public interface TStudentService extends IService<TStudent> {
 
-    void addStuOfAppUser(StuDetailsReq stu,Integer appUserId);
+    ResultUtil addStuOfAppUser(StuDetailsReq stu,Integer appUserId) throws Exception;
 
     ClassDetailsInsVo querySessionDetailsDt(Integer userIdFormRedis, Integer lessonId, Integer stuId);
 
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index 80663ea..b527455 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -12,6 +12,7 @@
 import com.dsh.account.feignclient.activity.UserConponClient;
 import com.dsh.account.feignclient.activity.model.CommodityRequest;
 import com.dsh.account.feignclient.activity.model.PointsMerchandise;
+import com.dsh.account.feignclient.activity.model.ProductDetailRequest;
 import com.dsh.account.feignclient.competition.DeductionCompetitionsClient;
 import com.dsh.account.feignclient.competition.model.PaymentCompetition;
 import com.dsh.account.feignclient.course.CoursePackageClient;
@@ -738,4 +739,12 @@
         return ResultUtil.success();
     }
 
+    @Override
+    public ProductDetailsVo productDetails(Integer goodId, Integer goodsType ) {
+        ProductDetailRequest detailsVo = new ProductDetailRequest();
+        detailsVo.setGoodsType(goodsType);
+        detailsVo.setGoodId(goodId);
+        return mcClient.getGoodDetailsWithId(detailsVo);
+    }
+
 }
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
index c47fba0..03a738d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java
@@ -107,8 +107,14 @@
 
 
     @Override
-    public void addStuOfAppUser(StuDetailsReq stu,Integer appUserId) {
+    public ResultUtil addStuOfAppUser(StuDetailsReq stu,Integer appUserId) throws Exception {
         TStudent student = new TStudent();
+        if(ToolUtil.isNotEmpty(stu.getName()) && ToolUtil.isNotEmpty(stu.getIdCard())){
+            Boolean aBoolean = JuHeUtil.idcardAuthentication(stu.getIdCard(), stu.getName());
+            if(!aBoolean){
+                return ResultUtil.error("身份证和姓名不匹配");
+            }
+        }
         student.setAppUserId(appUserId);
         student.setName(stu.getName());
         student.setHeadImg(stu.getHeadImg());
@@ -137,6 +143,7 @@
         saveParticipant.setPhone(student.getPhone());
         saveParticipant.setIdcard(student.getIdCard());
         participantClient.saveParticipant(saveParticipant);
+        return ResultUtil.success();
     }
 
     @Override
diff --git a/cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java b/cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java
new file mode 100644
index 0000000..af3b28f
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java
@@ -0,0 +1,44 @@
+package com.dsh.account.util;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.dsh.account.util.httpClinet.HttpClientUtil;
+import com.dsh.account.util.httpClinet.HttpResult;
+
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/7/11 12:05
+ */
+public class JuHeUtil {
+
+
+    /**
+     * 校验实名认证
+     * @param idcard
+     * @param name
+     * @return
+     * @throws Exception
+     */
+    public static Boolean idcardAuthentication(String idcard, String name) throws Exception{
+        Map<String, Object> params = new HashMap<>();
+        params.put("idcard", idcard);
+        params.put("realname", name);
+        params.put("key", "29fec4bbe3108e4fbf52704e5a906fe0");
+        HttpResult httpResult = HttpClientUtil.pushHttpRequset("POST", "http://op.juhe.cn/idcard/query", params, null, "form");
+        if(httpResult.getCode() != 200){
+            return false;
+        }
+        JSONObject jsonObject = JSON.parseObject(httpResult.getData());
+        Integer error_code = jsonObject.getInteger("error_code");
+        if(0 == error_code){
+            JSONObject result = jsonObject.getJSONObject("result");
+            Integer res = result.getInteger("res");
+            return res == 1 ? true : false;
+        }
+        return false;
+    }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index e326ec9..48661e0 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -2,19 +2,25 @@
 
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.dsh.activity.entity.PointsMerchandise;
-import com.dsh.activity.entity.UserPointsMerchandise;
+import com.dsh.activity.entity.*;
+import com.dsh.activity.feignclient.course.CoursePackageClient;
+import com.dsh.activity.feignclient.course.model.CoursePackage;
 import com.dsh.activity.feignclient.model.IntegralCommodity;
+import com.dsh.activity.feignclient.model.ProductDetailRequest;
+import com.dsh.activity.feignclient.model.ProductDetailsVo;
+import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.StoreDetailOfCourse;
 import com.dsh.activity.model.request.CommodityRequest;
-import com.dsh.activity.service.PointsMerchandiseService;
-import com.dsh.activity.service.UserPointsMerchandiseService;
+import com.dsh.activity.service.*;
 import com.dsh.activity.util.GDMapGeocodingUtil;
+import com.dsh.activity.util.StrUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.PostMapping;
 import org.springframework.web.bind.annotation.RequestBody;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RestController;
 
+import java.text.SimpleDateFormat;
 import java.util.*;
 
 @RestController
@@ -31,6 +37,23 @@
     @Autowired
     private UserPointsMerchandiseService upmseService;
 
+    @Autowired
+    private ICouponService iCouponService;
+
+    @Autowired
+    private CoursePackageClient cpClient;
+
+    @Autowired
+    private StoreClient stoClient;
+
+    @Autowired
+    private PointsMerchandiseStoreService pmdstoService;
+
+    @Autowired
+    private UserCouponService uconService;
+
+    @Autowired
+    private CouponStoreService cstoreService;
 
 
     @PostMapping("/base/pointMerchars/convertGoods")
@@ -85,4 +108,115 @@
                 .eq("pointsMerchandiseId",goodId));
     }
 
+
+    @PostMapping("/base/pointMerchars/getGoodDetails")
+    public ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest){
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        ProductDetailsVo detailsVo = new ProductDetailsVo();
+        PointsMerchandise merchandise = pmdsService.getById(detailRequest.getGoodId());
+        switch (detailRequest.getGoodsType()){
+            case 2:
+//                课包
+                CoursePackage coursePackage = cpClient.queryCoursePackageById(detailRequest.getGoodId());
+
+                detailsVo.setGoodId(coursePackage.getId());
+                detailsVo.setPics(Arrays.asList(StrUtils.splitStr2StrArr(coursePackage.getDetailDrawing(), ",")));
+                detailsVo.setGoodName(coursePackage.getName());
+                detailsVo.setBelongsScope(merchandise.getUserPopulation());
+                int coursePackageNums = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
+                        .eq("pointsMerchandiseId",merchandise.getId() ));
+                detailsVo.setRedeemedNum(coursePackageNums);
+                detailsVo.setResidueNum(merchandise.getQuantityIssued() - coursePackageNums);
+                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
+                detailsVo.setIntegral(merchandise.getIntegral());
+                detailsVo.setCost(merchandise.getPrice());
+                if (merchandise.getUseScope() == 1){
+                    detailsVo.setBelongs("全国通用");
+                }else if (merchandise.getUseScope() == 2){
+                    detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
+                }else {
+                    List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
+                            .eq("pointsMerchandiseId",merchandise.getId() ));
+                    PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
+                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId());
+                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
+                }
+                // TODO: 2023/7/12 课包的课时
+//                detailsVo.setCourseHours();
+                detailsVo.setStartTime(format.format(merchandise.getStartTime()));
+                detailsVo.setEndTime(format.format(merchandise.getEndTime()));
+
+                detailsVo.setContents(merchandise.getRedemptionInstructions());
+                detailsVo.setGoodType(merchandise.getType());
+
+                break;
+            case 1:
+            case 3:
+
+                detailsVo.setGoodId(merchandise.getId());
+                String[] strings = StrUtils.splitStr2StrArr(merchandise.getProductImages(), ",");
+                detailsVo.setPics(Arrays.asList(strings));
+                detailsVo.setGoodName(merchandise.getName());
+                detailsVo.setBelongsScope(merchandise.getUserPopulation());
+                int count = upmseService.count(new QueryWrapper<UserPointsMerchandise>()
+                        .eq("pointsMerchandiseId",merchandise.getId() ));
+                detailsVo.setRedeemedNum(count);
+                detailsVo.setResidueNum(merchandise.getQuantityIssued()-count);
+                detailsVo.setPerLimit(merchandise.getPickUpQuantity());
+                detailsVo.setIntegral(merchandise.getIntegral());
+                detailsVo.setCost(merchandise.getPrice());
+                if (merchandise.getUseScope() == 1){
+                    detailsVo.setBelongs("全国通用");
+                }else if (merchandise.getUseScope() == 2){
+                    detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
+                }else {
+                    List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
+                            .eq("pointsMerchandiseId",merchandise.getId() ));
+                    PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
+                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(pointsMerchandiseStore.getStoreId());
+                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
+                }
+
+                detailsVo.setStartTime(format.format(merchandise.getStartTime()));
+                detailsVo.setEndTime(format.format(merchandise.getEndTime()));
+
+                detailsVo.setContents(merchandise.getRedemptionInstructions());
+                detailsVo.setGoodType(merchandise.getType());
+                break;
+            case 4:
+//                优惠券
+                Coupon coupon = iCouponService.getById(detailRequest.getGoodId());
+                detailsVo.setGoodId(coupon.getId());
+                detailsVo.setPics(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
+                detailsVo.setGoodName(coupon.getName());
+                detailsVo.setBelongsScope(coupon.getUserPopulation());
+                int couponNums = uconService.count(new QueryWrapper<UserCoupon>()
+                        .eq("couponId",coupon.getId() ));
+                detailsVo.setRedeemedNum(couponNums);
+                detailsVo.setResidueNum(coupon.getQuantityIssued()-couponNums);
+                detailsVo.setPerLimit(coupon.getPickUpQuantity());
+                detailsVo.setIntegral(merchandise.getIntegral());
+                if (coupon.getUseScope() == 1){
+                    detailsVo.setBelongs("全国通用");
+                }else if (coupon.getUseScope() == 2){
+                    detailsVo.setBelongs(coupon.getProvince()+"|"+coupon.getCity() + "用户可用");
+                }else {
+                    List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>()
+                            .eq("couponId",coupon.getId() ));
+                    StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId());
+                    detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
+                }
+                detailsVo.setStartTime(format.format(merchandise.getStartTime()));
+                detailsVo.setEndTime(format.format(merchandise.getEndTime()));
+
+                detailsVo.setContents(coupon.getIllustrate());
+                detailsVo.setGoodType(4);
+                break;
+            default:
+                break;
+        }
+        return detailsVo;
+    }
+
+
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
index 989c500..4eba57f 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -68,7 +68,7 @@
      * 所属积分
      */
     @TableField("integral")
-    private BigDecimal integral;
+    private Integer integral;
     /**
      * 商品封面
      */
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java
new file mode 100644
index 0000000..8d8e480
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java
@@ -0,0 +1,49 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_points_merchandise_store")
+public class PointsMerchandiseStore extends Model<PointsMerchandiseStore> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+    /**
+     * 积分商品id
+     */
+    private Integer pointsMerchandiseId;
+    /**
+     * 门店id
+     */
+    private Integer storeId;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
index fe612bd..155dea3 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
@@ -3,6 +3,8 @@
 
 import com.dsh.activity.entity.PointsMerchandise;
 import com.dsh.activity.feignclient.model.IntegralCommodity;
+import com.dsh.activity.feignclient.model.ProductDetailRequest;
+import com.dsh.activity.feignclient.model.ProductDetailsVo;
 import com.dsh.activity.model.request.CommodityRequest;
 import org.springframework.cloud.openfeign.FeignClient;
 import org.springframework.web.bind.annotation.PostMapping;
@@ -22,4 +24,8 @@
     @PostMapping("/base/pointMerchars/getRedeemedNums")
     public int getRedeemedQuantity(@RequestBody Integer goodId);
 
+
+    @PostMapping("/base/pointMerchars/getGoodDetails")
+    ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest);
+
 }
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailRequest.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailRequest.java
new file mode 100644
index 0000000..a1bc3ea
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailRequest.java
@@ -0,0 +1,13 @@
+package com.dsh.activity.feignclient.model;
+
+
+import lombok.Data;
+
+@Data
+public class ProductDetailRequest {
+
+    Integer goodId;
+
+    Integer goodsType;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailsVo.java
new file mode 100644
index 0000000..cd5cfef
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailsVo.java
@@ -0,0 +1,58 @@
+package com.dsh.activity.feignclient.model;
+
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+@Data
+public class ProductDetailsVo {
+
+    @ApiModelProperty(value = "商品id")
+    private Integer goodId;
+
+    @ApiModelProperty(value = "图片列表")
+    private List<String> pics;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodName;
+
+    @ApiModelProperty(value = "适用人群")
+    private Integer belongsScope;
+
+    @ApiModelProperty(value = "已兑换数量")
+    private Integer redeemedNum;
+
+    @ApiModelProperty(value = "剩余数量")
+    private Integer residueNum;
+
+    @ApiModelProperty(value = "每人限额")
+    private Integer perLimit;
+
+    @ApiModelProperty(value = "积分")
+    private Integer integral;
+
+    @ApiModelProperty(value = "价值")
+    private BigDecimal cost;
+
+    @ApiModelProperty(value = "课时数")
+    private Integer courseHours;
+
+    @ApiModelProperty(value = "适用范围")
+    private String belongs;
+
+    @ApiModelProperty(value = "有效期开始时间")
+    private String startTime;
+
+    @ApiModelProperty(value = "有效期结束时间")
+    private String endTime;
+
+    @ApiModelProperty(value = "兑换说明")
+    private String contents;
+
+    @ApiModelProperty(value = "商品类型 1实物 2课包 3门票 4优惠券")
+    private Integer goodType;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseStoreMapper.java b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseStoreMapper.java
new file mode 100644
index 0000000..93b1594
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseStoreMapper.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.dsh.activity.entity.PointsMerchandiseStore;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据 Mapper 接口
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+public interface PointsMerchandiseStoreMapper extends BaseMapper<PointsMerchandiseStore> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseStoreService.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseStoreService.java
new file mode 100644
index 0000000..6adb70d
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseStoreService.java
@@ -0,0 +1,16 @@
+package com.dsh.activity.service;
+
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.activity.entity.PointsMerchandiseStore;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据 服务类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+public interface PointsMerchandiseStoreService extends IService<PointsMerchandiseStore> {
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseStoreServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseStoreServiceImpl.java
new file mode 100644
index 0000000..fa13f02
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseStoreServiceImpl.java
@@ -0,0 +1,20 @@
+package com.dsh.activity.service.impl;
+
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.activity.entity.PointsMerchandiseStore;
+import com.dsh.activity.mapper.PointsMerchandiseStoreMapper;
+import com.dsh.activity.service.PointsMerchandiseStoreService;
+import org.springframework.stereotype.Service;
+
+/**
+ * <p>
+ * 积分商品使用门店关系数据 服务实现类
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-12
+ */
+@Service
+public class PointsMerchandiseStoreServiceImpl extends ServiceImpl<PointsMerchandiseStoreMapper, PointsMerchandiseStore> implements PointsMerchandiseStoreService {
+
+}
diff --git a/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseStoreMapper.xml b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseStoreMapper.xml
new file mode 100644
index 0000000..f198ce1
--- /dev/null
+++ b/cloud-server-activity/src/main/resources/mapper/PointsMerchandiseStoreMapper.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.dsh.activity.mapper.PointsMerchandiseStoreMapper">
+
+
+</mapper>

--
Gitblit v1.7.1