超市优化
This commit is contained in:
@ -63,4 +63,9 @@ public class StoreOrderRespVO {
|
|||||||
*/
|
*/
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 减免金额
|
||||||
|
*/
|
||||||
|
private Double reductionPrice;
|
||||||
|
|
||||||
}
|
}
|
@ -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.common.util.object.BeanUtils;
|
||||||
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
|
||||||
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
|
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.StoreSaleGoodsPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsRespVO;
|
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.StoreSaleGoodsSaveBatchVO;
|
||||||
@ -52,9 +51,8 @@ public class StoreSaleGoodsController {
|
|||||||
@Operation(summary = "创建售卖商品(上架)")
|
@Operation(summary = "创建售卖商品(上架)")
|
||||||
@PreAuthorize("@ss.hasPermission('member:store-sale-goods:create')")
|
@PreAuthorize("@ss.hasPermission('member:store-sale-goods:create')")
|
||||||
public CommonResult<Integer> createStoreSaleGoods(@Valid @RequestBody StoreSaleGoodsSaveBatchVO createReqVO) {
|
public CommonResult<Integer> createStoreSaleGoods(@Valid @RequestBody StoreSaleGoodsSaveBatchVO createReqVO) {
|
||||||
AddReqVO storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO);
|
Integer storeSaleGoods = storeSaleGoodsService.createStoreSaleGoods(createReqVO);
|
||||||
memberAsyncService.batchRecord(storeSaleGoods);
|
return success(storeSaleGoods);
|
||||||
return success(storeSaleGoods.getList().size());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@PutMapping("/update")
|
@PutMapping("/update")
|
||||||
|
@ -24,6 +24,7 @@ import org.springframework.web.bind.annotation.RestController;
|
|||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.validation.Valid;
|
import javax.validation.Valid;
|
||||||
|
import java.math.BigDecimal;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
|
||||||
@ -93,4 +94,10 @@ public class AppStoreOrderController {
|
|||||||
return success(storeOrderService.refund(orderId));
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
@ -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.StoreGoodsPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsSaveReqVO;
|
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.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.storegoods.StoreGoodsDO;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO;
|
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.storegoods.StoreGoodsMapper;
|
||||||
import cn.iocoder.yudao.module.member.dal.mysql.storesalegoods.StoreSaleGoodsMapper;
|
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.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
import org.springframework.validation.annotation.Validated;
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
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.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.STORE_GOODS_IS_SALE;
|
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;
|
private StoreGoodsMapper storeGoodsMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private StoreSaleGoodsMapper storeSaleGoodsMapper;
|
private StoreSaleGoodsMapper storeSaleGoodsMapper;
|
||||||
|
@Resource
|
||||||
|
private CarteenApi carteenApi;
|
||||||
|
@Resource
|
||||||
|
private StoreGoodsInventoryService storeGoodsInventoryService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public Integer createStoreGoods(StoreGoodsSaveReqVO createReqVO) {
|
public Integer createStoreGoods(StoreGoodsSaveReqVO createReqVO) {
|
||||||
// 插入
|
// 插入
|
||||||
StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class);
|
StoreGoodsDO storeGoods = BeanUtils.toBean(createReqVO, StoreGoodsDO.class);
|
||||||
storeGoodsMapper.insert(storeGoods);
|
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
|
@Override
|
||||||
|
@ -87,6 +87,7 @@ public class StoreGoodsInventoryServiceImpl implements StoreGoodsInventoryServic
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void createStoreGoodsInventoryBySale(AddReqVO createReqVO) {
|
public void createStoreGoodsInventoryBySale(AddReqVO createReqVO) {
|
||||||
List<GoodsInfoReqVO> list = createReqVO.getList();
|
List<GoodsInfoReqVO> list = createReqVO.getList();
|
||||||
for (GoodsInfoReqVO vo : list) {
|
for (GoodsInfoReqVO vo : list) {
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
package cn.iocoder.yudao.module.member.service.storesalegoods;
|
package cn.iocoder.yudao.module.member.service.storesalegoods;
|
||||||
|
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
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.StoreSaleGoodsPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO;
|
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.admin.storesalegoods.vo.StoreSaleGoodsSaveReqVO;
|
||||||
@ -24,7 +23,7 @@ public interface StoreSaleGoodsService {
|
|||||||
* @param createReqVO 创建信息
|
* @param createReqVO 创建信息
|
||||||
* @return 编号
|
* @return 编号
|
||||||
*/
|
*/
|
||||||
AddReqVO createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO);
|
Integer createStoreSaleGoods(@Valid StoreSaleGoodsSaveBatchVO createReqVO);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新售卖商品
|
* 更新售卖商品
|
||||||
|
@ -4,8 +4,6 @@ import cn.hutool.core.bean.BeanUtil;
|
|||||||
import cn.hutool.core.collection.CollectionUtil;
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
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.StoreSaleGoodsPageReqVO;
|
||||||
import cn.iocoder.yudao.module.member.controller.admin.storesalegoods.vo.StoreSaleGoodsSaveBatchVO;
|
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.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.controller.app.store.dto.StoreSaleGoodsDto;
|
||||||
import cn.iocoder.yudao.module.member.dal.dataobject.storesalegoods.StoreSaleGoodsDO;
|
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.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.member.service.storegoodsinventory.StoreGoodsInventoryService;
|
||||||
import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi;
|
import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
@ -51,11 +47,9 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public AddReqVO createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) {
|
public Integer createStoreSaleGoods(StoreSaleGoodsSaveBatchVO createReqVO) {
|
||||||
List<StoreSaleGoodsDO> addList = new ArrayList<>();
|
List<StoreSaleGoodsDO> addList = new ArrayList<>();
|
||||||
|
|
||||||
AddReqVO addReqVO = new AddReqVO();
|
|
||||||
List<GoodsInfoReqVO> list = new ArrayList<>();
|
|
||||||
List<Long> carteenIds = createReqVO.getCarteenIds();
|
List<Long> carteenIds = createReqVO.getCarteenIds();
|
||||||
List<Integer> goodsIds = createReqVO.getGoodsIds();
|
List<Integer> goodsIds = createReqVO.getGoodsIds();
|
||||||
for (Long carteenId : carteenIds) {
|
for (Long carteenId : carteenIds) {
|
||||||
@ -71,24 +65,10 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
|
|||||||
storeSaleGoods.setCarteenId(carteenId);
|
storeSaleGoods.setCarteenId(carteenId);
|
||||||
storeSaleGoods.setGoodsId(goodsId);
|
storeSaleGoods.setGoodsId(goodsId);
|
||||||
addList.add(storeSaleGoods);
|
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);
|
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
|
@Override
|
||||||
@ -107,8 +87,6 @@ public class StoreSaleGoodsServiceImpl implements StoreSaleGoodsService {
|
|||||||
wrapper.in(StoreSaleGoodsDO::getId, Arrays.asList(split));
|
wrapper.in(StoreSaleGoodsDO::getId, Arrays.asList(split));
|
||||||
// 删除
|
// 删除
|
||||||
storeSaleGoodsMapper.delete(wrapper);
|
storeSaleGoodsMapper.delete(wrapper);
|
||||||
//库存清零
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void validateStoreSaleGoodsExists(Long id) {
|
private void validateStoreSaleGoodsExists(Long id) {
|
||||||
|
Reference in New Issue
Block a user