diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java index fbf426b41..c8170ec19 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/controller/CanteenOnlineSpuController.java @@ -37,51 +37,54 @@ import java.util.Objects; */ @RestController @RequiredArgsConstructor -@RequestMapping("/canteenOnlineSpu" ) -@Tag(description = "canteenOnlineSpu" , name = "在线点餐spu管理" ) +@RequestMapping("/canteenOnlineSpu") +@Tag(description = "canteenOnlineSpu", name = "在线点餐spu管理") @SecurityRequirement(name = HttpHeaders.AUTHORIZATION) public class CanteenOnlineSpuController { - private final CanteenOnlineSpuService canteenOnlineSpuService; + private final CanteenOnlineSpuService canteenOnlineSpuService; /** * 分页查询 - * @param page 分页对象 + * + * @param page 分页对象 * @param canteenOnlineSpu 在线点餐spu * @return */ - @Operation(summary = "分页查询" , description = "分页查询" ) - @GetMapping("/page" ) - @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_view')" ) + @Operation(summary = "分页查询", description = "分页查询") + @GetMapping("/page") + @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_view')") public R getCanteenOnlineSpuPage(@ParameterObject Page page, @ParameterObject CanteenOnlineSpuEntity canteenOnlineSpu) { LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); - wrapper.like(StrUtil.isNotBlank(canteenOnlineSpu.getName()),CanteenOnlineSpuEntity::getName,canteenOnlineSpu.getName()); - wrapper.eq(Objects.nonNull(canteenOnlineSpu.getCategoryId()),CanteenOnlineSpuEntity::getCategoryId,canteenOnlineSpu.getCategoryId()); + wrapper.like(StrUtil.isNotBlank(canteenOnlineSpu.getName()), CanteenOnlineSpuEntity::getName, canteenOnlineSpu.getName()); + wrapper.eq(Objects.nonNull(canteenOnlineSpu.getCategoryId()), CanteenOnlineSpuEntity::getCategoryId, canteenOnlineSpu.getCategoryId()); return R.ok(canteenOnlineSpuService.page(page, wrapper)); } /** * 通过id查询在线点餐spu + * * @param id id * @return R */ - @Operation(summary = "通过id查询" , description = "通过id查询" ) - @GetMapping("/{id}" ) - @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_view')" ) - public R getById(@PathVariable("id" ) Long id) { + @Operation(summary = "通过id查询", description = "通过id查询") + @GetMapping("/{id}") + @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_view')") + public R getById(@PathVariable("id") Long id) { return R.ok(canteenOnlineSpuService.getById(id)); } /** * 新增在线点餐spu + * * @param canteenOnlineSpu 在线点餐spu * @return R */ - @Operation(summary = "新增在线点餐spu" , description = "新增在线点餐spu" ) - @SysLog("新增在线点餐spu" ) + @Operation(summary = "新增在线点餐spu", description = "新增在线点餐spu") + @SysLog("新增在线点餐spu") @PostMapping - @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_add')" ) + @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_add')") public R save(@RequestBody CanteenOnlineSpuEntity canteenOnlineSpu) { canteenOnlineSpu.setDeptId(SecurityUtils.getUser().getDeptId()); return R.ok(canteenOnlineSpuService.save(canteenOnlineSpu)); @@ -89,26 +92,28 @@ public class CanteenOnlineSpuController { /** * 修改在线点餐spu + * * @param canteenOnlineSpu 在线点餐spu * @return R */ - @Operation(summary = "修改在线点餐spu" , description = "修改在线点餐spu" ) - @SysLog("修改在线点餐spu" ) + @Operation(summary = "修改在线点餐spu", description = "修改在线点餐spu") + @SysLog("修改在线点餐spu") @PutMapping - @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_edit')" ) + @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_edit')") public R updateById(@RequestBody CanteenOnlineSpuEntity canteenOnlineSpu) { return R.ok(canteenOnlineSpuService.updateById(canteenOnlineSpu)); } /** * 通过id删除在线点餐spu + * * @param ids id列表 * @return R */ - @Operation(summary = "通过id删除在线点餐spu" , description = "通过id删除在线点餐spu" ) - @SysLog("通过id删除在线点餐spu" ) + @Operation(summary = "通过id删除在线点餐spu", description = "通过id删除在线点餐spu") + @SysLog("通过id删除在线点餐spu") @DeleteMapping - @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_del')" ) + @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_del')") public R removeById(@RequestBody Long[] ids) { return R.ok(canteenOnlineSpuService.removeBatchByIds(CollUtil.toList(ids))); } @@ -116,14 +121,15 @@ public class CanteenOnlineSpuController { /** * 导出excel 表格 + * * @param canteenOnlineSpu 查询条件 - * @param ids 导出指定ID + * @param ids 导出指定ID * @return excel 文件流 */ @ResponseExcel @GetMapping("/export") - @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_export')" ) - public List export(CanteenOnlineSpuEntity canteenOnlineSpu,Long[] ids) { + @PreAuthorize("@pms.hasPermission('canteen_canteenOnlineSpu_export')") + public List export(CanteenOnlineSpuEntity canteenOnlineSpu, Long[] ids) { return canteenOnlineSpuService.list(Wrappers.lambdaQuery(canteenOnlineSpu).in(ArrayUtil.isNotEmpty(ids), CanteenOnlineSpuEntity::getId, ids)); } @@ -138,16 +144,16 @@ public class CanteenOnlineSpuController { * @return */ @GetMapping("/app/getCanteenSpuList") - @Operation(summary = "获取在线点餐的菜品列表" , description = "1.通过分类id,可以不填,默认查全部,2.商户id,必传" ) + @Operation(summary = "获取在线点餐的菜品列表", description = "1.通过分类id,可以不填,默认查全部,2.商户id,必传") public R> getCanteenSpuList(@RequestParam(value = "categoryId", required = false) String categoryId, - @RequestParam(value = "merchantId") String merchantId ) { - return canteenOnlineSpuService.getCanteenOnlineSpuList(categoryId,merchantId); + @RequestParam(value = "merchantId") String merchantId) { + return canteenOnlineSpuService.getCanteenOnlineSpuList(categoryId, merchantId); } @GetMapping("/app/getCanteenSpuDetails") - @Operation(summary = "获取详情接口" , description = "通过spu的id" ) - public R getCanteenSpuDetails(@RequestParam(value = "id") Long id ) { + @Operation(summary = "获取详情接口", description = "通过spu的id") + public R getCanteenSpuDetails(@RequestParam(value = "id") Long id) { CanteenOnlineSpuEntity canteenOnlineSpuEntity = canteenOnlineSpuService.getById(id); APPOnlineSpuVO bean = BeanUtils.toBean(canteenOnlineSpuEntity, APPOnlineSpuVO.class); return R.ok(bean); @@ -157,12 +163,12 @@ public class CanteenOnlineSpuController { @GetMapping("/app/checkSpuStock") @SysLog("购物车效验库存") @Transactional - public R checkSpuStock(@RequestParam(value ="spuId")Long spuId,@RequestParam("incrCount")Integer incrCount) { + public R checkSpuStock(@RequestParam(value = "spuId") Long spuId, @RequestParam("incrCount") Integer incrCount) { CanteenOnlineSpuEntity canteenOnlineSpuEntity = canteenOnlineSpuService.getById(spuId); if (canteenOnlineSpuEntity == null) { - R.failed("商品不存在"); + return R.failed("商品不存在"); } - if (canteenOnlineSpuEntity.getStock()> getByIds(@RequestBody List ids) { List list = canteenOnlineSpuService.list(new LambdaQueryWrapper().in(CanteenOnlineSpuEntity::getId, ids)); List canteenOnlineSpuAppVOS = BeanUtils.toBean(list, CanteenOnlineSpuAppVO.class); diff --git a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java index 2cebb9a4c..dc576cd08 100644 --- a/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java +++ b/pjcloud-canteen/pjcloud-canteen-biz/src/main/java/com/bsd/pjcloud/canteen/service/impl/CanteenOnlineSpuServiceImpl.java @@ -36,24 +36,18 @@ public class CanteenOnlineSpuServiceImpl extends ServiceImpl { + for (CanteenOnlineSpuUpdateStockReqDTO.Item v : canteenOnlineSpuUpdateStockReqDTO.getItems()) { // 查询当前库存 - CanteenOnlineSpuEntity spu = baseMapper.selectById(item.getId()); + CanteenOnlineSpuEntity spu = baseMapper.selectById(v.getId()); if (spu == null) { - R.failed(spu.getName()+"商品不存在"); + return R.failed(spu.getName() + "商品不存在"); } // 检查库存是否足够 - if (item.getIncrCount() < 0 && Math.abs(item.getIncrCount()) > spu.getStock()) { - R.failed(spu.getName()+"库存不足,无法完成操作"); + if (v.getIncrCount() < 0 && Math.abs(v.getIncrCount()) > spu.getStock()) { + return R.failed(spu.getName() + "库存不足,无法完成操作"); } - int i = baseMapper.updateStock(item.getId(), item.getIncrCount()); -// if (item.getIncrCount() <= 0) { -// if (i == 0) { -// R.failed("商品库存不足"); -// } -// } - }); - + baseMapper.updateStock(v.getId(), v.getIncrCount()); + } return R.ok(); } } \ No newline at end of file diff --git a/pjcloud-hardware/pjcloud-hardware-biz/pom.xml b/pjcloud-hardware/pjcloud-hardware-biz/pom.xml index 0b5789b9e..3d004fc74 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/pom.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/pom.xml @@ -13,6 +13,11 @@ pjcloud-hardware-biz + + com.baomidou + lock4j-redis-template-spring-boot-starter + 2.2.7 + com.bsd @@ -145,7 +150,7 @@ org.springframework.boot spring-boot-maven-plugin - + repackage @@ -155,7 +160,7 @@ - + io.fabric8 docker-maven-plugin diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java index fc528b075..c8135fedd 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/HardOrderService.java @@ -2,6 +2,7 @@ package com.bsd.pjcloud.hard.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.hard.api.dto.hard.HandCancelCodeDto; import com.bsd.pjcloud.hard.api.dto.hard.HardCreateOrderDto; import com.bsd.pjcloud.hard.api.dto.order.HardOrderDto; @@ -55,8 +56,10 @@ public interface HardOrderService extends IService { /** * 扣减库存 + * + * @param isReduce true 扣件库存 false增加库存 */ - void fastenerInventory(HardOrderEntity order); + void fastenerInventory(HardOrderEntity order, YesNoEnum isReduce); /** * 核销硬件二维码 diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java index dea05474f..eb8aa8f74 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardAfterSaleServiceImpl.java @@ -12,6 +12,7 @@ import com.bsd.pjcloud.admin.api.entity.SysUser; import com.bsd.pjcloud.admin.api.feign.RemoteDeptService; import com.bsd.pjcloud.admin.api.feign.RemoteUserService; import com.bsd.pjcloud.admin.api.utils.DataUtil; +import com.bsd.pjcloud.common.core.constant.enums.YesNoEnum; import com.bsd.pjcloud.common.core.util.BeanUtils; import com.bsd.pjcloud.common.core.util.CollectionUtils; import com.bsd.pjcloud.common.core.util.R; @@ -126,14 +127,6 @@ public class HardAfterSaleServiceImpl extends ServiceImpl orderIds = list.getRecords().stream().map(HardAfterSaleVo::getOrderId).filter(ObjectUtil::isNotEmpty).distinct().toList(); - if (ObjectUtil.isNotEmpty(orderIds)) { - HardOrderDto hardOrderDto = new HardOrderDto(); - hardOrderDto.setOrderIds(orderIds); - List orderList = hardOrderMapper.list(hardOrderDto); - HardUtil.convertOrderList(list.getRecords(), CollectionUtils.convertMap(orderList, HardOrderEntity::getId)); - } } return list; } @@ -212,7 +205,6 @@ public class HardAfterSaleServiceImpl extends ServiceImpl carList = dto.getList().stream().filter(v -> v.getProductCount() > 0).toList(); HardParentCarEntity parentCar = getParentCar(dto.getMerchantId(), dto.getUserId(), dto.getHardType()); diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java index c7405f020..d33f4a6de 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/java/com/bsd/pjcloud/hard/service/impl/order/HardOrderServiceImpl.java @@ -287,6 +287,8 @@ public class HardOrderServiceImpl extends ServiceImpl carList = hardCarService.getByParentCarId(order.getParentCarId()); - if (ObjectUtil.isEmpty(carList)) throw new RuntimeException("扣减库存错误,购物车不存在"); + if (ObjectUtil.isEmpty(carList)) throw new RuntimeException(CarErrorMsg + ",购物车不存在"); CanteenSpuUpdateStockReqDTO dto = new CanteenSpuUpdateStockReqDTO(); List list = carList.stream().map(v -> { CanteenSpuUpdateStockReqDTO.Item item = new CanteenSpuUpdateStockReqDTO.Item(); item.setId(v.getProductId()); - item.setIncrCount(v.getProductCount()); + item.setIncrCount(v.getProductCount() * base); return item; }).toList(); dto.setItems(list); R updateSkuStockRes = onlineCanteenSpuService.updateSkuStock(dto); if (updateSkuStockRes.getCode() != 0) { - throw new RuntimeException("库存不足"); + throw new RuntimeException(CarErrorMsg); } return; } // 超市扣家库存 - if (ObjectUtil.equals(hardTypeEnum, HardTypeEnum.SUPERMARKET) && ObjectUtil.equals(orderTypeEnum, HardOrderTypeEnum.RESERVE)) { + if (ObjectUtil.equals(hardTypeEnum, HardTypeEnum.SUPERMARKET)) { // 查询购物车 List carList = hardCarService.getByParentCarId(order.getParentCarId()); if (ObjectUtil.isEmpty(carList)) throw new RuntimeException("扣减库存错误,购物车不存在"); @@ -481,13 +485,13 @@ public class HardOrderServiceImpl extends ServiceImpl list = carList.stream().map(v -> { SupermarketSpuUpdateStockReqDTO.Item item = new SupermarketSpuUpdateStockReqDTO.Item(); item.setId(v.getProductId()); - item.setIncrCount(v.getProductCount()); + item.setIncrCount(v.getProductCount() * base); return item; }).toList(); dto.setItems(list); R updateSkuStockRes = supermarketSpuService.updateSpuStock(dto); if (updateSkuStockRes.getCode() != 0) { - throw new RuntimeException("扣件库存错误"); + throw new RuntimeException(CarErrorMsg); } return; } diff --git a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml index 4325214a9..8e77b060f 100644 --- a/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml +++ b/pjcloud-hardware/pjcloud-hardware-biz/src/main/resources/mapper/order/HardAfterSaleMapper.xml @@ -53,7 +53,7 @@ a.update_by, a.update_time, a.del_flag, - a.tenant_id + a.tenant_id, @@ -64,14 +64,32 @@ and a.order_id = #{dto.orderId} + + and a.status = #{dto.status} + + + and a.user_id IN + + #{v} + + - and a.create_time between #{dto.createTimeList[0]} and #{pa.createTimeList[1]} + and a.create_time between #{dto.createTimeList[0]} and #{dto.createTimeList[1]}