优化
This commit is contained in:
@ -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<MenuDTO> menu;
|
||||
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
||||
}
|
@ -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, "活动套餐不存在");
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
@ -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<Long> createActivityMenu(@Valid @RequestBody ActivityMenuSaveReqVO createReqVO) {
|
||||
return success(activityMenuService.createActivityMenu(createReqVO));
|
||||
}
|
||||
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "更新活动套餐")
|
||||
@PreAuthorize("@ss.hasPermission('member:activity-menu:update')")
|
||||
public CommonResult<Boolean> 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<Boolean> 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<ActivityMenuRespVO> 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<PageResult<ActivityMenuRespVO>> getActivityMenuPage(@Valid ActivityMenuPageReqVO pageReqVO) {
|
||||
PageResult<ActivityMenuDO> 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<ActivityMenuDO> list = activityMenuService.getActivityMenuPage(pageReqVO).getList();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "活动套餐.xls", "数据", ActivityMenuRespVO.class,
|
||||
BeanUtils.toBean(list, ActivityMenuRespVO.class));
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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<MenuDTO> menu;
|
||||
}
|
@ -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<Long> 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<Boolean> updateTime(@Valid @RequestBody UpdateTimeVO updateTimeVO) {
|
||||
return success( activityTableService.updateTime(updateTimeVO));
|
||||
}
|
||||
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -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;
|
||||
}
|
@ -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<ActivityMxVO> 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<ActivityReserveVO> orderExcelVOS = excelService.exportActivityReserve();
|
||||
// 导出 Excel
|
||||
ExcelUtils.write(response, "现金充值.xlsx", "数据", ActivityReserveVO.class,
|
||||
orderExcelVOS);
|
||||
}
|
||||
}
|
@ -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;
|
||||
}
|
@ -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;
|
||||
}
|
@ -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<PageResult<ActivityRespVO>> getTodayActivityPage(@Valid ActivityPageReqVO pageReqVO) {
|
||||
@ -251,6 +259,26 @@ public class AppActivityDrawController {
|
||||
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
|
||||
pageReqVO.setUserId(loginUserId);
|
||||
PageResult<AppActivityPayRespVO> 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<PayVO> 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<Integer> collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList());
|
||||
pageReqVO.setSerialNumberList(collect);
|
||||
PageResult<AppActivityPayRespVO> 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<PayVO> 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<List<ActivityMenuDO>> getMerchantByMobile(@Valid Long merchantId) {
|
||||
return success(activityMenuService.getListByMerchantId(merchantId));
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
@ -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<PayVO> payVOs;
|
||||
}
|
@ -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<MenuDTO> menuList;
|
||||
}
|
||||
|
@ -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;
|
||||
}
|
@ -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;
|
||||
|
||||
}
|
@ -64,4 +64,8 @@ public class ActivityPayDO extends BaseDO {
|
||||
private String transactionId;
|
||||
|
||||
private String openid;
|
||||
|
||||
private String menuIds;
|
||||
|
||||
private String menuNames;
|
||||
}
|
@ -58,4 +58,7 @@ public class ActivityTableDO extends BaseDO {
|
||||
|
||||
private String type;
|
||||
|
||||
private Long menuId;
|
||||
|
||||
private String menuName;
|
||||
}
|
@ -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<ActivityMenuDO> {
|
||||
|
||||
default PageResult<ActivityMenuDO> selectPage(ActivityMenuPageReqVO reqVO) {
|
||||
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityMenuDO>()
|
||||
.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));
|
||||
}
|
||||
|
||||
}
|
@ -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<ActivityPayDO> {
|
||||
|
||||
List<ActivityPayCountVO> countByActivityIds(@Param("activityIds") List<Long> activityIds);
|
||||
|
||||
|
||||
Page<AppActivityPayRespVO> getPage(@Param("page") Page<ActivityPayPageReqVO> page, @Param("reqVO") ActivityPayPageReqVO reqVO);
|
||||
}
|
@ -25,4 +25,9 @@ public interface CustomizeExcelMapper {
|
||||
|
||||
List<CashAmountExcelVO> exportCashAmountExcel(@Param("startTime")String startTime, @Param("endTime")String endTime, @Param("carteenId")Long carteenId);
|
||||
|
||||
List<ActivityMxVO> exportActivityMx();
|
||||
|
||||
List<ActivityReserveVO> exportActivityReserve();
|
||||
|
||||
|
||||
}
|
||||
|
@ -99,15 +99,16 @@ public class ActivityAwardsUserServiceImpl implements ActivityAwardsUserService
|
||||
@Override
|
||||
public List<ActivityAwardsUserDO> 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.<ActivityAwardsUserDO>lambdaQuery()
|
||||
.eq(ActivityAwardsUserDO::getActivityId, activityId)
|
||||
.between(ActivityAwardsUserDO::getCreateTime, startOfDay, endOfDay));
|
||||
// .between(ActivityAwardsUserDO::getCreateTime, startOfDay, endOfDay)
|
||||
);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -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<ActivityMenuDO> getActivityMenuPage(ActivityMenuPageReqVO pageReqVO);
|
||||
|
||||
|
||||
List<ActivityMenuDO> getListByIds(List<Long> ids);
|
||||
|
||||
List<ActivityMenuDO> getListByMerchantId(Long merchantId);
|
||||
}
|
@ -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<ActivityMenuDO> getActivityMenuPage(ActivityMenuPageReqVO pageReqVO) {
|
||||
return activityMenuMapper.selectPage(pageReqVO);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityMenuDO> getListByIds(List<Long> ids) {
|
||||
return activityMenuMapper.selectList(Wrappers.<ActivityMenuDO>lambdaQuery()
|
||||
.in(ActivityMenuDO::getId, ids));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityMenuDO> getListByMerchantId(Long merchantId) {
|
||||
return activityMenuMapper.selectList(Wrappers.<ActivityMenuDO>lambdaQuery()
|
||||
.eq(ActivityMenuDO::getMerchantId, merchantId));
|
||||
}
|
||||
}
|
@ -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<ActivityPayDO> getListByTime();
|
||||
|
||||
void updateBatch(List<ActivityPayDO> list);
|
||||
|
||||
void insertOne(ActivityPayDO activityPayDO);
|
||||
|
||||
ActivityPayDO getOneByActivityIdAndTimeAndNum(Long activityId, LocalDate time, Integer num);
|
||||
|
||||
void updateOne(ActivityPayDO activityPayDO );
|
||||
}
|
@ -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<MenuDTO> 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<Long> collect = menu.stream().map(MenuDTO::getMenuId).collect(Collectors.toList());
|
||||
List<ActivityMenuDO> 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<ActivityPayTableDO> activityPayTableDOS = new ArrayList<>();
|
||||
for (String serialNumber : split) {
|
||||
ActivityPayTableDO activityPayTableDO = new ActivityPayTableDO();
|
||||
if (StrUtil.isBlank(createReqVO.getDish())) {
|
||||
List<Long> collect = menu.stream().map(MenuDTO::getMenuId).collect(Collectors.toList());
|
||||
List<ActivityMenuDO> listByIds = activityMenuService.getListByIds(collect);
|
||||
Map<Long, ActivityMenuDO> menuMap = listByIds.stream().collect(Collectors.toMap(ActivityMenuDO::getId, vo -> vo));
|
||||
|
||||
|
||||
boolean notBlank = StrUtil.isNotBlank(createReqVO.getVoucherId());
|
||||
|
||||
List<ActivityPayTableDO> 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<ActivityPayTableDO> 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<AppActivityPayRespVO> getMerchantActivityPayPage(ActivityPayPageReqVO pageReqVO) {
|
||||
Page<AppActivityPayRespVO> activityAwardsUserRespVOPage = activityPayMapper.selectJoinPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), AppActivityPayRespVO.class,
|
||||
new MPJLambdaWrapper<ActivityPayDO>()
|
||||
.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<ActivityPayPageReqVO> queryDTOPage = new Page<>();
|
||||
queryDTOPage.setCurrent(pageReqVO.getPageNo());
|
||||
queryDTOPage.setSize(pageReqVO.getPageSize());
|
||||
|
||||
Page<AppActivityPayRespVO> 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<ActivityPayDO> 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.<ActivityPayDO>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);
|
||||
}
|
||||
}
|
@ -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<ActivityPayTableDO> list);
|
||||
|
||||
PageResult<ActivityPayTableRespVO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO);
|
||||
|
||||
void insertOne(ActivityPayTableDO activityPayTableDO);
|
||||
|
||||
ActivityPayTableDO getOneByActivityIdAndTimeAndNum(Long activityId, LocalDate time, Integer num);
|
||||
|
||||
void updateOne(ActivityPayTableDO activityPayTableDO);
|
||||
}
|
@ -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<ActivityPayTableDO> 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<ActivityPayTableDO>()
|
||||
.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);
|
||||
}
|
||||
}
|
@ -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<ActivityTableDO> getListByActivityId(Long activityId);
|
||||
|
||||
List<ActivityTableDO> getListByActivityIdAndTimeAndUserId(Long activityId, LocalDate time, Long userId);
|
||||
|
||||
|
||||
Long createActivityTableFalse( ActivityTableCreateVO createReqVO);
|
||||
|
||||
Boolean updateTime(@Valid @RequestBody UpdateTimeVO updateTimeVO);
|
||||
}
|
@ -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<String> 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<ActivityTableDO> 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<ActivityTableDO> 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;
|
||||
}
|
||||
}
|
@ -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<SubsidyExcelVO> exportSubsidyExcel(String startTime,String endTime,Long carteenId);
|
||||
|
||||
List<CashAmountExcelVO> exportCashAmountExcel(String startTime,String endTime,Long carteenId);
|
||||
|
||||
List<ActivityMxVO> exportActivityMx();
|
||||
|
||||
List<ActivityReserveVO> exportActivityReserve();
|
||||
}
|
||||
|
@ -47,4 +47,14 @@ public class CustomizeExcelServiceImpl implements CustomizeExcelService {
|
||||
public List<CashAmountExcelVO> exportCashAmountExcel(String startTime, String endTime, Long carteenId) {
|
||||
return customizeExcelMapper.exportCashAmountExcel(startTime,endTime,carteenId);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityMxVO> exportActivityMx() {
|
||||
return customizeExcelMapper.exportActivityMx();
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ActivityReserveVO> exportActivityReserve() {
|
||||
return customizeExcelMapper.exportActivityReserve();
|
||||
}
|
||||
}
|
||||
|
@ -22,4 +22,26 @@
|
||||
GROUP BY activity_id
|
||||
</select>
|
||||
|
||||
<select id="getPage" resultType="cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityPayRespVO">
|
||||
select p.*,a.activity_name from member_activity_pay p left join member_activity a on p.activity_id = a.id
|
||||
WHERE 1=1
|
||||
<if test="reqVO.isDish">
|
||||
and p.dish is not null
|
||||
</if>
|
||||
<if test="!reqVO.isDish">
|
||||
and p.dish is null
|
||||
</if>
|
||||
<if test="reqVO.status != null and reqVO.status!=''">
|
||||
AND p.status = #{reqVO.status}
|
||||
</if>
|
||||
<if test="reqVO.serialNumberList != null and reqVO.serialNumberList.size() > 0">
|
||||
AND (
|
||||
SUBSTRING_INDEX(p.serial_numbers, ',', 1) IN
|
||||
<foreach collection="reqVO.serialNumberList" item="sn" open="(" separator="," close=")">
|
||||
#{sn}
|
||||
</foreach>
|
||||
)
|
||||
</if>
|
||||
</select>
|
||||
|
||||
</mapper>
|
@ -160,4 +160,46 @@
|
||||
and DATE_FORMAT(mc.create_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}
|
||||
</select>
|
||||
|
||||
|
||||
<select id="exportActivityMx" resultType="cn.iocoder.yudao.module.member.controller.admin.customizeExcel.vo.ActivityMxVO">
|
||||
select t.id,
|
||||
a.activity_name ,
|
||||
m.name ,
|
||||
t.serial_numbers ,
|
||||
t.price ,
|
||||
t.nick_name ,
|
||||
t.mobile ,
|
||||
t.reserve_time ,
|
||||
t.create_time
|
||||
from (select * from member_activity_pay where deleted =false) t
|
||||
left join member_activity_table_dish d on t.activity_id = d.activity_id and SUBSTRING_INDEX(t.serial_numbers, ',', 1) = d.serial_number
|
||||
left join member_activity_merchant m on d.merchant_id = m.id
|
||||
left join member_activity a on a.id = t.activity_id
|
||||
and d.deleted = false and t.deleted = false
|
||||
</select>
|
||||
|
||||
<select id="exportActivityReserve" resultType="cn.iocoder.yudao.module.member.controller.admin.customizeExcel.vo.ActivityReserveVO">
|
||||
SELECT
|
||||
m.name,
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-13' THEN 1 ELSE 0 END) AS 'day1',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-14' THEN 1 ELSE 0 END) AS 'day2',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-15' THEN 1 ELSE 0 END) AS 'day3',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-16' THEN 1 ELSE 0 END) AS 'day4',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-17' THEN 1 ELSE 0 END) AS 'day5',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-18' THEN 1 ELSE 0 END) AS 'day6',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-19' THEN 1 ELSE 0 END) AS 'day7',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-20' THEN 1 ELSE 0 END) AS 'day8',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-21' THEN 1 ELSE 0 END) AS 'day9',
|
||||
SUM(CASE WHEN t.reserve_time = '2025-06-22' THEN 1 ELSE 0 END) AS 'day10'
|
||||
FROM member_activity_merchant m
|
||||
LEFT JOIN member_activity_table_dish d ON d.merchant_id = m.id AND d.deleted = 0
|
||||
LEFT JOIN (select * from member_activity_pay_table where reserve_time is not null and deleted = 0) t
|
||||
ON t.activity_id = d.activity_id
|
||||
AND t.serial_numbers = d.serial_number
|
||||
AND t.reserve_time BETWEEN '2025-06-13' AND '2025-06-22'
|
||||
WHERE
|
||||
m.deleted = 0
|
||||
GROUP BY m.name
|
||||
ORDER BY m.name
|
||||
</select>
|
||||
</mapper>
|
Reference in New Issue
Block a user