| | |
| | | import com.fasterxml.jackson.core.JsonProcessingException; |
| | | import com.fasterxml.jackson.databind.ObjectMapper; |
| | | import com.ruoyi.common.core.constant.SecurityConstants; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.core.enums.*; |
| | | import com.ruoyi.common.core.enums.AuctionOrderTypeEnum; |
| | | import com.ruoyi.common.core.enums.ListingStatusEnum; |
| | | import com.ruoyi.common.core.enums.MemberVipClassifyEnum; |
| | | import com.ruoyi.common.core.enums.OrderFromEnum; |
| | | import com.ruoyi.common.core.enums.StartStatusEnum; |
| | | import com.ruoyi.common.core.exception.ServiceException; |
| | | import com.ruoyi.common.core.utils.StringUtils; |
| | | import com.ruoyi.common.core.utils.page.BeanUtils; |
| | |
| | | import com.ruoyi.goods.service.IGoodsInfoTitleValueService; |
| | | import com.ruoyi.goods.service.IGoodsSkuService; |
| | | import com.ruoyi.goods.service.IMemberGoodsCollectionService; |
| | | import com.ruoyi.system.api.domain.*; |
| | | import com.ruoyi.system.api.domain.AuctionGoods; |
| | | import com.ruoyi.system.api.domain.AuctionSalesroom; |
| | | import com.ruoyi.system.api.domain.AuctionSalesroomGoods; |
| | | import com.ruoyi.system.api.domain.GoodsBrand; |
| | | import com.ruoyi.system.api.domain.GoodsCategory; |
| | | import com.ruoyi.system.api.domain.GoodsFlavorType; |
| | | import com.ruoyi.system.api.domain.GoodsGroupPurchase; |
| | | import com.ruoyi.system.api.domain.GoodsSeckill; |
| | | import com.ruoyi.system.api.domain.GoodsSeries; |
| | | import com.ruoyi.system.api.domain.GoodsSku; |
| | | import com.ruoyi.system.api.domain.Member; |
| | | import com.ruoyi.system.api.domain.Order; |
| | | import com.ruoyi.system.api.domain.dto.GoodsStockUpdDTO; |
| | | import com.ruoyi.system.api.domain.dto.HomeGoodsSkuDTO; |
| | | import com.ruoyi.system.api.domain.dto.ListStatusDTO; |
| | |
| | | import com.ruoyi.system.api.feignClient.GoodsSkuClient; |
| | | import com.ruoyi.system.api.feignClient.MemberClient; |
| | | import com.ruoyi.system.api.feignClient.OrderClient; |
| | | |
| | | import com.ruoyi.system.api.model.LoginUser; |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | |
| | | } |
| | | |
| | | Page<GoodsSku> page1 = this.page(page, wrapper3); |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | Member member = memberClient.getMemberByUserId(loginUser.getUserid(), |
| | | SecurityConstants.INNER).getData(); |
| | | // 用户已登录 有会员等级 会员等级不为普通用户 则获取会员价格 |
| | | if (SecurityUtils.isLogin() && Objects.nonNull(member.getVipClassify()) |
| | | && !member.getVipClassify().equals(MemberVipClassifyEnum.NORMAL.getCode())) { |
| | | for (GoodsSku record : page1.getRecords()) { |
| | | // 获取会员价格 |
| | | BigDecimal vipPrice = getVipPrice(record.getId()); |
| | | BigDecimal vipPrice = getVipPrice(record.getId(), member.getVipClassify()); |
| | | record.setPrice(vipPrice); |
| | | } |
| | | } |
| | | |
| | | return PageDTO.of(page1, HomeGoodsSkuListVO.class); |
| | | |
| | | } |
| | |
| | | homeGoodsSkuInfoVO.setDescription(byId.getDescription()); |
| | | homeGoodsSkuInfoVO.setStock(byId.getStock()); |
| | | homeGoodsSkuInfoVO.setDetail(byId.getDetail()); |
| | | |
| | | homeGoodsSkuInfoVO.setPrice(byId.getPrice()); |
| | | if (StringUtils.isBlank(byId.getShareTitle())) { |
| | | homeGoodsSkuInfoVO.setShareTitle(byId.getSkuName()); |
| | | } else { |
| | |
| | | homeGoodsSkuInfoVO.setIsGoodsGroupPurchase(1); |
| | | } |
| | | // 获取会员价格 |
| | | BigDecimal vipPrice = getVipPrice(byId.getId()); |
| | | LoginUser loginUser = SecurityUtils.getLoginUser(); |
| | | Member member = memberClient.getMemberByUserId(loginUser.getUserid(), |
| | | SecurityConstants.INNER).getData(); |
| | | // 用户已登录 有会员等级 会员等级不为普通用户 则获取会员价格 |
| | | if (SecurityUtils.isLogin() && Objects.nonNull(member.getVipClassify()) |
| | | && !member.getVipClassify().equals(MemberVipClassifyEnum.NORMAL.getCode())) { |
| | | // 获取会员价格 |
| | | BigDecimal vipPrice = getVipPrice(byId.getId(), member.getVipClassify()); |
| | | homeGoodsSkuInfoVO.setPrice(vipPrice); |
| | | } |
| | | |
| | | LambdaQueryWrapper<MemberGoodsCollection> wrapper3= Wrappers.lambdaQuery(); |
| | | wrapper3.eq(MemberGoodsCollection::getDelFlag,0); |
| | |
| | | return homeGoodsSkuInfoVO; |
| | | } |
| | | |
| | | private BigDecimal getVipPrice(Long goodsSkuId){ |
| | | |
| | | if (SecurityUtils.isLogin()) { |
| | | Long userId = SecurityUtils.getUserId(); |
| | | private BigDecimal getVipPrice(Long goodsSkuId, Integer vipClassify) { |
| | | GoodsSku byId = getById(goodsSkuId); |
| | | Member member = memberClient.getMemberByUserId(userId, SecurityConstants.INNER).getData(); |
| | | Integer vipClassify = member.getVipClassify(); |
| | | if (MemberVipClassifyEnum.NORMAL.getCode().equals(vipClassify)) { |
| | | return byId.getPrice(); |
| | | }else if (MemberVipClassifyEnum.VIP.getCode().equals(vipClassify)){ |
| | | return byId.getVipPrice(); |
| | | BigDecimal price = BigDecimal.ZERO; |
| | | if (MemberVipClassifyEnum.VIP.getCode().equals(vipClassify)) { |
| | | price = byId.getVipPrice(); |
| | | }else if (MemberVipClassifyEnum.SUPER_VIP.getCode().equals(vipClassify)){ |
| | | return byId.getSuperVipPrice(); |
| | | price = byId.getSuperVipPrice(); |
| | | } |
| | | }else { |
| | | return getById(goodsSkuId).getPrice(); |
| | | } |
| | | throw new ServiceException("会员等级错误"); |
| | | return price; |
| | | } |
| | | |
| | | @Override |