diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityShop.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityShop.java index c4e5f6f..34e7391 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityShop.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/domain/ActivityShop.java @@ -89,10 +89,18 @@ public class ActivityShop implements Serializable { * 女生参与价格 */ private BigDecimal joinWomenPrice; + private BigDecimal vip0WomenPrice; + private BigDecimal vip1WomenPrice; + private BigDecimal vip2WomenPrice; + private BigDecimal vip3WomenPrice; /** * 男生参与价格 */ private BigDecimal joinManPrice; + private BigDecimal vip0ManPrice; + private BigDecimal vip1ManPrice; + private BigDecimal vip2ManPrice; + private BigDecimal vip3ManPrice; /** * 必须强制会员参与 */ diff --git a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java index 92f3f83..843cc0e 100644 --- a/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java +++ b/ruoyi-xq/src/main/java/com/ruoyi/xq/service/impl/ActivityShopServiceImpl.java @@ -17,6 +17,7 @@ import com.ruoyi.xq.dto.app.activity.JoinResp; import com.ruoyi.xq.enums.activity.ActivityShopStatusEnum; import com.ruoyi.xq.enums.common.AuditEnum; import com.ruoyi.xq.enums.userinfo.UserGenderEnum; +import com.ruoyi.xq.enums.vip.VipTypeEnum; import com.ruoyi.xq.kit.CodeKit; import com.ruoyi.xq.mapper.ActivityShopMapper; import com.ruoyi.xq.service.*; @@ -219,32 +220,53 @@ public class ActivityShopServiceImpl extends ServiceImpl 0){ // 大于0 - JoinResp resp = new JoinResp(); - resp.setPrice(activityShop.getJoinManPrice()); - resp.setJoinSuccess(false); - resp.setFailCode(3); - resp.setFailText("需要支付"); - return resp; - } - }else if(UserGenderEnum.WOMEN.getCode().equals(user.getGender())){ - if(activityShop.getJoinWomenPrice().compareTo(BigDecimal.ZERO) > 0){ // 大于0 - JoinResp resp = new JoinResp(); - resp.setPrice(activityShop.getJoinWomenPrice()); - resp.setJoinSuccess(false); - resp.setFailCode(3); - resp.setFailText("需要支付"); - return resp; - } - }else{ - throw new ServiceException("用户异常"); + BigDecimal price = getJoinPrice(user,activityShop); + if(price.compareTo(BigDecimal.ZERO) > 0){ + JoinResp resp = new JoinResp(); + resp.setPrice(price); + resp.setJoinSuccess(false); + resp.setFailCode(3); + resp.setFailText("需要支付"); + return resp; } JoinResp resp = new JoinResp(); resp.setJoinSuccess(true); return resp; } + private BigDecimal getJoinPrice(User user, ActivityShop activityShop) { + boolean openVip = BooleanUtils.isTrue(user.getOpenVip()); + Integer vipType = user.getVipType(); + if(UserGenderEnum.MAN.getCode().equals(user.getGender())){ + if(openVip){ + if(VipTypeEnum.THREE.getCode().equals(vipType)){ + return activityShop.getVip3ManPrice(); + }else if(VipTypeEnum.TWO.getCode().equals(vipType)){ + return activityShop.getVip2ManPrice(); + }else{ + return activityShop.getVip1ManPrice(); + } + } else { + return activityShop.getVip0ManPrice(); + } + }else if(UserGenderEnum.WOMEN.getCode().equals(user.getGender())){ + if(openVip){ + if(VipTypeEnum.THREE.getCode().equals(vipType)){ + return activityShop.getVip3WomenPrice(); + }else if(VipTypeEnum.TWO.getCode().equals(vipType)){ + return activityShop.getVip2WomenPrice(); + }else{ + return activityShop.getVip1WomenPrice(); + } + } else { + return activityShop.getVip0WomenPrice(); + } + }else{ + throw new ServiceException("用户异常"); + } + } + + @Autowired private AreaCodeService areaCodeService; @Autowired