From ac3e9a7f0b21fb630049f9e191bd760eefd21467 Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期六, 16 八月 2025 18:04:38 +0800 Subject: [PATCH] 管理后台会员管理 --- cloud-server-activity/src/main/java/com/dsh/activity/controller/UserCouponController.java | 88 +++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 82 insertions(+), 6 deletions(-) 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 38aea5c..3b49b8b 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 @@ -1,21 +1,24 @@ package com.dsh.activity.controller; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.dsh.activity.entity.Coupon; -import com.dsh.activity.entity.CouponStore; -import com.dsh.activity.entity.TStudent; -import com.dsh.activity.entity.UserCoupon; +import com.dsh.activity.entity.*; import com.dsh.activity.feignclient.account.AppUserClient; import com.dsh.activity.feignclient.account.StudentClient; import com.dsh.activity.feignclient.account.model.AppUser; import com.dsh.activity.feignclient.model.CouponStuAvailableVo; import com.dsh.activity.feignclient.model.QueryUserCouponByIdAndUserId; import com.dsh.activity.model.CouponListVo; +import com.dsh.activity.model.GrantCoupon; import com.dsh.activity.model.SendCouponReq; import com.dsh.activity.service.CouponStoreService; import com.dsh.activity.service.ICouponService; import com.dsh.activity.service.UserCouponService; +import com.dsh.activity.service.VipDetailService; +import com.dsh.activity.util.DateUtil; import com.dsh.activity.util.ResultUtil; import com.dsh.activity.util.TokenUtil; import io.swagger.annotations.Api; @@ -23,6 +26,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -56,6 +60,8 @@ @Resource private StudentClient studentClient; + @Autowired + private VipDetailService vipDetailService; @@ -315,8 +321,78 @@ @PostMapping("/userCoupon/queryCounts1") public Integer queryCounts1(@RequestBody List<Integer> queryIds) { return userCouponService.count(new QueryWrapper<UserCoupon>().eq("couponId", queryIds.get(0)).eq("userId", queryIds.get(1))); - - } + // 开通会员后 赠送优惠券和门票 + @ResponseBody + @PostMapping("/userCoupon/grantCoupon") + public void grantCoupon(@RequestBody GrantCoupon grantCoupon) { + String couponJson = grantCoupon.getCouponJson(); + if (StringUtils.hasLength(couponJson)) { + + // 赠送优惠券 + JSONArray objects = JSON.parseArray(couponJson); + for (Object object : objects) { + JSONObject jsonObject = (JSONObject) object; + // 优惠券id + String id = jsonObject.getString("id"); + // 优惠券数量 + String value = jsonObject.getString("value"); + for (Integer i = 0; i < Integer.valueOf(value); i++) { + UserCoupon userCoupon = new UserCoupon(); + userCoupon.setCouponId(Integer.valueOf(id)); + userCoupon.setUserId(grantCoupon.getUserId()); + userCoupon.setStatus(1); + userCoupon.setVerificationUserId(null); + userCoupon.setVerificationTime(null); + userCoupon.setInsertTime(new Date()); + userCoupon.setIsVipGrant(1); + userCouponService.save(userCoupon); + // 生成对应的权益明细记录 + VipDetail vipDetail = new VipDetail(); + vipDetail.setAppUserId(grantCoupon.getUserId()); + vipDetail.setStatus(1); + vipDetail.setInsertTime(new Date()); + vipDetail.setVipId(grantCoupon.getVipId()); + vipDetail.setType(1); + vipDetail.setVipPaymentId(grantCoupon.getVipPaymentId()); + vipDetail.setCouponId(Integer.valueOf(id)); + vipDetail.setUserCouponId(userCoupon.getId()); + vipDetailService.save(vipDetail); + } + } + } + String ticketJson = grantCoupon.getTicketJson(); + if (StringUtils.hasLength(ticketJson)) { + // 赠送优惠券 + JSONArray objects = JSON.parseArray(ticketJson); + for (Object object : objects) { + JSONObject jsonObject = (JSONObject) object; + // 门票名称 + String name = jsonObject.getString("name"); + // 领取后x天有效 + String time = jsonObject.getString("time"); + Integer days = Integer.valueOf(time); + // 可用次数 + String count = jsonObject.getString("count"); + for (Integer i = 0; i < Integer.valueOf(count); i++) { + // 生成对应的权益明细记录 + VipDetail vipDetail = new VipDetail(); + vipDetail.setTicketName(name); + vipDetail.setStartTime(new Date()); + Date date = new Date(); + // 加X天 + Date tomorrow = new Date(date.getTime() + 24 * 60 * 60 * 1000L * days); + vipDetail.setEndTime(tomorrow); + vipDetail.setAppUserId(grantCoupon.getUserId()); + vipDetail.setStatus(1); + vipDetail.setInsertTime(new Date()); + vipDetail.setVipId(grantCoupon.getVipPaymentId()); + vipDetail.setType(2); + vipDetail.setVipPaymentId(grantCoupon.getVipPaymentId()); + vipDetailService.save(vipDetail); + } + } + } + } } -- Gitblit v1.7.1