From ab4ea7b8f10c9b66aed9c2ea161a08b25c3851a7 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期二, 30 四月 2024 19:11:37 +0800 Subject: [PATCH] 2024.04新增内容 --- meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java | 42 ++++++++++++++++++++++++++++++++++++------ 1 files changed, 36 insertions(+), 6 deletions(-) diff --git a/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java b/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java index 95bfb7b..e6b50bc 100644 --- a/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java +++ b/meiya-admin/src/main/java/com/sinata/modular/mall/controller/MallOrderController.java @@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.toolkit.CollectionUtils; import com.google.common.collect.Lists; import com.sinata.common.enums.EnumCityRole; import com.sinata.common.enums.EnumMemberGrade; @@ -32,9 +33,14 @@ import com.sinata.modular.member.model.MemUserRelation; import com.sinata.modular.member.service.IMemUserRelationService; import com.sinata.modular.member.service.IMemUserService; +import com.sinata.modular.system.model.Role; import com.sinata.modular.system.service.IMyCouponService; +import com.sinata.modular.system.service.IRoleService; +import java.util.Map; +import java.util.Set; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; +import org.springframework.transaction.annotation.Transactional; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; @@ -88,7 +94,10 @@ @Resource private IMallOrderDetailGroupSpecService mallOrderDetailGroupSpecService; - + @Resource + private IRoleService roleService; + @Resource + private IMallGoodsSkuService mallGoodsSkuService; private MallOrder selectById(String orderNo) { return this.mallOrderService.selectOne(new EntityWrapper<MallOrder>() @@ -377,12 +386,18 @@ try { // 【城市管理员】数据查询 ShiroUser shiroUser = ShiroKit.getUser(); - if (shiroUser.getRoleList().contains(EnumCityRole.PROVINCE_ROLE.index)) { - // 省级城市管理员 - wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 2), SqlLike.RIGHT); - } else if (shiroUser.getRoleList().contains(EnumCityRole.CITY_ROLE.index)) { + List<Integer> roleList = shiroUser.getRoleList(); + List<Integer> cityRoleList = roleService.selectList( + new EntityWrapper<Role>().in("id", roleList)).stream().map(Role::getCityRole) + .collect( + Collectors.toList()); + if (cityRoleList.contains(EnumCityRole.CITY_ROLE.index)) { // 市级城市管理员 wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 4), SqlLike.RIGHT); + } + else if (cityRoleList.contains(EnumCityRole.PROVINCE_ROLE.index)) { + // 省级城市管理员 + wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 2), SqlLike.RIGHT); } } catch (Exception e) { e.printStackTrace(); @@ -484,6 +499,7 @@ */ @ResponseBody @RequestMapping(value = "/orderShip") + @Transactional(rollbackFor = Exception.class) public Object orderShip(String orderNo, Integer expressCompany) { MallOrder order = this.mallOrderService.selectOne( new EntityWrapper<MallOrder>() @@ -514,7 +530,21 @@ } 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; } } -- Gitblit v1.7.1