From 717eb13e7e3f35ac662ca913cf785ebb6909b5fb Mon Sep 17 00:00:00 2001 From: lisy <linlangsur163@163.com> Date: 星期五, 07 七月 2023 11:50:16 +0800 Subject: [PATCH] activity:使用福利-我的券包 --- cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 119 insertions(+), 1 deletions(-) diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java index c8441cd..b417c46 100644 --- a/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java +++ b/cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java @@ -2,22 +2,33 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.dsh.activity.entity.Coupon; import com.dsh.activity.entity.UserCoupon; +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.account.model.Student; import com.dsh.activity.feignclient.course.CoursePackageClient; import com.dsh.activity.feignclient.course.model.CoursePackage; +import com.dsh.activity.mapper.CouponMapper; import com.dsh.activity.mapper.UserCouponMapper; +import com.dsh.activity.model.ConponJsonRuleModel; import com.dsh.activity.model.CouponListVo; +import com.dsh.activity.model.request.CouponPackageReq; +import com.dsh.activity.model.response.CouponPackageResp; import com.dsh.activity.service.UserCouponService; +import com.dsh.activity.util.DateUtil; import com.dsh.activity.util.GDMapGeocodingUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * <p> @@ -35,6 +46,15 @@ @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; + + @Autowired + private AppUserClient appClient; + + @Autowired + private StudentClient studentClient; + + @Autowired + private CouponMapper couponMapper; /** @@ -87,4 +107,102 @@ } return listVos; } + + @Override + public List<CouponPackageResp> queryCouponPackagesList(Integer uid, CouponPackageReq req) { + List<CouponPackageResp> respList = new ArrayList<>(); + AppUser appUser = appClient.queryAppUser(uid); + if (null != appUser) { + List<Integer> userPopulation = new ArrayList<>(); + userPopulation.add(1);//全部用户 + if (1 == appUser.getIsVip()) { + userPopulation.add(2);//年度会员 + } + List<Student> students = studentClient.queryStudentList(uid); + if (students.size() > 0) { + userPopulation.add(3);//已有学员用户 + } + List<UserCoupon> userCoupons = this.baseMapper.queryCanuseConponIds(appUser.getId(),null); + if (userCoupons.size() > 0){ + for (UserCoupon userCoupon : userCoupons) { + Coupon coupon = couponMapper.selectById(userCoupon.getCouponId()); + CouponPackageResp packageResp = new CouponPackageResp(); + packageResp.setId(coupon.getId()); + packageResp.setName(coupon.getName()); + packageResp.setType(coupon.getType()); + packageResp.setUseCondition(coupon.getUseScope()); + switch (coupon.getUseScope()){ + case 1: + packageResp.setAvailable("全国通用"); + break; + case 2: + packageResp.setAvailable("指定城市可用"); + packageResp.setCityOrStore(""); + break; + case 3: + packageResp.setAvailable("指定门店可用"); + packageResp.setCityOrStore(""); + break; + default: + break; + } + packageResp.setInstructionsForUse(coupon.getIllustrate()); + ConponJsonRuleModel ruleModel = new ConponJsonRuleModel(); + JSONObject jsonObject = JSON.parseObject(coupon.getContent()); + switch (coupon.getType()) { + case 1: +// 满减券 + Double num1 = jsonObject.getDouble("num1"); + Double num2 = jsonObject.getDouble("num2"); + ruleModel.setConditionalAmount("满"+num1+"可用"); + ruleModel.setDeductionAmount("¥ "+num2); + ruleModel.setExperienceName(""); + break; + case 2: +// 代金券 + Double jsonObjectDouble = jsonObject.getDouble("num1"); + ruleModel.setConditionalAmount(""); + ruleModel.setDeductionAmount("¥ "+jsonObjectDouble); + ruleModel.setExperienceName(""); + break; + case 3: +// 体验券 + ruleModel.setConditionalAmount(""); + ruleModel.setDeductionAmount(""); + ruleModel.setExperienceName(jsonObject.getString("num1")); + break; + default: + break; + } + packageResp.setRuleModel(ruleModel); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + packageResp.setEffectiveTime(simpleDateFormat.format(coupon.getEndTime())); + if (userCoupon.getStatus() == 1){ + if (DateUtil.getDate().before(coupon.getEndTime())){ + packageResp.setUseStatus(1); + }else { + packageResp.setUseStatus(3); + } + } + if (userCoupon.getStatus() == 2){ + packageResp.setUseStatus(2); + } + respList.add(packageResp); + } + if (null != req.getCouponType()){ + respList = respList.stream() + .filter(couponPackageResp -> couponPackageResp.getType().equals(req.getCouponType())) + .collect(Collectors.toList()); + } + if (null != req.getUseStatus()){ + respList = respList.stream() + .filter(couponPackageResp -> couponPackageResp.getUseStatus().equals(req.getUseStatus())) + .collect(Collectors.toList()); + } + } + + } + return respList; + } + } -- Gitblit v1.7.1