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,11 +530,10 @@ ); order.setRefundPrice(refundPrice); order.setRefundTime(new Date()); } this.mallOrderService.updateById(order); //退回库存 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)); @@ -544,7 +546,32 @@ 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); 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);