超市
This commit is contained in:
		| @ -39,4 +39,6 @@ public class StoreSaleGoodsPageVO extends PageParam { | ||||
|  | ||||
|     private Integer goodsId; | ||||
|  | ||||
|     private Integer number; | ||||
|  | ||||
| } | ||||
| @ -87,7 +87,10 @@ public class StoreGoodsInventoryController { | ||||
|     @PreAuthorize("@ss.hasPermission('member:store-goods-inventory:query')") | ||||
|     public CommonResult<StoreGoodsInventoryRespVO> 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") | ||||
|  | ||||
| @ -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<Integer> goodsIds; | ||||
|  | ||||
| } | ||||
| @ -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<Integer> 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") | ||||
|  | ||||
| @ -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<StoreGoodsVO> 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); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -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; | ||||
|  | ||||
| } | ||||
| @ -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<StoreGoodsInvento | ||||
|                 .eqIfPresent(StoreGoodsInventoryDO::getNumber, reqVO.getNumber()) | ||||
|                 .eqIfPresent(StoreGoodsInventoryDO::getWeight, reqVO.getWeight()) | ||||
|                 .betweenIfPresent(StoreGoodsInventoryDO::getCreateTime, reqVO.getCreateTime()) | ||||
|                 .inIfPresent(StoreGoodsInventoryDO::getGoodsId, reqVO.getGoodsIds()) | ||||
|                 .orderByDesc(StoreGoodsInventoryDO::getId)); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -23,6 +23,15 @@ public interface StoreGoodsInventoryService { | ||||
|      */ | ||||
|     Integer createStoreGoodsInventory(@Valid AddReqVO createReqVO); | ||||
|  | ||||
|  | ||||
|     /** | ||||
|      * 创建商品库存(上架专用) | ||||
|      * | ||||
|      * @param createReqVO 创建信息 | ||||
|      * @return 编号 | ||||
|      */ | ||||
|     void createStoreGoodsInventoryBySale(@Valid AddReqVO createReqVO); | ||||
|  | ||||
|     /** | ||||
|      * 更新商品库存 | ||||
|      * | ||||
| @ -53,4 +62,6 @@ public interface StoreGoodsInventoryService { | ||||
|      */ | ||||
|     PageResult<StoreGoodsInventoryDO> getStoreGoodsInventoryPage(StoreGoodsInventoryPageReqVO pageReqVO); | ||||
|  | ||||
|  | ||||
|     Integer getInventory(Integer goodsId,Long carteenId); | ||||
| } | ||||
| @ -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,6 +39,8 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic | ||||
|  | ||||
|     @Resource | ||||
|     private StoreGoodsInventoryMapper storeGoodsInventoryMapper; | ||||
|     @Resource | ||||
|     private StoreGoodsMapper storeGoodsMapper; | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
| @ -79,6 +86,27 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic | ||||
|         return id; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void createStoreGoodsInventoryBySale(AddReqVO createReqVO) { | ||||
|         List<GoodsInfoReqVO> list = createReqVO.getList(); | ||||
|         for (GoodsInfoReqVO vo : list) { | ||||
|             LambdaQueryWrapper<StoreGoodsInventoryDO> wrapper = new LambdaQueryWrapper<>(); | ||||
|             wrapper.eq(StoreGoodsInventoryDO::getGoodsId, vo.getGoodsId()) | ||||
|                     .eq(StoreGoodsInventoryDO::getCarteenId, vo.getCarteenId()); | ||||
|             List<StoreGoodsInventoryDO> 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<StoreGoodsInventoryDO> getStoreGoodsInventoryPage(StoreGoodsInventoryPageReqVO pageReqVO) { | ||||
|         if (StrUtil.isNotBlank(pageReqVO.getGoodsName())){ | ||||
|             List<StoreGoodsDO> storeGoodsDOS = storeGoodsMapper.selectList(Wrappers.<StoreGoodsDO>lambdaQuery() | ||||
|                     .like(StoreGoodsDO::getGoodsName, pageReqVO.getGoodsName())); | ||||
|             if(CollectionUtil.isNotEmpty(storeGoodsDOS)){ | ||||
|                 List<Integer> 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<StoreGoodsInventoryDO> list = storeGoodsInventoryMapper.selectList(Wrappers.<StoreGoodsInventoryDO>lambdaQuery() | ||||
|                 .eq(StoreGoodsInventoryDO::getGoodsId, goodsId) | ||||
|                 .eq(StoreGoodsInventoryDO::getCarteenId, carteenId)); | ||||
|         if (CollectionUtil.isNotEmpty(list)) { | ||||
|             return list.get(0).getNumber(); | ||||
|         } | ||||
|         return 0; | ||||
|     } | ||||
| } | ||||
| @ -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); | ||||
|  | ||||
|     /** | ||||
|      * 更新售卖商品 | ||||
|  | ||||
| @ -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<StoreSaleGoodsDO> addList = new ArrayList<>(); | ||||
|  | ||||
|         AddReqVO addReqVO = new AddReqVO(); | ||||
|         List<GoodsInfoReqVO>  list = new ArrayList<>(); | ||||
|         List<Long> carteenIds = createReqVO.getCarteenIds(); | ||||
|         List<Integer> 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 | ||||
|  | ||||
| @ -10,8 +10,9 @@ | ||||
|      --> | ||||
|  | ||||
|     <select id="getSaleGoodsPage" resultType="cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO"> | ||||
|         select sg.id,sg.carteen_id,sg.create_time,ms.category_id,ms.goods_name,ms.img,ms.sales_model,ms.price,sg.goods_id | ||||
|         select sg.id,sg.carteen_id,sg.create_time,ms.category_id,ms.goods_name,ms.img,ms.sales_model,ms.price,sg.goods_id,gi.number | ||||
|         from member_store_sale_goods sg left join member_store_goods ms on sg.goods_id = ms.goods_id | ||||
|         left join member_store_goods_inventory gi on gi.carteen_id = sg.carteen_id and gi.goods_id = sg.goods_id | ||||
|         where sg.deleted = false | ||||
|         <if test="vo.categoryId != null "> | ||||
|             and ms.category_id = #{vo.categoryId} | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 zengtao01
					zengtao01