mitao
2024-04-30 c6889419ea24a8df72b654f30b3851f1172e3499
bug修复
7个文件已修改
107 ■■■■■ 已修改文件
meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java 57 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-admin/src/main/java/com/sinata/modular/mall/service/impl/MallGoodsServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-admin/src/main/webapp/static/modular/member/memMerchant/memMerchant_info.js 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java 9 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-rest/src/main/java/com/sinata/rest/modular/mall/dao/mapping/MallGoodsMapper.xml 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-rest/src/main/java/com/sinata/rest/modular/mall/job/UserV3UpDownWork.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-rest/src/main/java/com/sinata/rest/modular/mall/service/impl/MallOrderServiceImpl.java 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java
@@ -5,6 +5,7 @@
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.enums.SqlLike;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
@@ -38,6 +39,7 @@
import com.sinata.modular.system.service.IRoleService;
import java.util.Map;
import java.util.Set;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
@@ -62,6 +64,7 @@
 *
 * @author goku
 */
@Slf4j
@Controller
@RequestMapping("/mallOrder")
public class MallOrderController extends BaseController {
@@ -527,24 +530,48 @@
            );
            order.setRefundPrice(refundPrice);
            order.setRefundTime(new Date());
            //退回库存
            List<MallOrderDetail> orderDetailList = this.mallOrderDetailService.selectList(new EntityWrapper<MallOrderDetail>().eq("order_no", orderNo));
            log.info("----------------------------处理退款回退库存--------------------------");
            log.info("orderDetailList:{}", JSON.toJSONString(orderDetailList));
            if (CollectionUtils.isNotEmpty(orderDetailList)) {
                Map<Integer, MallOrderDetail> orderDetailMap = orderDetailList.stream()
                        .collect(Collectors.toMap(MallOrderDetail::getSkuId, e -> e));
                Set<Integer> skuIdList = orderDetailList.stream().map(MallOrderDetail::getSkuId)
                        .collect(Collectors.toSet());
                List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(
                        new EntityWrapper<MallGoodsSku>().in("id", skuIdList));
                for (MallGoodsSku mallGoodsSku : skuList) {
                    MallOrderDetail mallOrderDetail = orderDetailMap.get(mallGoodsSku.getId());
                    mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderDetail.getGoodsNum());
                    mallGoodsSkuService.updateById(mallGoodsSku);
                }
                //退销量
                Set<Integer> goodsIdList = orderDetailList.stream().map(MallOrderDetail::getGoodsId)
                        .collect(Collectors.toSet());
                Wrapper<MallGoods> wrapper = new EntityWrapper<MallGoods>().in("id", goodsIdList);
                List<MallGoods> mallGoods = mallGoodsService.selectList(wrapper);
                Map<Integer, MallOrderDetail> orderDetailMap2 = orderDetailList.stream()
                        .collect(Collectors.toMap(MallOrderDetail::getGoodsId, e -> e));
                if (CollectionUtils.isNotEmpty(mallGoods)) {
                    for (MallGoods mallGoods1 : mallGoods) {
                        MallOrderDetail mallOrderDetail1 = orderDetailMap2.get(mallGoods1.getId());
                        if (Objects.nonNull(mallOrderDetail1)) {
                            log.info("----------------------------处理退款回退销量--------------------------");
                            log.info("mallGoods1:{}", JSON.toJSONString(mallGoods1));
                            mallGoods1.setBuyCount(mallGoods1.getBuyCount() - mallOrderDetail1.getGoodsNum());
                            mallGoodsService.updateById(mallGoods1);
                        }
                    }
                }
            }
        }
        this.mallOrderService.updateById(order);
        //退回库存
        List<MallOrderDetail> orderDetailList = this.mallOrderDetailService.selectList(new EntityWrapper<MallOrderDetail>().eq("order_no", orderNo));
        if (CollectionUtils.isNotEmpty(orderDetailList)) {
            Map<Integer, MallOrderDetail> orderDetailMap = orderDetailList.stream()
                    .collect(Collectors.toMap(MallOrderDetail::getSkuId, e -> e));
            Set<Integer> skuIdList = orderDetailList.stream().map(MallOrderDetail::getSkuId)
                    .collect(Collectors.toSet());
            List<MallGoodsSku> skuList = mallGoodsSkuService.selectList(
                    new EntityWrapper<MallGoodsSku>().in("id", skuIdList));
            for (MallGoodsSku mallGoodsSku : skuList) {
                MallOrderDetail mallOrderDetail = orderDetailMap.get(mallGoodsSku.getId());
                mallGoodsSku.setStock(mallGoodsSku.getStock() + mallOrderDetail.getGoodsNum());
                mallGoodsSkuService.updateById(mallGoodsSku);
            }
        }
        return SUCCESS_TIP;
    }
}
meiya-admin/src/main/java/com/sinata/modular/mall/service/impl/MallGoodsServiceImpl.java
@@ -103,9 +103,10 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateMallGoods(MallGoods mallGoods) {
        MallGoods goods = this.selectById(mallGoods.getId());
        if (mallGoods != null && mallGoods.getId() != null) {
            // 添加后台消息通知
            addSystemNotice(this.selectById(mallGoods.getId()), mallGoods);
            addSystemNotice(goods, mallGoods);
        }
        // 库存求和
@@ -135,7 +136,6 @@
                    .peek(sku -> {
                        sku.setGoodsId(mallGoods.getId());
                        sku.setPrice(mallGoods.getPrice());
                        sku.setPriceSale(mallGoods.getPriceSale());
                    })
                    .map(MallGoodsSku::getId)
                    .filter(Objects::nonNull)
meiya-admin/src/main/webapp/static/modular/member/memMerchant/memMerchant_info.js
@@ -46,7 +46,6 @@
            this.memMerchantInfoData[key] = ser.join()
        }
    }else if(key =='goodsIds') {
        debugger
        var trList = document.getElementById("product_tbody").getElementsByTagName("tr");
        var  product = [];
        for(var ti = 0;ti < trList.length;ti++){
meiya-rest/src/main/java/com/sinata/rest/modular/mall/controller/MallGoodsGroupController.java
@@ -108,7 +108,13 @@
        List<VoMallOrderEquity> voList = BeanUtil.copyToList(list, VoMallOrderEquity.class);
        voList.stream().map(o -> toVoMallOrderEquity(o, vipEquityList)).collect(Collectors.toList());
        for (VoMallOrderEquity voMallOrderEquity : voList) {
            for (MallOrder mallOrder : list) {
                if (voMallOrderEquity.getOrderNo().equals(mallOrder.getOrderNo())) {
                    voMallOrderEquity.setPriceSale(mallOrder.getPayMoney());
                }
            }
        }
        return ApiUtils.returnOK(voList);
    }
    private VoMallOrderEquity toVoMallOrderEquity(VoMallOrderEquity o,List<MallVipEquity> vipEquityList) {
@@ -129,7 +135,6 @@
        MallGoods goods = mallGoodsService.getById(o.getGoodsId());
        Optional.ofNullable(goods).ifPresent(item ->{
            o.setGoodsName(item.getGoodsName());
            o.setPriceSale(item.getPriceSale());
            o.setGoodsImage(item.getGoodsImage());
        });
        return o;
meiya-rest/src/main/java/com/sinata/rest/modular/mall/dao/mapping/MallGoodsMapper.xml
@@ -166,7 +166,16 @@
        goods.goods_title,goods.group_type,sku.price, sku.price_sale, sku.price_member, IFNULL( orderCount, 0 ) orderCount
        FROM
            mall_goods goods
        LEFT JOIN mall_goods_sku sku ON goods.id = sku.goods_id AND sku.merchant_id = 0
        LEFT JOIN (
        SELECT
        goods_id,price, MIN(price_sale) as price_sale,price_member
        FROM
        mall_goods_sku
        WHERE
        merchant_id = 0
        GROUP BY
        goods_id
        ) sku ON goods.id = sku.goods_id
        LEFT JOIN (
            SELECT
            count( 1 ) orderCount, o.goods_id, county_code
meiya-rest/src/main/java/com/sinata/rest/modular/mall/job/UserV3UpDownWork.java
@@ -67,18 +67,6 @@
            v3UpPlan2();
        }
    }
    @Scheduled(cron = "0 0 17 * * ?")
    public void runTest() {
        log.info("---------------开始执行人员晋升任务-----------------" );
        Integer set_306 = setService.getIntegerById(EnumSystemSetKey.SET_306.index);
        if (set_306 == 1) {
            v3UpPlan2();
        } if (set_306 == 2 && DateUtil.thisDayOfMonth() == 1) {
            v3UpPlan2();
        } if (set_306 == 3 && DateUtil.isSameDay(DateUtil.date(), DateUtil.beginOfQuarter(DateUtil.date()))) {
            v3UpPlan2();
        }
    }
    public void v3Up() {
        // 自然季度开始结束时间
        String beginTime = DateUtil.beginOfQuarter(DateUtil.date()).toString();
meiya-rest/src/main/java/com/sinata/rest/modular/mall/service/impl/MallOrderServiceImpl.java
@@ -242,8 +242,9 @@
                        if(skuVo.getStock() < boSku.getGoodsNum()) {
                            return ApiUtils.returnNG(null, "商品:" + skuVo.getGoodsName() + ",库存不足");
                        }
                        log.info("商品:{},减去库存:{}",skuVo,boSku.getGoodsNum());
                        // 减去库存
                        goodsSkuService.updateStock(skuVo.getSkuId(), -boSku.getGoodsNum());
                        goodsSkuService.updateStock(skuVo.getId(), -1 * boSku.getGoodsNum());
                        // 商品价格
                        BigDecimal sellCost;
@@ -263,15 +264,13 @@
                            }
                        } else {
                            // 套餐商品(优先销售价(门店价存得值),未设置为美天销售价)
                           /* if (skuVo.getPriceMerchant() == null || skuVo.getPriceMerchant().compareTo(BigDecimal.ZERO) <= 0) {
                            if (skuVo.getPriceMerchant() == null || skuVo.getPriceMerchant().compareTo(BigDecimal.ZERO) <= 0) {
                                // 美天销售价
                                sellCost = skuVo.getPriceSale();
                            } else {
                                // 销售价
                                sellCost = skuVo.getPriceMerchant();
                            }*/
                            // 美天销售价
                            sellCost = skuVo.getPriceSale();
                            }
                            // 查询套餐规格组ID
                            MallGroupSpec mallGroupSpec = mallGroupSpecService.getById(skuVo.getSpecIds());
                            List<GroupSpecGoodsSkuJsonVo> groupSpecGoodsSkuJsonVoList = JSONUtil.parseArray(mallGroupSpec.getGoodsSkuJson()).toList(GroupSpecGoodsSkuJsonVo.class);
@@ -536,11 +535,13 @@
                    .select(MallOrderDetail::getSkuId, MallOrderDetail::getGoodsNum)
                    .eq(MallOrderDetail::getOrderNo, orderNo);
            List<MallOrderDetail> orderDetails = orderDetailService.list(orderDetailLambdaQueryWrapper);
            log.info("-----------------------开始退回库存--------------------");
            log.info("orderDetails:{}", JSON.toJSONString(orderDetails));
            for (MallOrderDetail od : orderDetails) {
                // 增加库存
                goodsSkuService.updateStock(od.getSkuId(), od.getGoodsNum());
            }
            log.info("-----------------------退回库存结束--------------------");
            if (order.getCouponId() != null && order.getCouponId() != 0) {
                // 退还优惠券
                myCouponService.updateUseCoupon(order.getUserId(), order.getCouponId(), 0);