超市
This commit is contained in:
		| @ -5,12 +5,8 @@ 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; | ||||
|  | ||||
| @Schema(description = "管理后台 - 售卖商品分页 Request VO") | ||||
| @Data | ||||
| @ -41,4 +37,6 @@ public class StoreSaleGoodsPageVO extends PageParam { | ||||
|  | ||||
|     private Long carteenId; | ||||
|  | ||||
|     private Integer goodsId; | ||||
|  | ||||
| } | ||||
| @ -1,11 +1,13 @@ | ||||
| package cn.iocoder.yudao.module.member.controller.admin.storerefund.vo; | ||||
|  | ||||
| import lombok.*; | ||||
| import java.util.*; | ||||
| import io.swagger.v3.oas.annotations.media.Schema; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||
| import java.math.BigDecimal; | ||||
| 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.math.BigDecimal; | ||||
| import java.time.LocalDateTime; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; | ||||
| @ -20,7 +22,7 @@ public class StoreRefundPageReqVO extends PageParam { | ||||
|     private Long carteenId; | ||||
|  | ||||
|     @Schema(description = "关联订单", example = "31383") | ||||
|     private Long orderId; | ||||
|     private Integer orderId; | ||||
|  | ||||
|     @Schema(description = "退款金额") | ||||
|     private BigDecimal money; | ||||
|  | ||||
| @ -24,7 +24,7 @@ public class StoreRefundRespVO { | ||||
|  | ||||
|     @Schema(description = "关联订单", example = "31383") | ||||
|     @ExcelProperty("关联订单") | ||||
|     private Long orderId; | ||||
|     private Integer orderId; | ||||
|  | ||||
|     @Schema(description = "退款金额") | ||||
|     @ExcelProperty("退款金额") | ||||
|  | ||||
| @ -1,9 +1,9 @@ | ||||
| package cn.iocoder.yudao.module.member.controller.admin.storerefund.vo; | ||||
|  | ||||
| import io.swagger.v3.oas.annotations.media.Schema; | ||||
| import lombok.*; | ||||
| import java.util.*; | ||||
| import javax.validation.constraints.*; | ||||
| import lombok.Data; | ||||
|  | ||||
| import javax.validation.constraints.NotEmpty; | ||||
| import java.math.BigDecimal; | ||||
|  | ||||
| @Schema(description = "管理后台 - 超市订单退款审核新增/修改 Request VO") | ||||
| @ -17,7 +17,7 @@ public class StoreRefundSaveReqVO { | ||||
|     private Long carteenId; | ||||
|  | ||||
|     @Schema(description = "关联订单", example = "31383") | ||||
|     private Long orderId; | ||||
|     private Integer orderId; | ||||
|  | ||||
|     @Schema(description = "退款金额") | ||||
|     private BigDecimal money; | ||||
|  | ||||
| @ -14,7 +14,7 @@ import javax.annotation.Resource; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||
|  | ||||
| @Tag(name = "管理后台 - 超市营业统计") | ||||
| @Tag(name = "APP超市 - 超市营业统计") | ||||
| @RestController | ||||
| @RequestMapping("/member/store-business") | ||||
| @Validated | ||||
|  | ||||
| @ -2,10 +2,7 @@ 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.StoreGoodsPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreGoodsRespVO; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storegoods.StoreGoodsDO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storegoods.vo.StoreSaleGoodsPageVO; | ||||
| import cn.iocoder.yudao.module.member.service.storegoods.StoreGoodsService; | ||||
| import io.swagger.v3.oas.annotations.Operation; | ||||
| import io.swagger.v3.oas.annotations.tags.Tag; | ||||
| @ -19,7 +16,7 @@ import javax.validation.Valid; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||
|  | ||||
| @Tag(name = "管理后台 - 商品") | ||||
| @Tag(name = "APP超市 - 商品") | ||||
| @RestController | ||||
| @RequestMapping("/member/store-goods") | ||||
| @Validated | ||||
| @ -31,9 +28,9 @@ public class AppStoreGoodsController { | ||||
|  | ||||
|     @GetMapping("/page") | ||||
|     @Operation(summary = "获得商品分页") | ||||
|     public CommonResult<PageResult<StoreGoodsRespVO>> getStoreGoodsPage(@Valid StoreGoodsPageReqVO pageReqVO) { | ||||
|         PageResult<StoreGoodsDO> pageResult = storeGoodsService.getStoreGoodsPage(pageReqVO); | ||||
|         return success(BeanUtils.toBean(pageResult, StoreGoodsRespVO.class)); | ||||
|     public CommonResult<PageResult<StoreSaleGoodsPageVO>> getStoreGoodsPage(@Valid StoreSaleGoodsPageVO pageReqVO) { | ||||
|         PageResult<StoreSaleGoodsPageVO> pageResult = storeGoodsService.getSaleGoodsPage(pageReqVO); | ||||
|         return success(pageResult); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -33,7 +33,7 @@ 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 = "管理后台 - 商品类别") | ||||
| @Tag(name = "APP超市 - 商品类别") | ||||
| @RestController | ||||
| @RequestMapping("/member/store-goods-type") | ||||
| @Validated | ||||
| @ -91,7 +91,7 @@ public class AppStoreGoodsTypeController { | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/all") | ||||
|     @Operation(summary = "获得商品类别分页") | ||||
|     @Operation(summary = "获得所有商品类别") | ||||
|     public CommonResult<List<StoreGoodsTypeRespVO>> getAll() { | ||||
|         List<StoreGoodsTypeDO> all = storeGoodsTypeService.getAll(); | ||||
|         return success(BeanUtils.toBean(all, StoreGoodsTypeRespVO.class)); | ||||
|  | ||||
| @ -3,11 +3,13 @@ package cn.iocoder.yudao.module.member.controller.app.storeorder; | ||||
| 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.storegoodsinventory.vo.AddReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderRespVO; | ||||
| import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; | ||||
| import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.CardDto; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeorder.StoreOrderDO; | ||||
| import cn.iocoder.yudao.module.member.service.async.MemberAsyncService; | ||||
| import cn.iocoder.yudao.module.member.service.storeorder.StoreOrderService; | ||||
| import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; | ||||
| import cn.iocoder.yudao.module.system.api.carteen.CarteenApi; | ||||
| @ -26,7 +28,7 @@ import java.util.List; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||
|  | ||||
| @Tag(name = "管理后台 - 商品订单") | ||||
| @Tag(name = "APP超市 - 商品订单") | ||||
| @RestController | ||||
| @RequestMapping("/member/store-order") | ||||
| @Validated | ||||
| @ -38,6 +40,8 @@ public class AppStoreOrderController { | ||||
|     private StoreOrderDetailService orderDetailService; | ||||
|     @Resource | ||||
|     private CarteenApi carteenApi; | ||||
|     @Resource | ||||
|     private MemberAsyncService memberAsyncService; | ||||
|  | ||||
|     @GetMapping("/page") | ||||
|     @Operation(summary = "获得商品订单分页") | ||||
| @ -56,7 +60,10 @@ public class AppStoreOrderController { | ||||
|     @PostMapping("/appCreate") | ||||
|     @Operation(summary = "购物车订单") | ||||
|     public CommonResult<Boolean> appCreate(@RequestBody CardDto dto) { | ||||
|         return success(storeOrderService.appCreate(dto)); | ||||
|         AddReqVO addReqVO = storeOrderService.appCreate(dto); | ||||
|         //记录 | ||||
|         memberAsyncService.batchRecord(addReqVO); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/code") | ||||
| @ -71,4 +78,19 @@ public class AppStoreOrderController { | ||||
|         return success(storeOrderService.complete(orderId)); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/cancel") | ||||
|     @Operation(summary = "取消订单") | ||||
|     public CommonResult<Boolean> cancel(Integer orderId) { | ||||
|         AddReqVO cancel = storeOrderService.cancel(orderId); | ||||
|         //记录 | ||||
|         memberAsyncService.batchRecord(cancel); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
|     @GetMapping("/refund") | ||||
|     @Operation(summary = "退款") | ||||
|     public CommonResult<Long> refund(Integer orderId) { | ||||
|         return success(storeOrderService.refund(orderId)); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -9,4 +9,5 @@ public class AppStoreGoodsDetail { | ||||
|     private Double weight; | ||||
|     private String goodsName; | ||||
|     private Integer goodsId; | ||||
|     private Long cartId; | ||||
| } | ||||
|  | ||||
| @ -1,12 +1,8 @@ | ||||
| package cn.iocoder.yudao.module.member.controller.app.storeshoppingcart; | ||||
|  | ||||
| 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.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.storeshoppingcart.vo.StoreShoppingCartPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.StoreShoppingCartRespVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.StoreShoppingCartSaveReqVO; | ||||
| @ -18,7 +14,14 @@ 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.validation.annotation.Validated; | ||||
| import org.springframework.web.bind.annotation.*; | ||||
| 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.validation.Valid; | ||||
| @ -28,7 +31,7 @@ import java.util.stream.Collectors; | ||||
|  | ||||
| import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success; | ||||
|  | ||||
| @Tag(name = "管理后台 - 小程序商品购物车") | ||||
| @Tag(name = "APP超市 - 小程序商品购物车") | ||||
| @RestController | ||||
| @RequestMapping("/member/store-shopping-cart") | ||||
| @Validated | ||||
| @ -84,4 +87,11 @@ public class AppStoreShoppingCartController { | ||||
|         return success(bean); | ||||
|     } | ||||
|  | ||||
|     @DeleteMapping("/deleteBatch") | ||||
|     @Operation(summary = "批量删除小程序商品购物车") | ||||
|     public CommonResult<Boolean> deleteStoreShoppingCart(List<Long> ids) { | ||||
|         storeShoppingCartService.deleteBatch(ids); | ||||
|         return success(true); | ||||
|     } | ||||
|  | ||||
| } | ||||
| @ -36,7 +36,7 @@ public class StoreRefundDO extends BaseDO { | ||||
|     /** | ||||
|      * 关联订单 | ||||
|      */ | ||||
|     private Long orderId; | ||||
|     private Integer orderId; | ||||
|     /** | ||||
|      * 退款金额 | ||||
|      */ | ||||
|  | ||||
| @ -13,7 +13,9 @@ import lombok.Getter; | ||||
| public enum OutTypeEnum { | ||||
|  | ||||
|     SELL(1, "售出"), | ||||
|     SYSTEM(2, "系统扣减"), | ||||
|     SYSTEM_REDUCE(2, "系统扣减"), | ||||
|     SYSTEM_ADD(3, "系统增加"), | ||||
|     ORDER_ADD(4, "订单增加"), | ||||
|     ; | ||||
|  | ||||
|     /** | ||||
|  | ||||
| @ -27,7 +27,7 @@ public interface DeductionService { | ||||
|     void refund(Long userId,BigDecimal money,DishOrderDO dishOrderDO); | ||||
|  | ||||
|     /** | ||||
|      * 减免 | ||||
|      * 减免、退款 | ||||
|      */ | ||||
|     void reduction(Long userId, BigDecimal money, BigDecimal giftAmount, BigDecimal cashAmount, BigDecimal wxAmount); | ||||
|  | ||||
|  | ||||
| @ -1,6 +1,7 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storeorder; | ||||
|  | ||||
| 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.storeorder.vo.StoreOrderPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; | ||||
| @ -76,11 +77,15 @@ public interface StoreOrderService { | ||||
|  | ||||
|     void reduction(Long orderId, BigDecimal money); | ||||
|  | ||||
|     Boolean appCreate(CardDto dto); | ||||
|     AddReqVO appCreate(CardDto dto); | ||||
|  | ||||
|     String customize(StoreOrderDto dto); | ||||
|  | ||||
|     String code(Integer orderId); | ||||
|  | ||||
|     Boolean complete(Integer orderId); | ||||
|  | ||||
|     AddReqVO cancel(Integer orderId); | ||||
|  | ||||
|     Long refund(Integer orderId); | ||||
| } | ||||
| @ -11,6 +11,7 @@ import cn.iocoder.yudao.module.member.controller.admin.storegoodsinventory.vo.Go | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderPageVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorder.vo.StoreOrderSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storerefund.vo.StoreRefundSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.app.store.dto.FacePayDto; | ||||
| import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreGoodsDto; | ||||
| import cn.iocoder.yudao.module.member.controller.app.store.dto.StoreLocalOrderDto; | ||||
| @ -25,14 +26,16 @@ import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; | ||||
| import cn.iocoder.yudao.module.member.dal.mysql.storeorder.StoreOrderMapper; | ||||
| import cn.iocoder.yudao.module.member.enums.InventoryTypeEnum; | ||||
| import cn.iocoder.yudao.module.member.enums.OutTypeEnum; | ||||
| import cn.iocoder.yudao.module.member.enums.RefundStatusEnum; | ||||
| import cn.iocoder.yudao.module.member.enums.StoreOrderStatusEnum; | ||||
| import cn.iocoder.yudao.module.member.service.amount.AmountService; | ||||
| import cn.iocoder.yudao.module.member.service.amount.DeductionService; | ||||
| import cn.iocoder.yudao.module.member.service.async.MemberAsyncService; | ||||
| import cn.iocoder.yudao.module.member.service.card.CardService; | ||||
| import cn.iocoder.yudao.module.member.service.storebusiness.StoreBusinessService; | ||||
| import cn.iocoder.yudao.module.member.service.storegoodsinventory.StoreGoodsInventoryService; | ||||
| import cn.iocoder.yudao.module.member.service.storeorderdetail.StoreOrderDetailService; | ||||
| import cn.iocoder.yudao.module.member.service.storerefund.StoreRefundService; | ||||
| import cn.iocoder.yudao.module.member.service.storeshoppingcart.StoreShoppingCartService; | ||||
| import cn.iocoder.yudao.module.member.service.user.MemberUserService; | ||||
| import cn.iocoder.yudao.module.member.util.QRCodeWithJWTUtil; | ||||
| import cn.iocoder.yudao.module.system.api.cashregisterinfo.CashregisterinfoApi; | ||||
| @ -50,6 +53,7 @@ import java.time.LocalDateTime; | ||||
| import java.time.format.DateTimeFormatter; | ||||
| 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.*; | ||||
| @ -85,9 +89,11 @@ public class StoreOrderServiceImpl implements StoreOrderService { | ||||
|     @Resource | ||||
|     private AmountService amountService; | ||||
|     @Resource | ||||
|     private MemberAsyncService memberAsyncService; | ||||
|     @Resource | ||||
|     private StoreGoodsInventoryService storeGoodsInventoryService; | ||||
|     @Resource | ||||
|     private StoreRefundService storeRefundService; | ||||
|     @Resource | ||||
|     private StoreShoppingCartService storeShoppingCartService; | ||||
|  | ||||
|     @Resource | ||||
|     private StringRedisTemplate storeOrderRedisTemplate; | ||||
| @ -304,7 +310,7 @@ public class StoreOrderServiceImpl implements StoreOrderService { | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public Boolean appCreate(CardDto dto) { | ||||
|     public AddReqVO appCreate(CardDto dto) { | ||||
|         BigDecimal amount = amountService.getAmount(dto.getUserId()); | ||||
|         BigDecimal total = BigDecimal.valueOf(dto.getTotalPrice()); | ||||
|         if(amount.compareTo(total) < 0){ | ||||
| @ -323,8 +329,6 @@ public class StoreOrderServiceImpl implements StoreOrderService { | ||||
|         } | ||||
|         addReqVO.setList(infos); | ||||
|         storeGoodsInventoryService.createStoreGoodsInventory(addReqVO); | ||||
|         //记录 | ||||
|         memberAsyncService.batchRecord(addReqVO); | ||||
|  | ||||
|         //创建订单 | ||||
|         StoreOrderDO storeOrderDO = new StoreOrderDO(); | ||||
| @ -348,7 +352,20 @@ public class StoreOrderServiceImpl implements StoreOrderService { | ||||
|             orderDetailService.deleteByOrderNo(storeOrderDO.getOrderId()); | ||||
|             throw exception(AMOUNT_NOT_ENOUGH); | ||||
|         } | ||||
|         return true; | ||||
|  | ||||
|         //删购物车 | ||||
|         List<Long> collect = goodsList.stream().map(AppStoreGoodsDetail::getCartId).collect(Collectors.toList()); | ||||
|         storeShoppingCartService.deleteBatch(collect); | ||||
|  | ||||
|         //营业数据 | ||||
|         StatisticsVo statisticsVo = new StatisticsVo(); | ||||
|         statisticsVo.setCarteenId(storeOrderDO.getCarteenId()); | ||||
|         statisticsVo.setTotalMoney(BigDecimal.valueOf(storeOrderDO.getTotalPrice())); | ||||
|         statisticsVo.setOrderSum(1); | ||||
|         statisticsVo.setTime(storeOrderDO.getCreateTime()); | ||||
|         statisticsVo.setOrderId(storeOrderDO.getOrderId().longValue()); | ||||
|         storeBusinessService.updateStatistics(statisticsVo); | ||||
|         return addReqVO; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
| @ -406,15 +423,80 @@ public class StoreOrderServiceImpl implements StoreOrderService { | ||||
|         } | ||||
|         storeOrderDO.setStatus(StoreOrderStatusEnum.COMPLETE.getCode()); | ||||
|         storeOrderMapper.updateById(storeOrderDO); | ||||
|  | ||||
|         return true; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     @Transactional(rollbackFor = Exception.class) | ||||
|     public AddReqVO cancel(Integer orderId) { | ||||
|         StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId); | ||||
|         if(ObjectUtil.isEmpty(storeOrderDO)){ | ||||
|             throw exception(STORE_ORDER_NOT_EXISTS); | ||||
|         } | ||||
|         if(storeOrderDO.getStatus().equals(StoreOrderStatusEnum.COMPLETE.getCode()) | ||||
|                 || storeOrderDO.getStatus().equals(StoreOrderStatusEnum.REFUND.getCode())){ | ||||
|             throw exception(STATUS_ERROR); | ||||
|         } | ||||
|         //修改状态 | ||||
|         storeOrderDO.setStatus(StoreOrderStatusEnum.CANCEL.getCode()); | ||||
|         storeOrderMapper.updateById(storeOrderDO); | ||||
|  | ||||
|         //退款 | ||||
|         deductionService.reduction(storeOrderDO.getUserId(),BigDecimal.valueOf(storeOrderDO.getTotalPrice()) | ||||
|                 ,BigDecimal.ZERO,BigDecimal.valueOf(storeOrderDO.getTotalPrice()),BigDecimal.ZERO); | ||||
|  | ||||
|         //更新库存 | ||||
|         List<StoreOrderDetailDO> listByOrderId = orderDetailService.getListByOrderId(storeOrderDO.getOrderId()); | ||||
|  | ||||
|         AddReqVO addReqVO = new AddReqVO(); | ||||
|         addReqVO.setType(InventoryTypeEnum.IN.getCode()); | ||||
|         addReqVO.setOutType(OutTypeEnum.ORDER_ADD.getCode()); | ||||
|         List<GoodsInfoReqVO> infos = new ArrayList<>(); | ||||
|         for (StoreOrderDetailDO detail : listByOrderId){ | ||||
|             GoodsInfoReqVO vo = new GoodsInfoReqVO(); | ||||
|             BeanUtil.copyProperties(detail,vo); | ||||
|             vo.setCarteenId(storeOrderDO.getCarteenId()); | ||||
|             infos.add(vo); | ||||
|         } | ||||
|         addReqVO.setList(infos); | ||||
|         storeGoodsInventoryService.createStoreGoodsInventory(addReqVO); | ||||
|  | ||||
|         //营业数据 | ||||
|         StatisticsVo statisticsVo = new StatisticsVo(); | ||||
|         statisticsVo.setCarteenId(storeOrderDO.getCarteenId()); | ||||
|         statisticsVo.setTotalMoney(BigDecimal.valueOf(storeOrderDO.getTotalPrice())); | ||||
|         statisticsVo.setOrderSum(1); | ||||
|         statisticsVo.setTotalMoney(BigDecimal.valueOf(storeOrderDO.getTotalPrice()).negate()); | ||||
|         statisticsVo.setOrderSum(-1); | ||||
|         statisticsVo.setTime(storeOrderDO.getCreateTime()); | ||||
|         statisticsVo.setOrderId(storeOrderDO.getOrderId().longValue()); | ||||
|         storeBusinessService.updateStatistics(statisticsVo); | ||||
|         return true; | ||||
|  | ||||
|         return addReqVO; | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public Long refund(Integer orderId) { | ||||
|  | ||||
|         StoreOrderDO storeOrderDO = storeOrderMapper.selectById(orderId); | ||||
|         if(ObjectUtil.isEmpty(storeOrderDO)){ | ||||
|             throw exception(STORE_ORDER_NOT_EXISTS); | ||||
|         } | ||||
|         if(storeOrderDO.getStatus().equals(StoreOrderStatusEnum.COMPLETE.getCode()) | ||||
|                 || storeOrderDO.getStatus().equals(StoreOrderStatusEnum.REFUND.getCode())){ | ||||
|             throw exception(STATUS_ERROR); | ||||
|         } | ||||
|         StoreRefundSaveReqVO storeRefundSaveReqVO = new StoreRefundSaveReqVO(); | ||||
|         storeRefundSaveReqVO.setOrderId(storeOrderDO.getOrderId()); | ||||
|         storeRefundSaveReqVO.setStatus(RefundStatusEnum.TO_AUDIT.getCode()); | ||||
|         storeRefundSaveReqVO.setCarteenId(storeOrderDO.getCarteenId()); | ||||
|         storeRefundSaveReqVO.setOrderMoney(BigDecimal.valueOf(storeOrderDO.getTotalPrice())); | ||||
|  | ||||
|         MemberUserDO user = userService.getUser(storeOrderDO.getUserId()); | ||||
|         storeRefundSaveReqVO.setUserId(storeOrderDO.getUserId()); | ||||
|         storeRefundSaveReqVO.setUserName(user.getNickname()); | ||||
|         storeRefundSaveReqVO.setMobile(user.getMobile()); | ||||
|  | ||||
|         return storeRefundService.createStoreRefund(storeRefundSaveReqVO); | ||||
|     } | ||||
|  | ||||
|     public void test() { | ||||
|  | ||||
| @ -1,12 +1,13 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storeorderdetail; | ||||
|  | ||||
| import java.util.*; | ||||
| import javax.validation.*; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.*; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.StoreOrderDetailPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.StoreOrderDetailSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||
|  | ||||
| import javax.validation.Valid; | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 商品订单详情 Service 接口 | ||||
| @ -58,4 +59,6 @@ public interface StoreOrderDetailService { | ||||
|     List<AppStoreOrderDetailVo>  getListByOrderNo(Integer orderId); | ||||
|  | ||||
|     void deleteByOrderNo(Integer orderId); | ||||
|  | ||||
|     List<StoreOrderDetailDO>  getListByOrderId(Integer orderId); | ||||
| } | ||||
| @ -1,23 +1,22 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storeorderdetail; | ||||
|  | ||||
| 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.storeorderdetail.vo.StoreOrderDetailPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.StoreOrderDetailSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.app.storeorder.vo.AppStoreOrderDetailVo; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; | ||||
| import cn.iocoder.yudao.module.member.dal.mysql.storeorderdetail.StoreOrderDetailMapper; | ||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
| import org.springframework.stereotype.Service; | ||||
| import javax.annotation.Resource; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
|  | ||||
| import java.util.*; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeorderdetail.vo.*; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeorderdetail.StoreOrderDetailDO; | ||||
| 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.storeorderdetail.StoreOrderDetailMapper; | ||||
| import javax.annotation.Resource; | ||||
| import java.util.Collections; | ||||
| import java.util.List; | ||||
|  | ||||
| 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_ORDER_DETAIL_NOT_EXISTS; | ||||
|  | ||||
| /** | ||||
|  * 商品订单详情 Service 实现类 | ||||
| @ -87,4 +86,9 @@ public class StoreOrderDetailServiceImpl implements StoreOrderDetailService { | ||||
|     public void deleteByOrderNo(Integer orderId) { | ||||
|         storeOrderDetailMapper.delete(Wrappers.<StoreOrderDetailDO>lambdaQuery().eq(StoreOrderDetailDO::getOrderId,orderId)); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public List<StoreOrderDetailDO> getListByOrderId(Integer orderId) { | ||||
|         return storeOrderDetailMapper.selectList(Wrappers.<StoreOrderDetailDO>lambdaQuery().eq(StoreOrderDetailDO::getOrderId,orderId)); | ||||
|     } | ||||
| } | ||||
| @ -1,11 +1,11 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storerefund; | ||||
|  | ||||
| import java.util.*; | ||||
| import javax.validation.*; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storerefund.vo.*; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storerefund.StoreRefundDO; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storerefund.vo.StoreRefundPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storerefund.vo.StoreRefundSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storerefund.StoreRefundDO; | ||||
|  | ||||
| import javax.validation.Valid; | ||||
|  | ||||
| /** | ||||
|  * 超市订单退款审核 Service 接口 | ||||
| @ -52,4 +52,6 @@ public interface StoreRefundService { | ||||
|      */ | ||||
|     PageResult<StoreRefundDO> getStoreRefundPage(StoreRefundPageReqVO pageReqVO); | ||||
|  | ||||
|  | ||||
|  | ||||
| } | ||||
| @ -1,21 +1,18 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storerefund; | ||||
|  | ||||
| import org.springframework.stereotype.Service; | ||||
| import javax.annotation.Resource; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
|  | ||||
| import java.util.*; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storerefund.vo.*; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storerefund.StoreRefundDO; | ||||
| 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.controller.admin.storerefund.vo.StoreRefundPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storerefund.vo.StoreRefundSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storerefund.StoreRefundDO; | ||||
| import cn.iocoder.yudao.module.member.dal.mysql.storerefund.StoreRefundMapper; | ||||
| import org.springframework.stereotype.Service; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
|  | ||||
| import javax.annotation.Resource; | ||||
|  | ||||
| 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_REFUND_NOT_EXISTS; | ||||
|  | ||||
| /** | ||||
|  * 超市订单退款审核 Service 实现类 | ||||
| @ -44,6 +41,7 @@ public class StoreRefundServiceImpl implements StoreRefundService { | ||||
|         validateStoreRefundExists(updateReqVO.getId()); | ||||
|         // 更新 | ||||
|         StoreRefundDO updateObj = BeanUtils.toBean(updateReqVO, StoreRefundDO.class); | ||||
|  | ||||
|         storeRefundMapper.updateById(updateObj); | ||||
|     } | ||||
|  | ||||
|  | ||||
| @ -1,11 +1,12 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storeshoppingcart; | ||||
|  | ||||
| import java.util.*; | ||||
| import javax.validation.*; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.*; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeshoppingcart.StoreShoppingCartDO; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageResult; | ||||
| import cn.iocoder.yudao.framework.common.pojo.PageParam; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.StoreShoppingCartPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.StoreShoppingCartSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeshoppingcart.StoreShoppingCartDO; | ||||
|  | ||||
| import javax.validation.Valid; | ||||
| import java.util.List; | ||||
|  | ||||
| /** | ||||
|  * 小程序商品购物车 Service 接口 | ||||
| @ -52,4 +53,9 @@ public interface StoreShoppingCartService { | ||||
|      */ | ||||
|     PageResult<StoreShoppingCartDO> getStoreShoppingCartPage(StoreShoppingCartPageReqVO pageReqVO); | ||||
|  | ||||
|     /** | ||||
|      * 批量删除 | ||||
|      */ | ||||
|     void deleteBatch(List<Long> ids); | ||||
|  | ||||
| } | ||||
| @ -1,23 +1,21 @@ | ||||
| package cn.iocoder.yudao.module.member.service.storeshoppingcart; | ||||
|  | ||||
| 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.storeshoppingcart.vo.StoreShoppingCartPageReqVO; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.StoreShoppingCartSaveReqVO; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeshoppingcart.StoreShoppingCartDO; | ||||
| import cn.iocoder.yudao.module.member.dal.mysql.storeshoppingcart.StoreShoppingCartMapper; | ||||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | ||||
| import org.springframework.stereotype.Service; | ||||
| import javax.annotation.Resource; | ||||
| import org.springframework.validation.annotation.Validated; | ||||
| import org.springframework.transaction.annotation.Transactional; | ||||
|  | ||||
| import java.util.*; | ||||
| import cn.iocoder.yudao.module.member.controller.admin.storeshoppingcart.vo.*; | ||||
| import cn.iocoder.yudao.module.member.dal.dataobject.storeshoppingcart.StoreShoppingCartDO; | ||||
| 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.storeshoppingcart.StoreShoppingCartMapper; | ||||
| import javax.annotation.Resource; | ||||
| import java.util.List; | ||||
|  | ||||
| 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_SHOPPING_CART_NOT_EXISTS; | ||||
|  | ||||
| /** | ||||
|  * 小程序商品购物车 Service 实现类 | ||||
| @ -35,12 +33,20 @@ public class StoreShoppingCartServiceImpl implements StoreShoppingCartService { | ||||
|     public Long createStoreShoppingCart(StoreShoppingCartSaveReqVO createReqVO) { | ||||
|         // 插入 | ||||
|         Long id ; | ||||
|  | ||||
|  | ||||
|         List<StoreShoppingCartDO> storeShoppingCartDOS = storeShoppingCartMapper.selectList(Wrappers.<StoreShoppingCartDO>lambdaQuery() | ||||
|                 .eq(StoreShoppingCartDO::getUserId, createReqVO.getUserId()) | ||||
|                 .eq(StoreShoppingCartDO::getCarteenId, createReqVO.getCarteenId())); | ||||
|                 .eq(StoreShoppingCartDO::getCarteenId, createReqVO.getCarteenId()) | ||||
|                 .eq(StoreShoppingCartDO::getGoodsId,createReqVO.getGoodsId())); | ||||
|  | ||||
|         if(CollectionUtil.isNotEmpty(storeShoppingCartDOS)){ | ||||
|             StoreShoppingCartDO storeShoppingCartDO = storeShoppingCartDOS.get(0); | ||||
|             storeShoppingCartDO.setNumber(storeShoppingCartDO.getNumber()+createReqVO.getNumber()); | ||||
|             if(createReqVO.getNumber() == 0){ | ||||
|                 deleteStoreShoppingCart(storeShoppingCartDO.getId()); | ||||
|                 return storeShoppingCartDO.getId(); | ||||
|             } | ||||
|             storeShoppingCartDO.setNumber(createReqVO.getNumber()); | ||||
|             storeShoppingCartMapper.updateById(storeShoppingCartDO); | ||||
|             id = storeShoppingCartDO.getId(); | ||||
|         }else { | ||||
| @ -85,4 +91,9 @@ public class StoreShoppingCartServiceImpl implements StoreShoppingCartService { | ||||
|         return storeShoppingCartMapper.selectPage(pageReqVO); | ||||
|     } | ||||
|  | ||||
|     @Override | ||||
|     public void deleteBatch(List<Long> ids) { | ||||
|         storeShoppingCartMapper.delete(Wrappers.<StoreShoppingCartDO>lambdaQuery() | ||||
|                 .in(StoreShoppingCartDO::getId,ids)); | ||||
|     } | ||||
| } | ||||
| @ -10,7 +10,7 @@ | ||||
|      --> | ||||
|  | ||||
|     <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 | ||||
|         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 | ||||
|         from member_store_sale_goods sg left join member_store_goods ms on sg.goods_id = ms.goods_id | ||||
|         where sg.deleted = false | ||||
|         <if test="vo.categoryId != null "> | ||||
|  | ||||
		Reference in New Issue
	
	Block a user
	 zengtao01
					zengtao01