From 801e99a7a3132012f22b36c1d3ea0fc8bd9481f4 Mon Sep 17 00:00:00 2001 From: zengtao01 Date: Mon, 11 Nov 2024 17:41:44 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B6=85=E5=B8=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../storegoods/vo/StoreSaleGoodsPageVO.java | 2 + .../StoreGoodsInventoryController.java | 5 +- .../vo/StoreGoodsInventoryPageReqVO.java | 15 +++- .../StoreSaleGoodsController.java | 56 ++++++++------ .../storegoods/AppStoreGoodsController.java | 16 ++++ .../app/storegoods/vo/StoreGoodsVO.java | 54 +++++++++++++ .../StoreGoodsInventoryMapper.java | 7 +- .../StoreGoodsInventoryService.java | 11 +++ .../StoreGoodsInventoryServiceImpl.java | 76 +++++++++++++++---- .../storesalegoods/StoreSaleGoodsService.java | 16 ++-- .../StoreSaleGoodsServiceImpl.java | 58 +++++++++----- .../storesalegoods/StoreSaleGoodsMapper.xml | 3 +- 12 files changed, 248 insertions(+), 71 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/vo/StoreGoodsVO.java 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 b00ca1ac..6cb76f30 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 @@ -39,4 +39,6 @@ public class StoreSaleGoodsPageVO extends PageParam { private Integer goodsId; + private Integer number; + } \ 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/admin/storegoodsinventory/StoreGoodsInventoryController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/StoreGoodsInventoryController.java index 8e74327e..b772072b 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/StoreGoodsInventoryController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/StoreGoodsInventoryController.java @@ -87,7 +87,10 @@ public class StoreGoodsInventoryController { @PreAuthorize("@ss.hasPermission('member:store-goods-inventory:query')") public CommonResult getStoreGoodsInventory(@RequestParam("id") Integer id) { StoreGoodsInventoryDO storeGoodsInventory = storeGoodsInventoryService.getStoreGoodsInventory(id); - return success(BeanUtils.toBean(storeGoodsInventory, StoreGoodsInventoryRespVO.class)); + StoreGoodsInventoryRespVO bean = BeanUtils.toBean(storeGoodsInventory, StoreGoodsInventoryRespVO.class); + StoreGoodsDO storeGoods = storeGoodsService.getStoreGoods(storeGoodsInventory.getGoodsId()); + bean.setGoodsInfo(storeGoods); + return success(bean); } @GetMapping("/page") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/vo/StoreGoodsInventoryPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/vo/StoreGoodsInventoryPageReqVO.java index 200aede4..a4d22bdd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/vo/StoreGoodsInventoryPageReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storegoodsinventory/vo/StoreGoodsInventoryPageReqVO.java @@ -1,11 +1,14 @@ package cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo; -import lombok.*; -import java.util.*; -import io.swagger.v3.oas.annotations.media.Schema; import cn.iocoder.yudao.framework.common.pojo.PageParam; +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.ToString; import org.springframework.format.annotation.DateTimeFormat; + import java.time.LocalDateTime; +import java.util.List; import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; @@ -31,4 +34,10 @@ public class StoreGoodsInventoryPageReqVO extends PageParam { @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) private LocalDateTime[] createTime; + @Schema(description = "商品ID", example = "16735") + private String goodsName; + + @Schema(description = "商品ID", example = "16735") + private List goodsIds; + } \ 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/admin/storesalegoods/StoreSaleGoodsController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java index 23bf5386..70048c20 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/storesalegoods/StoreSaleGoodsController.java @@ -1,33 +1,41 @@ package cn.iocoder.yudao.module.member.controller.admin.storesalegoods; -import org.springframework.web.bind.annotation.*; -import javax.annotation.Resource; -import org.springframework.validation.annotation.Validated; -import org.springframework.security.access.prepost.PreAuthorize; -import io.swagger.v3.oas.annotations.tags.Tag; -import io.swagger.v3.oas.annotations.Parameter; -import io.swagger.v3.oas.annotations.Operation; - -import javax.validation.constraints.*; -import javax.validation.*; -import javax.servlet.http.*; -import java.util.*; -import java.io.IOException; - +import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageParam; import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; -import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; - import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils; - import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; -import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*; - -import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.*; +import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsRespVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; +import cn.iocoder.yudao.module.member.service.async.MemberAsyncService; import cn.iocoder.yudao.module.member.service.storesalegoods.StoreSaleGoodsService; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.Parameter; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.PutMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +import java.util.List; + +import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; +import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; @Tag(name = "管理后台 - 售卖商品") @RestController @@ -37,12 +45,16 @@ public class StoreSaleGoodsController { @Resource private StoreSaleGoodsService storeSaleGoodsService; + @Resource + private MemberAsyncService memberAsyncService; @PostMapping("/create") @Operation(summary = "创建售卖商品(上架)") @PreAuthorize("@ss.hasPermission('member:store-sale-goods:create')") public CommonResult createStoreSaleGoods(@Valid @RequestBody StoreSaleGoodsSaveBatchVO createReqVO) { - return success(storeSaleGoodsService.createStoreSaleGoods(createReqVO)); + AddReqVO storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO); + memberAsyncService.batchRecord(storeSaleGoods); + return success(storeSaleGoods.getList().size()); } @PutMapping("/update") diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java index b6eee364..cbf92ca0 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/AppStoreGoodsController.java @@ -2,8 +2,12 @@ package cn.iocoder.yudao.module.member.controller.app.storegoods; import cn.iocoder.yudao.framework.common.pojo.CommonResult; 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.storegoods.vo.StoreSaleGoodsPageVO; +import cn.iocoder.yudao.module.member.controller.app.storegoods.vo.StoreGoodsVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; import cn.iocoder.yudao.module.member.service.storegoods.StoreGoodsService; +import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; import org.springframework.validation.annotation.Validated; @@ -24,6 +28,8 @@ public class AppStoreGoodsController { @Resource private StoreGoodsService storeGoodsService; + @Resource + private StoreGoodsInventoryService storeGoodsInventoryService; @GetMapping("/page") @@ -33,4 +39,14 @@ public class AppStoreGoodsController { return success(pageResult); } + @GetMapping("/get") + @Operation(summary = "获得商品详情") + public CommonResult getStoreGoods(Integer goodsId,Long carteenId ) { + StoreGoodsDO storeGoods = storeGoodsService.getStoreGoods(goodsId); + StoreGoodsVO bean = BeanUtils.toBean(storeGoods, StoreGoodsVO.class); + Integer inventory = storeGoodsInventoryService.getInventory(goodsId, carteenId); + bean.setInventory(inventory); + return success(bean); + } + } \ 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/storegoods/vo/StoreGoodsVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/vo/StoreGoodsVO.java new file mode 100644 index 00000000..b4b95ed8 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/storegoods/vo/StoreGoodsVO.java @@ -0,0 +1,54 @@ +package cn.iocoder.yudao.module.member.controller.app.storegoods.vo; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * 商品 DO + * + * @author 管理员 + */ + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class StoreGoodsVO extends BaseDO { + + /** + * 编号 + */ + private Integer goodsId; + /** + * 类别Id + */ + private Integer categoryId; + /** + * 商品名称 + */ + private String goodsName; + /** + * 价格 + */ + private Double price; + /** + * 售卖模式 + */ + private Integer salesModel; + /** + * 设备ID + */ + private String equipmentCode; + + /** + * 库存 + */ + private Integer inventory; + + /** + * 图片 + */ + 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/dal/mysql/storegoodsinventory/StoreGoodsInventoryMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoodsinventory/StoreGoodsInventoryMapper.java index a43651f0..98bc19a0 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoodsinventory/StoreGoodsInventoryMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/storegoodsinventory/StoreGoodsInventoryMapper.java @@ -1,13 +1,11 @@ package cn.iocoder.yudao.module.member.dal.mysql.storegoodsinventory; -import java.util.*; - import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.StoreGoodsInventoryPageReqVO; import cn.iocoder.yudao.module.member.dal.dataobject.storegoodsinventory.StoreGoodsInventoryDO; import org.apache.ibatis.annotations.Mapper; -import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.*; /** * 商品库存 Mapper @@ -24,6 +22,7 @@ public interface StoreGoodsInventoryMapper extends BaseMapperX getStoreGoodsInventoryPage(StoreGoodsInventoryPageReqVO pageReqVO); + + Integer getInventory(Integer goodsId,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 617f46e4..2a76853a 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 @@ -1,16 +1,20 @@ 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.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.GoodsInfoReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.StoreGoodsInventoryPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.StoreGoodsInventorySaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; import cn.iocoder.yudao.module.member.dal.dataobject.storegoodsinventory.StoreGoodsInventoryDO; +import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper; import cn.iocoder.yudao.module.member.dal.mysql.storegoodsinventory.StoreGoodsInventoryMapper; import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -18,6 +22,7 @@ import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import javax.validation.Valid; import java.util.List; +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; @@ -34,42 +39,44 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic @Resource private StoreGoodsInventoryMapper storeGoodsInventoryMapper; + @Resource + private StoreGoodsMapper storeGoodsMapper; @Override @Transactional(rollbackFor = Exception.class) public synchronized Integer createStoreGoodsInventory(@Valid AddReqVO createReqVO) { Integer id = null; List list = createReqVO.getList(); - for (GoodsInfoReqVO vo:list){ + for (GoodsInfoReqVO vo : list) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(StoreGoodsInventoryDO::getGoodsId,vo.getGoodsId()) - .eq(StoreGoodsInventoryDO::getCarteenId,vo.getCarteenId()); + wrapper.eq(StoreGoodsInventoryDO::getGoodsId, vo.getGoodsId()) + .eq(StoreGoodsInventoryDO::getCarteenId, vo.getCarteenId()); List storeGoodsInventoryDOS = storeGoodsInventoryMapper.selectList(wrapper); - if(InventoryTypeEnum.IN.getCode().equals(createReqVO.getType())){ - if(CollectionUtil.isNotEmpty(storeGoodsInventoryDOS)){ + if (InventoryTypeEnum.IN.getCode().equals(createReqVO.getType())) { + if (CollectionUtil.isNotEmpty(storeGoodsInventoryDOS)) { StoreGoodsInventoryDO storeGoodsInventoryDO = storeGoodsInventoryDOS.get(0); - storeGoodsInventoryDO.setNumber(storeGoodsInventoryDO.getNumber()+vo.getNumber()); - storeGoodsInventoryDO.setWeight(storeGoodsInventoryDO.getWeight()+vo.getWeight()); + storeGoodsInventoryDO.setNumber(storeGoodsInventoryDO.getNumber() + vo.getNumber()); + storeGoodsInventoryDO.setWeight(storeGoodsInventoryDO.getWeight() + vo.getWeight()); storeGoodsInventoryMapper.updateById(storeGoodsInventoryDO); - id= storeGoodsInventoryDO.getId(); - }else { + id = storeGoodsInventoryDO.getId(); + } else { StoreGoodsInventoryDO storeGoodsInventory = BeanUtils.toBean(createReqVO, StoreGoodsInventoryDO.class); storeGoodsInventoryMapper.insert(storeGoodsInventory); id = storeGoodsInventory.getId(); } - }else {// 出库 - if(CollectionUtil.isEmpty(storeGoodsInventoryDOS)){ + } else {// 出库 + if (CollectionUtil.isEmpty(storeGoodsInventoryDOS)) { throw exception(STORE_GOODS_INVENTORY_NOT_EXISTS); } StoreGoodsInventoryDO storeGoodsInventoryDO = storeGoodsInventoryDOS.get(0); - if(storeGoodsInventoryDO.getNumber() list = createReqVO.getList(); + for (GoodsInfoReqVO vo : list) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(StoreGoodsInventoryDO::getGoodsId, vo.getGoodsId()) + .eq(StoreGoodsInventoryDO::getCarteenId, vo.getCarteenId()); + List storeGoodsInventoryDOS = storeGoodsInventoryMapper.selectList(wrapper); + + if (CollectionUtil.isNotEmpty(storeGoodsInventoryDOS)) { + StoreGoodsInventoryDO storeGoodsInventoryDO = storeGoodsInventoryDOS.get(0); + storeGoodsInventoryDO.setNumber(storeGoodsInventoryDO.getNumber()); + storeGoodsInventoryDO.setWeight(storeGoodsInventoryDO.getWeight()); + storeGoodsInventoryMapper.updateById(storeGoodsInventoryDO); + } else { + StoreGoodsInventoryDO storeGoodsInventory = BeanUtils.toBean(createReqVO, StoreGoodsInventoryDO.class); + storeGoodsInventoryMapper.insert(storeGoodsInventory); + } + } + } + @Override public void updateStoreGoodsInventory(StoreGoodsInventorySaveReqVO updateReqVO) { // 校验存在 @@ -109,7 +137,25 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic @Override public PageResult getStoreGoodsInventoryPage(StoreGoodsInventoryPageReqVO pageReqVO) { + if (StrUtil.isNotBlank(pageReqVO.getGoodsName())){ + List storeGoodsDOS = storeGoodsMapper.selectList(Wrappers.lambdaQuery() + .like(StoreGoodsDO::getGoodsName, pageReqVO.getGoodsName())); + if(CollectionUtil.isNotEmpty(storeGoodsDOS)){ + List collect = storeGoodsDOS.stream().map(StoreGoodsDO::getGoodsId).collect(Collectors.toList()); + pageReqVO.setGoodsIds(collect); + } + } return storeGoodsInventoryMapper.selectPage(pageReqVO); } + @Override + public Integer getInventory(Integer goodsId, Long carteenId) { + List list = storeGoodsInventoryMapper.selectList(Wrappers.lambdaQuery() + .eq(StoreGoodsInventoryDO::getGoodsId, goodsId) + .eq(StoreGoodsInventoryDO::getCarteenId, carteenId)); + if (CollectionUtil.isNotEmpty(list)) { + return list.get(0).getNumber(); + } + return 0; + } } \ 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 afafb29f..326c9f10 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 @@ -1,13 +1,15 @@ package cn.iocoder.yudao.module.member.service.storesalegoods; -import java.util.*; -import javax.validation.*; -import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.*; +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.AddReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveReqVO; 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.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import org.springframework.web.bind.annotation.RequestBody; + +import javax.validation.Valid; +import java.util.List; /** * 售卖商品 Service 接口 @@ -22,7 +24,7 @@ public interface StoreSaleGoodsService { * @param createReqVO 创建信息 * @return 编号 */ - Integer createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO); + AddReqVO createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO); /** * 更新售卖商品 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 6557900e..45c1d00f 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 @@ -2,33 +2,36 @@ package cn.iocoder.yudao.module.member.service.storesalegoods; import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollectionUtil; +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; +import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.GoodsInfoReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO; +import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveReqVO; 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.enums.InventoryTypeEnum; +import cn.iocoder.yudao.module.member.enums.OutTypeEnum; +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.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; - -import org.springframework.validation.annotation.Validated; -import org.springframework.transaction.annotation.Transactional; - -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Collections; +import java.util.List; import java.util.stream.Collectors; -import java.util.stream.Stream; - -import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.*; -import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO; -import cn.iocoder.yudao.framework.common.pojo.PageResult; -import cn.iocoder.yudao.framework.common.pojo.PageParam; -import cn.iocoder.yudao.framework.common.util.object.BeanUtils; - -import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*; +import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_SALE_GOODS_NOT_EXISTS; /** * 售卖商品 Service 实现类 @@ -43,11 +46,16 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { private StoreSaleGoodsMapper storeSaleGoodsMapper; @Resource private CashregisterinfoApi cashregisterinfoApi; + @Resource + private StoreGoodsInventoryService storeGoodsInventoryService; @Override - public Integer createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) { + @Transactional(rollbackFor = Exception.class) + public AddReqVO createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) { List addList = new ArrayList<>(); + AddReqVO addReqVO = new AddReqVO(); + List list = new ArrayList<>(); List carteenIds = createReqVO.getCarteenIds(); List goodsIds = createReqVO.getGoodsIds(); for (Long carteenId : carteenIds) { @@ -63,10 +71,24 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService { storeSaleGoods.setCarteenId(carteenId); storeSaleGoods.setGoodsId(goodsId); addList.add(storeSaleGoods); + + GoodsInfoReqVO vo = new GoodsInfoReqVO(); + vo.setGoodsId(goodsId); + vo.setNumber(createReqVO.getNumber()); + vo.setWeight(0d); + vo.setCarteenId(carteenId); + list.add(vo); + } } storeSaleGoodsMapper.insertBatch(addList); - return addList.size(); + //库存 + addReqVO.setList(list); + addReqVO.setType(InventoryTypeEnum.IN.getCode()); + addReqVO.setOutType(OutTypeEnum.SYSTEM_ADD.getCode()); + storeGoodsInventoryService.createStoreGoodsInventoryBySale(addReqVO); + + return addReqVO; } @Override 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 6d0c837b..216e1acc 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,8 +10,9 @@ -->