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