From be5fd186b0dfbc4ac3645a94ea6ac2dc00c0cee7 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Thu, 14 Nov 2024 16:02:22 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=B8=82=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storegoods/vo/StoreSaleGoodsPageVO.java | 1 + .../app/store/AppStoreController.java | 18 +++++++++++++-- .../app/store/vo/StoreGoodsListVo.java | 5 +++++ .../StoreGoodsInventoryService.java | 4 ++++ .../StoreGoodsInventoryServiceImpl.java | 22 ++++++++++++++++--- .../storesalegoods/StoreSaleGoodsService.java | 2 +- .../StoreSaleGoodsServiceImpl.java | 8 ++----- .../module/member/util/QRCodeWithJWTUtil.java | 4 ++-- .../yudao/module/member/util/SmsUtil.java | 2 +- .../storesalegoods/StoreSaleGoodsMapper.xml | 2 +- 10 files changed, 52 insertions(+), 16 deletions(-) diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreSaleGoodsPageVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreSaleGoodsPageVO.java index 6cb76f30..93640c11 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreSaleGoodsPageVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoods/vo/StoreSaleGoodsPageVO.java @@ -41,4 +41,5 @@ public class StoreSaleGoodsPageVO extends PageParam { private Integer number; + private String img; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java index 7da720bd..0e4cf3ee 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/AppStoreController.java @@ -21,11 +21,13 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.enums.StoreOrderStatusEnum; import cn.iocoder.yudao.module.member.service.async.MemberAsyncService; import cn.iocoder.yudao.module.member.service.storegoods.StoreGoodsService; +import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; import cn.iocoder.yudao.module.member.service.storegoodstype.StoreGoodsTypeService; import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; import cn.iocoder.yudao.module.member.service.storesalegoods.StoreSaleGoodsService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; +import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import lombok.extern.slf4j.Slf4j; @@ -40,6 +42,7 @@ import javax.annotation.Resource; import javax.annotation.security.PermitAll; import java.util.HashMap; import java.util.List; +import java.util.Map; @Tag(name = "用户 APP - 超市") @RestController @@ -62,6 +65,10 @@ public class AppStoreController { private StoreOrderDetailService orderDetailService; @Resource private MemberAsyncService memberAsyncService; + @Resource + private CashregisterinfoApi cashregisterinfoApi; + @Resource + private StoreGoodsInventoryService storeGoodsInventoryService; @GetMapping("/mgcr/memberUser/getMenberTwoList") @Operation(summary = "获取用户关联信息") @@ -113,14 +120,21 @@ public class AppStoreController { goodsResult.setSuccess(true); goodsResult.setMessage("操作成功"); - - List goodsIds = saleGoodsService.getGoodsIds(equipmentCode); + Long storeId = cashregisterinfoApi.getStoreId(equipmentCode); + List goodsIds = saleGoodsService.getGoodsIds(storeId); if(CollectionUtil.isEmpty(goodsIds)){ return JsonUtils.toJsonString(goodsResult); } List goodsDOS = storeGoodsService.getAll(goodsIds); List goodsTypeDOS = goodsTypeService.getAll(); List goodData = BeanUtils.toBean(goodsDOS, StoreGoodsListVo.class); + + //库存处理 + Map inventoryList = storeGoodsInventoryService.getInventoryList(goodsIds, storeId); + for (StoreGoodsListVo listVo:goodData){ + listVo.setNumber(inventoryList.get(listVo.getGoodsId())); + } + List categoryData = BeanUtils.toBean(goodsTypeDOS, StoreGoodsTypeListVo.class); goodsResult.setCategoryData(categoryData); goodsResult.setGoodsData(goodData); diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java index 46de2d1d..1b59301f 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/store/vo/StoreGoodsListVo.java @@ -19,4 +19,9 @@ public class StoreGoodsListVo { */ private Double price; + /** + * 价格 + */ + private Integer number; + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryService.java index 9d39763b..97adbed5 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryService.java @@ -7,6 +7,8 @@ import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.St import cn.iocoder.yudao.module.member.dal.dataobject.storegoodsinventory.StoreGoodsInventoryDO; import javax.validation.Valid; +import java.util.List; +import java.util.Map; /** * 商品库存 Service 接口 @@ -64,4 +66,6 @@ public interface StoreGoodsInventoryService { Integer getInventory(Integer goodsId,Long carteenId); + + Map getInventoryList(List goodsIds, Long carteenId); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java index 43078656..937ef9dc 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storegoodsinventory/StoreGoodsInventoryServiceImpl.java @@ -2,6 +2,7 @@ package cn.iocoder.yudao.module.member.service.storegoodsinventory; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; +import cn.iocoder.yudao.framework.common.exception.ErrorCode; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; @@ -21,11 +22,12 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Valid; +import java.util.Collections; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_INVENTORY_NOT_ENOUGH; import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_INVENTORY_NOT_EXISTS; /** @@ -70,10 +72,12 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic } StoreGoodsInventoryDO storeGoodsInventoryDO = storeGoodsInventoryDOS.get(0); if (storeGoodsInventoryDO.getNumber() < vo.getNumber()) { - throw exception(STORE_GOODS_INVENTORY_NOT_ENOUGH); + StoreGoodsDO storeGoodsDO = storeGoodsMapper.selectById(storeGoodsInventoryDO.getGoodsId()); + throw exception(new ErrorCode(1_004_019_001, storeGoodsDO.getGoodsName()+"商品库存不足")); } if (storeGoodsInventoryDO.getWeight() < vo.getWeight()) { - throw exception(STORE_GOODS_INVENTORY_NOT_ENOUGH); + StoreGoodsDO storeGoodsDO = storeGoodsMapper.selectById(storeGoodsInventoryDO.getGoodsId()); + throw exception(new ErrorCode(1_004_019_001, storeGoodsDO.getGoodsName()+"商品库存不足")); } storeGoodsInventoryDO.setNumber(storeGoodsInventoryDO.getNumber() - vo.getNumber()); storeGoodsInventoryDO.setWeight(storeGoodsInventoryDO.getWeight() - vo.getWeight()); @@ -159,4 +163,16 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic } return 0; } + + @Override + public Map getInventoryList(List goodsIds, Long carteenId) { + List list = storeGoodsInventoryMapper.selectList(Wrappers.lambdaQuery() + .in(StoreGoodsInventoryDO::getGoodsId, goodsIds) + .eq(StoreGoodsInventoryDO::getCarteenId, carteenId)); + if (CollectionUtil.isNotEmpty(list)) { + return list.stream().collect(Collectors.toMap(StoreGoodsInventoryDO::getGoodsId,StoreGoodsInventoryDO::getNumber)); + } + + return Collections.emptyMap(); + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java index 264d3139..d2c79821 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsService.java @@ -57,5 +57,5 @@ public interface StoreSaleGoodsService { Boolean bindGoods(StoreSaleGoodsDto dto); - List getGoodsIds(String equipmentCode); + List getGoodsIds( Long storeId); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java index 4a8292f4..26d40920 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/storesalegoods/StoreSaleGoodsServiceImpl.java @@ -11,7 +11,6 @@ import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreGoodsDto; import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreSaleGoodsDto; import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper; -import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -42,8 +41,7 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { private StoreSaleGoodsMapper storeSaleGoodsMapper; @Resource private CashregisterinfoApi cashregisterinfoApi; - @Resource - private StoreGoodsInventoryService storeGoodsInventoryService; + @Override @Transactional(rollbackFor = Exception.class) @@ -127,9 +125,7 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { } @Override - public List getGoodsIds(String equipmentCode) { - - Long storeId = cashregisterinfoApi.getStoreId(equipmentCode); + public List getGoodsIds(Long storeId) { List storeSaleGoodsDOS = storeSaleGoodsMapper.selectList(new LambdaQueryWrapper().eq(StoreSaleGoodsDO::getCarteenId, storeId)); if (CollectionUtil.isEmpty(storeSaleGoodsDOS)) { diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java index 26f47e7b..0060909c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/QRCodeWithJWTUtil.java @@ -18,8 +18,8 @@ import java.util.concurrent.TimeUnit; public class QRCodeWithJWTUtil { private static final String SECRET_KEY = "your_secret_key"; // 使用HS256算法生成秘钥 public static final String BASE_PATH = "qrCodes/"; - public static final String QR_PREFIX_ZF = "ZF_"; - public static final String QR_PREFIX_HX = "HX_"; + public static final String QR_PREFIX_ZF = ""; + public static final String QR_PREFIX_HX = "HX"; // public static void main(String[] args) throws WriterException, IOException { // // 用户ID // Long userId = 123L; diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java index 747d8266..0bf57bfb 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/util/SmsUtil.java @@ -50,6 +50,6 @@ public class SmsUtil { } public static void main(String[] args) { - sendMsg("15723110242","这是一条测试短信2"); + sendMsg("15723110242,15213164384","这是一条测试短信2"); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storesalegoods/StoreSaleGoodsMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storesalegoods/StoreSaleGoodsMapper.xml index 3532cd54..a09dd854 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storesalegoods/StoreSaleGoodsMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/storesalegoods/StoreSaleGoodsMapper.xml @@ -10,7 +10,7 @@ -->