使用福利:积分商城的商品详情接口;开始课程的添加学员的身份证验证
11个文件已修改
10个文件已添加
497 ■■■■■ 已修改文件
cloud-server-account/src/main/java/com/dsh/account/controller/ClassDetailsController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/ProductDetailRequest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ProductDetailsVo.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TAppUserService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/TStudentService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/service/impl/TStudentServiceImpl.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java 142 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailRequest.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailsVo.java 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseStoreMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseStoreService.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseStoreServiceImpl.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseStoreMapper.xml 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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);
        }
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"),
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);
}
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/PointsMerchandise.java
@@ -39,7 +39,7 @@
    /**
     * 所属积分
     */
    private BigDecimal integral;
    private Integer integral;
    /**
     * 商品封面
     */
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/ProductDetailRequest.java
New file
@@ -0,0 +1,13 @@
package com.dsh.account.feignclient.activity.model;
import lombok.Data;
@Data
public class ProductDetailRequest {
    Integer goodId;
    Integer goodsType;
}
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ProductDetailsVo.java
New file
@@ -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;
}
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 );
}
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);
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);
    }
}
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
cloud-server-account/src/main/java/com/dsh/account/util/JuHeUtil.java
New file
@@ -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;
    }
}
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;
    }
}
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandise.java
@@ -68,7 +68,7 @@
     * 所属积分
     */
    @TableField("integral")
    private BigDecimal integral;
    private Integer integral;
    /**
     * 商品封面
     */
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java
New file
@@ -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;
    }
}
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);
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailRequest.java
New file
@@ -0,0 +1,13 @@
package com.dsh.activity.feignclient.model;
import lombok.Data;
@Data
public class ProductDetailRequest {
    Integer goodId;
    Integer goodsType;
}
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ProductDetailsVo.java
New file
@@ -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;
}
cloud-server-activity/src/main/java/com/dsh/activity/mapper/PointsMerchandiseStoreMapper.java
New file
@@ -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> {
}
cloud-server-activity/src/main/java/com/dsh/activity/service/PointsMerchandiseStoreService.java
New file
@@ -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> {
}
cloud-server-activity/src/main/java/com/dsh/activity/service/impl/PointsMerchandiseStoreServiceImpl.java
New file
@@ -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 {
}
cloud-server-activity/src/main/resources/mapper/PointsMerchandiseStoreMapper.xml
New file
@@ -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>