From 5dbe070640f5c25fe3fafc8910a3689e34a9f43d Mon Sep 17 00:00:00 2001 From: zt Date: Sat, 14 Jun 2025 23:24:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../api/activitypay/dto/ActivityPayDTO.java | 5 + .../member/api/activitypay/dto/MenuDTO.java | 35 ++++ .../member/enums/ErrorCodeConstants.java | 2 + .../api/activitypay/ActivityApiImpl.java | 1 + .../activitymenu/ActivityMenuController.java | 93 +++++++++++ .../vo/ActivityMenuPageReqVO.java | 35 ++++ .../activitymenu/vo/ActivityMenuRespVO.java | 41 +++++ .../vo/ActivityMenuSaveReqVO.java | 29 ++++ .../activitypay/vo/ActivityPaySaveReqVO.java | 4 + .../ActivityTableController.java | 17 +- .../vo/ActivityTableCreateVO.java | 25 +++ .../admin/activitytable/vo/UpdateTimeVO.java | 11 ++ .../CustomizeExcelController.java | 20 +++ .../admin/customizeExcel/vo/ActivityMxVO.java | 38 +++++ .../customizeExcel/vo/ActivityReserveVO.java | 43 +++++ .../activity/AppActivityDrawController.java | 57 +++++++ .../app/activity/vo/AppActivityPayRespVO.java | 9 + .../app/activity/vo/AppCheckVO.java | 3 +- .../controller/app/activity/vo/PayVO.java | 12 ++ .../activitymenu/ActivityMenuDO.java | 48 ++++++ .../dataobject/activitypay/ActivityPayDO.java | 4 + .../activitytable/ActivityTableDO.java | 3 + .../activitymenu/ActivityMenuMapper.java | 30 ++++ .../mysql/activitypay/ActivityPayMapper.java | 4 + .../customizeExcel/CustomizeExcelMapper.java | 5 + .../ActivityAwardsUserServiceImpl.java | 13 +- .../activitymenu/ActivityMenuService.java | 60 +++++++ .../activitymenu/ActivityMenuServiceImpl.java | 84 ++++++++++ .../activitypay/ActivityPayService.java | 7 + .../activitypay/ActivityPayServiceImpl.java | 154 +++++++++++++----- .../ActivityPayTableService.java | 7 + .../ActivityPayTableServiceImpl.java | 31 ++++ .../activitytable/ActivityTableService.java | 10 +- .../ActivityTableServiceImpl.java | 113 +++++++++++-- .../customizeExcel/CustomizeExcelService.java | 6 +- .../CustomizeExcelServiceImpl.java | 10 ++ .../mapper/activitypay/ActivityPayMapper.xml | 22 +++ .../customizeExcel/CustomizeExcelMapper.xml | 42 +++++ .../admin/notify/PayNotifyController.java | 13 +- .../pay/controller/admin/order/vo/MenuVO.java | 35 ++++ .../admin/order/vo/PayOrderSubmitReqVO.java | 3 + .../service/order/PayOrderServiceImpl.java | 9 +- 42 files changed, 1128 insertions(+), 65 deletions(-) create mode 100644 yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/MenuDTO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/ActivityMenuController.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuPageReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuRespVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuSaveReqVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableCreateVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/UpdateTimeVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityMxVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityReserveVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/PayVO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitymenu/ActivityMenuDO.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitymenu/ActivityMenuMapper.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuService.java create mode 100644 yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuServiceImpl.java create mode 100644 yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/MenuVO.java diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java index 8f6469ea..98833a02 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/ActivityPayDTO.java @@ -5,6 +5,7 @@ import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; +import java.util.List; /** * 活动付款 DO @@ -47,4 +48,8 @@ public class ActivityPayDTO { private String transactionId; private String openid; + + private List menu; + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/MenuDTO.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/MenuDTO.java new file mode 100644 index 00000000..291c2efc --- /dev/null +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/dto/MenuDTO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.member.api.activitypay.dto; + + +public class MenuDTO { + + private String serialNumbers; + + private Long menuId; + + private String menuName; + + public String getSerialNumbers() { + return serialNumbers; + } + + public void setSerialNumbers(String serialNumbers) { + this.serialNumbers = serialNumbers; + } + + public Long getMenuId() { + return menuId; + } + + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + public String getMenuName() { + return menuName; + } + + public void setMenuName(String menuName) { + this.menuName = menuName; + } +} diff --git a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java index 37c1a63b..619903ff 100644 --- a/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java +++ b/yudao-module-member/yudao-module-member-api/src/main/java/cn/iocoder/yudao/module/member/enums/ErrorCodeConstants.java @@ -214,6 +214,8 @@ public interface ErrorCodeConstants { ErrorCode ACTIVITY_MERCHANT_NOT_EXISTS = new ErrorCode(1_005_000_22, "活动商家不存在"); ErrorCode ACTIVITY_VOUCHER_NOT_EXISTS = new ErrorCode(1_005_000_23, "活动代金券不存在"); ErrorCode ACTIVITY_VOUCHER_USER_NOT_EXISTS = new ErrorCode(1_005_000_24, "活动用户拥有代金券不存在"); + ErrorCode ACTIVITY_MENU_NOT_EXISTS = new ErrorCode(1_005_000_25, "活动套餐不存在"); + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/ActivityApiImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/ActivityApiImpl.java index 11887c4f..f412b638 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/ActivityApiImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/api/activitypay/ActivityApiImpl.java @@ -23,6 +23,7 @@ public class ActivityApiImpl implements ActivityApi { @Override public void createActivityPay(ActivityPayDTO createReqVO) { ActivityPaySaveReqVO bean = BeanUtil.toBean(createReqVO, ActivityPaySaveReqVO.class); + bean.setMenu(createReqVO.getMenu()); activityPayService.addActivityPay(bean); } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/ActivityMenuController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/ActivityMenuController.java new file mode 100644 index 00000000..9b2178ee --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/ActivityMenuController.java @@ -0,0 +1,93 @@ +package cn.iocoder.yudao.module.member.controller.admin.activitymenu; + +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.activitymenu.vo.ActivityMenuPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo.ActivityMenuRespVO; +import cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo.ActivityMenuSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymenu.ActivityMenuDO; +import cn.iocoder.yudao.module.member.service.activitymenu.ActivityMenuService; +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.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; +import javax.servlet.http.HttpServletResponse; +import javax.validation.Valid; +import java.io.IOException; +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 = "管理后台 - 活动套餐") +@RestController +@RequestMapping("/member/activity-menu") +@Validated +public class ActivityMenuController { + + @Resource + private ActivityMenuService activityMenuService; + + @PostMapping("/create") + @Operation(summary = "创建活动套餐") + @PreAuthorize("@ss.hasPermission('member:activity-menu:create')") + public CommonResult createActivityMenu(@Valid @RequestBody ActivityMenuSaveReqVO createReqVO) { + return success(activityMenuService.createActivityMenu(createReqVO)); + } + + @PutMapping("/update") + @Operation(summary = "更新活动套餐") + @PreAuthorize("@ss.hasPermission('member:activity-menu:update')") + public CommonResult updateActivityMenu(@Valid @RequestBody ActivityMenuSaveReqVO updateReqVO) { + activityMenuService.updateActivityMenu(updateReqVO); + return success(true); + } + + @DeleteMapping("/delete") + @Operation(summary = "删除活动套餐") + @Parameter(name = "id", description = "编号", required = true) + @PreAuthorize("@ss.hasPermission('member:activity-menu:delete')") + public CommonResult deleteActivityMenu(@RequestParam("id") Long id) { + activityMenuService.deleteActivityMenu(id); + return success(true); + } + + @GetMapping("/get") + @Operation(summary = "获得活动套餐") + @Parameter(name = "id", description = "编号", required = true, example = "1024") + @PreAuthorize("@ss.hasPermission('member:activity-menu:query')") + public CommonResult getActivityMenu(@RequestParam("id") Long id) { + ActivityMenuDO activityMenu = activityMenuService.getActivityMenu(id); + return success(BeanUtils.toBean(activityMenu, ActivityMenuRespVO.class)); + } + + @GetMapping("/page") + @Operation(summary = "获得活动套餐分页") + @PreAuthorize("@ss.hasPermission('member:activity-menu:query')") + public CommonResult> getActivityMenuPage(@Valid ActivityMenuPageReqVO pageReqVO) { + PageResult pageResult = activityMenuService.getActivityMenuPage(pageReqVO); + return success(BeanUtils.toBean(pageResult, ActivityMenuRespVO.class)); + } + + @GetMapping("/export-excel") + @Operation(summary = "导出活动套餐 Excel") + @PreAuthorize("@ss.hasPermission('member:activity-menu:export')") + @OperateLog(type = EXPORT) + public void exportActivityMenuExcel(@Valid ActivityMenuPageReqVO pageReqVO, + HttpServletResponse response) throws IOException { + pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE); + List list = activityMenuService.getActivityMenuPage(pageReqVO).getList(); + // 导出 Excel + ExcelUtils.write(response, "活动套餐.xls", "数据", ActivityMenuRespVO.class, + BeanUtils.toBean(list, ActivityMenuRespVO.class)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuPageReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuPageReqVO.java new file mode 100644 index 00000000..9cbdee60 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuPageReqVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.member.controller.admin.activitymenu.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 org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; + +import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; + +@Schema(description = "管理后台 - 活动套餐分页 Request VO") +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +public class ActivityMenuPageReqVO extends PageParam { + + @Schema(description = "套餐名字", example = "芋艿") + private String menuName; + + @Schema(description = "套餐详情") + private String detail; + + @Schema(description = "套餐价格", example = "895") + private BigDecimal dishPrice; + + @Schema(description = "商店ID", example = "15270") + private Long merchantId; + + @Schema(description = "创建时间") + @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND) + private LocalDateTime[] createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuRespVO.java new file mode 100644 index 00000000..7b63c355 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuRespVO.java @@ -0,0 +1,41 @@ +package cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.*; +import java.util.*; +import java.util.*; +import java.math.BigDecimal; +import org.springframework.format.annotation.DateTimeFormat; +import java.time.LocalDateTime; +import com.alibaba.excel.annotation.*; + +@Schema(description = "管理后台 - 活动套餐 Response VO") +@Data +@ExcelIgnoreUnannotated +public class ActivityMenuRespVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7158") + @ExcelProperty("编号") + private Long id; + + @Schema(description = "套餐名字", example = "芋艿") + @ExcelProperty("套餐名字") + private String menuName; + + @Schema(description = "套餐详情") + @ExcelProperty("套餐详情") + private String detail; + + @Schema(description = "套餐价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "895") + @ExcelProperty("套餐价格") + private BigDecimal dishPrice; + + @Schema(description = "商店ID", example = "15270") + @ExcelProperty("商店ID") + private Long merchantId; + + @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED) + @ExcelProperty("创建时间") + private LocalDateTime createTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuSaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuSaveReqVO.java new file mode 100644 index 00000000..b18eeaa3 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitymenu/vo/ActivityMenuSaveReqVO.java @@ -0,0 +1,29 @@ +package cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; +import java.math.BigDecimal; + +@Schema(description = "管理后台 - 活动套餐新增/修改 Request VO") +@Data +public class ActivityMenuSaveReqVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "7158") + private Long id; + + @Schema(description = "套餐名字", example = "芋艿") + private String menuName; + + @Schema(description = "套餐详情") + private String detail; + + @Schema(description = "套餐价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "895") + @NotNull(message = "套餐价格不能为空") + private BigDecimal dishPrice; + + @Schema(description = "商店ID", example = "15270") + private Long merchantId; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java index f793f43d..79e0f7b2 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitypay/vo/ActivityPaySaveReqVO.java @@ -1,10 +1,12 @@ package cn.iocoder.yudao.module.member.controller.admin.activitypay.vo; +import cn.iocoder.yudao.module.member.api.activitypay.dto.MenuDTO; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import javax.validation.constraints.NotNull; import java.math.BigDecimal; +import java.util.List; @Schema(description = "管理后台 - 活动付款新增/修改 Request VO") @Data @@ -40,4 +42,6 @@ public class ActivityPaySaveReqVO { private String transactionId; private String openid; + + private List menu; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java index 2295ef2c..45fa1e17 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/ActivityTableController.java @@ -6,9 +6,7 @@ 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.activitytable.vo.ActivityTablePageReqVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableRespVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.*; import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO; @@ -52,6 +50,13 @@ public class ActivityTableController { return success(activityTableService.createActivityTable(createReqVO)); } + @PostMapping("/createFalse") + @Operation(summary = "创建活动用餐桌子") + @PreAuthorize("@ss.hasPermission('member:activity-table:create')") + public CommonResult createActivityTable(@Valid @RequestBody ActivityTableCreateVO createReqVO) { + return success(activityTableService.createActivityTableFalse(createReqVO)); + } + @PutMapping("/update") @Operation(summary = "更新活动用餐桌子") @PreAuthorize("@ss.hasPermission('member:activity-table:update')") @@ -127,4 +132,10 @@ public class ActivityTableController { BeanUtils.toBean(list, ActivityTableRespVO.class)); } + @PutMapping("/updateTime") + @Operation(summary = "修改用餐时间") + public CommonResult updateTime(@Valid @RequestBody UpdateTimeVO updateTimeVO) { + return success( activityTableService.updateTime(updateTimeVO)); + } + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableCreateVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableCreateVO.java new file mode 100644 index 00000000..ad689475 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/ActivityTableCreateVO.java @@ -0,0 +1,25 @@ +package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo; + +import io.swagger.v3.oas.annotations.media.Schema; +import lombok.Data; + +import javax.validation.constraints.NotNull; + +@Schema(description = "管理后台 - 活动用餐桌子新增/修改 Request VO") +@Data +public class ActivityTableCreateVO { + + @Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5590") + private Long id; + + @Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8513") + @NotNull(message = "活动id不能为空") + private Long activityId; + + @Schema(description = "序号") + private Integer serialNumber; + + @Schema(description = "序号") + private String reserveTime; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/UpdateTimeVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/UpdateTimeVO.java new file mode 100644 index 00000000..bf446582 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/activitytable/vo/UpdateTimeVO.java @@ -0,0 +1,11 @@ +package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo; + +import lombok.Data; + +@Data +public class UpdateTimeVO { + + private Long id; + + private String reserveTime; +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java index c4ae4a99..0168aa79 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/CustomizeExcelController.java @@ -214,4 +214,24 @@ public class CustomizeExcelController { ExcelUtils.write(response, "现金充值.xlsx", "数据", CashAmountExcelVO.class, orderExcelVOS); } + + @GetMapping("/activityMxExcel") + @Operation(summary = "活动付款明细导出") + @OperateLog(type = EXPORT) + public void exportActivityMx(HttpServletResponse response) throws IOException { + List orderExcelVOS = excelService.exportActivityMx(); + // 导出 Excel + ExcelUtils.write(response, "现金充值.xlsx", "数据", ActivityMxVO.class, + orderExcelVOS); + } + + @GetMapping("/activityReserveExcel") + @Operation(summary = "活动预定桌数导出") + @OperateLog(type = EXPORT) + public void exportActivityReserve(HttpServletResponse response) throws IOException { + List orderExcelVOS = excelService.exportActivityReserve(); + // 导出 Excel + ExcelUtils.write(response, "现金充值.xlsx", "数据", ActivityReserveVO.class, + orderExcelVOS); + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityMxVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityMxVO.java new file mode 100644 index 00000000..e71a5a8e --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityMxVO.java @@ -0,0 +1,38 @@ +package cn.iocoder.yudao.module.member.controller.admin.customizeExcel.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +import java.math.BigDecimal; + +@Data +public class ActivityMxVO { + + @ExcelProperty("id") + private Long id; + + @ExcelProperty("活动名称") + private String activityName; + + @ExcelProperty("商户名称") + private String name; + + @ExcelProperty("桌号") + private String serialNumbers; + + @ExcelProperty("价格") + private BigDecimal price; + + @ExcelProperty("昵称") + private String nickName; + + @ExcelProperty("电话") + private String mobile; + + @ExcelProperty("预约时间") + private String reserveTime; + + @ExcelProperty("创建时间") + private String createTime; +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityReserveVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityReserveVO.java new file mode 100644 index 00000000..de448191 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/admin/customizeExcel/vo/ActivityReserveVO.java @@ -0,0 +1,43 @@ +package cn.iocoder.yudao.module.member.controller.admin.customizeExcel.vo; + + +import com.alibaba.excel.annotation.ExcelProperty; +import lombok.Data; + +@Data +public class ActivityReserveVO { + + @ExcelProperty("商户名称") + private String name; + + + @ExcelProperty("2025-06-13") + private String day1; + + @ExcelProperty("2025-06-14") + private String day2; + + @ExcelProperty("2025-06-15") + private String day3; + + @ExcelProperty("2025-06-16") + private String day4; + + @ExcelProperty("2025-06-17") + private String day5; + + @ExcelProperty("2025-06-18") + private String day6; + + @ExcelProperty("2025-06-19") + private String day7; + + @ExcelProperty("2025-06-20") + private String day8; + + @ExcelProperty("2025-06-21") + private String day9; + + @ExcelProperty("2025-06-22") + private String day10; +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java index 2ab27524..b896f5b4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/AppActivityDrawController.java @@ -1,5 +1,6 @@ package cn.iocoder.yudao.module.member.controller.app.activity; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; @@ -28,6 +29,7 @@ import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO; import cn.iocoder.yudao.module.member.dal.dataobject.activityadddish.ActivityAddDishDO; import cn.iocoder.yudao.module.member.dal.dataobject.activityawards.ActivityAwardsDO; import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymenu.ActivityMenuDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO; import cn.iocoder.yudao.module.member.dal.dataobject.activityrestaurant.ActivityRestaurantDO; @@ -37,6 +39,7 @@ import cn.iocoder.yudao.module.member.service.activity.ActivityService; import cn.iocoder.yudao.module.member.service.activityadddish.ActivityAddDishService; import cn.iocoder.yudao.module.member.service.activityawards.ActivityAwardsService; import cn.iocoder.yudao.module.member.service.activityawardsuser.ActivityAwardsUserService; +import cn.iocoder.yudao.module.member.service.activitymenu.ActivityMenuService; import cn.iocoder.yudao.module.member.service.activitymerchant.ActivityMerchantService; import cn.iocoder.yudao.module.member.service.activitypay.ActivityPayService; import cn.iocoder.yudao.module.member.service.activityrestaurant.ActivityRestaurantService; @@ -47,12 +50,14 @@ import cn.iocoder.yudao.module.member.service.activityvoucheruser.ActivityVouche import cn.iocoder.yudao.module.member.util.QRCodeWithJWTUtil; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.tags.Tag; +import org.apache.commons.lang3.StringUtils; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.validation.Valid; import java.time.LocalDate; +import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -100,6 +105,9 @@ public class AppActivityDrawController { @Resource private ActivityVoucherUserService activityVoucherUserService; + @Resource + private ActivityMenuService activityMenuService; + @GetMapping("/manage/page") @Operation(summary = "管理员获取当天活动") public CommonResult> getTodayActivityPage(@Valid ActivityPageReqVO pageReqVO) { @@ -251,6 +259,26 @@ public class AppActivityDrawController { Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); pageReqVO.setUserId(loginUserId); PageResult pageResult = activityPayService.getUserActivityPayPage(pageReqVO); + if(CollectionUtil.isNotEmpty(pageResult.getList())){ + for (AppActivityPayRespVO item:pageResult.getList()){ + if(StringUtils.isBlank(item.getMenuIds())){ + continue; + } + String serialNumbers = item.getSerialNumbers(); + String menuNames = item.getMenuNames(); + String[] split = serialNumbers.split(","); + String[] split1 = menuNames.split(","); + ArrayList payVOS = new ArrayList<>(); + + for (int i = 0; i < split.length; i++) { + PayVO payVO = new PayVO(); + payVO.setSerialNumbers(split[i]); + payVO.setMenuName(split1[i]); + payVOS.add(payVO); + } + item.setPayVOs(payVOS); + } + } return success(pageResult); } @@ -390,6 +418,27 @@ public class AppActivityDrawController { List collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList()); pageReqVO.setSerialNumberList(collect); PageResult pageResult = activityPayService.getMerchantActivityPayPage(pageReqVO); + if(CollectionUtil.isNotEmpty(pageResult.getList())){ + + for (AppActivityPayRespVO item:pageResult.getList()){ + if(StringUtils.isBlank(item.getMenuIds())){ + continue; + } + String serialNumbers = item.getSerialNumbers(); + String menuNames = item.getMenuNames(); + String[] split = serialNumbers.split(","); + String[] split1 = menuNames.split(","); + ArrayList payVOS = new ArrayList<>(); + + for (int i = 0; i < split.length; i++) { + PayVO payVO = new PayVO(); + payVO.setSerialNumbers(split[i]); + payVO.setMenuName(split1[i]); + payVOS.add(payVO); + } + item.setPayVOs(payVOS); + } + } return success(pageResult); } @@ -400,5 +449,13 @@ public class AppActivityDrawController { } + @GetMapping("/merchantMenu") + @Operation(summary = "获得商家套餐列表") + public CommonResult> getMerchantByMobile(@Valid Long merchantId) { + return success(activityMenuService.getListByMerchantId(merchantId)); + } + + + } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppActivityPayRespVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppActivityPayRespVO.java index 3f361b9b..a49c4306 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppActivityPayRespVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppActivityPayRespVO.java @@ -8,6 +8,7 @@ import lombok.Data; import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; +import java.util.List; @Schema(description = "管理后台 - 活动付款 Response VO") @Data @@ -47,4 +48,12 @@ public class AppActivityPayRespVO { private String dish; private String diningPeriod; + + private String menuIds; + + private String menuNames; + + private String voucher; + + private List payVOs; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCheckVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCheckVO.java index b5bb2798..9c94e3c4 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCheckVO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/AppCheckVO.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.member.controller.app.activity.vo; +import cn.iocoder.yudao.module.member.api.activitypay.dto.MenuDTO; import lombok.Data; import java.math.BigDecimal; @@ -18,5 +19,5 @@ public class AppCheckVO { private BigDecimal price; - + private List menuList; } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/PayVO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/PayVO.java new file mode 100644 index 00000000..84c17e5a --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/controller/app/activity/vo/PayVO.java @@ -0,0 +1,12 @@ +package cn.iocoder.yudao.module.member.controller.app.activity.vo; + + +import lombok.Data; + +@Data +public class PayVO { + + private String serialNumbers; + + private String menuName; +} diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitymenu/ActivityMenuDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitymenu/ActivityMenuDO.java new file mode 100644 index 00000000..d79ed9b6 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitymenu/ActivityMenuDO.java @@ -0,0 +1,48 @@ +package cn.iocoder.yudao.module.member.dal.dataobject.activitymenu; + +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; +import com.baomidou.mybatisplus.annotation.KeySequence; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.*; + +import java.math.BigDecimal; + +/** + * 活动套餐 DO + * + * @author 我是秦俊旗 + */ +@TableName("member_activity_menu") +@KeySequence("member_activity_menu_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。 +@Data +@EqualsAndHashCode(callSuper = true) +@ToString(callSuper = true) +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class ActivityMenuDO extends BaseDO { + + /** + * 编号 + */ + @TableId + private Long id; + /** + * 套餐名字 + */ + private String menuName; + /** + * 套餐详情 + */ + private String detail; + /** + * 套餐价格 + */ + private BigDecimal dishPrice; + /** + * 商店ID + */ + private Long merchantId; + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java index ec3fe446..90262882 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitypay/ActivityPayDO.java @@ -64,4 +64,8 @@ public class ActivityPayDO extends BaseDO { private String transactionId; private String openid; + + private String menuIds; + + private String menuNames; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitytable/ActivityTableDO.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitytable/ActivityTableDO.java index 62792c2e..3c13d1fd 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitytable/ActivityTableDO.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/dataobject/activitytable/ActivityTableDO.java @@ -58,4 +58,7 @@ public class ActivityTableDO extends BaseDO { private String type; + private Long menuId; + + private String menuName; } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitymenu/ActivityMenuMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitymenu/ActivityMenuMapper.java new file mode 100644 index 00000000..1b629723 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitymenu/ActivityMenuMapper.java @@ -0,0 +1,30 @@ +package cn.iocoder.yudao.module.member.dal.mysql.activitymenu; + +import java.util.*; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; +import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymenu.ActivityMenuDO; +import org.apache.ibatis.annotations.Mapper; +import cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo.*; + +/** + * 活动套餐 Mapper + * + * @author 我是秦俊旗 + */ +@Mapper +public interface ActivityMenuMapper extends BaseMapperX { + + default PageResult selectPage(ActivityMenuPageReqVO reqVO) { + return selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(ActivityMenuDO::getMenuName, reqVO.getMenuName()) + .eqIfPresent(ActivityMenuDO::getDetail, reqVO.getDetail()) + .eqIfPresent(ActivityMenuDO::getDishPrice, reqVO.getDishPrice()) + .eqIfPresent(ActivityMenuDO::getMerchantId, reqVO.getMerchantId()) + .betweenIfPresent(ActivityMenuDO::getCreateTime, reqVO.getCreateTime()) + .orderByDesc(ActivityMenuDO::getId)); + } + +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitypay/ActivityPayMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitypay/ActivityPayMapper.java index 64970c45..6fe0ba82 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitypay/ActivityPayMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/activitypay/ActivityPayMapper.java @@ -5,7 +5,9 @@ import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayCountVO; import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayPageReqVO; +import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityPayRespVO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -32,4 +34,6 @@ public interface ActivityPayMapper extends BaseMapperX { List countByActivityIds(@Param("activityIds") List activityIds); + + Page getPage(@Param("page") Page page, @Param("reqVO") ActivityPayPageReqVO reqVO); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java index 60e18017..a9b54f57 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/dal/mysql/customizeExcel/CustomizeExcelMapper.java @@ -25,4 +25,9 @@ public interface CustomizeExcelMapper { List exportCashAmountExcel(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("carteenId")Long carteenId); + List exportActivityMx(); + + List exportActivityReserve(); + + } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activityawardsuser/ActivityAwardsUserServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activityawardsuser/ActivityAwardsUserServiceImpl.java index 5f3dda44..b14ef111 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activityawardsuser/ActivityAwardsUserServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activityawardsuser/ActivityAwardsUserServiceImpl.java @@ -99,15 +99,16 @@ public class ActivityAwardsUserServiceImpl implements ActivityAwardsUserService @Override public List getAwardsUserListByActivityId(Long activityId) { - LocalDateTime date = LocalDateTime.now(); - - LocalDateTime startOfDay = date.with(LocalTime.MIN); - - LocalDateTime endOfDay = date.with(LocalTime.MAX); +// LocalDateTime date = LocalDateTime.now(); +// +// LocalDateTime startOfDay = date.with(LocalTime.MIN); +// +// LocalDateTime endOfDay = date.with(LocalTime.MAX); return activityAwardsUserMapper.selectList(Wrappers.lambdaQuery() .eq(ActivityAwardsUserDO::getActivityId, activityId) - .between(ActivityAwardsUserDO::getCreateTime, startOfDay, endOfDay)); +// .between(ActivityAwardsUserDO::getCreateTime, startOfDay, endOfDay) + ); } @Override diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuService.java new file mode 100644 index 00000000..ebf55e68 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuService.java @@ -0,0 +1,60 @@ +package cn.iocoder.yudao.module.member.service.activitymenu; + +import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo.ActivityMenuPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo.ActivityMenuSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymenu.ActivityMenuDO; + +import javax.validation.Valid; +import java.util.List; + +/** + * 活动套餐 Service 接口 + * + * @author 我是秦俊旗 + */ +public interface ActivityMenuService { + + /** + * 创建活动套餐 + * + * @param createReqVO 创建信息 + * @return 编号 + */ + Long createActivityMenu(@Valid ActivityMenuSaveReqVO createReqVO); + + /** + * 更新活动套餐 + * + * @param updateReqVO 更新信息 + */ + void updateActivityMenu(@Valid ActivityMenuSaveReqVO updateReqVO); + + /** + * 删除活动套餐 + * + * @param id 编号 + */ + void deleteActivityMenu(Long id); + + /** + * 获得活动套餐 + * + * @param id 编号 + * @return 活动套餐 + */ + ActivityMenuDO getActivityMenu(Long id); + + /** + * 获得活动套餐分页 + * + * @param pageReqVO 分页查询 + * @return 活动套餐分页 + */ + PageResult getActivityMenuPage(ActivityMenuPageReqVO pageReqVO); + + + List getListByIds(List ids); + + List getListByMerchantId(Long merchantId); +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuServiceImpl.java new file mode 100644 index 00000000..a714c349 --- /dev/null +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitymenu/ActivityMenuServiceImpl.java @@ -0,0 +1,84 @@ +package cn.iocoder.yudao.module.member.service.activitymenu; + +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.activitymenu.vo.ActivityMenuPageReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitymenu.vo.ActivityMenuSaveReqVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymenu.ActivityMenuDO; +import cn.iocoder.yudao.module.member.dal.mysql.activitymenu.ActivityMenuMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import org.springframework.stereotype.Service; +import org.springframework.validation.annotation.Validated; + +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.ACTIVITY_MENU_NOT_EXISTS; + +/** + * 活动套餐 Service 实现类 + * + * @author 我是秦俊旗 + */ +@Service +@Validated +public class ActivityMenuServiceImpl implements ActivityMenuService { + + @Resource + private ActivityMenuMapper activityMenuMapper; + + @Override + public Long createActivityMenu(ActivityMenuSaveReqVO createReqVO) { + // 插入 + ActivityMenuDO activityMenu = BeanUtils.toBean(createReqVO, ActivityMenuDO.class); + activityMenuMapper.insert(activityMenu); + // 返回 + return activityMenu.getId(); + } + + @Override + public void updateActivityMenu(ActivityMenuSaveReqVO updateReqVO) { + // 校验存在 + validateActivityMenuExists(updateReqVO.getId()); + // 更新 + ActivityMenuDO updateObj = BeanUtils.toBean(updateReqVO, ActivityMenuDO.class); + activityMenuMapper.updateById(updateObj); + } + + @Override + public void deleteActivityMenu(Long id) { + // 校验存在 + validateActivityMenuExists(id); + // 删除 + activityMenuMapper.deleteById(id); + } + + private void validateActivityMenuExists(Long id) { + if (activityMenuMapper.selectById(id) == null) { + throw exception(ACTIVITY_MENU_NOT_EXISTS); + } + } + + @Override + public ActivityMenuDO getActivityMenu(Long id) { + return activityMenuMapper.selectById(id); + } + + @Override + public PageResult getActivityMenuPage(ActivityMenuPageReqVO pageReqVO) { + return activityMenuMapper.selectPage(pageReqVO); + } + + @Override + public List getListByIds(List ids) { + return activityMenuMapper.selectList(Wrappers.lambdaQuery() + .in(ActivityMenuDO::getId, ids)); + } + + @Override + public List getListByMerchantId(Long merchantId) { + return activityMenuMapper.selectList(Wrappers.lambdaQuery() + .eq(ActivityMenuDO::getMerchantId, merchantId)); + } +} \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java index f9d142aa..d5d9cd8a 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayService.java @@ -9,6 +9,7 @@ import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppCancelVO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO; import javax.validation.Valid; +import java.time.LocalDate; import java.util.List; import java.util.Map; @@ -70,4 +71,10 @@ public interface ActivityPayService { List getListByTime(); void updateBatch(List list); + + void insertOne(ActivityPayDO activityPayDO); + + ActivityPayDO getOneByActivityIdAndTimeAndNum(Long activityId, LocalDate time, Integer num); + + void updateOne(ActivityPayDO activityPayDO ); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java index 8c47a3d8..a252f4b6 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypay/ActivityPayServiceImpl.java @@ -5,6 +5,7 @@ import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.StrUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; +import cn.iocoder.yudao.module.member.api.activitypay.dto.MenuDTO; import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayCountVO; import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayPageReqVO; import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPaySaveReqVO; @@ -12,11 +13,16 @@ import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityPayR import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppCancelVO; import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO; import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitymenu.ActivityMenuDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activityvoucher.ActivityVoucherDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activityvoucheruser.ActivityVoucherUserDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.activitypay.ActivityPayMapper; +import cn.iocoder.yudao.module.member.service.activitymenu.ActivityMenuService; import cn.iocoder.yudao.module.member.service.activitypaytable.ActivityPayTableService; +import cn.iocoder.yudao.module.member.service.activityvoucher.ActivityVoucherService; import cn.iocoder.yudao.module.member.service.activityvoucheruser.ActivityVoucherUserService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -32,10 +38,7 @@ import java.math.BigDecimal; import java.math.RoundingMode; import java.time.LocalDate; import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; @@ -62,6 +65,13 @@ public class ActivityPayServiceImpl implements ActivityPayService { @Resource private ActivityVoucherUserService activityVoucherUserService; + + @Resource + private ActivityMenuService activityMenuService; + + @Resource + private ActivityVoucherService activityVoucherService; + @Override public Long createActivityPay(ActivityPaySaveReqVO createReqVO) { // 插入 @@ -118,43 +128,99 @@ public class ActivityPayServiceImpl implements ActivityPayService { public void addActivityPay(ActivityPaySaveReqVO createReqVO) { ActivityPayDO activityPayDO = new ActivityPayDO(); - BeanUtil.copyProperties(createReqVO, activityPayDO,"reserveTime"); + BeanUtil.copyProperties(createReqVO, activityPayDO, "reserveTime"); MemberUserDO user = memberUserService.getUser(createReqVO.getUserId()); activityPayDO.setMobile(user.getMobile()); activityPayDO.setNickName(user.getNickname()); String reserveTime = createReqVO.getReserveTime(); LocalDate localDate = null; - if(StrUtil.isNotBlank(reserveTime)){ + if (StrUtil.isNotBlank(reserveTime)) { //转化成date DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); localDate = LocalDate.parse(reserveTime, formatter); } activityPayDO.setReserveTime(localDate); + List menu = createReqVO.getMenu(); + if (CollectionUtil.isNotEmpty(menu)) { + String result = createReqVO.getMenu().stream() + .map(MenuDTO::getSerialNumbers) + .filter(Objects::nonNull) // 过滤可能的 null 值 + .collect(Collectors.joining(",")); + activityPayDO.setSerialNumbers(result); + } + + if (StrUtil.isBlank(createReqVO.getDish())) { + List collect = menu.stream().map(MenuDTO::getMenuId).collect(Collectors.toList()); + List listByIds = activityMenuService.getListByIds(collect); + activityPayDO.setMenuIds(listByIds.stream().map(ActivityMenuDO::getId).map(String::valueOf).collect(Collectors.joining(","))); + activityPayDO.setMenuNames(listByIds.stream().map(ActivityMenuDO::getMenuName).collect(Collectors.joining(","))); + } + + if (StrUtil.isNotBlank(createReqVO.getVoucherId())) { + activityPayDO.setVoucher(createReqVO.getVoucherId()); + } + activityPayMapper.insert(activityPayDO); - String serialNumbers = createReqVO.getSerialNumbers(); - String[] split = serialNumbers.split(","); - BigDecimal divide = createReqVO.getPrice().divide(BigDecimal.valueOf(split.length),2, RoundingMode.HALF_UP); - List activityPayTableDOS = new ArrayList<>(); - for (String serialNumber : split) { - ActivityPayTableDO activityPayTableDO = new ActivityPayTableDO(); + if (StrUtil.isBlank(createReqVO.getDish())) { + List collect = menu.stream().map(MenuDTO::getMenuId).collect(Collectors.toList()); + List listByIds = activityMenuService.getListByIds(collect); + Map menuMap = listByIds.stream().collect(Collectors.toMap(ActivityMenuDO::getId, vo -> vo)); + + + boolean notBlank = StrUtil.isNotBlank(createReqVO.getVoucherId()); + + List activityPayTableDOS = new ArrayList<>(); + boolean type2DiscountApplied = false; + for (MenuDTO menuDTO : menu) { + ActivityMenuDO activityMenuDO = menuMap.get(menuDTO.getMenuId()); + + ActivityPayTableDO activityPayTableDO = new ActivityPayTableDO(); + activityPayTableDO.setActivityId(activityPayDO.getActivityId()); + activityPayTableDO.setSerialNumbers(menuDTO.getSerialNumbers()); + activityPayTableDO.setPrice(activityMenuDO.getDishPrice()); + if (notBlank && !type2DiscountApplied) { + BigDecimal dishPrice = activityMenuDO.getDishPrice(); + String voucherId = createReqVO.getVoucherId(); + ActivityVoucherUserDO activityVoucherUser = activityVoucherUserService.getActivityVoucherUser(Long.valueOf(voucherId)); + ActivityVoucherDO activityVoucher = activityVoucherService.getActivityVoucher(activityVoucherUser.getVoucherId()); + if ("1".equals(activityVoucher.getType())) { + dishPrice = dishPrice.multiply(activityVoucher.getNum()).divide(new BigDecimal(10), 2, RoundingMode.HALF_UP); + } else if ("2".equals(activityVoucher.getType())) { + dishPrice = dishPrice.subtract(activityVoucher.getNum()); + type2DiscountApplied = true; + } + activityPayTableDO.setPrice(dishPrice); + } + + activityPayTableDO.setUserId(activityPayDO.getUserId()); + activityPayTableDO.setReserveTime(activityPayDO.getReserveTime()); + activityPayTableDO.setNickName(activityPayDO.getNickName()); + activityPayTableDO.setMobile(activityPayDO.getMobile()); + activityPayTableDOS.add(activityPayTableDO); + } + if (!activityPayTableDOS.isEmpty()) { + activityPayTableService.insertBatch(activityPayTableDOS); + } + + } else { + List activityPayTableDOS = new ArrayList<>(); + MenuDTO menuDTO1 = menu.get(0); + ActivityPayTableDO activityPayTableDO = new ActivityPayTableDO(); activityPayTableDO.setActivityId(activityPayDO.getActivityId()); - activityPayTableDO.setSerialNumbers(serialNumber); - activityPayTableDO.setPrice(divide); + activityPayTableDO.setSerialNumbers(menuDTO1.getSerialNumbers()); + activityPayTableDO.setPrice(activityPayDO.getPrice()); activityPayTableDO.setUserId(activityPayDO.getUserId()); activityPayTableDO.setReserveTime(activityPayDO.getReserveTime()); activityPayTableDO.setNickName(activityPayDO.getNickName()); activityPayTableDO.setMobile(activityPayDO.getMobile()); activityPayTableDOS.add(activityPayTableDO); - } - - if(!activityPayTableDOS.isEmpty()){ activityPayTableService.insertBatch(activityPayTableDOS); } - if(StrUtil.isNotBlank(createReqVO.getVoucherId())){ + if (StrUtil.isNotBlank(createReqVO.getVoucherId())) { String voucherId = createReqVO.getVoucherId(); activityVoucherUserService.updateByVoucherIdAndUserId(Long.valueOf(voucherId)); } @@ -171,9 +237,9 @@ public class ActivityPayServiceImpl implements ActivityPayService { .leftJoin(ActivityDO.class, ActivityDO::getId, ActivityAwardsUserDO::getActivityId) .eq(pageReqVO.getActivityId() != null, ActivityAwardsUserDO::getActivityId, pageReqVO.getActivityId()) .eq(pageReqVO.getUserId() != null, ActivityPayDO::getUserId, pageReqVO.getUserId()) - .isNotNull(pageReqVO.getIsDish(), ActivityPayDO::getDish) + .isNotNull(pageReqVO.getIsDish(), ActivityPayDO::getDish) .eq(pageReqVO.getStatus() != null, ActivityPayDO::getStatus, pageReqVO.getStatus()) - .in(CollectionUtil.isNotEmpty(pageReqVO.getSerialNumberList()), ActivityPayDO::getSerialNumbers,pageReqVO.getSerialNumberList()) + .in(CollectionUtil.isNotEmpty(pageReqVO.getSerialNumberList()), ActivityPayDO::getSerialNumbers, pageReqVO.getSerialNumberList()) .orderByDesc(ActivityPayDO::getCreateTime) ); return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal()); @@ -181,39 +247,33 @@ public class ActivityPayServiceImpl implements ActivityPayService { @Override public PageResult getMerchantActivityPayPage(ActivityPayPageReqVO pageReqVO) { - Page activityAwardsUserRespVOPage = activityPayMapper.selectJoinPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), AppActivityPayRespVO.class, - new MPJLambdaWrapper() - .selectAll(ActivityPayDO.class) - .select(ActivityDO::getActivityName) - .leftJoin(ActivityDO.class, ActivityDO::getId, ActivityAwardsUserDO::getActivityId) - .isNotNull(pageReqVO.getIsDish(), ActivityPayDO::getDish) - .isNull(!pageReqVO.getIsDish(), ActivityPayDO::getDish) - .eq(pageReqVO.getStatus() != null, ActivityPayDO::getStatus, pageReqVO.getStatus()) - .in(CollectionUtil.isNotEmpty(pageReqVO.getSerialNumberList()), ActivityPayDO::getSerialNumbers,pageReqVO.getSerialNumberList()) - .orderByAsc(ActivityPayDO::getStatus) - .orderByAsc(ActivityPayDO::getReserveTime) - ); + + Page queryDTOPage = new Page<>(); + queryDTOPage.setCurrent(pageReqVO.getPageNo()); + queryDTOPage.setSize(pageReqVO.getPageSize()); + + Page activityAwardsUserRespVOPage = activityPayMapper.getPage(queryDTOPage, pageReqVO); return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal()); } @Override public Boolean reserveCancel(AppCancelVO vo) { ActivityPayDO activityPayDO = activityPayMapper.selectById(vo.getActivityPayId()); - if(!"0".equals(activityPayDO.getStatus())){ + if (!"0".equals(activityPayDO.getStatus())) { throw exception(ACTIVITY_PAY_USE); } - if(StrUtil.isEmpty(activityPayDO.getDish())){ + if (StrUtil.isEmpty(activityPayDO.getDish())) { //获取当天日期 LocalDate now = LocalDate.now(); //比较日期是否相等 - if(! now.isEqual(activityPayDO.getReserveTime())){ + if (!now.isEqual(activityPayDO.getReserveTime())) { throw exception(ACTIVITY_PAY_EXPIRE); } } activityPayDO.setStatus("1"); int i = activityPayMapper.updateById(activityPayDO); - return i>0; + return i > 0; } @Override @@ -228,6 +288,26 @@ public class ActivityPayServiceImpl implements ActivityPayService { @Override public void updateBatch(List list) { - activityPayMapper.updateBatch(list); + activityPayMapper.updateBatch(list); + } + + @Override + public void insertOne(ActivityPayDO activityPayDO) { + activityPayMapper.insert(activityPayDO); + } + + @Override + public ActivityPayDO getOneByActivityIdAndTimeAndNum(Long activityId, LocalDate time, Integer num) { + return activityPayMapper.selectOne(Wrappers.lambdaQuery() + .eq(ActivityPayDO::getActivityId, activityId) + .eq(ActivityPayDO::getReserveTime, time) + .eq(ActivityPayDO::getSerialNumbers, num) + .last("limit 1") + ); + } + + @Override + public void updateOne(ActivityPayDO activityPayDO) { + activityPayMapper.updateById(activityPayDO); } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java index 0df80e88..24a40199 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableService.java @@ -7,6 +7,7 @@ import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.Activ import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO; import javax.validation.Valid; +import java.time.LocalDate; import java.util.List; /** @@ -57,4 +58,10 @@ public interface ActivityPayTableService { void insertBatch(List list); PageResult getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO); + + void insertOne(ActivityPayTableDO activityPayTableDO); + + ActivityPayTableDO getOneByActivityIdAndTimeAndNum(Long activityId, LocalDate time, Integer num); + + void updateOne(ActivityPayTableDO activityPayTableDO); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java index ff2c1e24..9dad0c6d 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitypaytable/ActivityPayTableServiceImpl.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; +import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; @@ -125,4 +126,34 @@ public class ActivityPayTableServiceImpl implements ActivityPayTableService { public void insertBatch(List list) { activityPayTableMapper.insertBatch(list); } + + @Override + public void insertOne(ActivityPayTableDO activityPayTableDO) { + activityPayTableMapper.insert(activityPayTableDO); + } + + @Override + public ActivityPayTableDO getOneByActivityIdAndTimeAndNum(Long activityId, LocalDate time, Integer num) { + return activityPayTableMapper.selectOne(new LambdaQueryWrapper() + .eq(ActivityPayTableDO::getActivityId, activityId) + .eq(ActivityPayTableDO::getReserveTime, time) + .eq(ActivityPayTableDO::getSerialNumbers, num) + .select( + ActivityPayTableDO::getId, + ActivityPayTableDO::getActivityId, + ActivityPayTableDO::getReserveTime, + ActivityPayTableDO::getSerialNumbers, + ActivityPayTableDO::getPrice, + ActivityPayTableDO::getUserId, + ActivityPayTableDO::getNickName, + ActivityPayTableDO::getMobile + ) + .last("limit 1") + ); + } + + @Override + public void updateOne(ActivityPayTableDO activityPayTableDO) { + activityPayTableMapper.updateById(activityPayTableDO); + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableService.java index e3a64bfe..2a54bf12 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableService.java @@ -2,12 +2,11 @@ package cn.iocoder.yudao.module.member.service.activitytable; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantSaveReqVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableCountVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTablePageReqVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.*; import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppCheckVO; import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppUnbindVO; import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO; +import org.springframework.web.bind.annotation.RequestBody; import javax.validation.Valid; import java.time.LocalDate; @@ -74,4 +73,9 @@ public interface ActivityTableService { List getListByActivityId(Long activityId); List getListByActivityIdAndTimeAndUserId(Long activityId, LocalDate time, Long userId); + + + Long createActivityTableFalse( ActivityTableCreateVO createReqVO); + + Boolean updateTime(@Valid @RequestBody UpdateTimeVO updateTimeVO); } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableServiceImpl.java index 13614517..7f62e135 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/activitytable/ActivityTableServiceImpl.java @@ -5,23 +5,26 @@ import cn.iocoder.yudao.framework.common.exception.ErrorCode; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.module.member.api.activitypay.dto.MenuDTO; import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantSaveReqVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableCountVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTablePageReqVO; -import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableSaveReqVO; +import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.*; import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppCheckVO; import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppUnbindVO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO; +import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO; import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO; import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO; import cn.iocoder.yudao.module.member.dal.mysql.activitytable.ActivityTableMapper; +import cn.iocoder.yudao.module.member.service.activitypay.ActivityPayService; +import cn.iocoder.yudao.module.member.service.activitypaytable.ActivityPayTableService; import cn.iocoder.yudao.module.member.service.user.MemberUserService; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; import java.math.BigDecimal; -import java.math.RoundingMode; import java.time.LocalDate; import java.time.format.DateTimeFormatter; import java.util.ArrayList; @@ -47,6 +50,12 @@ public class ActivityTableServiceImpl implements ActivityTableService { @Resource private MemberUserService memberUserService; + @Resource + private ActivityPayService activityPayService; + + @Resource + private ActivityPayTableService activityPayTableService; + @Override public Long createActivityTable(ActivityTableSaveReqVO createReqVO) { // 插入 @@ -130,17 +139,17 @@ public class ActivityTableServiceImpl implements ActivityTableService { @Override public synchronized Boolean userTableCheck(AppCheckVO vo) { - if(CollectionUtil.isEmpty(vo.getSerialNumbers())){ + if(CollectionUtil.isEmpty(vo.getMenuList())){ throw exception(new ErrorCode(1_005_000_01, "请选择桌号")); } - + List collect = vo.getMenuList().stream().map(MenuDTO::getSerialNumbers).collect(Collectors.toList()); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); LocalDate localDate = LocalDate.parse(vo.getTime(), formatter); List activityTableDOS = activityTableMapper.selectList(Wrappers.lambdaQuery(ActivityTableDO.class) .eq(ActivityTableDO::getReserveTime, localDate) .eq(ActivityTableDO::getActivityId, vo.getActivityId()) .eq(ActivityTableDO::getType, "0") - .in(ActivityTableDO::getSerialNumber, vo.getSerialNumbers())); + .in(ActivityTableDO::getSerialNumber, collect)); if (!activityTableDOS.isEmpty()) { String result = activityTableDOS.stream() @@ -152,17 +161,19 @@ public class ActivityTableServiceImpl implements ActivityTableService { List addList = new ArrayList<>(); Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); MemberUserDO user = memberUserService.getUser(loginUserId); - BigDecimal divide = vo.getPrice().divide(new BigDecimal(vo.getSerialNumbers().size()), 2, RoundingMode.HALF_UP); - for (Integer serialNumber : vo.getSerialNumbers()) { +// BigDecimal divide = vo.getPrice().divide(new BigDecimal(vo.getSerialNumbers().size()), 2, RoundingMode.HALF_UP); + for (MenuDTO menu : vo.getMenuList()) { ActivityTableDO activityTableDO = new ActivityTableDO(); activityTableDO.setUserId(loginUserId); activityTableDO.setMobile(user.getMobile()); activityTableDO.setNickName(user.getNickname()); activityTableDO.setAvatar(user.getAvatar()); activityTableDO.setActivityId(vo.getActivityId()); - activityTableDO.setSerialNumber(serialNumber); - activityTableDO.setPrice(divide); + activityTableDO.setSerialNumber(Integer.valueOf(menu.getSerialNumbers())); + activityTableDO.setPrice(BigDecimal.ZERO); activityTableDO.setReserveTime(localDate); + activityTableDO.setMenuId(menu.getMenuId()); + activityTableDO.setMenuName(menu.getMenuName()); addList.add(activityTableDO); } activityTableMapper.insertBatch(addList); @@ -196,4 +207,84 @@ public class ActivityTableServiceImpl implements ActivityTableService { .eq(ActivityTableDO::getUserId, userId) ); } + + @Override + @Transactional(rollbackFor = Exception.class) + public Long createActivityTableFalse(ActivityTableCreateVO createReqVO) { + + ActivityTableDO activityTable = BeanUtils.toBean(createReqVO, ActivityTableDO.class); + activityTable.setPrice(BigDecimal.ZERO); +// Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); + activityTable.setUserId(408L); +// MemberUserDO user = memberUserService.getUser(loginUserId); +// activityTable.setMobile(user.getMobile()); + activityTable.setNickName("管理员"); +// activityTable.setAvatar(user.getAvatar()); + + activityTableMapper.insert(activityTable); + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate localDate = LocalDate.parse(createReqVO.getReserveTime(), formatter); + + ActivityPayDO activityPaySaveReqVO = new ActivityPayDO(); + activityPaySaveReqVO.setActivityId(createReqVO.getActivityId()); + activityPaySaveReqVO.setPrice(BigDecimal.ZERO); + activityPaySaveReqVO.setSerialNumbers(activityTable.getSerialNumber().toString()); + activityPaySaveReqVO.setUserId(408L); + activityPaySaveReqVO.setStatus("1"); + activityPaySaveReqVO.setReserveTime(localDate); + activityPaySaveReqVO.setNickName("管理员"); +// activityPaySaveReqVO.setMobile(user.getMobile()); + + activityPayService.insertOne(activityPaySaveReqVO); + + ActivityPayTableDO activityPayTableDO = new ActivityPayTableDO(); + activityPayTableDO.setActivityId(createReqVO.getActivityId()); + activityPayTableDO.setPrice(BigDecimal.ZERO); + activityPayTableDO.setSerialNumbers(activityTable.getSerialNumber().toString()); + activityPayTableDO.setUserId(408L); + activityPayTableDO.setReserveTime(localDate); + activityPayTableDO.setNickName("管理员"); +// activityPayTableDO.setMobile(user.getMobile()); + + activityPayTableService.insertOne(activityPayTableDO); + + + return activityTable.getId(); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Boolean updateTime(UpdateTimeVO updateTimeVO) { + + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + LocalDate localDate = LocalDate.parse(updateTimeVO.getReserveTime(), formatter); + + ActivityTableDO activityTableDO = activityTableMapper.selectById(updateTimeVO.getId()); + if (activityTableDO == null) { + throw exception(new ErrorCode(1_005_000_02, "订单不存在")); + } + + ActivityPayDO oneByActivityIdAndTimeAndNum = activityPayService.getOneByActivityIdAndTimeAndNum(activityTableDO.getActivityId(), activityTableDO.getReserveTime(), activityTableDO.getSerialNumber()); + if (oneByActivityIdAndTimeAndNum == null) { + throw exception(new ErrorCode(1_005_000_02, "订单不存在")); + } + + ActivityPayTableDO oneByActivityIdAndTimeAndNum1 = activityPayTableService.getOneByActivityIdAndTimeAndNum(activityTableDO.getActivityId(), activityTableDO.getReserveTime(), activityTableDO.getSerialNumber()); + if (oneByActivityIdAndTimeAndNum1 == null) { + throw exception(new ErrorCode(1_005_000_02, "订单不存在")); + } + + activityTableDO.setReserveTime(localDate); + oneByActivityIdAndTimeAndNum.setReserveTime(localDate); + oneByActivityIdAndTimeAndNum1.setReserveTime(localDate); + + int i = activityTableMapper.updateById(activityTableDO); + + activityPayService.updateOne(oneByActivityIdAndTimeAndNum); + + activityPayTableService.updateOne(oneByActivityIdAndTimeAndNum1); + + return i > 0; + } } \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java index 4bc6b0b1..29273963 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelService.java @@ -1,8 +1,6 @@ package cn.iocoder.yudao.module.member.service.customizeExcel; import cn.iocoder.yudao.module.member.controller.admin.customizeExcel.vo.*; -import org.apache.ibatis.annotations.Param; -import org.springframework.stereotype.Service; import java.util.List; @@ -23,4 +21,8 @@ public interface CustomizeExcelService { List exportSubsidyExcel(String startTime,String endTime,Long carteenId); List exportCashAmountExcel(String startTime,String endTime,Long carteenId); + + List exportActivityMx(); + + List exportActivityReserve(); } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java index 23d8d0e8..7dff9b7c 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java +++ b/yudao-module-member/yudao-module-member-biz/src/main/java/cn/iocoder/yudao/module/member/service/customizeExcel/CustomizeExcelServiceImpl.java @@ -47,4 +47,14 @@ public class CustomizeExcelServiceImpl implements CustomizeExcelService { public List exportCashAmountExcel(String startTime, String endTime, Long carteenId) { return customizeExcelMapper.exportCashAmountExcel(startTime,endTime,carteenId); } + + @Override + public List exportActivityMx() { + return customizeExcelMapper.exportActivityMx(); + } + + @Override + public List exportActivityReserve() { + return customizeExcelMapper.exportActivityReserve(); + } } diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/activitypay/ActivityPayMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/activitypay/ActivityPayMapper.xml index 3c76f6f0..0bdcb108 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/activitypay/ActivityPayMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/activitypay/ActivityPayMapper.xml @@ -22,4 +22,26 @@ GROUP BY activity_id + + \ No newline at end of file diff --git a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml index 3df2b182..7c022e58 100644 --- a/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml +++ b/yudao-module-member/yudao-module-member-biz/src/main/resources/mapper/customizeExcel/CustomizeExcelMapper.xml @@ -160,4 +160,46 @@ and DATE_FORMAT(mc.create_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime} + + + + \ No newline at end of file diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java index 66cf2fbc..440bd947 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/notify/PayNotifyController.java @@ -5,6 +5,7 @@ import cn.hutool.json.JSONUtil; import cn.iocoder.yudao.framework.common.pojo.CommonResult; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.json.JsonUtils; +import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog; import cn.iocoder.yudao.framework.pay.core.client.PayClient; import cn.iocoder.yudao.framework.pay.core.client.dto.order.PayOrderRespDTO; @@ -13,10 +14,12 @@ import cn.iocoder.yudao.framework.pay.core.enums.divide.PayDivideRefundStatusRes import cn.iocoder.yudao.framework.pay.core.enums.refund.PayRefundStatusRespEnum; import cn.iocoder.yudao.module.member.api.activitypay.ActivityApi; import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayDTO; +import cn.iocoder.yudao.module.member.api.activitypay.dto.MenuDTO; import cn.iocoder.yudao.module.member.api.card.CardApi; import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskDetailRespVO; import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskPageReqVO; import cn.iocoder.yudao.module.pay.controller.admin.notify.vo.PayNotifyTaskRespVO; +import cn.iocoder.yudao.module.pay.controller.admin.order.vo.MenuVO; import cn.iocoder.yudao.module.pay.convert.notify.PayNotifyTaskConvert; import cn.iocoder.yudao.module.pay.dal.dataobject.app.PayAppDO; import cn.iocoder.yudao.module.pay.dal.dataobject.notify.PayNotifyLogDO; @@ -32,6 +35,7 @@ import cn.iocoder.yudao.module.pay.service.notify.PayNotifyService; import cn.iocoder.yudao.module.pay.service.order.PayOrderService; import cn.iocoder.yudao.module.pay.service.refund.PayRefundService; import cn.iocoder.yudao.module.pay.service.wxprofitsharing.WxProfitsharingService; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; @@ -143,7 +147,7 @@ public class PayNotifyController { ActivityPayDTO activityPayDTO = new ActivityPayDTO(); activityPayDTO.setActivityId(Long.valueOf(deserializedMap.get("activityId"))); - activityPayDTO.setSerialNumbers(deserializedMap.get("serialNumbers")); +// activityPayDTO.setSerialNumbers(deserializedMap.get("serialNumbers")); activityPayDTO.setPrice(new BigDecimal(deserializedMap.get("price")).divide(new BigDecimal("100"), 2, RoundingMode.HALF_UP)); activityPayDTO.setUserId(Long.valueOf(deserializedMap.get("userId"))); activityPayDTO.setStatus(deserializedMap.get("status")); @@ -154,6 +158,13 @@ public class PayNotifyController { activityPayDTO.setTransactionId( notify.getChannelOrderNo()); activityPayDTO.setOpenid(deserializedMap.get("openid")); + String s = deserializedMap.get("menuList"); + if(StringUtils.isNotBlank(s)){ + List menuVOS = JSON.parseArray(s, MenuVO.class); + List bean = BeanUtils.toBean(menuVOS, MenuDTO.class); + activityPayDTO.setMenu(bean); + } + activityApi.createActivityPay(activityPayDTO); notifyRedisTemplate.delete("RESERVED" + notify.getOutTradeNo()); } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/MenuVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/MenuVO.java new file mode 100644 index 00000000..536a7835 --- /dev/null +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/MenuVO.java @@ -0,0 +1,35 @@ +package cn.iocoder.yudao.module.pay.controller.admin.order.vo; + + +public class MenuVO { + + private String serialNumbers; + + private Long menuId; + + private String menuName; + + public String getSerialNumbers() { + return serialNumbers; + } + + public void setSerialNumbers(String serialNumbers) { + this.serialNumbers = serialNumbers; + } + + public Long getMenuId() { + return menuId; + } + + public void setMenuId(Long menuId) { + this.menuId = menuId; + } + + public String getMenuName() { + return menuName; + } + + public void setMenuName(String menuName) { + this.menuName = menuName; + } +} diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java index 3de99cd8..3da83e5d 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/controller/admin/order/vo/PayOrderSubmitReqVO.java @@ -6,6 +6,7 @@ import org.hibernate.validator.constraints.URL; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; import java.util.Map; @Schema(description = "管理后台 - 支付订单提交 Request VO") @@ -45,4 +46,6 @@ public class PayOrderSubmitReqVO { private String diningPeriod; private Long voucherId; + + private List menuList; } diff --git a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java index 685e1935..365e4894 100644 --- a/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java +++ b/yudao-module-pay/yudao-module-pay-biz/src/main/java/cn/iocoder/yudao/module/pay/service/order/PayOrderServiceImpl.java @@ -1,6 +1,7 @@ package cn.iocoder.yudao.module.pay.service.order; import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; import cn.hutool.extra.spring.SpringUtil; @@ -178,7 +179,6 @@ public class PayOrderServiceImpl implements PayOrderService { HashMap stringStringHashMap = new HashMap<>(); stringStringHashMap.put("activityId",reqVO.getActivityId().toString()); stringStringHashMap.put("userId",getLoginUserId().toString()); - stringStringHashMap.put("serialNumbers",reqVO.getSerialNumbers()); stringStringHashMap.put("price",unifiedOrderReqDTO.getPrice().toString()); stringStringHashMap.put("status",reqVO.getStatus()); stringStringHashMap.put("reserveTime",reqVO.getReserveTime()); @@ -188,6 +188,13 @@ public class PayOrderServiceImpl implements PayOrderService { if(reqVO.getVoucherId()!=null){ stringStringHashMap.put("voucherId",reqVO.getVoucherId().toString()); } + if(reqVO.getSerialNumbers()!=null){ + stringStringHashMap.put("serialNumbers",reqVO.getSerialNumbers()); + } + if(CollectionUtil.isNotEmpty(reqVO.getMenuList())){ + stringStringHashMap.put("menuList", JSONUtil.toJsonStr(reqVO.getMenuList())); + } + payRedis.opsForValue().set("RESERVED"+unifiedOrderReqDTO.getOutTradeNo() , JSONUtil.toJsonStr(stringStringHashMap));