Pu Zhibing
2025-03-26 cbf2486983b77a27af9968bbb362cb8d43789115
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;
@@ -122,18 +124,18 @@
        //手动排序
        if(StringUtils.isNotEmpty(search.getOrderByColumn())){
            if("selling_price".equals(search.getOrderByColumn())){
            if("tgs.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);
                            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,7 +162,7 @@
                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);
                    }
                });
            }
@@ -291,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();
@@ -406,6 +408,8 @@
                    area.setProvinceCode(goodsArea.getProvinceCode());
                    area.setCityCode(goodsArea.getCityCode());
                    area.setDistrictsCode(goodsArea.getDistrictsCode());
                    area.setSuperiorType("2");
                    area.setSuperiorPriceType("2");
//                    if(null != area.getSellingPrice() || null != area.getIntegral()){
//                        goodsAreaList2.add(area);
//                    }
@@ -422,6 +426,8 @@
        goodsVipList.forEach(item -> {
            item.setId(null);
            item.setGoodsId(id);
            item.setSuperiorType("2");
            item.setSuperiorPriceType("2");
        });
        goodsVipService.saveBatch(goodsVipList);
    }
@@ -589,16 +595,33 @@
                    queryWrapper.eq(GoodsArea::getProvinceCode, provinceCode);
                }
                if(StringUtils.isNotEmpty(cityCode)){
                    queryWrapper.and(i -> i.eq(GoodsArea::getCityCode, cityCode).or().isNull(GoodsArea::getCityCode));
                    queryWrapper.eq(GoodsArea::getCityCode, cityCode);
                }
                if(StringUtils.isNotEmpty(districtCode)){
                    queryWrapper.and(i -> i.eq(GoodsArea::getDistrictsCode, districtCode).or().isNull(GoodsArea::getDistrictsCode));
                    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{
@@ -654,4 +677,5 @@
        }
        return price;
    }
}