From 4c9035836c18886883d3f69d8443c53d15b068fc Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期五, 22 八月 2025 14:39:53 +0800
Subject: [PATCH] 会员支付相关
---
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java | 111 ----
cloud-server-account/src/main/java/com/dsh/account/vo/CouponVipResp.java | 2
cloud-server-other/src/main/java/com/dsh/other/model/ConponJsonRuleModel.java | 25 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreementDriver.html | 17
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java | 11
cloud-server-other/src/main/java/com/dsh/other/service/IVipService.java | 16
cloud-server-account/src/main/java/com/dsh/account/vo/VipPaymentVO.java | 3
cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/Coupon.java | 5
cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/Coupon.java | 4
cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java | 5
cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java | 1
cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java | 13
cloud-server-account/src/main/java/com/dsh/account/controller/UseBenefitsController.java | 11
cloud-server-other/src/main/java/com/dsh/other/mapper/TVipMapper.java | 24 +
cloud-server-activity/src/main/java/com/dsh/activity/entity/Vip.java | 107 ++++
cloud-server-other/src/main/java/com/dsh/other/model/CouponCity.java | 65 ++
cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java | 44 +
cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html | 36 +
cloud-server-other/src/main/java/com/dsh/other/controller/TVipController.java | 202 ++++++++
cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminRecordController.java | 33 +
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/entity/TicketVipResp.java | 26 +
cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOther.js | 14
cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAgreeController.java | 10
cloud-server-other/src/main/java/com/dsh/other/model/CouponStore.java | 52 ++
cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java | 1
cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/PointsMerchandise.java | 189 ++++++++
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java | 2
cloud-server-activity/src/main/java/com/dsh/activity/entity/VipCouponTicketListResp.java | 22
cloud-server-other/src/main/java/com/dsh/other/model/Vip.java | 107 ++++
cloud-server-account/src/main/java/com/dsh/account/vo/ConponJsonRuleModel.java | 2
cloud-server-other/src/main/java/com/dsh/other/service/impl/TVipServiceImpl.java | 27 +
cloud-server-other/src/main/java/com/dsh/other/model/TicketVipResp.java | 26 +
cloud-server-other/src/main/java/com/dsh/other/model/CouponVipResp.java | 45 +
cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponVipResp.java | 46 ++
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/VipClient.java | 22
37 files changed, 1,189 insertions(+), 141 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
index c217927..b491797 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -474,6 +474,7 @@
VipPaymentVO res = new VipPaymentVO();
res.setHeadImg(appUser.getHeadImg());
res.setName(appUser.getName());
+ res.setVipEndTime(appUser.getVipEndTime());
if (appUser.getVipEndTime()==null){
res.setIsVip(0);
}else if (appUser.getVipEndTime().before(new Date())){
@@ -484,11 +485,13 @@
appUserService.updateById(appUser);
List<Vip> vips = vipClient.listAll();
res.setVipList(vips);
+
+ return ResultUtil.success(res);
+
} catch (Exception e) {
e.printStackTrace();
return ResultUtil.runErr();
}
- return ResultUtil.success();
}
//
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 b868a95..f22844f 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
@@ -60,6 +60,8 @@
@Autowired
private PayMoneyUtil payMoneyUtil;
+ @Autowired
+ private TAppUserService appUserService;
@ResponseBody
@@ -82,6 +84,15 @@
commodities = commodities.subList(0, 5);
}
indexOfUserBenefirVo.setCommodities(commodities);
+ TAppUser byId = appUserService.getById(appUserId);
+ if (byId.getIsVip()!=null && byId.getIsVip()==1){
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ if (byId.getVipEndTime().getTime() > System.currentTimeMillis()) {
+ indexOfUserBenefirVo.setVipEndTime(simpleDateFormat.format(byId.getVipEndTime()));
+ } else {
+ indexOfUserBenefirVo.setVipEndTime("");
+ }
+ }
return ResultUtil.success(indexOfUserBenefirVo);
} catch (Exception e) {
e.printStackTrace();
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
index b05b4d6..7a822f2 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/IndexOfUserBenefirVo.java
@@ -33,5 +33,7 @@
@ApiModelProperty("是否是裁判(0=否,1=是)")
private Integer referee;
+ @ApiModelProperty("会员到期时间")
+ private String vipEndTime;
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
index 639db2b..6734e97 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/VipPaymentServiceImpl.java
@@ -273,6 +273,7 @@
if (StringUtils.hasLength(couponJson)) {
grantCoupon.setCouponJson(couponJson);
}
+ grantCoupon.setVipId(vipPayment1.getVipId());
grantCoupon.setUserId(vipPayment1.getAppUserId());
grantCoupon.setVipPaymentId(vipPayment1.getId());
String ticketJson = vipPayment1.getTicketJson();
diff --git a/cloud-server-account/src/main/java/com/dsh/account/vo/ConponJsonRuleModel.java b/cloud-server-account/src/main/java/com/dsh/account/vo/ConponJsonRuleModel.java
index be45c01..eec6cbd 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/vo/ConponJsonRuleModel.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/vo/ConponJsonRuleModel.java
@@ -19,7 +19,7 @@
/**
* 体验券名称
*/
- @ApiModelProperty("体验券名称 ")
+ @ApiModelProperty("体验券名称/抵扣券抵扣商品名称 ")
String experienceName;
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/vo/CouponVipResp.java b/cloud-server-account/src/main/java/com/dsh/account/vo/CouponVipResp.java
index 964a9cf..44cfbf3 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/vo/CouponVipResp.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/vo/CouponVipResp.java
@@ -15,7 +15,7 @@
@ApiModelProperty("优惠券名称")
private String name;
- @ApiModelProperty("优惠券类型(1=满减券,2=代金券,3=体验券)")
+ @ApiModelProperty("优惠券类型(1=满减券,2=代金券,3=体验券 4=抵扣券)")
private Integer type;
@ApiModelProperty("适用范围1全国通用 2指定城市可用 3指定门店可用")
diff --git a/cloud-server-account/src/main/java/com/dsh/account/vo/VipPaymentVO.java b/cloud-server-account/src/main/java/com/dsh/account/vo/VipPaymentVO.java
index fa8e6cc..cdf952f 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/vo/VipPaymentVO.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/vo/VipPaymentVO.java
@@ -7,6 +7,7 @@
import lombok.Data;
import java.io.Serializable;
+import java.util.Date;
import java.util.List;
@Data
@@ -19,6 +20,8 @@
private String name;
@ApiModelProperty(value = "当前是否会员 0否1是")
private Integer isVip;
+ @ApiModelProperty(value = "会员到期时间")
+ private Date vipEndTime;
@ApiModelProperty(value = "所有上架的会员卡")
private List<Vip> vipList;
@ApiModelProperty(value = "会员协议")
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
index dea4e5b..e894f41 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/CouponController.java
@@ -20,6 +20,7 @@
import com.dsh.activity.feignclient.other.OperatorClient;
import com.dsh.activity.feignclient.other.RegionClient;
import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.VipClient;
import com.dsh.activity.feignclient.other.model.CityDataAndProvinceDataVo;
import com.dsh.activity.feignclient.other.model.Store;
import com.dsh.activity.feignclient.other.model.StoreInfoDto;
@@ -68,9 +69,12 @@
@Autowired
private TokenUtil tokenUtil;
+ @Autowired
+ private VipClient vipClient;
@Autowired
private UserCouponService ucService;
+
@Autowired
private GDMapGeocodingUtil gdMapGeocodingUtil;
@@ -195,24 +199,45 @@
@PostMapping("/api/coupon/queryCouponList")
@ApiOperation(value = "获取优惠券列表", tags = {"APP-成为会员", ""})
@ApiImplicitParams({
- @ApiImplicitParam(value = "1=积分购买,2=注册赠送", name = "distributionMethod", dataType = "int", required = true),
+ @ApiImplicitParam(value = "vipId", name = "vipId", dataType = "int", required = true),
@ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....")
})
- public ResultUtil<List<CouponListVo>> queryCouponList(Integer distributionMethod) {
- if (null == distributionMethod) {
- return ResultUtil.paranErr("distributionMethod");
+ public ResultUtil<VipCouponTicketListResp> queryCouponList(Integer vipId) {
+ if (null == vipId) {
+ return ResultUtil.paranErr("vipId");
}
+ VipCouponTicketListResp vipCouponTicketListResp = new VipCouponTicketListResp();
try {
Integer uid = tokenUtil.getUserIdFormRedis();
if (null == uid) {
return ResultUtil.tokenErr();
}
- List<CouponListVo> listVos = couponService.queryCouponList(uid, distributionMethod);
- return ResultUtil.success(listVos);
+ List<Vip> vips = vipClient.listAll();
+ Vip vip = vips.stream().filter(e -> e.getId().equals(vipId)).findFirst().orElse(null);
+ if (vip!=null){
+ List<CouponVipResp> couponVipResps = new ArrayList<>();
+ List<TicketVipResp> ticketVipResps = new ArrayList<>();
+ List<CouponVipResp> couponList = vip.getCouponList();
+ for (CouponVipResp couponVipResp : couponList) {
+ for (Integer i = 0; i < couponVipResp.getCount(); i++) {
+ couponVipResps.add(couponVipResp);
+ }
+ }
+ List<TicketVipResp> ticketList = vip.getTicketList();
+ for (TicketVipResp ticketVipResp : ticketList) {
+ for (Integer i = 0; i < ticketVipResp.getCount(); i++) {
+ ticketVipResps.add(ticketVipResp);
+ }
+ }
+ vipCouponTicketListResp.setCouponVipRespList(couponVipResps);
+ vipCouponTicketListResp.setTicketVipRespList(ticketVipResps);
+ return ResultUtil.success(vipCouponTicketListResp);
+ }
} catch (Exception e) {
e.printStackTrace();
return ResultUtil.success();
}
+ return ResultUtil.success();
}
@@ -894,7 +919,12 @@
List<CouponCity> list = cityService.list(new LambdaQueryWrapper<CouponCity>());
return list;
}
-
+ @ResponseBody
+ @PostMapping("/base/coupon/queryAllPointGoods")
+ public List<PointsMerchandise> queryAllPointGoods(){
+ List<PointsMerchandise> pointsMerchandiseList = pointsMerchandiseService.list();
+ return pointsMerchandiseList;
+ }
@ResponseBody
@PostMapping("/base/coupon/queryStore")
public List<Integer> queryStore(@RequestBody Integer id) {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminRecordController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminRecordController.java
index 05af436..43627d5 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminRecordController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/HuiminRecordController.java
@@ -3,13 +3,19 @@
import com.dsh.activity.entity.THuiminRecord;
import com.dsh.activity.entity.TPayHuimin;
import com.dsh.activity.entity.VipDetail;
+import com.dsh.activity.feignclient.other.SiteClient;
+import com.dsh.activity.feignclient.other.StoreClient;
+import com.dsh.activity.feignclient.other.model.Site;
+import com.dsh.activity.feignclient.other.model.Store;
import com.dsh.activity.service.*;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
+import java.util.Arrays;
import java.util.Date;
+import java.util.List;
/**
* 硬件方调用 存储玩湃惠民卡使用记录
@@ -25,6 +31,10 @@
private PayHuiminService payHuiminService;
@Resource
private VipDetailService vipDetailService;
+ @Resource
+ private SiteClient siteClient;
+ @Resource
+ private StoreClient storeClient;
/**
* 硬件开门后回调 存储玩湃惠民卡使用记录
*/
@@ -47,12 +57,29 @@
* 硬件开门后回调 存储会员使用明细
*/
@PostMapping("/recordVipDetail")
- public void recordVipDetail(Integer id,Integer rid,Integer sid) {
+ public void recordVipDetail(Integer vipDetailId,Integer rid,Integer sid) {
System.err.println("硬件开门后回调 存储会员卡门票权益使用记录");
- System.err.println("id:"+id);
+ System.err.println("vipDetailId:"+vipDetailId);
System.err.println("rid:"+rid);
System.err.println("sid:"+sid);
- VipDetail vipDetailServiceById = vipDetailService.getById(id);
+ VipDetail vipDetailServiceById = vipDetailService.getById(vipDetailId);
+ if (vipDetailServiceById!=null){
+ Site site = siteClient.querySiteById(rid);
+ if (site!=null){
+ List<Store> stores = storeClient.queryStoreByIds(Arrays.asList(rid));
+ if (!stores.isEmpty()){
+ Store store = stores.get(0);
+ vipDetailServiceById.setOperatorId(store.getOperatorId());
+ }
+ }
+ // 根据场地id查询运营商id
+ vipDetailServiceById.setUseSiteId(rid);
+ vipDetailServiceById.setUseStoreId(sid);
+ vipDetailServiceById.setStatus(2);
+ vipDetailServiceById.setStartTime(new Date());
+ vipDetailServiceById.setEndTime(new Date());
+ vipDetailService.updateById(vipDetailServiceById);
+ }
}
}
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 92fb1df..ee55769 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
@@ -1053,7 +1053,7 @@
detailsResponse.setGoodName(vipDetail.getTicketName());
detailsResponse.setStartTime(simpleDateFormat.format(vipDetail.getStartTime()));
detailsResponse.setEndTime(simpleDateFormat.format(vipDetail.getEndTime()));
- detailsResponse.setUseStatus(vipDetail.getStatus());
+ detailsResponse.setUseStatus(vipDetail.getStatus()==1?2:1);
detailsResponse.setGoodType(3);
// 表明是会员赠送的门票
detailsResponse.setExchangeType(4);
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
index d1b71e2..3963a6a 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java
@@ -360,6 +360,7 @@
vipDetail.setUserCouponId(userCoupon.getId());
vipDetailService.save(vipDetail);
userCoupon.setVipDetailId(vipDetail.getId());
+ userCoupon.setUserId(null);
userCouponService.updateById(userCoupon);
}
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponVipResp.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponVipResp.java
new file mode 100644
index 0000000..69cb045
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/CouponVipResp.java
@@ -0,0 +1,46 @@
+package com.dsh.activity.entity;
+
+
+import com.dsh.activity.model.ConponJsonRuleModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("会员权益优惠券列表")
+public class CouponVipResp {
+
+ @ApiModelProperty("优惠券id")
+ private Integer id;
+
+ @ApiModelProperty("优惠券名称")
+ private String name;
+
+ @ApiModelProperty("优惠券类型(1=满减券,2=代金券,3=体验券 4=抵扣券)")
+ private Integer type;
+
+ @ApiModelProperty("适用范围1全国通用 2指定城市可用 3指定门店可用")
+ private Integer useCondition;
+
+ @ApiModelProperty("适用范围名称")
+ private String available;
+
+ @ApiModelProperty("useCondition = 2,为地址字符串;useCondition = 3,为门店名称+地址字符串")
+ private String cityOrStore;
+
+ @ApiModelProperty("优惠券说明(使用说明)")
+ private String instructionsForUse;
+
+ @ApiModelProperty("金额条件封装")
+ private ConponJsonRuleModel ruleModel;
+
+ @ApiModelProperty("有效时间(2021-05-05)")
+ private String effectiveTime;
+ @ApiModelProperty("有效时间开始(2021-05-05)")
+ private String startTime;
+ @ApiModelProperty("数量 张")
+ private Integer count;
+
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/TicketVipResp.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/TicketVipResp.java
new file mode 100644
index 0000000..408ddd9
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/TicketVipResp.java
@@ -0,0 +1,26 @@
+package com.dsh.activity.entity;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("会员权益门票列表")
+public class TicketVipResp {
+
+
+ @ApiModelProperty("门票名称")
+ private String name;
+
+ @ApiModelProperty("领取后x天有效")
+ private Integer time;
+
+ @ApiModelProperty("数量 张")
+ private Integer count;
+ @ApiModelProperty("有效时间(2021-05-05)")
+ private String effectiveTime;
+ @ApiModelProperty("有效时间开始(2021-05-05)")
+ private String startTime;
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/Vip.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/Vip.java
new file mode 100644
index 0000000..12f2fee
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/Vip.java
@@ -0,0 +1,107 @@
+package com.dsh.activity.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 会员管理
+ */
+@TableName("t_vip")
+@Data
+@ApiModel(description = "会员")
+public class Vip {
+ /**
+ * 主键id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ @TableField("id")
+ @ApiModelProperty(value = "主键id")
+ private Integer id;
+
+ /**
+ * 会员名称
+ */
+ @TableField("vipName")
+ @ApiModelProperty(value = "会员名称")
+ private String vipName;
+
+ /**
+ * 会员时长类型 1天 2月 3年
+ */
+ @TableField("timeType")
+ @ApiModelProperty(value = "会员时长类型 1天 2月 3年")
+ private Integer timeType;
+
+ /**
+ * 会员时长
+ */
+ @TableField("time")
+ @ApiModelProperty(value = "会员时长数量 对应会员时长类型 x天 x月 x年")
+ private Integer time;
+
+ /**
+ * 会员价格
+ */
+ @TableField("price")
+ @ApiModelProperty(value = "会员价格")
+ private BigDecimal price;
+
+ /**
+ * 状态 1上架2下架
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "状态 1上架2下架")
+ private Integer status;
+
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @ApiModelProperty(value = "添加时间")
+ private Date insertTime;
+ /**
+ * 添加时间
+ */
+ @TableField("couponJson")
+ @ApiModelProperty(value = "优惠券json[{\n" +
+ "\t\"id\": \"1\",\n" +
+ "\t\"value\": \"1\"\n" +
+ "}, {\n" +
+ "\t\"id\": \"2\",\n" +
+ "\t\"value\": \"1\"\n" +
+ "}\n" +
+ "}]")
+ private String couponJson;
+ /**
+ * 添加时间
+ */
+ @TableField("ticketJson")
+ @ApiModelProperty(value = "门票json门票json[{\n" +
+ "\t\"name\": \"门票名称\",\n" +
+ "\t\"time\": \"1\",\n" +
+ "\"count\": \"1\",\n" +
+ "}]")
+ private String ticketJson;
+
+ /**
+ * 会员优惠券权益
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "会员优惠券权益")
+ private List<CouponVipResp> couponList;
+ /**
+ * 会员门票权益
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "会员门票权益")
+ private List<TicketVipResp> ticketList;
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipCouponTicketListResp.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipCouponTicketListResp.java
new file mode 100644
index 0000000..c0b888f
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipCouponTicketListResp.java
@@ -0,0 +1,22 @@
+package com.dsh.activity.entity;
+
+
+import com.dsh.activity.model.ConponJsonRuleModel;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@Data
+@ApiModel("购买会员获得的权益列表")
+public class VipCouponTicketListResp {
+
+ @ApiModelProperty("有效时间(2021-05-05)")
+ private List<CouponVipResp> couponVipRespList;
+ @ApiModelProperty("数量 张")
+ private List<TicketVipResp> ticketVipRespList;
+
+
+
+}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java
index 8cb389d..a5528b1 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/VipDetail.java
@@ -15,7 +15,7 @@
public class VipDetail {
@ApiModelProperty(value = "主键")
- @TableId(value = "id", type = IdType.NONE)
+ @TableId(value = "id", type = IdType.AUTO)
private Integer id;
@ApiModelProperty(value = "用户id")
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/VipClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/VipClient.java
new file mode 100644
index 0000000..61b92fa
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/other/VipClient.java
@@ -0,0 +1,22 @@
+package com.dsh.activity.feignclient.other;
+
+import com.dsh.activity.entity.Vip;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+
+import java.util.List;
+
+
+@FeignClient("mb-cloud-other")
+public interface VipClient {
+
+
+ @PostMapping("/vip/listAll")
+ List<Vip> listAll();
+ @PostMapping("/vip/getVipByIds")
+ List<Vip> getVipByIds(@RequestBody String ids);
+ @PostMapping("/vip/getAgreement")
+ String getAgreement();
+
+}
diff --git a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/Coupon.java b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/Coupon.java
index 6572476..849ebd9 100644
--- a/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/Coupon.java
+++ b/cloud-server-management/src/main/java/com/dsh/course/feignClient/activity/model/Coupon.java
@@ -133,6 +133,10 @@
*/
private Integer cityManagerId;
/**
+ * 积分商品id
+ */
+ private Integer goodsId;
+ /**
* 数量
*/
private Integer count;
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAgreeController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAgreeController.java
index 6ac41f4..bbdd362 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAgreeController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TAgreeController.java
@@ -53,22 +53,22 @@
Protocol three = protocolService.getOne(new LambdaQueryWrapper<Protocol>().eq(Protocol::getType, 3));
Protocol four = protocolService.getOne(new LambdaQueryWrapper<Protocol>().eq(Protocol::getType, 4));
Protocol five = protocolService.getOne(new LambdaQueryWrapper<Protocol>().eq(Protocol::getType, 5));
- Protocol six = protocolService.getOne(new LambdaQueryWrapper<Protocol>().eq(Protocol::getType, 6));
+ Protocol seven = protocolService.getOne(new LambdaQueryWrapper<Protocol>().eq(Protocol::getType, 7));
model.addAttribute("one",one);
model.addAttribute("two",two);
model.addAttribute("three",three);
model.addAttribute("four",four);
model.addAttribute("five",five);
- if (six == null){
+ if (seven == null){
Protocol protocol = new Protocol();
- protocol.setType(6);
+ protocol.setType(7);
protocol.setContent("");
protocol.setInsertTime(new Date());
protocolService.save( protocol);
- model.addAttribute("six",protocol);
+ model.addAttribute("seven",protocol);
}else{
- model.addAttribute("six",six);
+ model.addAttribute("seven",seven);
}
return PREFIX + "tAgreementDriver.html";
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
index 06fc408..b037baa 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TShopController.java
@@ -455,6 +455,9 @@
//玩湃惠民卡
StoreConfig c10 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,10));
model.addAttribute("c10",c10);
+ //会员卡板块
+ StoreConfig c11 = storeConfigService.getOne(new LambdaQueryWrapper<StoreConfig>().eq(StoreConfig::getStoreId, id).eq(StoreConfig::getType,11));
+ model.addAttribute("c11",c11);
return PREFIX + "TShop_imgAll.html";
}
@@ -743,9 +746,9 @@
}
@RequestMapping(value = "/saveImgAll")
@ResponseBody
- public Object saveImgAll(Integer id,Integer px1,Integer px2,Integer px3,Integer px4,Integer px5,Integer px6,Integer px7,Integer px8,Integer px10,
- String c1,String c2,String c3,String c4,String c5,String c6,String c7,String c8,String c10,
- Integer r1,Integer r2,Integer r3,Integer r4,Integer r5,Integer r6,Integer r7,Integer r8,Integer r10,String str) {
+ public Object saveImgAll(Integer id,Integer px1,Integer px2,Integer px3,Integer px4,Integer px5,Integer px6,Integer px7,Integer px8,Integer px10,Integer px11,
+ String c1,String c2,String c3,String c4,String c5,String c6,String c7,String c8,String c10,String c111,
+ Integer r1,Integer r2,Integer r3,Integer r4,Integer r5,Integer r6,Integer r7,Integer r8,Integer r10,Integer r11,String str) {
try {
ArrayList<StoreConfig> storeConfigs = new ArrayList<>();
StoreConfig collect1 = collect(id, px1, r1, c1, 1);
@@ -757,6 +760,7 @@
StoreConfig collect7 = collect(id, px7, r7, c7, 7);
StoreConfig collect8 = collect(id, px8, r8, c8, 8);
StoreConfig collect10 = collect(id, px10, r10, c10, 10);
+ StoreConfig collect11 = collect(id, px11, r11, c111, 11);
storeConfigs.add(collect1);
storeConfigs.add(collect2);
storeConfigs.add(collect3);
@@ -766,6 +770,7 @@
storeConfigs.add(collect7);
storeConfigs.add(collect8);
storeConfigs.add(collect10);
+ storeConfigs.add(collect11);
storeConfigService.saveOrUpdateBatch(storeConfigs);
// 修改世界杯
diff --git a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
index 58c4f4e..716e013 100644
--- a/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
+++ b/cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TVipController.java
@@ -329,118 +329,7 @@
}
// APP查询所有上架的会员卡
- @ResponseBody
- @PostMapping("/listAll")
- public List<Vip> listAll() {
- List<Vip> list = vipService.lambdaQuery().eq(Vip::getStatus, 1).list();
- List<Coupon> coupons = couponClient.queryCouponAll();
- List<CouponCity> couponCityList = couponClient.queryAllCity();
- List<CouponStore> storeList = couponClient.queryAllStore();
- List<TStore> shopList = storeService.list();
- // 封装会员权益
- for (Vip vip : list) {
- List<CouponVipResp> couponVipRespList = new ArrayList<>();
- List<TicketVipResp> ticketVipRespList = new ArrayList<>();
- String couponJson = vip.getCouponJson();
- JSONArray couponJsonArray = JSONArray.parseArray(couponJson);
- for (Object o : couponJsonArray) {
- JSONObject couponJsonObject = (JSONObject) o;
- // 优惠券id
- Integer id = Integer.valueOf(couponJsonObject.getString("id"));
- // 优惠券数量
- Integer value = Integer.valueOf(couponJsonObject.getString("value"));
- Coupon coupon = coupons.stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Coupon());
- CouponVipResp couponVipResp = new CouponVipResp();
- couponVipResp.setId(coupon.getId());
- couponVipResp.setName(coupon.getName());
- couponVipResp.setType(coupon.getType());
- couponVipResp.setUseCondition(coupon.getUseScope());
- couponVipResp.setCount(value);
- switch (coupon.getUseScope()) {
- case 1:
- couponVipResp.setAvailable("全国通用");
- break;
- case 2:
- couponVipResp.setAvailable("指定城市可用");
- List<CouponCity> couponId = couponCityList.stream().filter(e -> e.getCouponId().equals(id))
- .collect(Collectors.toList());
- StringBuilder stringBuilder = new StringBuilder();
- for (CouponCity couponCity : couponId) {
- stringBuilder.append(couponCity.getCity());
- }
- couponVipResp.setCityOrStore(String.valueOf(stringBuilder));
- break;
- case 3:
- couponVipResp.setAvailable("指定门店可用");
- // 门店ids
- List<Integer> storeIds = storeList.stream().filter(e -> e.getCouponId().equals(id))
- .map(CouponStore::getStoreId).collect(Collectors.toList());
- StringBuilder storeNames = new StringBuilder("");
- if (!storeIds.isEmpty()) {
- List<TStore> stores = shopList.stream().filter(e -> storeIds.contains(e.getId())).collect(Collectors.toList());
- for (TStore store : stores) {
- storeNames.append(store.getName()).append(",");
- }
- // 去除最后一位
- StringBuilder res = storeNames.deleteCharAt(storeNames.length() - 1);
- couponVipResp.setCityOrStore(res.toString());
- } else {
- couponVipResp.setCityOrStore("无可用门店");
- }
- break;
- default:
- break;
- }
- couponVipResp.setInstructionsForUse(coupon.getIllustrate());
- ConponJsonRuleModel ruleModel = new ConponJsonRuleModel();
- JSONObject jsonObject = JSON.parseObject(coupon.getContent());
- switch (coupon.getType()) {
- case 1:
-// 满减券
- Double num1 = jsonObject.getDouble("conditionalAmount");
- Double num2 = jsonObject.getDouble("deductionAmount");
- ruleModel.setConditionalAmount("满" + num1 + "可用");
- ruleModel.setDeductionAmount("¥ " + num2);
- ruleModel.setExperienceName("");
- break;
- case 2:
-// 代金券
- Double jsonObjectDouble = jsonObject.getDouble("conditionalAmount");
- ruleModel.setConditionalAmount("");
- ruleModel.setDeductionAmount("¥ " + jsonObjectDouble);
- ruleModel.setExperienceName("");
- break;
- case 3:
-// 体验券
- ruleModel.setConditionalAmount("");
- ruleModel.setDeductionAmount("");
- ruleModel.setExperienceName(jsonObject.getString("experienceName"));
- break;
- default:
- break;
- }
- couponVipResp.setRuleModel(ruleModel);
-
- SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
- couponVipResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
- couponVipRespList.add(couponVipResp);
- }
- vip.setCouponList(couponVipRespList);
- String ticketJson = vip.getTicketJson();
- JSONArray ticketJsonArray = JSONArray.parseArray(ticketJson);
- for (Object o : ticketJsonArray) {
- JSONObject ticketJsonObject = (JSONObject) o;
- TicketVipResp ticketVipResp = new TicketVipResp();
- ticketVipResp.setName(ticketJsonObject.getString("name"));
- ticketVipResp.setTime(ticketJsonObject.getInteger("time"));
- ticketVipResp.setCount(ticketJsonObject.getInteger("count"));
- ticketVipRespList.add(ticketVipResp);
- }
- vip.setTicketList(ticketVipRespList);
- }
- return list;
- }
@Autowired
private IProtocolService protocolService;
@ResponseBody
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreementDriver.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreementDriver.html
index 23c6ff9..266ac1b 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreementDriver.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tAgreement/tAgreementDriver.html
@@ -17,7 +17,7 @@
<li class=""><a data-toggle="tab" href="#tab-3" aria-expanded="false">运动安全告知书</a></li>
<li class=""><a data-toggle="tab" href="#tab-4" aria-expanded="false">注销账号说明</a></li>
<li class=""><a data-toggle="tab" href="#tab-5" aria-expanded="false">社区世界杯报名协议</a></li>
- <li class=""><a data-toggle="tab" href="#tab-6" aria-expanded="false">会员协议</a></li>
+ <li class=""><a data-toggle="tab" href="#tab-7" aria-expanded="false">会员协议</a></li>
</ul>
<div class="tab-content">
<div id="tab-1" class="tab-pane active">
@@ -72,12 +72,12 @@
</div>
</div>
</div>
- <div id="tab-6" class="tab-pane">
+ <div id="tab-7" class="tab-pane">
<div class="panel-body">
- <textarea type="text/plain" id="editor_6" style="width:1200px;height:400px;">${six.content}</textarea>
+ <textarea type="text/plain" id="editor_7" style="width:1200px;height:400px;">${seven.content}</textarea>
<div class="row btn-group-m-t">
<div class="col-sm-10 col-sm-offset-5">
- <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="update_6(${six.id});"/>
+ <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="update_7(${seven.id});"/>
</div>
</div>
</div>
@@ -97,6 +97,7 @@
var editor_3 = null;
var editor_4 = null;
var editor_5 = null;
+ var editor_7 = null;
$(function () {
//初始化编辑器
editor_1 = UE.getEditor('editor_1');
@@ -104,6 +105,8 @@
editor_3 = UE.getEditor('editor_3');
editor_4 = UE.getEditor('editor_4');
editor_5 = UE.getEditor('editor_5');
+ editor_7 = UE.getEditor('editor_7');
+
});
function update_1(id){
@@ -141,12 +144,12 @@
}
submitData(editor_5.getContent(),id);
}
- function update_6(id){
- if (editor_6.getContentTxt() == ""){
+ function update_7(id){
+ if (editor_7.getContentTxt() == ""){
Feng.error("内容不能为空!");
return;
}
- submitData(editor_6.getContent(),id);
+ submitData(editor_7.getContent(),id);
}
function submitData(content,id) {
diff --git a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
index 2d6158f..8262afb 100644
--- a/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
+++ b/cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
@@ -31,6 +31,9 @@
@if(c10!=null){
<input hidden id="s10" value="${c10.isOpen}">
@}
+ @if(c11!=null){
+ <input hidden id="s11" value="${c11.isOpen}">
+ @}
<div class="row">
<div class="col-lg-6" style="">
<div class="form-group" style="margin-left: 96px">
@@ -295,6 +298,33 @@
@}
</div>
</div>
+ <div style="font-size: x-large;">会员卡板块</div>
+ <div class="form-group">
+ <div class="col-lg-6" style="">
+ <div class="form-group" style="margin-left: 96px">
+ <label class="col-sm-3 control-label" >
+ 会员卡:<input type="radio" name="r11" value="1">开启 <input type="radio" name="r11" value="0">关闭
+ </label>
+ </div>
+ <div class="form-group">
+ <label class="col-sm-3 control-label">排序:</label>
+ <div class="col-sm-9">
+ @if(c11==null){
+ <input class="form-control" style="width: 200px;" type="text" id="px11" value="">
+ @}
+ @if(c11!=null){
+ <input class="form-control" style="width: 200px;" type="text" id="px11" value="${c11.sort}">
+ @}
+ </div>
+ </div>
+ @if(c11==null){
+ <#avatar id="c111" name="背景图" />
+ @}
+ @if(c11!=null){
+ <#avatar id="c111" name="背景图" avatarImg="${c11.backgroundImage}"/>
+ @}
+ </div>
+ </div>
<div style="font-size: x-large;">首页其他板块设置</div>
<#button name="添加" icon="fa-plus" clickFun="TCompetition.openAddTCompetition(id)"/>
<#button name="编辑" icon="fa-edit" clickFun="TCompetition.openTCompetitionDetail1()" space="true"/>
@@ -374,6 +404,12 @@
OBJradio[i].checked=true//修改选中状态
}
}
+ var OBJradio=document.getElementsByName("r11")
+ for(i=0;i<OBJradio.length;i++){//循环查找这个radio
+ if($("#s11").val()==OBJradio[i].value){//判断是否与radio的值相同
+ OBJradio[i].checked=true//修改选中状态
+ }
+ }
// for (let i = 0; i < $('input[name="isOpen"]').length; i++) {
// var OBJradio=document.getElementsByName("r9")
// for(i=0;i<OBJradio.length;i++){//循环查找这个radio
diff --git a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOther.js b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOther.js
index 8384dc2..e06a346 100644
--- a/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOther.js
+++ b/cloud-server-management/src/main/webapp/static/modular/system/tShop/tShopOther.js
@@ -327,6 +327,7 @@
var px7 = $("#px7").val()
var px8 = $("#px8").val()
var px10 = $("#px10").val()
+ var px11 = $("#px11").val()
var c1 = $("#c1").val()
var c2 = $("#c2").val()
var c3 = $("#c3").val()
@@ -336,6 +337,7 @@
var c7 = $("#7").val()
var c8 = $("#c8").val()
var c10 = $("#c10").val()
+ var c111 = $("#c111").val()
var r1 = document.querySelector('input[name="r1"]').checked;
var r2 = document.querySelector('input[name="r2"]').checked;
var r3 = document.querySelector('input[name="r3"]').checked;
@@ -345,6 +347,7 @@
var r7 = document.querySelector('input[name="r7"]').checked;
var r8 = document.querySelector('input[name="r8"]').checked;
var r10 = document.querySelector('input[name="r10"]').checked;
+ var r11 = document.querySelector('input[name="r11"]').checked;
var json1=[];
for (let i = 0; i < $('input[name="px9"]').length; i++) {
@@ -412,6 +415,11 @@
}else{
r10=0
}
+ if(r11){
+ r11 =1
+ }else{
+ r11=0
+ }
var ajax = new $ax(Feng.ctxPath + "/tShop/saveImgAll", function(data){
if(data.code == 200){
@@ -434,6 +442,7 @@
ajax.set("px7",px7);
ajax.set("px8",px8);
ajax.set("px10",px10);
+ ajax.set("px11",px11);
ajax.set("c1",c1);
ajax.set("c2",c2);
ajax.set("c3",c3);
@@ -443,6 +452,7 @@
ajax.set("c7",c7);
ajax.set("c8",c8);
ajax.set("c10",c10);
+ ajax.set("c111",c111);
ajax.set("r1",r1);
ajax.set("r2",r2);
ajax.set("r3",r3);
@@ -452,6 +462,7 @@
ajax.set("r7",r7);
ajax.set("r8",r8);
ajax.set("r10",r10);
+ ajax.set("r11",r11);
ajax.set("str",JSON.stringify(json1));
ajax.start();
}
@@ -525,6 +536,9 @@
var carPhoto = new $WebUpload("c10");
carPhoto.setUploadBarId("progressBar");
carPhoto.init();
+ var carPhoto = new $WebUpload("c111");
+ carPhoto.setUploadBarId("progressBar");
+ carPhoto.init();
for (let i = 0; i < $('input[name="px9"]').length; i++) {
diff --git a/cloud-server-other/src/main/java/com/dsh/other/controller/TVipController.java b/cloud-server-other/src/main/java/com/dsh/other/controller/TVipController.java
new file mode 100644
index 0000000..d1e0d3e
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/controller/TVipController.java
@@ -0,0 +1,202 @@
+package com.dsh.other.controller;
+
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONArray;
+import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+
+import com.dsh.other.entity.Protocol;
+import com.dsh.other.entity.Store;
+import com.dsh.other.feignclient.activity.CouponClient;
+import com.dsh.other.feignclient.activity.model.Coupon;
+import com.dsh.other.feignclient.activity.model.PointsMerchandise;
+import com.dsh.other.model.*;
+import com.dsh.other.service.IProtocolService;
+import com.dsh.other.service.IVipService;
+import com.dsh.other.service.StoreService;
+import com.dsh.other.util.ResultUtil;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.*;
+
+import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.stream.Collectors;
+
+/**
+ * @author zhibing.pu
+ * @Date 2023/8/1 14:02
+ */
+@Controller
+@RequestMapping("/vip")
+public class TVipController {
+
+ @Autowired
+ private IVipService vipService;
+ @Autowired
+ private CouponClient couponClient;
+ @Autowired
+ private StoreService storeService;
+
+
+
+ // APP查询所有上架的会员卡
+ @ResponseBody
+ @PostMapping("/listAll")
+ public List<Vip> listAll() {
+ List<Vip> list = vipService.lambdaQuery().eq(Vip::getStatus, 1).list();
+ List<Coupon> coupons = couponClient.queryCouponAll();
+ List<CouponCity> couponCityList = couponClient.queryAllCity();
+ List<PointsMerchandise> pointsMerchandiseList = couponClient.queryAllPointGoods();
+ List<CouponStore> storeList = couponClient.queryAllStore();
+ List<Store> shopList = storeService.list();
+ // 封装会员权益
+ for (Vip vip : list) {
+ List<CouponVipResp> couponVipRespList = new ArrayList<>();
+ List<TicketVipResp> ticketVipRespList = new ArrayList<>();
+ String couponJson = vip.getCouponJson();
+ JSONArray couponJsonArray = JSONArray.parseArray(couponJson);
+ for (Object o : couponJsonArray) {
+ JSONObject couponJsonObject = (JSONObject) o;
+ // 优惠券id
+ Integer id = Integer.valueOf(couponJsonObject.getString("id"));
+ // 优惠券数量
+ Integer value = Integer.valueOf(couponJsonObject.getString("value"));
+ Coupon coupon = coupons.stream().filter(e -> e.getId().equals(id)).findFirst().orElse(new Coupon());
+ CouponVipResp couponVipResp = new CouponVipResp();
+ couponVipResp.setId(coupon.getId());
+ couponVipResp.setName(coupon.getName());
+ couponVipResp.setType(coupon.getType());
+ couponVipResp.setUseCondition(coupon.getUseScope());
+ couponVipResp.setCount(value);
+ switch (coupon.getUseScope()) {
+ case 1:
+ couponVipResp.setAvailable("全国通用");
+ break;
+ case 2:
+ couponVipResp.setAvailable("指定城市可用");
+ List<CouponCity> couponId = couponCityList.stream().filter(e -> e.getCouponId().equals(id))
+ .collect(Collectors.toList());
+ StringBuilder stringBuilder = new StringBuilder();
+ for (CouponCity couponCity : couponId) {
+ stringBuilder.append(couponCity.getCity());
+ }
+ couponVipResp.setCityOrStore(String.valueOf(stringBuilder));
+ break;
+ case 3:
+ couponVipResp.setAvailable("指定门店可用");
+ // 门店ids
+ List<Integer> storeIds = storeList.stream().filter(e -> e.getCouponId().equals(id))
+ .map(CouponStore::getStoreId).collect(Collectors.toList());
+ StringBuilder storeNames = new StringBuilder("");
+
+ if (!storeIds.isEmpty()) {
+ List<Store> stores = shopList.stream().filter(e -> storeIds.contains(e.getId())).collect(Collectors.toList());
+ for (Store store : stores) {
+ storeNames.append(store.getName()).append(",");
+ }
+ // 去除最后一位
+ StringBuilder res = storeNames.deleteCharAt(storeNames.length() - 1);
+ couponVipResp.setCityOrStore(res.toString());
+ } else {
+ couponVipResp.setCityOrStore("无可用门店");
+ }
+ break;
+ default:
+ break;
+ }
+ couponVipResp.setInstructionsForUse(coupon.getIllustrate());
+ ConponJsonRuleModel ruleModel = new ConponJsonRuleModel();
+ JSONObject jsonObject = JSON.parseObject(coupon.getContent());
+ switch (coupon.getType()) {
+ case 1:
+// 满减券
+ Double num1 = jsonObject.getDouble("conditionalAmount");
+ Double num2 = jsonObject.getDouble("deductionAmount");
+ ruleModel.setConditionalAmount("满" + num1 + "可用");
+ ruleModel.setDeductionAmount("¥ " + num2);
+ ruleModel.setExperienceName("");
+ break;
+ case 2:
+// 代金券
+ Double jsonObjectDouble = jsonObject.getDouble("conditionalAmount");
+ ruleModel.setConditionalAmount("");
+ ruleModel.setDeductionAmount("¥ " + jsonObjectDouble);
+ ruleModel.setExperienceName("");
+ break;
+ case 3:
+// 体验券
+ ruleModel.setConditionalAmount("");
+ ruleModel.setDeductionAmount("");
+ ruleModel.setExperienceName(jsonObject.getString("experienceName"));
+ break;
+ case 4:
+// 抵扣券
+ ruleModel.setConditionalAmount("");
+ ruleModel.setDeductionAmount("");
+ PointsMerchandise pointsMerchandise = pointsMerchandiseList.stream().findFirst().orElse(null);
+ if (pointsMerchandise!=null){
+ ruleModel.setExperienceName(pointsMerchandise.getName());
+ }
+ break;
+ default:
+ break;
+ }
+ couponVipResp.setRuleModel(ruleModel);
+
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+ couponVipResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime()));
+ couponVipResp.setStartTime(simpleDateFormat.format(coupon.getStartTime()));
+ couponVipRespList.add(couponVipResp);
+ }
+ vip.setCouponList(couponVipRespList);
+ String ticketJson = vip.getTicketJson();
+ JSONArray ticketJsonArray = JSONArray.parseArray(ticketJson);
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
+
+ for (Object o : ticketJsonArray) {
+ JSONObject ticketJsonObject = (JSONObject) o;
+ TicketVipResp ticketVipResp = new TicketVipResp();
+ Integer count = ticketJsonObject.getInteger("count");
+ ticketVipResp.setName(ticketJsonObject.getString("name"));
+ ticketVipResp.setTime(ticketJsonObject.getInteger("time"));
+ ticketVipResp.setCount(ticketJsonObject.getInteger("count"));
+ ticketVipResp.setStartTime(simpleDateFormat.format(new Date()));
+ Date date = new Date();
+ // 给这个date加X天
+ date.setTime(date.getTime() + ticketJsonObject.getInteger("time") * 24 * 60 * 60 * 1000);
+ ticketVipResp.setEffectiveTime(simpleDateFormat.format(date));
+ ticketVipRespList.add(ticketVipResp);
+ }
+ vip.setTicketList(ticketVipRespList);
+ }
+ return list;
+ }
+ @Autowired
+ private IProtocolService protocolService;
+ @ResponseBody
+ @PostMapping("/getAgreement")
+ public String getAgreement() {
+ Protocol one = protocolService.lambdaQuery().eq(Protocol::getType, 6).one();
+ if (one==null){
+ Protocol protocol = new Protocol();
+ protocol.setType(6);
+ protocol.setContent("");
+ protocol.setInsertTime(new Date());
+ protocolService.save( protocol);
+ return "";
+ }else{
+ return one.getContent();
+
+ }
+ }
+
+ @ResponseBody
+ @PostMapping("/getVipByIds")
+ public List<Vip> getVipByIds(@RequestBody String ids) {
+ List<Vip> list = vipService.lambdaQuery().in(Vip::getId, Arrays.asList(ids.split(","))).list();
+ return list;
+ }
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java
index a1dba2c..64b9c5d 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/CouponClient.java
@@ -1,8 +1,13 @@
package com.dsh.other.feignclient.activity;
import com.dsh.other.feignclient.activity.model.Coupon;
+import com.dsh.other.feignclient.activity.model.PointsMerchandise;
+import com.dsh.other.model.CouponCity;
+import com.dsh.other.model.CouponStore;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;
+
+import java.util.List;
/**
* @author zhibing.pu
@@ -20,4 +25,12 @@
*/
@PostMapping("/coupon/queryCouponById")
Coupon queryCouponById(Integer id);
+ @PostMapping("/coupon/queryCouponAll")
+ List<Coupon> queryCouponAll();
+ @PostMapping("/base/coupon/queryAllStore")
+ List<CouponStore> queryAllStore();
+ @PostMapping("/base/coupon/queryAllCity")
+ List<CouponCity> queryAllCity();
+ @PostMapping("/base/coupon/queryAllPointGoods")
+ List<PointsMerchandise> queryAllPointGoods();
}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/Coupon.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/Coupon.java
index abbddb7..ab55da5 100644
--- a/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/Coupon.java
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/Coupon.java
@@ -1,5 +1,6 @@
package com.dsh.other.feignclient.activity.model;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
@@ -108,6 +109,10 @@
*/
private Integer state;
/**
+ * 积分商品id
+ */
+ private Integer goodsId;
+ /**
* 添加时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
diff --git a/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/PointsMerchandise.java b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/PointsMerchandise.java
new file mode 100644
index 0000000..08f7fa6
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/feignclient/activity/model/PointsMerchandise.java
@@ -0,0 +1,189 @@
+package com.dsh.other.feignclient.activity.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.experimental.Accessors;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * <p>
+ * 积分商品
+ * </p>
+ *
+ * @author jqs
+ * @since 2023-07-04
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_points_merchandise")
+public class PointsMerchandise extends Model<PointsMerchandise> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 类型(1=实体商品,2=课包商品,3=门票商品 4=优惠券)
+ */
+ @TableField("type")
+ private Integer type;
+ /**
+ * 商品名称
+ */
+ @TableField("name")
+ private String name;
+ /**
+ * 课包id
+ */
+ @TableField("coursePackageId")
+ private Integer coursePackageId;
+ /**
+ * 原价
+ */
+ @TableField("price")
+ private BigDecimal price;
+ /**
+ * 兑换方式(1=积分,2=现金+积分)
+ */
+ @TableField("redemptionMethod")
+ private Integer redemptionMethod;
+ /**
+ * 所需现金
+ */
+ @TableField("cash")
+ private BigDecimal cash;
+ /**
+ * 所属积分
+ */
+ @TableField("integral")
+ private Integer integral;
+ /**
+ * 商品封面
+ */
+ @TableField("cover")
+ private String cover;
+ /**
+ * 商品图片
+ */
+ @TableField("productImages")
+ private String productImages;
+ /**
+ * 用户人群(1=全部用户,2=年度会员,3=已有学员用户)
+ */
+ @TableField("userPopulation")
+ private Integer userPopulation;
+ /**
+ * 发放数量
+ */
+ @TableField("quantityIssued")
+ private Integer quantityIssued;
+ /**
+ * 限领数量
+ */
+ @TableField("pickUpQuantity")
+ private Integer pickUpQuantity;
+ /**
+ * 开始时间
+ */
+ @TableField("startTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date startTime;
+ /**
+ * 结束时间
+ */
+ @TableField("endTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date endTime;
+ /**
+ * 使用范围(1=全国,2=指定城市,3=指定门店)
+ */
+ @TableField("useScope")
+ private Integer useScope;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+ /**
+ * 兑换说明
+ */
+ @TableField("redemptionInstructions")
+ private String redemptionInstructions;
+ /**
+ * 排序
+ */
+ @TableField("sort")
+ private Integer sort;
+ /**
+ * 状态(1=正常,2=冻结,3=删除)
+ */
+ @TableField("state")
+ private Integer state;
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+ private Date insertTime;
+ /**
+ * 课包支付配置id
+ */
+ @TableField("coursePackageConfigId")
+ private Integer coursePackageConfigId;
+ /**
+ * 1=上架 2=下架
+ */
+ @TableField("shelves")
+ private Integer shelves;
+ @TableField("cardType")
+ private Integer cardType;
+ @TableField("status")
+ private Integer status;
+ @TableField("remark")
+ private String remark;
+ // 已领数量
+ @TableField(exist = false)
+ private Integer pickUpQuantity3;
+ // 已兑换数量
+ @TableField(exist = false)
+ private Integer pickUpQuantity4;
+ // 添加人id 判断是平台添加还是运营商添加 用于判断分账
+ @TableField("addUserId")
+ private Integer addUserId;
+ // 添加人类型 1平台2运营商3门店 用于判断分账
+ @TableField("addType")
+ private Integer addType;
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/mapper/TVipMapper.java b/cloud-server-other/src/main/java/com/dsh/other/mapper/TVipMapper.java
new file mode 100644
index 0000000..398c6ba
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/mapper/TVipMapper.java
@@ -0,0 +1,24 @@
+package com.dsh.other.mapper;
+
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.dsh.other.model.Vip;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * Mapper 接口
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-19
+ */
+public interface TVipMapper extends BaseMapper<Vip> {
+
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/ConponJsonRuleModel.java b/cloud-server-other/src/main/java/com/dsh/other/model/ConponJsonRuleModel.java
new file mode 100644
index 0000000..057d0ee
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/ConponJsonRuleModel.java
@@ -0,0 +1,25 @@
+package com.dsh.other.model;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+
+@Data
+public class ConponJsonRuleModel {
+ /**
+ * 条件金额
+ */
+ @ApiModelProperty("条件金额(例如 :满xx可用)")
+ String conditionalAmount;
+ /**
+ * 抵扣金额(代金券 取 该字段)
+ */
+ @ApiModelProperty("抵扣金额(代金券 取 该字段) 例如:¥ xxx")
+ String deductionAmount;
+ /**
+ * 体验券名称
+ */
+ @ApiModelProperty("体验券名称 /抵扣商品名称")
+ String experienceName;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/CouponCity.java b/cloud-server-other/src/main/java/com/dsh/other/model/CouponCity.java
new file mode 100644
index 0000000..f61250d
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/CouponCity.java
@@ -0,0 +1,65 @@
+package com.dsh.other.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+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-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_coupon_city")
+public class CouponCity extends Model<CouponCity> {
+
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 优惠券id
+ */
+ private Integer couponId;
+ /**
+ * 省
+ */
+ @TableField("province")
+ private String province;
+ /**
+ * 省编号
+ */
+ @TableField("provinceCode")
+ private String provinceCode;
+ /**
+ * 市
+ */
+ @TableField("city")
+ private String city;
+ /**
+ * 市编号
+ */
+ @TableField("cityCode")
+ private String cityCode;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/CouponStore.java b/cloud-server-other/src/main/java/com/dsh/other/model/CouponStore.java
new file mode 100644
index 0000000..e467dc0
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/CouponStore.java
@@ -0,0 +1,52 @@
+package com.dsh.other.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+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-07
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@Accessors(chain = true)
+@TableName("t_coupon_store")
+public class CouponStore extends Model<CouponStore> {
+
+ private static final long serialVersionUID = 1L;
+
+ /**
+ * 主键
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ private Integer id;
+ /**
+ * 优惠券id
+ */
+ @TableField("couponId")
+ private Integer couponId;
+ /**
+ * 门店id
+ */
+ @TableField("storeId")
+ private Integer storeId;
+
+
+ @Override
+ protected Serializable pkVal() {
+ return this.id;
+ }
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/CouponVipResp.java b/cloud-server-other/src/main/java/com/dsh/other/model/CouponVipResp.java
new file mode 100644
index 0000000..30b94f5
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/CouponVipResp.java
@@ -0,0 +1,45 @@
+package com.dsh.other.model;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("会员权益优惠券列表")
+public class CouponVipResp {
+
+ @ApiModelProperty("优惠券id")
+ private Integer id;
+
+ @ApiModelProperty("优惠券名称")
+ private String name;
+
+ @ApiModelProperty("优惠券类型(1=满减券,2=代金券,3=体验券)")
+ private Integer type;
+
+ @ApiModelProperty("适用范围1全国通用 2指定城市可用 3指定门店可用")
+ private Integer useCondition;
+
+ @ApiModelProperty("适用范围名称")
+ private String available;
+
+ @ApiModelProperty("useCondition = 2,为地址字符串;useCondition = 3,为门店名称+地址字符串")
+ private String cityOrStore;
+
+ @ApiModelProperty("优惠券说明(使用说明)")
+ private String instructionsForUse;
+
+ @ApiModelProperty("金额条件封装")
+ private ConponJsonRuleModel ruleModel;
+
+ @ApiModelProperty("有效时间结束(2021-05-05)")
+ private String effectiveTime;
+ @ApiModelProperty("有效时间开始(2021-05-05)")
+ private String startTime;
+ @ApiModelProperty("数量 张")
+ private Integer count;
+
+
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/TicketVipResp.java b/cloud-server-other/src/main/java/com/dsh/other/model/TicketVipResp.java
new file mode 100644
index 0000000..27ba1c7
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/TicketVipResp.java
@@ -0,0 +1,26 @@
+package com.dsh.other.model;
+
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@Data
+@ApiModel("会员权益门票列表")
+public class TicketVipResp {
+
+
+ @ApiModelProperty("门票名称")
+ private String name;
+
+ @ApiModelProperty("领取后x天有效")
+ private Integer time;
+
+ @ApiModelProperty("数量 张")
+ private Integer count;
+ @ApiModelProperty("有效时间(2021-05-05)")
+ private String effectiveTime;
+ @ApiModelProperty("有效时间开始(2021-05-05)")
+ private String startTime;
+
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/model/Vip.java b/cloud-server-other/src/main/java/com/dsh/other/model/Vip.java
new file mode 100644
index 0000000..114a0cc
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/model/Vip.java
@@ -0,0 +1,107 @@
+package com.dsh.other.model;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+import java.util.List;
+
+/**
+ * 会员管理
+ */
+@TableName("t_vip")
+@Data
+@ApiModel(description = "会员")
+public class Vip {
+ /**
+ * 主键id
+ */
+ @TableId(value = "id", type = IdType.AUTO)
+ @TableField("id")
+ @ApiModelProperty(value = "主键id")
+ private Integer id;
+
+ /**
+ * 会员名称
+ */
+ @TableField("vipName")
+ @ApiModelProperty(value = "会员名称")
+ private String vipName;
+
+ /**
+ * 会员时长类型 1天 2月 3年
+ */
+ @TableField("timeType")
+ @ApiModelProperty(value = "会员时长类型 1天 2月 3年")
+ private Integer timeType;
+
+ /**
+ * 会员时长
+ */
+ @TableField("time")
+ @ApiModelProperty(value = "会员时长")
+ private Integer time;
+
+ /**
+ * 会员价格
+ */
+ @TableField("price")
+ @ApiModelProperty(value = "会员价格")
+ private BigDecimal price;
+
+ /**
+ * 状态 1上架2下架
+ */
+ @TableField("status")
+ @ApiModelProperty(value = "状态 1上架2下架")
+ private Integer status;
+
+ /**
+ * 添加时间
+ */
+ @TableField("insertTime")
+ @ApiModelProperty(value = "添加时间")
+ private Date insertTime;
+ /**
+ * 添加时间
+ */
+ @TableField("couponJson")
+ @ApiModelProperty(value = "优惠券json[{\n" +
+ "\t\"id\": \"1\",\n" +
+ "\t\"value\": \"1\"\n" +
+ "}, {\n" +
+ "\t\"id\": \"2\",\n" +
+ "\t\"value\": \"1\"\n" +
+ "}\n" +
+ "}]")
+ private String couponJson;
+ /**
+ * 添加时间
+ */
+ @TableField("ticketJson")
+ @ApiModelProperty(value = "门票json门票json[{\n" +
+ "\t\"name\": \"门票名称\",\n" +
+ "\t\"time\": \"1\",\n" +
+ "\"count\": \"1\",\n" +
+ "}]")
+ private String ticketJson;
+
+ /**
+ * 会员优惠券权益
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "会员优惠券权益")
+ private List<CouponVipResp> couponList;
+ /**
+ * 会员门票权益
+ */
+ @TableField(exist = false)
+ @ApiModelProperty(value = "会员门票权益")
+ private List<TicketVipResp> ticketList;
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/IVipService.java b/cloud-server-other/src/main/java/com/dsh/other/service/IVipService.java
new file mode 100644
index 0000000..c1cfef0
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/IVipService.java
@@ -0,0 +1,16 @@
+package com.dsh.other.service;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.dsh.other.model.Vip;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @author zhibing.pu
+ * @date 2023/6/14 15:04
+ */
+public interface IVipService extends IService<Vip> {
+}
diff --git a/cloud-server-other/src/main/java/com/dsh/other/service/impl/TVipServiceImpl.java b/cloud-server-other/src/main/java/com/dsh/other/service/impl/TVipServiceImpl.java
new file mode 100644
index 0000000..4caaae3
--- /dev/null
+++ b/cloud-server-other/src/main/java/com/dsh/other/service/impl/TVipServiceImpl.java
@@ -0,0 +1,27 @@
+package com.dsh.other.service.impl;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dsh.other.mapper.TVipMapper;
+import com.dsh.other.model.Vip;
+import com.dsh.other.service.IVipService;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * 服务实现类
+ * </p>
+ *
+ * @author administrator
+ * @since 2023-09-19
+ */
+@Service
+public class TVipServiceImpl extends ServiceImpl<TVipMapper, Vip> implements IVipService {
+
+
+
+}
--
Gitblit v1.7.1