From 2a2f435d52d358cba6e239e29b586777678c2baf Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 14 一月 2025 14:22:25 +0800
Subject: [PATCH] 修改bug
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 105 insertions(+), 9 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 1889c68..eb913c4 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
@@ -1,5 +1,6 @@
package com.ruoyi.other.service.impl;
+import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -86,16 +87,17 @@
private GoodsBargainPriceDetailService goodsBargainPriceDetailService;
@Resource
private OrderClient orderClient;
+ @Resource
+ private GoodsEvaluateService goodsEvaluateService;
@Override
public PageInfo<GoodsVO> goodsList(Goods search) {
- PageInfo<GoodsVO> pageInfo = new PageInfo(search.getPageCurr(), search.getPageSize());
Integer vipId = 0;
- String provinceCode = null;
- String cityCode = null;
- String districtCode = null;
+ String provinceCode = "0";
+ String cityCode = "0";
+ String districtCode = "0";
String token = SecurityUtils.getToken(ServletUtils.getRequest());
if(StringUtils.isNotEmpty(token)){
Long userid = tokenService.getLoginUserApplet().getUserid();
@@ -105,7 +107,7 @@
cityCode = appUser.getCityCode();
districtCode = appUser.getDistrictCode();
}
- List<GoodsVO> list = this.baseMapper.goodsList(pageInfo, search.getGoodsCategoryId(), search.getName(), vipId);
+ List<GoodsVO> list = this.baseMapper.goodsList(search.getGoodsCategoryId(), search.getName(), vipId);
for (GoodsVO goods : list) {
Price price = getPrice(vipId, goods.getGoodsId(), null, 1, provinceCode, cityCode, districtCode);
if(null != price){
@@ -116,6 +118,66 @@
}
Integer data = orderClient.getGoodsSaleNum(goods.getGoodsId(), 1).getData();
goods.setSaleNum(data);
+ }
+
+ //手动排序
+ if(StringUtils.isNotEmpty(search.getOrderByColumn())){
+ if("selling_price".equals(search.getOrderByColumn())){
+ list.sort(new Comparator<GoodsVO>() {
+ @Override
+ public int compare(GoodsVO o1, GoodsVO o2) {
+ if(null != o1.getSellingPrice() && null != o2.getSellingPrice()){
+ return o1.getSellingPrice().compareTo(o2.getSellingPrice()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ if(null == o1.getSellingPrice() && null != o2.getSellingPrice()){
+ return BigDecimal.ZERO.compareTo(o2.getSellingPrice()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ if(null != o1.getSellingPrice() && null == o2.getSellingPrice()){
+ return o1.getSellingPrice().compareTo(BigDecimal.ZERO) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ return 0;
+ }
+ });
+ }
+ if("integral".equals(search.getOrderByColumn())){
+ list.sort(new Comparator<GoodsVO>() {
+ @Override
+ public int compare(GoodsVO o1, GoodsVO o2) {
+ if(null != o1.getIntegral() && null != o2.getIntegral()){
+ return o1.getIntegral().compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ if(null == o1.getIntegral() && null != o2.getIntegral()){
+ return Integer.valueOf(0).compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ if(null != o1.getIntegral() && null == o2.getIntegral()){
+ return o1.getIntegral().compareTo(Integer.valueOf(0)) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ return 0;
+ }
+ });
+ }
+ if("sale_num".equals(search.getOrderByColumn())){
+ list.sort(new Comparator<GoodsVO>() {
+ @Override
+ public int compare(GoodsVO o1, GoodsVO o2) {
+ return o1.getSaleNum().compareTo(o2.getSaleNum()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ }
+ });
+ }
+ }
+ //手动处理分页
+ PageInfo<GoodsVO> pageInfo = new PageInfo<>();
+ pageInfo.setSize(search.getPageSize());
+ pageInfo.setTotal(list.size());
+ Integer pageSize = search.getPageSize();
+ Integer pageNum = (search.getPageCurr() - 1) * pageSize;
+
+ if(list.size() >= (pageNum + 1) * pageSize){
+ list = list.subList(pageNum, pageNum + pageSize);
+ }else if(pageNum < list.size() && list.size() < (pageNum + 1) * pageSize){
+ list = list.subList(pageNum, list.size());
+ }else{
+ list = new ArrayList<>();
}
return pageInfo.setRecords(list);
}
@@ -141,6 +203,15 @@
}
Goods goods = this.getById(goodsId);
+ if(null == goods || goods.getDelFlag() == 1){
+ throw new RuntimeException("商品不存在");
+ }
+ if(goods.getStatus() == 1){
+ throw new RuntimeException("商品已被下架");
+ }
+ if(!goods.getCommodityAuthority().contains("-1") && !goods.getCommodityAuthority().contains(vipId.toString())){
+ throw new RuntimeException("权限不足");
+ }
GoodsVO goodsVO = new GoodsVO();
BeanUtils.copyBeanProp(goodsVO, goods);
goodsVO.setGoodsId(goods.getId());
@@ -189,6 +260,18 @@
}
Integer integer = orderClient.getGoodsSaleNum(goods.getId(), 1).getData();
goodsVO.setSaleNum(integer);
+ GoodsEvaluate goodsEvaluate = goodsEvaluateService.lambdaQuery().eq(GoodsEvaluate::getGoodsId, goodsId).ne(GoodsEvaluate::getComment, "")
+ .orderByDesc(GoodsEvaluate::getGrade).eq(GoodsEvaluate::getStatus, 2).isNotNull(GoodsEvaluate::getComment)
+ .eq(GoodsEvaluate::getDelFlag, 0).last(" limit 0, 1").one();
+ if (null != goodsEvaluate) {
+ AppUser appUserById = appUserClient.getAppUserById(goodsEvaluate.getAppUserId());
+ if(null != appUserById){
+ goodsEvaluate.setUserName(appUserById.getName());
+ goodsEvaluate.setAvatar(appUserById.getAvatar());
+ goodsEvaluate.setIdStr(String.valueOf(goodsEvaluate.getId()));
+ }
+ }
+ goodsVO.setGoodsEvaluate(goodsEvaluate);
return goodsVO;
}
@@ -225,7 +308,12 @@
@Override
public IPage<Goods> getManageGoodsList(Page<Goods> page, Goods goods) {
- return goodsMapper.selectManageGoodsList(page, goods);
+ IPage<Goods> goodsIPage = goodsMapper.selectManageGoodsList(page, goods);
+ goodsIPage.getRecords().forEach(goods1 -> {
+ Integer data = orderClient.getGoodsSaleNum(goods1.getId(), 1).getData();
+ goods1.setSaleNum(data);
+ });
+ return goodsIPage;
}
@Override
@@ -265,7 +353,10 @@
@Override
public void updateManageGoods(Goods goods) {
- goodsMapper.updateById(goods);
+ this.updateById(goods);
+ //修改个别字段
+ this.update(new LambdaUpdateWrapper<Goods>().eq(Goods::getId, goods.getId()).set(Goods::getSellingPrice, goods.getSellingPrice())
+ .set(Goods::getIntegral, goods.getIntegral()));
// 指定门店
List<GoodsShop> goodsShopList = goods.getGoodsShopList();
saveGoodsShopList(goodsShopList, goods.getId());
@@ -283,6 +374,10 @@
saveGoodsAreaList(goodsAreaList, goods.getId());
}
+
+
+
+
private void saveGoodsAreaList(List<GoodsArea> goodsAreaList, Integer id) {
goodsAreaService.remove(new LambdaQueryWrapper<GoodsArea>()
.eq(GoodsArea::getGoodsId, id));
@@ -299,7 +394,7 @@
area.setProvinceCode(goodsArea.getProvinceCode());
area.setCityCode(goodsArea.getCityCode());
area.setDistrictsCode(goodsArea.getDistrictsCode());
- if(null != area.getSellingPrice() && null != area.getIntegral()){
+ if(null != area.getSellingPrice() || null != area.getIntegral()){
goodsAreaList2.add(area);
}
}
@@ -323,7 +418,7 @@
.eq(GoodsAppUser::getGoodsId, id));
if (!CollectionUtils.isEmpty(goodsAppUserList)){
for (GoodsAppUser goodsAppUser : goodsAppUserList) {
- goodsAppUser.setId(null );
+ goodsAppUser.setId(null);
goodsAppUser.setGoodsId(id);
}
}
@@ -370,6 +465,7 @@
List<AppUser> appUsers = appUserClient.listByIds(userIds);
for (GoodsAppUser goodsAppUser : goodsAppUserList) {
appUsers.stream().filter(u -> u.getId().equals(goodsAppUser.getAppUserId())).findFirst().ifPresent( u -> {
+ goodsAppUser.setAppUserIdStr(goodsAppUser.getAppUserId().toString());
goodsAppUser.setUserName(u.getName());
goodsAppUser.setPhone(u.getPhone());
VipSetting vipSetting = vipSettingService.getById(u.getVipId());
--
Gitblit v1.7.1