From e030255c23c7ba3e2cbad1036a810d6d72fa864f Mon Sep 17 00:00:00 2001 From: liujie <liujie> Date: 星期四, 26 十月 2023 18:04:58 +0800 Subject: [PATCH] 修改bug --- cloud-server-activity/src/main/java/com/dsh/activity/service/impl/UserCouponServiceImpl.java | 124 +++++++++++++++++++++++++++++++++-------- 1 files changed, 100 insertions(+), 24 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 b417c46..5bf3e1d 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,16 +2,22 @@ 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.CouponStore; 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.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.StoreDetailOfCourse; import com.dsh.activity.mapper.CouponMapper; +import com.dsh.activity.mapper.CouponStoreMapper; import com.dsh.activity.mapper.UserCouponMapper; import com.dsh.activity.model.ConponJsonRuleModel; import com.dsh.activity.model.CouponListVo; @@ -47,14 +53,26 @@ @Autowired private GDMapGeocodingUtil gdMapGeocodingUtil; - @Autowired + @Resource private AppUserClient appClient; - @Autowired + @Resource private StudentClient studentClient; - @Autowired + @Resource private CouponMapper couponMapper; + + @Resource + private StoreClient storeClient; + + @Resource + private CouponStoreMapper csMapper; + + @Resource + private SiteClient siteClient; + + + /** @@ -82,26 +100,85 @@ String content = userCoupon.get("content").toString(); if (type == 1) {//满减{"num1":1,"num2":1} JSONObject jsonObject = JSON.parseObject(content); - Double num1 = jsonObject.getDouble("num1"); + Double num1 = jsonObject.getDouble("conditionalAmount"); if(price.compareTo(num1) <= 0){ continue; } couponListVo.setUseCondition("满" + num1 + "元可用"); - couponListVo.setFavorable(jsonObject.getDouble("num2") + "元"); + couponListVo.setFavorable(jsonObject.getString("deductionAmount")); } if (type == 2) {//代金券{"num1":1} JSONObject jsonObject = JSON.parseObject(content); - Double num1 = jsonObject.getDouble("num1"); + Double num1 = jsonObject.getDouble("deductionAmount"); + if(num1==null){ + num1=0d; + } if(price.compareTo(num1) <= 0){ continue; } couponListVo.setUseCondition(""); - couponListVo.setFavorable(num1 + "元"); + couponListVo.setFavorable(num1 + ""); } if (type == 3) {//体验券{"num1":1} JSONObject jsonObject = JSON.parseObject(content); couponListVo.setUseCondition(""); - couponListVo.setFavorable(jsonObject.getString("num1")); + couponListVo.setFavorable(jsonObject.getString("experienceName")); + } + listVos.add(couponListVo); + } + return listVos; + } + + + /** + * 获取预约场地可用优惠券列表 + * @param siteId + * @param price + * @return + * @throws Exception + */ + @Override + public List<CouponListVo> querySiteCouponList(Integer uid, Integer siteId, Double price, String lon, String lat) throws Exception { + Site site = siteClient.querySiteById(siteId); + Integer storeId = site.getStoreId(); + Map<String, String> geocode = gdMapGeocodingUtil.geocode(lon, lat); + String provinceCode = geocode.get("provinceCode"); + String cityCode = geocode.get("cityCode"); + List<Map<String, Object>> userCoupons = this.baseMapper.queryAvailableCouponList(uid, storeId, provinceCode, cityCode); + List<CouponListVo> listVos = new ArrayList<>(); + for (Map<String, Object> userCoupon : userCoupons) { + Integer type = Integer.valueOf(userCoupon.get("type").toString()); + CouponListVo couponListVo = new CouponListVo(); + couponListVo.setId(Long.valueOf(userCoupon.get("id").toString())); + couponListVo.setName(userCoupon.get("name").toString()); + couponListVo.setType(type); + couponListVo.setEffectiveTime(userCoupon.get("endTime").toString()); + String content = userCoupon.get("content").toString(); + if (type == 1) {//满减{"num1":1,"num2":1} + JSONObject jsonObject = JSON.parseObject(content); + Double num1 = jsonObject.getDouble("conditionalAmount"); + if(price.compareTo(num1) <= 0){ + continue; + } + couponListVo.setUseCondition("满" + num1 + "元可用"); + couponListVo.setFavorable(jsonObject.getString("deductionAmount")); + } + if (type == 2) {//代金券{"num1":1} + JSONObject jsonObject = JSON.parseObject(content); + Double num1 = jsonObject.getDouble("deductionAmount"); + if(num1==null){ + num1=0d; + } + if(price.compareTo(num1) <= 0){ + continue; + } + couponListVo.setUseCondition(""); + couponListVo.setFavorable(num1 + ""); + } + if (type == 3) {//体验券{"num1":1} + JSONObject jsonObject = JSON.parseObject(content); + couponListVo.setUseCondition(""); + couponListVo.setFavorable(jsonObject.getString("experienceName")); } listVos.add(couponListVo); } @@ -113,16 +190,9 @@ 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); + List<UserCoupon> userCoupons = this.baseMapper.selectList(new QueryWrapper<UserCoupon>() + .eq("userId",appUser.getId() ) + .orderByDesc("insertTime")); if (userCoupons.size() > 0){ for (UserCoupon userCoupon : userCoupons) { Coupon coupon = couponMapper.selectById(userCoupon.getCouponId()); @@ -141,7 +211,10 @@ break; case 3: packageResp.setAvailable("指定门店可用"); - packageResp.setCityOrStore(""); + CouponStore couponStore = csMapper.selectOne(new QueryWrapper<CouponStore>() + .eq("couponId",coupon.getId())); + StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStore.getStoreId()); + packageResp.setCityOrStore(courseOfStore.getStoreName()+","+courseOfStore.getStoreAddr()); break; default: break; @@ -151,16 +224,17 @@ JSONObject jsonObject = JSON.parseObject(coupon.getContent()); switch (coupon.getType()) { case 1: +// {"conditionalAmount":50,"deductionAmount":10,"experienceName":""} // 满减券 - Double num1 = jsonObject.getDouble("num1"); - Double num2 = jsonObject.getDouble("num2"); + 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("num1"); + Double jsonObjectDouble = jsonObject.getDouble("conditionalAmount"); ruleModel.setConditionalAmount(""); ruleModel.setDeductionAmount("¥ "+jsonObjectDouble); ruleModel.setExperienceName(""); @@ -169,14 +243,16 @@ // 体验券 ruleModel.setConditionalAmount(""); ruleModel.setDeductionAmount(""); - ruleModel.setExperienceName(jsonObject.getString("num1")); + ruleModel.setExperienceName(jsonObject.getString("experienceName")); 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); -- Gitblit v1.7.1