package com.alatus.mall.ware.service.impl; import com.alatus.common.constant.WareConstant; import com.alatus.mall.ware.entity.PurchaseDetailEntity; import com.alatus.mall.ware.service.PurchaseDetailService; import com.alatus.mall.ware.service.WareSkuService; import com.alatus.mall.ware.vo.MergeVo; import com.alatus.mall.ware.vo.PurchaseDoneVo; import com.alatus.mall.ware.vo.PurchaseItemDoneVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.Query; import com.alatus.mall.ware.dao.PurchaseDao; import com.alatus.mall.ware.entity.PurchaseEntity; import com.alatus.mall.ware.service.PurchaseService; import org.springframework.transaction.annotation.Transactional; @Service("purchaseService") public class PurchaseServiceImpl extends ServiceImpl<PurchaseDao, PurchaseEntity> implements PurchaseService { @Autowired private PurchaseDetailService purchaseDetailService; @Autowired private WareSkuService wareSkuService; @Override public PageUtils queryPage(Map<String, Object> params) { IPage<PurchaseEntity> page = this.page( new Query<PurchaseEntity>().getPage(params), new QueryWrapper<PurchaseEntity>() ); return new PageUtils(page); } @Override public PageUtils queryPageUnReceive(Map<String, Object> params) { IPage<PurchaseEntity> page = this.page( new Query<PurchaseEntity>().getPage(params), new QueryWrapper<PurchaseEntity>().eq("status",0).or().eq("status",1) ); return new PageUtils(page); } @Override @Transactional public void mergePurchase(MergeVo mergeVo) { Long purchaseId = mergeVo.getPurchaseId(); if(purchaseId == null){ PurchaseEntity purchaseEntity = new PurchaseEntity(); purchaseEntity.setStatus(WareConstant.PurchaseStatusEnum.CREATED.getCode()); purchaseEntity.setCreateTime(new Date()); purchaseEntity.setUpdateTime(new Date()); this.save(purchaseEntity); purchaseId = purchaseEntity.getId(); } // TODO 确认采购单状态是0或者1才可以合并 List<Long> items = mergeVo.getItems(); Long finalPurchaseId = purchaseId; List<PurchaseDetailEntity> detailEntities = items.stream().map(item -> { PurchaseDetailEntity detailEntity = new PurchaseDetailEntity(); detailEntity.setPurchaseId(finalPurchaseId); detailEntity.setId(item); detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.ASSIGNED.getCode()); return detailEntity; }).collect(Collectors.toList()); purchaseDetailService.updateBatchById(detailEntities); PurchaseEntity purchaseEntity = new PurchaseEntity(); purchaseEntity.setId(purchaseId); purchaseEntity.setCreateTime(new Date()); purchaseEntity.setUpdateTime(new Date()); this.updateById(purchaseEntity); } @Override public void received(List<Long> ids) { // 确认要领取的采购单是新建或是已分配状态 List<PurchaseEntity> purchaseEntities = ids.stream().map(id -> { PurchaseEntity purchaseEntity = this.getById(id); return purchaseEntity; }).filter(purchaseEntity -> { if(purchaseEntity.getStatus() == WareConstant.PurchaseStatusEnum.CREATED.getCode() || purchaseEntity.getStatus() == WareConstant.PurchaseStatusEnum.ASSIGNED.getCode()){ return true; } return false; }).map(purchaseEntity -> { purchaseEntity.setStatus(WareConstant.PurchaseStatusEnum.RECEIVED.getCode()); purchaseEntity.setUpdateTime(new Date()); return purchaseEntity; }).collect(Collectors.toList()); // 改变采购单的状态 this.updateBatchById(purchaseEntities); // 改变采购项的状态 purchaseEntities.forEach((item) -> { List<PurchaseDetailEntity> entities = purchaseDetailService.listDetailByPurchaseId(item.getId()); List<PurchaseDetailEntity> detailEntities = entities.stream().map(purchaseDetailEntity -> { PurchaseDetailEntity detailEntity = new PurchaseDetailEntity(); detailEntity.setId(purchaseDetailEntity.getId()); detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.BUYING.getCode()); return detailEntity; }).collect(Collectors.toList()); purchaseDetailService.updateBatchById(detailEntities); }); } @Override @Transactional public void done(PurchaseDoneVo doneVo) { // 改变采购单状态 Long id = doneVo.getId(); // 改变采购项状态 boolean flag = true; List<PurchaseItemDoneVo> items = doneVo.getItems(); ArrayList<PurchaseDetailEntity> purchaseDetailEntities = new ArrayList<>(); for (PurchaseItemDoneVo item : items) { PurchaseDetailEntity detailEntity = new PurchaseDetailEntity(); if(item.getStatus() == WareConstant.PurchaseDetailStatusEnum.HAS_ERROR.getCode()){ flag = false; detailEntity.setStatus(item.getStatus()); } else{ detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.FINISHED.getCode()); // 将采购成功的入库 PurchaseDetailEntity entity = purchaseDetailService.getById(item.getItemId()); wareSkuService.addStock(entity.getSkuId(),entity.getWareId(),entity.getSkuNum()); } // 获取并设置采购需求的ID detailEntity.setId(item.getItemId()); purchaseDetailEntities.add(detailEntity); } // 将采购成功的进行入库 purchaseDetailService.updateBatchById(purchaseDetailEntities); PurchaseEntity purchaseEntity = new PurchaseEntity(); purchaseEntity.setId(id); purchaseEntity.setStatus(flag?WareConstant.PurchaseStatusEnum.FINISHED.getCode() : WareConstant.PurchaseStatusEnum.HAS_ERROR.getCode()); purchaseEntity.setUpdateTime(new Date()); this.updateById(purchaseEntity); } }
package com.alatus.mall.ware.service.impl; import com.alatus.common.constant.WareConstant; import com.alatus.mall.ware.entity.PurchaseDetailEntity; import com.alatus.mall.ware.service.PurchaseDetailService; import com.alatus.mall.ware.service.WareSkuService; import com.alatus.mall.ware.vo.MergeVo; import com.alatus.mall.ware.vo.PurchaseDoneVo; import com.alatus.mall.ware.vo.PurchaseItemDoneVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Date; import java.util.List; import java.util.Map; import java.util.stream.Collectors; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.Query; import com.alatus.mall.ware.dao.PurchaseDao; import com.alatus.mall.ware.entity.PurchaseEntity; import com.alatus.mall.ware.service.PurchaseService; import org.springframework.transaction.annotation.Transactional; @Service("purchaseService") public class PurchaseServiceImpl extends ServiceImpl<PurchaseDao, PurchaseEntity> implements PurchaseService { @Autowired private PurchaseDetailService purchaseDetailService; @Autowired private WareSkuService wareSkuService; @Override public PageUtils queryPage(Map<String, Object> params) { IPage<PurchaseEntity> page = this.page( new Query<PurchaseEntity>().getPage(params), new QueryWrapper<PurchaseEntity>() ); return new PageUtils(page); } @Override public PageUtils queryPageUnReceive(Map<String, Object> params) { IPage<PurchaseEntity> page = this.page( new Query<PurchaseEntity>().getPage(params), new QueryWrapper<PurchaseEntity>().eq("status",0).or().eq("status",1) ); return new PageUtils(page); } @Override @Transactional public void mergePurchase(MergeVo mergeVo) { Long purchaseId = mergeVo.getPurchaseId(); if(purchaseId == null){ PurchaseEntity purchaseEntity = new PurchaseEntity(); purchaseEntity.setStatus(WareConstant.PurchaseStatusEnum.CREATED.getCode()); purchaseEntity.setCreateTime(new Date()); purchaseEntity.setUpdateTime(new Date()); this.save(purchaseEntity); purchaseId = purchaseEntity.getId(); } // TODO 确认采购单状态是0或者1才可以合并 List<Long> items = mergeVo.getItems(); Long finalPurchaseId = purchaseId; List<PurchaseDetailEntity> detailEntities = items.stream().map(item -> { PurchaseDetailEntity detailEntity = new PurchaseDetailEntity(); detailEntity.setPurchaseId(finalPurchaseId); detailEntity.setId(item); detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.ASSIGNED.getCode()); return detailEntity; }).collect(Collectors.toList()); purchaseDetailService.updateBatchById(detailEntities); PurchaseEntity purchaseEntity = new PurchaseEntity(); purchaseEntity.setId(purchaseId); purchaseEntity.setCreateTime(new Date()); purchaseEntity.setUpdateTime(new Date()); this.updateById(purchaseEntity); } @Override public void received(List<Long> ids) { // 确认要领取的采购单是新建或是已分配状态 List<PurchaseEntity> purchaseEntities = ids.stream().map(id -> { PurchaseEntity purchaseEntity = this.getById(id); return purchaseEntity; }).filter(purchaseEntity -> { if(purchaseEntity.getStatus() == WareConstant.PurchaseStatusEnum.CREATED.getCode() || purchaseEntity.getStatus() == WareConstant.PurchaseStatusEnum.ASSIGNED.getCode()){ return true; } return false; }).map(purchaseEntity -> { purchaseEntity.setStatus(WareConstant.PurchaseStatusEnum.RECEIVED.getCode()); purchaseEntity.setUpdateTime(new Date()); return purchaseEntity; }).collect(Collectors.toList()); // 改变采购单的状态 this.updateBatchById(purchaseEntities); // 改变采购项的状态 purchaseEntities.forEach((item) -> { List<PurchaseDetailEntity> entities = purchaseDetailService.listDetailByPurchaseId(item.getId()); List<PurchaseDetailEntity> detailEntities = entities.stream().map(purchaseDetailEntity -> { PurchaseDetailEntity detailEntity = new PurchaseDetailEntity(); detailEntity.setId(purchaseDetailEntity.getId()); detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.BUYING.getCode()); return detailEntity; }).collect(Collectors.toList()); purchaseDetailService.updateBatchById(detailEntities); }); } @Override @Transactional public void done(PurchaseDoneVo doneVo) { // 改变采购单状态 Long id = doneVo.getId(); // 改变采购项状态 boolean flag = true; List<PurchaseItemDoneVo> items = doneVo.getItems(); ArrayList<PurchaseDetailEntity> purchaseDetailEntities = new ArrayList<>(); for (PurchaseItemDoneVo item : items) { PurchaseDetailEntity detailEntity = new PurchaseDetailEntity(); if(item.getStatus() == WareConstant.PurchaseDetailStatusEnum.HAS_ERROR.getCode()){ flag = false; detailEntity.setStatus(item.getStatus()); } else{ detailEntity.setStatus(WareConstant.PurchaseDetailStatusEnum.FINISHED.getCode()); // 将采购成功的入库 PurchaseDetailEntity entity = purchaseDetailService.getById(item.getItemId()); wareSkuService.addStock(entity.getSkuId(),entity.getWareId(),entity.getSkuNum()); } // 获取并设置采购需求的ID detailEntity.setId(item.getItemId()); purchaseDetailEntities.add(detailEntity); } // 将采购成功的进行入库 purchaseDetailService.updateBatchById(purchaseDetailEntities); PurchaseEntity purchaseEntity = new PurchaseEntity(); purchaseEntity.setId(id); purchaseEntity.setStatus(flag?WareConstant.PurchaseStatusEnum.FINISHED.getCode() : WareConstant.PurchaseStatusEnum.HAS_ERROR.getCode()); purchaseEntity.setUpdateTime(new Date()); this.updateById(purchaseEntity); } }
{"id":3,"items":[{"itemId":1,"status":3,"reason":""},{"itemId":2,"status":4,"reason":"无货"}]}
{"id":3,"items":[{"itemId":1,"status":3,"reason":""},{"itemId":2,"status":4,"reason":"无货"}]}
package com.alatus.mall.ware.service; import com.alatus.mall.ware.vo.MergeVo; import com.alatus.mall.ware.vo.PurchaseDoneVo; import com.baomidou.mybatisplus.extension.service.IService; import com.alatus.common.utils.PageUtils; import com.alatus.mall.ware.entity.PurchaseEntity; import java.util.List; import java.util.Map; /** * 采购信息 * * @author alatus * @date 2024-03-12 14:08:46 */ public interface PurchaseService extends IService<PurchaseEntity> { PageUtils queryPage(Map<String, Object> params); PageUtils queryPageUnReceive(Map<String, Object> params); void mergePurchase(MergeVo mergeVo); void received(List<Long> ids); void done(PurchaseDoneVo doneVo); }
package com.alatus.mall.ware.service; import com.alatus.mall.ware.vo.MergeVo; import com.alatus.mall.ware.vo.PurchaseDoneVo; import com.baomidou.mybatisplus.extension.service.IService; import com.alatus.common.utils.PageUtils; import com.alatus.mall.ware.entity.PurchaseEntity; import java.util.List; import java.util.Map; /** * 采购信息 * * @author alatus * @date 2024-03-12 14:08:46 */ public interface PurchaseService extends IService<PurchaseEntity> { PageUtils queryPage(Map<String, Object> params); PageUtils queryPageUnReceive(Map<String, Object> params); void mergePurchase(MergeVo mergeVo); void received(List<Long> ids); void done(PurchaseDoneVo doneVo); }
package com.alatus.mall.ware.controller; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; import com.alatus.mall.ware.vo.MergeVo; import com.alatus.mall.ware.vo.PurchaseDoneVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.alatus.mall.ware.entity.PurchaseEntity; import com.alatus.mall.ware.service.PurchaseService; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.R; /** * 采购信息 * * @author alatus * @date 2024-03-12 14:08:46 */ @RestController @RequestMapping("ware/purchase") public class PurchaseController { @Autowired private PurchaseService purchaseService; /** * 完成采购单 */ @PostMapping("/done") public R finish(@RequestBody PurchaseDoneVo doneVo){ purchaseService.done(doneVo); return R.ok(); } /** * 领取采购单 */ @PostMapping("/received") public R Received(@RequestBody List<Long> ids){ purchaseService.received(ids); return R.ok(); } /** * 未被领取的采购单 */ @GetMapping("/unreceive/list") public R unReceiveList(@RequestParam Map<String, Object> params){ PageUtils page = purchaseService.queryPageUnReceive(params); return R.ok().put("page", page); } /** * 列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params){ PageUtils page = purchaseService.queryPage(params); return R.ok().put("page", page); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ PurchaseEntity purchase = purchaseService.getById(id); return R.ok().put("purchase", purchase); } /** * 保存 */ @RequestMapping("/save") public R save(@RequestBody PurchaseEntity purchase){ purchase.setCreateTime(new Date()); purchase.setUpdateTime(new Date()); purchaseService.save(purchase); return R.ok(); } /** * 合并到整单 */ @PostMapping("/merge") public R Merge(@RequestBody MergeVo mergeVo){ purchaseService.mergePurchase(mergeVo); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody PurchaseEntity purchase){ purchaseService.updateById(purchase); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ purchaseService.removeByIds(Arrays.asList(ids)); return R.ok(); } }
package com.alatus.mall.ware.controller; import java.util.Arrays; import java.util.Date; import java.util.List; import java.util.Map; import com.alatus.mall.ware.vo.MergeVo; import com.alatus.mall.ware.vo.PurchaseDoneVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.alatus.mall.ware.entity.PurchaseEntity; import com.alatus.mall.ware.service.PurchaseService; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.R; /** * 采购信息 * * @author alatus * @date 2024-03-12 14:08:46 */ @RestController @RequestMapping("ware/purchase") public class PurchaseController { @Autowired private PurchaseService purchaseService; /** * 完成采购单 */ @PostMapping("/done") public R finish(@RequestBody PurchaseDoneVo doneVo){ purchaseService.done(doneVo); return R.ok(); } /** * 领取采购单 */ @PostMapping("/received") public R Received(@RequestBody List<Long> ids){ purchaseService.received(ids); return R.ok(); } /** * 未被领取的采购单 */ @GetMapping("/unreceive/list") public R unReceiveList(@RequestParam Map<String, Object> params){ PageUtils page = purchaseService.queryPageUnReceive(params); return R.ok().put("page", page); } /** * 列表 */ @RequestMapping("/list") public R list(@RequestParam Map<String, Object> params){ PageUtils page = purchaseService.queryPage(params); return R.ok().put("page", page); } /** * 信息 */ @RequestMapping("/info/{id}") public R info(@PathVariable("id") Long id){ PurchaseEntity purchase = purchaseService.getById(id); return R.ok().put("purchase", purchase); } /** * 保存 */ @RequestMapping("/save") public R save(@RequestBody PurchaseEntity purchase){ purchase.setCreateTime(new Date()); purchase.setUpdateTime(new Date()); purchaseService.save(purchase); return R.ok(); } /** * 合并到整单 */ @PostMapping("/merge") public R Merge(@RequestBody MergeVo mergeVo){ purchaseService.mergePurchase(mergeVo); return R.ok(); } /** * 修改 */ @RequestMapping("/update") public R update(@RequestBody PurchaseEntity purchase){ purchaseService.updateById(purchase); return R.ok(); } /** * 删除 */ @RequestMapping("/delete") public R delete(@RequestBody Long[] ids){ purchaseService.removeByIds(Arrays.asList(ids)); return R.ok(); } }
package com.alatus.mall.ware.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; @MapperScan("com.alatus.mall.ware.dao") @EnableTransactionManagement @Configuration public class WareMybatisConfig { // 引用分页插件 @Bean public PaginationInterceptor paginationInterceptor(){ PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 设置请求的页面大于最大页后操作,true调回首页,false继续请求 paginationInterceptor.setOverflow(true); // 设置单页最大多少条 paginationInterceptor.setLimit(1000); return paginationInterceptor; } }
package com.alatus.mall.ware.config; import com.baomidou.mybatisplus.extension.plugins.PaginationInterceptor; import org.mybatis.spring.annotation.MapperScan; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.transaction.annotation.EnableTransactionManagement; @MapperScan("com.alatus.mall.ware.dao") @EnableTransactionManagement @Configuration public class WareMybatisConfig { // 引用分页插件 @Bean public PaginationInterceptor paginationInterceptor(){ PaginationInterceptor paginationInterceptor = new PaginationInterceptor(); // 设置请求的页面大于最大页后操作,true调回首页,false继续请求 paginationInterceptor.setOverflow(true); // 设置单页最大多少条 paginationInterceptor.setLimit(1000); return paginationInterceptor; } }
package com.alatus.mall.ware; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class MallWareApplication { public static void main(String[] args) { SpringApplication.run(MallWareApplication.class, args); } }
package com.alatus.mall.ware; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.cloud.client.discovery.EnableDiscoveryClient; @SpringBootApplication @EnableDiscoveryClient public class MallWareApplication { public static void main(String[] args) { SpringApplication.run(MallWareApplication.class, args); } }
package com.alatus.mall.ware.service; import com.baomidou.mybatisplus.extension.service.IService; import com.alatus.common.utils.PageUtils; import com.alatus.mall.ware.entity.WareSkuEntity; import java.util.Map; /** * 商品库存 * * @author alatus * @date 2024-03-12 14:08:46 */ public interface WareSkuService extends IService<WareSkuEntity> { PageUtils queryPage(Map<String, Object> params); void addStock(Long skuId, Long wareId, Integer skuNum); }
package com.alatus.mall.ware.service; import com.baomidou.mybatisplus.extension.service.IService; import com.alatus.common.utils.PageUtils; import com.alatus.mall.ware.entity.WareSkuEntity; import java.util.Map; /** * 商品库存 * * @author alatus * @date 2024-03-12 14:08:46 */ public interface WareSkuService extends IService<WareSkuEntity> { PageUtils queryPage(Map<String, Object> params); void addStock(Long skuId, Long wareId, Integer skuNum); }
package com.alatus.mall.ware.service.impl; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.Query; import com.alatus.mall.ware.dao.WareSkuDao; import com.alatus.mall.ware.entity.WareSkuEntity; import com.alatus.mall.ware.service.WareSkuService; @Service("wareSkuService") public class WareSkuServiceImpl extends ServiceImpl<WareSkuDao, WareSkuEntity> implements WareSkuService { @Autowired private WareSkuDao wareSkuDao; @Override public PageUtils queryPage(Map<String, Object> params) { QueryWrapper<WareSkuEntity> queryWrapper = new QueryWrapper<>(); String skuId = (String) params.get("skuId"); if(!StringUtils.isEmpty(skuId)){ queryWrapper.eq("sku_id",skuId); } String wareId = (String) params.get("wareId"); if(!StringUtils.isEmpty(skuId)){ queryWrapper.eq("ware_id",wareId); } IPage<WareSkuEntity> page = this.page( new Query<WareSkuEntity>().getPage(params), queryWrapper ); return new PageUtils(page); } @Override public void addStock(Long skuId, Long wareId, Integer skuNum) { // 判断是否存在这个库存记录,没有执行新增操作 List<WareSkuEntity> wareSkuEntities = wareSkuDao.selectList(new QueryWrapper<WareSkuEntity>().eq("sku_id", skuId).eq("ware_id", wareId)); if(wareSkuEntities == null || wareSkuEntities.size() == 0){ WareSkuEntity wareSkuEntity = new WareSkuEntity(); wareSkuEntity.setSkuId(skuId); wareSkuEntity.setWareId(wareId); wareSkuEntity.setStock(skuNum); wareSkuDao.insert(wareSkuEntity); }else{ wareSkuDao.addStock(skuId,wareId,skuNum); } } }
package com.alatus.mall.ware.service.impl; import org.apache.commons.lang.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; import java.util.Map; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.alatus.common.utils.PageUtils; import com.alatus.common.utils.Query; import com.alatus.mall.ware.dao.WareSkuDao; import com.alatus.mall.ware.entity.WareSkuEntity; import com.alatus.mall.ware.service.WareSkuService; @Service("wareSkuService") public class WareSkuServiceImpl extends ServiceImpl<WareSkuDao, WareSkuEntity> implements WareSkuService { @Autowired private WareSkuDao wareSkuDao; @Override public PageUtils queryPage(Map<String, Object> params) { QueryWrapper<WareSkuEntity> queryWrapper = new QueryWrapper<>(); String skuId = (String) params.get("skuId"); if(!StringUtils.isEmpty(skuId)){ queryWrapper.eq("sku_id",skuId); } String wareId = (String) params.get("wareId"); if(!StringUtils.isEmpty(skuId)){ queryWrapper.eq("ware_id",wareId); } IPage<WareSkuEntity> page = this.page( new Query<WareSkuEntity>().getPage(params), queryWrapper ); return new PageUtils(page); } @Override public void addStock(Long skuId, Long wareId, Integer skuNum) { // 判断是否存在这个库存记录,没有执行新增操作 List<WareSkuEntity> wareSkuEntities = wareSkuDao.selectList(new QueryWrapper<WareSkuEntity>().eq("sku_id", skuId).eq("ware_id", wareId)); if(wareSkuEntities == null || wareSkuEntities.size() == 0){ WareSkuEntity wareSkuEntity = new WareSkuEntity(); wareSkuEntity.setSkuId(skuId); wareSkuEntity.setWareId(wareId); wareSkuEntity.setStock(skuNum); wareSkuDao.insert(wareSkuEntity); }else{ wareSkuDao.addStock(skuId,wareId,skuNum); } } }
package com.alatus.mall.ware.dao; import com.alatus.mall.ware.entity.WareSkuEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 商品库存 * * @author alatus * @date 2024-03-12 14:08:46 */ @Mapper public interface WareSkuDao extends BaseMapper<WareSkuEntity> { void addStock(@Param("skuId") Long skuId, @Param("wareId") Long wareId, @Param("skuNum") Integer skuNum); }
package com.alatus.mall.ware.dao; import com.alatus.mall.ware.entity.WareSkuEntity; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; /** * 商品库存 * * @author alatus * @date 2024-03-12 14:08:46 */ @Mapper public interface WareSkuDao extends BaseMapper<WareSkuEntity> { void addStock(@Param("skuId") Long skuId, @Param("wareId") Long wareId, @Param("skuNum") Integer skuNum); }
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.alatus.mall.ware.dao.WareSkuDao"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="com.alatus.mall.ware.entity.WareSkuEntity" id="wareSkuMap"> <result property="id" column="id"/> <result property="skuId" column="sku_id"/> <result property="wareId" column="ware_id"/> <result property="stock" column="stock"/> <result property="skuName" column="sku_name"/> <result property="stockLocked" column="stock_locked"/> </resultMap> <update id="addStock"> UPDATE `wms_ware_sku` SET stock = stock+#{skuNum} WHERE sku_id = #{skuId} AND ware_id = #{wareId} </update> </mapper>
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.alatus.mall.ware.dao.WareSkuDao"> <!-- 可根据自己的需求,是否要使用 --> <resultMap type="com.alatus.mall.ware.entity.WareSkuEntity" id="wareSkuMap"> <result property="id" column="id"/> <result property="skuId" column="sku_id"/> <result property="wareId" column="ware_id"/> <result property="stock" column="stock"/> <result property="skuName" column="sku_name"/> <result property="stockLocked" column="stock_locked"/> </resultMap> <update id="addStock"> UPDATE `wms_ware_sku` SET stock = stock+#{skuNum} WHERE sku_id = #{skuId} AND ware_id = #{wareId} </update> </mapper>