超市优化

This commit is contained in:
zengtao01
2024-11-13 09:37:26 +08:00
parent 95c4f788fc
commit 6153fba8f8
7 changed files with 51 additions and 33 deletions

View File

@ -63,4 +63,9 @@ public class StoreOrderRespVO {
*/
private Integer status;
/**
* 减免金额
*/
private Double reductionPrice;
}

View File

@ -6,7 +6,6 @@ import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
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;
@ -52,9 +51,8 @@ public class StoreSaleGoodsController {
@Operation(summary = "创建售卖商品(上架)")
@PreAuthorize("@ss.hasPermission('member:store-sale-goods:create')")
public CommonResult<Integer> createStoreSaleGoods(@Valid @RequestBody StoreSaleGoodsSaveBatchVO createReqVO) {
AddReqVO storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO);
memberAsyncService.batchRecord(storeSaleGoods);
return success(storeSaleGoods.getList().size());
Integer storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO);
return success(storeSaleGoods);
}
@PutMapping("/update")

View File

@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.List;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -93,4 +94,10 @@ public class AppStoreOrderController {
return success(storeOrderService.refund(orderId));
}
@GetMapping("/reduction")
@Operation(summary = "减免")
public CommonResult<Boolean> reduction(Long orderId, BigDecimal money){
storeOrderService.reduction(orderId,money);
return CommonResult.success(true);
}
}

View File

@ -6,21 +6,28 @@ import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO;
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO;
import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO;
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.dal.dataobject.storegoods.StoreGoodsDO;
import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO;
import cn.iocoder.yudao.module.member.dal.mysql.storegoods.StoreGoodsMapper;
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.carteen.CarteenApi;
import cn.iocoder.yudao.module.system.api.carteen.dto.CarteenRespDto;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
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_IS_SALE;
@ -39,14 +46,37 @@ public class StoreGoodsServiceImpl implements StoreGoodsService {
private StoreGoodsMapper storeGoodsMapper;
@Resource
private StoreSaleGoodsMapper storeSaleGoodsMapper;
@Resource
private CarteenApi carteenApi;
@Resource
private StoreGoodsInventoryService storeGoodsInventoryService;
@Override
@Transactional(rollbackFor = Exception.class)
public Integer createStoreGoods(StoreGoodsSaveReqVO createReqVO) {
// 插入
StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class);
storeGoodsMapper.insert(storeGoods);
Integer goodsId = storeGoods.getGoodsId();
//给每家店添加库存
List<CarteenRespDto> carteenList = carteenApi.getCarteenList();
List<GoodsInfoReqVO> list = new ArrayList<>();
AddReqVO addReqVO = new AddReqVO();
for (CarteenRespDto dto:carteenList){
GoodsInfoReqVO vo = new GoodsInfoReqVO();
vo.setGoodsId(goodsId);
vo.setNumber(0);
vo.setWeight(0d);
vo.setCarteenId(dto.getId());
list.add(vo);
}
//库存
addReqVO.setList(list);
addReqVO.setType(InventoryTypeEnum.IN.getCode());
addReqVO.setOutType(OutTypeEnum.SYSTEM_ADD.getCode());
storeGoodsInventoryService.createStoreGoodsInventoryBySale(addReqVO);
// 返回
return storeGoods.getGoodsId();
return goodsId;
}
@Override

View File

@ -87,6 +87,7 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic
}
@Override
@Transactional(rollbackFor = Exception.class)
public void createStoreGoodsInventoryBySale(AddReqVO createReqVO) {
List<GoodsInfoReqVO> list = createReqVO.getList();
for (GoodsInfoReqVO vo : list) {

View File

@ -1,7 +1,6 @@
package cn.iocoder.yudao.module.member.service.storesalegoods;
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;
@ -24,7 +23,7 @@ public interface StoreSaleGoodsService {
* @param createReqVO 创建信息
* @return 编号
*/
AddReqVO createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO);
Integer createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO);
/**
* 更新售卖商品

View File

@ -4,8 +4,6 @@ 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;
@ -13,8 +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.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;
@ -51,11 +47,9 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
@Override
@Transactional(rollbackFor = Exception.class)
public AddReqVO createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) {
public Integer 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) {
@ -71,24 +65,10 @@ 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);
//库存
addReqVO.setList(list);
addReqVO.setType(InventoryTypeEnum.IN.getCode());
addReqVO.setOutType(OutTypeEnum.SYSTEM_ADD.getCode());
storeGoodsInventoryService.createStoreGoodsInventoryBySale(addReqVO);
return addReqVO;
return addList.size();
}
@Override
@ -107,8 +87,6 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
wrapper.in(StoreSaleGoodsDO::getId, Arrays.asList(split));
// 删除
storeSaleGoodsMapper.delete(wrapper);
//库存清零
}
private void validateStoreSaleGoodsExists(Long id) {