From 095021e559ebf541e46d4bee6337d70d8147cb6c Mon Sep 17 00:00:00 2001
From: phpcjl <phpcjl@gmail.com>
Date: 星期四, 05 十二月 2024 10:45:49 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java | 64 ++++++++++++++++++++++++++------
1 files changed, 52 insertions(+), 12 deletions(-)
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
index 43064ab..373e980 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java
@@ -2,20 +2,27 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.account.api.feignClient.AppUserClient;
+import com.ruoyi.account.api.model.AppUser;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.core.utils.bean.BeanUtils;
import com.ruoyi.common.security.service.TokenService;
import com.ruoyi.other.api.domain.Goods;
+import com.ruoyi.other.api.domain.GoodsArea;
+import com.ruoyi.other.api.domain.GoodsVip;
import com.ruoyi.other.api.domain.VipSetting;
import com.ruoyi.other.enums.GoodsStatus;
+import com.ruoyi.other.mapper.GoodsAreaMapper;
import com.ruoyi.other.mapper.GoodsMapper;
import com.ruoyi.other.service.GoodsService;
+import com.ruoyi.other.service.GoodsVipService;
import com.ruoyi.other.service.VipSettingService;
import com.ruoyi.other.vo.GoodsVO;
import com.ruoyi.system.api.model.LoginUser;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@@ -36,12 +43,18 @@
private TokenService tokenService;
@Resource
private VipSettingService vipSettingService;
+ @Resource
+ private GoodsAreaMapper goodsAreaMapper;
+ @Resource
+ private GoodsVipService goodsVipService;
+ @Resource
+ private AppUserClient appUserClient;
@Override
public List<GoodsVO> goodsList(Goods search) {
List<Goods> goodsList = this.list(new LambdaQueryWrapper<Goods>()
.eq(Goods::getStatus, GoodsStatus.UP)
- .eq(Objects.nonNull(search.getGoodsCategoryId()) ,Goods::getGoodsCategoryId, search.getGoodsCategoryId())
+ .eq(Objects.nonNull(search.getGoodsCategoryId()), Goods::getGoodsCategoryId, search.getGoodsCategoryId())
.like(StringUtils.isNotEmpty(search.getName()), Goods::getName, search.getName()));
List<GoodsVO> result = new ArrayList<>();
@@ -55,21 +68,48 @@
@Override
public GoodsVO goodsDetail(Long goodsId) {
- LoginUser loginUserApplet = tokenService.getLoginUserApplet();
- VipSetting vipSetting = vipSettingService.getVipSettingByUserId(loginUserApplet.getUserid());
-
- // TODO 根据会员等级计算价格、积分
- Goods goods = this.getById(goodsId);
- if (Objects.nonNull(goods)){
- GoodsVO goodsVO = new GoodsVO();
- BeanUtils.copyBeanProp(goodsVO, goods);
- return goodsVO;
+ if (goodsId == null || goodsId <= 0) {
+ throw new NullPointerException("商品ID不能为空");
}
- return new GoodsVO();
+
+ LoginUser loginUserApplet = tokenService.getLoginUserApplet();
+ AppUser appUser = appUserClient.getAppUserById(loginUserApplet.getUserid());
+ BigDecimal sellingPrice;
+ Integer integral;
+
+ GoodsArea goodsArea = goodsAreaMapper.selectOne(new LambdaQueryWrapper<GoodsArea>()
+ .eq(GoodsArea::getGoodsId, goodsId)
+ .eq(GoodsArea::getProvinceCode, appUser.getProvinceCode())
+ .eq(StringUtils.isNotEmpty(appUser.getCityCode()), GoodsArea::getCityCode, appUser.getCityCode())
+ .eq(StringUtils.isNotEmpty(appUser.getDistrictCode()), GoodsArea::getDistrictsCode, appUser.getDistrictCode()));
+
+ if (Objects.nonNull(goodsArea)){
+ sellingPrice = goodsArea.getSellingPrice();
+ integral = goodsArea.getIntegral();
+ }else {
+ VipSetting vipSetting = vipSettingService.getVipSettingByUserId(loginUserApplet.getUserid());
+ GoodsVip goodsVip = goodsVipService.getOne(new LambdaQueryWrapper<GoodsVip>()
+ .eq(GoodsVip::getVip, vipSetting.getId())
+ .eq(GoodsVip::getGoodsId, goodsId));
+
+ sellingPrice = goodsVip.getSellingPrice();
+ integral = goodsVip.getIntegral();
+ }
+
+ Goods goods = this.getById(goodsId);
+ GoodsVO goodsVO = new GoodsVO();
+ BeanUtils.copyBeanProp(goodsVO, goods);
+ goodsVO.setSellingPrice(sellingPrice);
+ goodsVO.setIntegral(integral);
+ return goodsVO;
}
+
@Override
public List<Goods> getGoodsListByShopId(Integer shopId) {
- return goodsMapper.selectListByShopId(shopId);
+ LoginUser loginUserApplet = tokenService.getLoginUserApplet();
+ VipSetting vipSetting = vipSettingService.getVipSettingByUserId(loginUserApplet.getUserid());
+ return goodsMapper.selectListByShopId(shopId, vipSetting.getId());
}
+
}
--
Gitblit v1.7.1