From 441e9b38477832f312b23b840a8af3464e89b663 Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 16 一月 2025 16:03:42 +0800
Subject: [PATCH] Merge branch 'master' of http://120.76.84.145:10101/gitblit/r/java/qijisheng
---
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsServiceImpl.java | 103 +++++++++++++++++++++++++++++++++++----------------
1 files changed, 70 insertions(+), 33 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 5c48683..57eb8ab 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
@@ -92,6 +92,8 @@
+
+
@Override
public PageInfo<GoodsVO> goodsList(Goods search) {
Integer vipId = 0;
@@ -127,13 +129,13 @@
@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);
+ return o1.getSellingPrice().compareTo(o2.getSellingPrice()) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
}
if(null == o1.getSellingPrice() && null != o2.getSellingPrice()){
- return BigDecimal.ZERO.compareTo(o2.getSellingPrice()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ return BigDecimal.ZERO.compareTo(o2.getSellingPrice()) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
}
if(null != o1.getSellingPrice() && null == o2.getSellingPrice()){
- return o1.getSellingPrice().compareTo(BigDecimal.ZERO) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ return o1.getSellingPrice().compareTo(BigDecimal.ZERO) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
}
return 0;
}
@@ -144,13 +146,13 @@
@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);
+ return o1.getIntegral().compareTo(o2.getIntegral()) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
}
if(null == o1.getIntegral() && null != o2.getIntegral()){
- return Integer.valueOf(0).compareTo(o2.getIntegral()) * (StringUtils.isNotEmpty(search.getIsAsc()) ? -1 : 1);
+ return Integer.valueOf(0).compareTo(o2.getIntegral()) * ("desc".equals(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 o1.getIntegral().compareTo(Integer.valueOf(0)) * ("desc".equals(search.getIsAsc()) ? -1 : 1);
}
return 0;
}
@@ -160,30 +162,42 @@
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);
+ return o1.getSaleNum().compareTo(o2.getSaleNum()) * ("desc".equals(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<>();
+ int pageSize = search.getPageSize();
+ int pageCurr = search.getPageCurr();
+
+ // 计算起始索引
+ int pageNum = (pageCurr - 1) * pageSize;
+
+ // 检查 pageNum 是否合法
+ if (pageNum < 0 || pageNum >= list.size()) {
+ // 如果 pageNum 不合法,返回空列表
+ pageInfo.setRecords(new ArrayList<>());
+ return pageInfo;
}
- return pageInfo.setRecords(list);
+
+ // 计算结束索引
+ int endIndex = Math.min(pageNum + pageSize, list.size());
+
+ // 获取分页数据
+ List<GoodsVO> pageList = list.subList(pageNum, endIndex);
+
+ // 设置分页结果
+ pageInfo.setRecords(pageList);
+ return pageInfo;
}
@Override
- public GoodsVO goodsDetail(Long goodsId, String longitude, String latitude) {
+ public GoodsVO goodsDetail(Long goodsId, Integer shopId, String longitude, String latitude) {
if (goodsId == null || goodsId <= 0) {
throw new NullPointerException("商品ID不能为空");
}
@@ -216,7 +230,7 @@
BeanUtils.copyBeanProp(goodsVO, goods);
goodsVO.setGoodsId(goods.getId());
goodsVO.setGoodsName(goods.getName());
- Price price = getPrice(vipId, goods.getId(), null, 1, provinceCode, cityCode, districtCode);
+ Price price = getPrice(vipId, goods.getId(), shopId, 1, provinceCode, cityCode, districtCode);
if(null != price){
goodsVO.setPointPayment(price.getPointPayment() ? 1 : 0);
goodsVO.setCashPayment(price.getCashPayment() ? 1 : 0);
@@ -260,7 +274,7 @@
}
Integer integer = orderClient.getGoodsSaleNum(goods.getId(), 1).getData();
goodsVO.setSaleNum(integer);
- GoodsEvaluate goodsEvaluate = goodsEvaluateService.lambdaQuery().eq(GoodsEvaluate::getGoodsId, goodsId)
+ 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) {
@@ -279,9 +293,9 @@
@Override
public List<Goods> getGoodsListByShopId(PageInfo<Goods> pageInfo, Integer shopId) {
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();
@@ -308,7 +322,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
@@ -389,9 +408,10 @@
area.setProvinceCode(goodsArea.getProvinceCode());
area.setCityCode(goodsArea.getCityCode());
area.setDistrictsCode(goodsArea.getDistrictsCode());
- if(null != area.getSellingPrice() && null != area.getIntegral()){
- goodsAreaList2.add(area);
- }
+// if(null != area.getSellingPrice() || null != area.getIntegral()){
+// goodsAreaList2.add(area);
+// }
+ goodsAreaList2.add(area);
}
goodsAreaService.saveBatch(goodsAreaList2);
}
@@ -567,20 +587,37 @@
if(null == bargainPriceDetail){
//没有门店特价,判断地区价格配置
LambdaQueryWrapper<GoodsArea> queryWrapper = new LambdaQueryWrapper<GoodsArea>().eq(GoodsArea::getGoodsId, goodsId).eq(GoodsArea::getVip, vip);
- if(StringUtils.isNotEmpty(districtCode)){
- queryWrapper.eq(GoodsArea::getDistrictsCode, districtCode);
+ if(StringUtils.isNotEmpty(provinceCode)){
+ queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode);
}
if(StringUtils.isNotEmpty(cityCode)){
queryWrapper.eq(GoodsArea::getCityCode, cityCode);
}
- if(StringUtils.isNotEmpty(provinceCode)){
- queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode);
+ if(StringUtils.isNotEmpty(districtCode)){
+ queryWrapper.eq(GoodsArea::getDistrictsCode, districtCode);
}
GoodsArea goodsArea = goodsAreaService.getOne(queryWrapper);
- if(null == goodsArea){
+ if(goodsArea == null){
+ queryWrapper = new LambdaQueryWrapper<GoodsArea>().eq(GoodsArea::getGoodsId, goodsId).eq(GoodsArea::getVip, vip);
+ if(StringUtils.isNotEmpty(provinceCode)){
+ queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode);
+ }
+ if(StringUtils.isNotEmpty(cityCode)){
+ queryWrapper.eq(GoodsArea::getCityCode, cityCode);
+ }
+ goodsArea = goodsAreaService.getOne(queryWrapper);
+ }
+ if(goodsArea == null){
+ queryWrapper = new LambdaQueryWrapper<GoodsArea>().eq(GoodsArea::getGoodsId, goodsId).eq(GoodsArea::getVip, vip);
+ if(StringUtils.isNotEmpty(provinceCode)){
+ queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode);
+ }
+ goodsArea = goodsAreaService.getOne(queryWrapper);
+ }
+ if(null == goodsArea || (null == goodsArea.getCashPayment() && null == goodsArea.getPointPayment())){
//没有地区价格,则使用会员价格
GoodsVip goodsVip = goodsVipService.getOne(new LambdaQueryWrapper<GoodsVip>().eq(GoodsVip::getGoodsId, goodsId).eq(GoodsVip::getVip, vip));
- if(null == goodsVip){
+ if(null == goodsVip || (null == goodsVip.getCashPayment() && null == goodsVip.getPointPayment())){
//没有配置价格,直接使用原始基础价格
return null;
}else{
--
Gitblit v1.7.1