Compare commits

..

14 Commits

Author SHA1 Message Date
zt
274ed9320d 优化 2025-08-18 14:11:59 +08:00
zt
08ea3906a4 优化 2025-07-21 14:20:28 +08:00
zt
382d812a63 优化 2025-07-08 15:53:26 +08:00
zt
155e99a588 优化 2025-07-02 15:24:56 +08:00
zt
49e74b91c5 优化 2025-06-17 15:49:19 +08:00
zt
a9a2460a0e 优化 2025-06-17 09:24:48 +08:00
zt
5dbe070640 优化 2025-06-14 23:24:31 +08:00
zt
8646e62504 优化 2025-06-13 09:03:19 +08:00
zt
34d5724db7 优化 2025-06-12 18:55:05 +08:00
zt
57dfb3f316 优化 2025-06-12 17:14:33 +08:00
zt
a698d53742 优化 2025-06-12 09:18:30 +08:00
zt
6b92d0f800 优化 2025-06-10 21:17:29 +08:00
zt
0cc91a0894 优化 2025-05-20 10:52:52 +08:00
zt
acba88ade0 优化 2025-04-25 10:45:22 +08:00
219 changed files with 11135 additions and 225 deletions

View File

@ -0,0 +1,18 @@
package cn.iocoder.yudao.module.member.api.activitypay;
import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayDTO;
import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayRespDTO;
/**
* 用户收件地址 API 接口
*
* @author 芋道源码
*/
public interface ActivityApi {
void createActivityPay(ActivityPayDTO createReqVO);
ActivityPayRespDTO getActivityPay(Long id);
}

View File

@ -0,0 +1,55 @@
package cn.iocoder.yudao.module.member.api.activitypay.dto;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.math.BigDecimal;
import java.util.List;
/**
* 活动付款 DO
*
* @author 我是秦俊旗
*/
// 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ActivityPayDTO {
/**
* 活动id
*/
private Long activityId;
/**
* 桌号
*/
private String serialNumbers;
/**
* 价格
*/
private BigDecimal price;
/**
* 用户id
*/
private Long userId;
private String status;
private String reserveTime;
private String dish;
private String diningPeriod;
private String voucherId;
private String transactionId;
private String openid;
private List<MenuDTO> menu;
}

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.member.api.activitypay.dto;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Data
public class ActivityPayRespDTO {
private Long id;
private Long activityId;
private String serialNumbers;
private BigDecimal price;
private Long userId;
private String mobile;
private String transactionId;
private String openid;
private LocalDateTime createTime;
}

View File

@ -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;
}
}

View File

@ -61,6 +61,7 @@ public interface ErrorCodeConstants {
ErrorCode CARD_NOT_EXISTS = new ErrorCode(1_004_013_000, "余额明细不存在");
ErrorCode ORDER_NOT_EXISTS = new ErrorCode(1_004_013_001, "订单不存在");
ErrorCode ORDER_STATUS_NOT_ALLOW = new ErrorCode(1_004_013_001, "未完成订单或异常订单不支持减免");
ErrorCode ORDER_MONEY_NOT_ENOUGH = new ErrorCode(1_004_013_001, "减免金额不能大于订单金额");
ErrorCode ORDER_DETAIL_NOT_EXISTS = new ErrorCode(1_004_013_002, "订单明细不存在");
ErrorCode RECHARGE_AMOUNT_NOT_EXISTS = new ErrorCode(1_004_013_003, "订单明细不存在");
ErrorCode RECHARGE_AMOUNT_ALREADY_EXISTS = new ErrorCode(1_004_013_004, "该金额已存在");
@ -186,5 +187,37 @@ public interface ErrorCodeConstants {
ErrorCode STORE_DINING_PLATES_NOT_EXISTS = new ErrorCode(1_004_033_02, "设置不存在");
ErrorCode DINING_PLATES_BIND_MAX = new ErrorCode(1_004_033_02, "可绑定的餐盘已达到上限");
ErrorCode STORE_DISCOUNT_NOT_EXISTS = new ErrorCode(1_004_033_03, "门店超市折扣不存在");
ErrorCode ACTIVITY_USER_NOT_EXISTS = new ErrorCode(1_005_000_01, "活动参加人员不存在");
ErrorCode ACTIVITY_TABLE_NOT_EXISTS = new ErrorCode(1_005_000_02, "活动用餐桌子不存在");
ErrorCode ACTIVITY_RESTAURANT_NOT_EXISTS = new ErrorCode(1_005_000_03, "活动用餐不存在");
ErrorCode ACTIVITY_AWARDS_USER_NOT_EXISTS = new ErrorCode(1_005_000_04, "活动中奖人员不存在");
ErrorCode ACTIVITY_AWARDS_NOT_EXISTS = new ErrorCode(1_005_000_05, "活动奖项不存在");
ErrorCode ACTIVITY_NOT_EXISTS = new ErrorCode(1_005_000_06, "活动不存在");
ErrorCode ACTIVITY_START = new ErrorCode(1_005_000_07, "活动已开始或结束");
ErrorCode ACTIVITY_TABLE_ZERO = new ErrorCode(1_005_000_08, "总桌数至少为1");
ErrorCode ACTIVITY_AWARDS_EXCEED = new ErrorCode(1_005_000_09, "中奖人数超出");
ErrorCode ACTIVITY_ERROR = new ErrorCode(1_005_000_10, "活动已结束");
ErrorCode ACTIVITY_USER_JOIN = new ErrorCode(1_005_000_11, "该活动已报名");
ErrorCode ACTIVITY_TABLE_RESERVED = new ErrorCode(1_005_000_12, "桌子已预订");
ErrorCode ACTIVITY_PAY_NOT_EXISTS = new ErrorCode(1_005_000_13, "活动付款不存在");
ErrorCode ACTIVITY_AWARDS_USER_NOT_EFFECTIVE = new ErrorCode(1_005_000_14, "该奖项已兑换或已过期");
ErrorCode ACTIVITY_NO_USER = new ErrorCode(1_005_000_15, "活动无参与人员");
ErrorCode ACTIVITY_PAY_TABLE_NOT_EXISTS = new ErrorCode(1_005_000_16, "活动付款不存在");
ErrorCode ACTIVITY_PAY_USE = new ErrorCode(1_005_000_17, "该订单已使用");
ErrorCode ACTIVITY_PAY_EXPIRE = new ErrorCode(1_005_000_18, "该订单不在有效期内");
ErrorCode ACTIVITY_ADD_DISH_NOT_EXISTS = new ErrorCode(1_005_000_19, "活动用餐桌子加菜不存在");
ErrorCode ACTIVITY_TABLE_DISH_NOT_EXISTS = new ErrorCode(1_005_000_20, "活动用餐桌子配置不存在");
ErrorCode ACTIVITY_ADD_DISH_NOT_CHANGE = new ErrorCode(1_005_000_21, "请先选择桌子");
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, "活动套餐不存在");
}

View File

@ -110,6 +110,10 @@
<artifactId>javase</artifactId>
<version>3.4.1</version>
</dependency>
<dependency>
<groupId>cn.iocoder.boot</groupId>
<artifactId>yudao-spring-boot-starter-protection</artifactId>
</dependency>
</dependencies>

View File

@ -0,0 +1,38 @@
package cn.iocoder.yudao.module.member.api.activitypay;
import cn.hutool.core.bean.BeanUtil;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayDTO;
import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayRespDTO;
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPaySaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO;
import cn.iocoder.yudao.module.member.service.activitypay.ActivityPayService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* 用户收件地址 API 接口
*
* @author 芋道源码
*/
@Service
public class ActivityApiImpl implements ActivityApi {
@Resource
private ActivityPayService activityPayService;
@Override
public void createActivityPay(ActivityPayDTO createReqVO) {
ActivityPaySaveReqVO bean = BeanUtil.toBean(createReqVO, ActivityPaySaveReqVO.class);
bean.setMenu(createReqVO.getMenu());
activityPayService.addActivityPay(bean);
}
@Override
public ActivityPayRespDTO getActivityPay(Long id) {
ActivityPayDO activityPay = activityPayService.getActivityPay(id);
return BeanUtils.toBean(activityPay, ActivityPayRespDTO.class);
}
}

View File

@ -0,0 +1,100 @@
package cn.iocoder.yudao.module.member.controller.admin.activity;
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.activity.vo.ActivityPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activity.vo.ActivityRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activity.vo.ActivitySaveReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantRespVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO;
import cn.iocoder.yudao.module.member.dal.dataobject.activityrestaurant.ActivityRestaurantDO;
import cn.iocoder.yudao.module.member.service.activity.ActivityService;
import cn.iocoder.yudao.module.member.service.activityrestaurant.ActivityRestaurantService;
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")
@Validated
public class ActivityController {
@Resource
private ActivityService activityService;
@Resource
private ActivityRestaurantService activityRestaurantService;
@PostMapping("/create")
@Operation(summary = "创建活动")
public CommonResult<Long> createActivity(@Valid @RequestBody ActivitySaveReqVO createReqVO) {
return success(activityService.createActivity(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动")
@PreAuthorize("@ss.hasPermission('member:activity:update')")
public CommonResult<Boolean> updateActivity(@Valid @RequestBody ActivitySaveReqVO updateReqVO) {
activityService.updateActivity(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity:delete')")
public CommonResult<Boolean> deleteActivity(@RequestParam("id") Long id) {
activityService.deleteActivity(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity:query')")
public CommonResult<ActivityRespVO> getActivity(@RequestParam("id") Long id) {
ActivityDO activity = activityService.getActivity(id);
ActivityRespVO bean = BeanUtils.toBean(activity, ActivityRespVO.class);
ActivityRestaurantDO activityRestaurantDO = activityRestaurantService.getByActivityId(id);
bean.setActivityRestaurantSaveDto(BeanUtils.toBean(activityRestaurantDO, ActivityRestaurantRespVO.class));
return success(bean);
}
@GetMapping("/page")
@Operation(summary = "获得活动分页")
@PreAuthorize("@ss.hasPermission('member:activity:query')")
public CommonResult<PageResult<ActivityRespVO>> getActivityPage(@Valid ActivityPageReqVO pageReqVO) {
PageResult<ActivityRespVO> pageResult = activityService.getActivityPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动 Excel")
@PreAuthorize("@ss.hasPermission('member:activity:export')")
@OperateLog(type = EXPORT)
public void exportActivityExcel(@Valid ActivityPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityRespVO> list = activityService.getActivityPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动.xls", "数据", ActivityRespVO.class,
list);
}
}

View File

@ -0,0 +1,56 @@
package cn.iocoder.yudao.module.member.controller.admin.activity.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import 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 ActivityPageReqVO extends PageParam {
@Schema(description = "活动名称", example = "李四")
private String activityName;
@Schema(description = "活动开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startTime;
@Schema(description = "活动结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] endTime;
@Schema(description = "描述", example = "你猜")
private String description;
@Schema(description = "封面图")
private String img;
@Schema(description = "地点")
private String location;
@Schema(description = "主办方")
private String sponsor;
@Schema(description = "可抽奖次数")
private Integer lotteryNum;
@Schema(description = "用餐状态0-禁用1-启用 ", example = "1")
private String reservationStatus;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "用户ID")
private Long userId;
}

View File

@ -0,0 +1,77 @@
package cn.iocoder.yudao.module.member.controller.admin.activity.vo;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantRespVO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29158")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("活动名称")
private String activityName;
@Schema(description = "活动开始时间")
@ExcelProperty("活动开始时间")
private LocalDateTime startTime;
@Schema(description = "活动结束时间")
@ExcelProperty("活动结束时间")
private LocalDateTime endTime;
@Schema(description = "描述", example = "你猜")
@ExcelProperty("描述")
private String description;
@Schema(description = "封面图")
@ExcelProperty("封面图")
private String img;
@Schema(description = "地点")
@ExcelProperty("地点")
private String location;
@Schema(description = "主办方")
@ExcelProperty("主办方")
private String sponsor;
@Schema(description = "可抽奖次数")
@ExcelProperty("可抽奖次数")
private Integer lotteryNum;
@Schema(description = "用餐状态0-禁用1-启用 ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("用餐状态0-禁用1-启用 ")
private String reservationStatus;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "报名人数")
private Integer applyNum;
@Schema(description = "中奖人数")
private Integer awardsNum;
@Schema(description = "预定人数")
private Integer reserveNum;
@Schema(description = "收入")
private BigDecimal income;
@Schema(description = "是否报名")
private Boolean isApply;
private ActivityRestaurantRespVO activityRestaurantSaveDto;
}

View File

@ -0,0 +1,53 @@
package cn.iocoder.yudao.module.member.controller.admin.activity.vo;
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsListDTO;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantSaveDto;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 活动新增/修改 Request VO")
@Data
public class ActivitySaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29158")
private Long id;
@Schema(description = "活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@NotEmpty(message = "活动名称不能为空")
private String activityName;
@Schema(description = "活动开始时间")
private LocalDateTime startTime;
@Schema(description = "活动结束时间")
private LocalDateTime endTime;
@Schema(description = "描述", example = "你猜")
private String description;
@Schema(description = "封面图")
private String img;
@Schema(description = "地点")
private String location;
@Schema(description = "主办方")
private String sponsor;
@Schema(description = "可抽奖次数")
private Integer lotteryNum;
@Schema(description = "用餐状态0-禁用1-启用 ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@NotEmpty(message = "用餐状态0-禁用1-启用 不能为空")
private String reservationStatus;
@Schema(description = "奖项列表")
private List<ActivityAwardsListDTO> activityAwardsList;
@Schema(description = "用餐设置")
private ActivityRestaurantSaveDto activityRestaurantSaveDto;
}

View File

@ -0,0 +1,102 @@
package cn.iocoder.yudao.module.member.controller.admin.activityadddish;
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.activityadddish.vo.ActivityAddDishPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishSaveBatchVO;
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activityadddish.ActivityAddDishDO;
import cn.iocoder.yudao.module.member.service.activityadddish.ActivityAddDishService;
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-add-dish")
@Validated
public class ActivityAddDishController {
@Resource
private ActivityAddDishService activityAddDishService;
@PostMapping("/create")
@Operation(summary = "创建活动用餐桌子加菜")
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:create')")
public CommonResult<Long> createActivityAddDish(@Valid @RequestBody ActivityAddDishSaveReqVO createReqVO) {
return success(activityAddDishService.createActivityAddDish(createReqVO));
}
@PostMapping("/createBatch")
@Operation(summary = "创建活动用餐桌子加菜批量")
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:create')")
public CommonResult<Boolean> createActivityAddDish(@Valid @RequestBody ActivityAddDishSaveBatchVO createReqVO) {
activityAddDishService.createActivityAddDishBatch(createReqVO);
return success(true);
}
@PutMapping("/update")
@Operation(summary = "更新活动用餐桌子加菜")
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:update')")
public CommonResult<Boolean> updateActivityAddDish(@Valid @RequestBody ActivityAddDishSaveReqVO updateReqVO) {
activityAddDishService.updateActivityAddDish(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动用餐桌子加菜")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:delete')")
public CommonResult<Boolean> deleteActivityAddDish(@RequestParam("id") Long id) {
activityAddDishService.deleteActivityAddDish(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动用餐桌子加菜")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:query')")
public CommonResult<ActivityAddDishRespVO> getActivityAddDish(@RequestParam("id") Long id) {
ActivityAddDishDO activityAddDish = activityAddDishService.getActivityAddDish(id);
return success(BeanUtils.toBean(activityAddDish, ActivityAddDishRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动用餐桌子加菜分页")
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:query')")
public CommonResult<PageResult<ActivityAddDishRespVO>> getActivityAddDishPage(@Valid ActivityAddDishPageReqVO pageReqVO) {
PageResult<ActivityAddDishDO> pageResult = activityAddDishService.getActivityAddDishPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityAddDishRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动用餐桌子加菜 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-add-dish:export')")
@OperateLog(type = EXPORT)
public void exportActivityAddDishExcel(@Valid ActivityAddDishPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityAddDishDO> list = activityAddDishService.getActivityAddDishPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动用餐桌子加菜.xls", "数据", ActivityAddDishRespVO.class,
BeanUtils.toBean(list, ActivityAddDishRespVO.class));
}
}

View File

@ -0,0 +1,44 @@
package cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 活动用餐桌子加菜分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityAddDishPageReqVO extends PageParam {
@Schema(description = "桌子", example = "18726")
private Long tableDishId;
@Schema(description = "序号")
private Integer serialNumber;
@Schema(description = "菜名", example = "赵六")
private String dishName;
@Schema(description = "菜品价格", example = "12669")
private BigDecimal dishPrice;
@Schema(description = "菜品图片")
private String dishImg;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "桌子", example = "18726")
private List<Long> tableDishIds;
}

View File

@ -0,0 +1,45 @@
package cn.iocoder.yudao.module.member.controller.admin.activityadddish.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 ActivityAddDishRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15656")
@ExcelProperty("编号")
private Long id;
@Schema(description = "桌子", requiredMode = Schema.RequiredMode.REQUIRED, example = "18726")
@ExcelProperty("桌子")
private Long tableDishId;
@Schema(description = "序号")
@ExcelProperty("序号")
private Integer serialNumber;
@Schema(description = "菜名", example = "赵六")
@ExcelProperty("菜名")
private String dishName;
@Schema(description = "菜品价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "12669")
@ExcelProperty("菜品价格")
private BigDecimal dishPrice;
@Schema(description = "菜品图片")
@ExcelProperty("菜品图片")
private String dishImg;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo;
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
public class ActivityAddDishSaveBatchVO {
@Schema(description = "桌子", requiredMode = Schema.RequiredMode.REQUIRED, example = "18726")
@NotNull(message = "桌子不能为空")
private List<Long> tableDishIds;
@Schema(description = "菜名", example = "赵六")
private String dishName;
@Schema(description = "菜品价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "12669")
@NotNull(message = "菜品价格不能为空")
private BigDecimal dishPrice;
@Schema(description = "菜品图片")
private String dishImg;
}

View File

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.member.controller.admin.activityadddish.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 ActivityAddDishSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "15656")
private Long id;
@Schema(description = "桌子", requiredMode = Schema.RequiredMode.REQUIRED, example = "18726")
@NotNull(message = "桌子不能为空")
private Long tableDishId;
@Schema(description = "序号")
private Integer serialNumber;
@Schema(description = "菜名", example = "赵六")
private String dishName;
@Schema(description = "菜品价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "12669")
@NotNull(message = "菜品价格不能为空")
private BigDecimal dishPrice;
@Schema(description = "菜品图片")
private String dishImg;
}

View File

@ -0,0 +1,101 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawards;
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.activityawards.vo.ActivityAwardsPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activityawards.ActivityAwardsDO;
import cn.iocoder.yudao.module.member.service.activityawards.ActivityAwardsService;
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-awards")
@Validated
public class ActivityAwardsController {
@Resource
private ActivityAwardsService activityAwardsService;
@PostMapping("/create")
@Operation(summary = "创建活动奖项")
@PreAuthorize("@ss.hasPermission('member:activity-awards:create')")
public CommonResult<Long> createActivityAwards(@Valid @RequestBody ActivityAwardsSaveReqVO createReqVO) {
return success(activityAwardsService.createActivityAwards(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动奖项")
@PreAuthorize("@ss.hasPermission('member:activity-awards:update')")
public CommonResult<Boolean> updateActivityAwards(@Valid @RequestBody ActivityAwardsSaveReqVO updateReqVO) {
activityAwardsService.updateActivityAwards(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动奖项")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-awards:delete')")
public CommonResult<Boolean> deleteActivityAwards(@RequestParam("id") Long id) {
activityAwardsService.deleteActivityAwards(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动奖项")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-awards:query')")
public CommonResult<ActivityAwardsRespVO> getActivityAwards(@RequestParam("id") Long id) {
ActivityAwardsDO activityAwards = activityAwardsService.getActivityAwards(id);
return success(BeanUtils.toBean(activityAwards, ActivityAwardsRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动奖项分页")
@PreAuthorize("@ss.hasPermission('member:activity-awards:query')")
public CommonResult<PageResult<ActivityAwardsRespVO>> getActivityAwardsPage(@Valid ActivityAwardsPageReqVO pageReqVO) {
PageResult<ActivityAwardsDO> pageResult = activityAwardsService.getActivityAwardsPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityAwardsRespVO.class));
}
@GetMapping("/list")
@Operation(summary = "获得活动奖项列表")
public CommonResult<List<ActivityAwardsRespVO>> getActivityAwardsList(@Valid ActivityAwardsPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityAwardsDO> list = activityAwardsService.getActivityAwardsPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityAwardsRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动奖项 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-awards:export')")
@OperateLog(type = EXPORT)
public void exportActivityAwardsExcel(@Valid ActivityAwardsPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityAwardsDO> list = activityAwardsService.getActivityAwardsPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动奖项.xls", "数据", ActivityAwardsRespVO.class,
BeanUtils.toBean(list, ActivityAwardsRespVO.class));
}
}

View File

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawards.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 活动奖项新增/修改 Request VO")
@Data
public class ActivityAwardsListDTO {
@Schema(description = "奖项名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@NotEmpty(message = "奖项名称不能为空")
private String awardsName;
private String limitType;
@Schema(description = "奖项人数")
private Integer awardsNum;
@Schema(description = "奖品")
private String prize;
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "排序不能为空")
private Integer sortNum;
}

View File

@ -0,0 +1,41 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawards.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import 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 ActivityAwardsPageReqVO extends PageParam {
@Schema(description = "活动id", example = "3061")
private Long activityId;
@Schema(description = "奖项名称", example = "芋艿")
private String awardsName;
private String limitType;
@Schema(description = "奖项人数")
private Integer awardsNum;
@Schema(description = "奖品")
private String prize;
@Schema(description = "排序")
private Integer sortNum;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,46 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawards.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动奖项 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityAwardsRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13226")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3061")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "奖项名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@ExcelProperty("奖项名称")
private String awardsName;
private String limitType;
@Schema(description = "奖项人数")
@ExcelProperty("奖项人数")
private Integer awardsNum;
@Schema(description = "奖品")
@ExcelProperty("奖品")
private String prize;
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("排序")
private Integer sortNum;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawards.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 活动奖项新增/修改 Request VO")
@Data
public class ActivityAwardsSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "13226")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "3061")
@NotNull(message = "活动id不能为空")
private Long activityId;
private String limitType;
@Schema(description = "奖项名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "芋艿")
@NotEmpty(message = "奖项名称不能为空")
private String awardsName;
@Schema(description = "奖项人数")
private Integer awardsNum;
@Schema(description = "奖品")
private String prize;
@Schema(description = "排序", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "排序不能为空")
private Integer sortNum;
}

View File

@ -0,0 +1,101 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawardsuser;
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.activityawardsuser.vo.ActivityAwardsUserPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO;
import cn.iocoder.yudao.module.member.service.activityawardsuser.ActivityAwardsUserService;
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-awards-user")
@Validated
public class ActivityAwardsUserController {
@Resource
private ActivityAwardsUserService activityAwardsUserService;
@PostMapping("/create")
@Operation(summary = "创建活动中奖人员")
@PreAuthorize("@ss.hasPermission('member:activity-awards-user:create')")
public CommonResult<Long> createActivityAwardsUser(@Valid @RequestBody ActivityAwardsUserSaveReqVO createReqVO) {
return success(activityAwardsUserService.createActivityAwardsUser(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动中奖人员")
@PreAuthorize("@ss.hasPermission('member:activity-awards-user:update')")
public CommonResult<Boolean> updateActivityAwardsUser(@Valid @RequestBody ActivityAwardsUserSaveReqVO updateReqVO) {
activityAwardsUserService.updateActivityAwardsUser(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动中奖人员")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-awards-user:delete')")
public CommonResult<Boolean> deleteActivityAwardsUser(@RequestParam("id") Long id) {
activityAwardsUserService.deleteActivityAwardsUser(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动中奖人员")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-awards-user:query')")
public CommonResult<ActivityAwardsUserRespVO> getActivityAwardsUser(@RequestParam("id") Long id) {
ActivityAwardsUserDO activityAwardsUser = activityAwardsUserService.getActivityAwardsUser(id);
return success(BeanUtils.toBean(activityAwardsUser, ActivityAwardsUserRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动中奖人员分页")
@PreAuthorize("@ss.hasPermission('member:activity-awards-user:query')")
public CommonResult<PageResult<ActivityAwardsUserRespVO>> getActivityAwardsUserPage(@Valid ActivityAwardsUserPageReqVO pageReqVO) {
PageResult<ActivityAwardsUserDO> pageResult = activityAwardsUserService.getActivityAwardsUserPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityAwardsUserRespVO.class));
}
@GetMapping("/JoinPage")
@Operation(summary = "获得活动中奖人员分页")
public CommonResult<PageResult<ActivityAwardsUserRespVO>> getActivityAwardsUserJoinPage(@Valid ActivityAwardsUserPageReqVO pageReqVO) {
return success(activityAwardsUserService.getActivityAwardsUserJoinPage(pageReqVO));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动中奖人员 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-awards-user:export')")
@OperateLog(type = EXPORT)
public void exportActivityAwardsUserExcel(@Valid ActivityAwardsUserPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityAwardsUserDO> list = activityAwardsUserService.getActivityAwardsUserPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动中奖人员.xls", "数据", ActivityAwardsUserRespVO.class,
BeanUtils.toBean(list, ActivityAwardsUserRespVO.class));
}
}

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 活动参加人员 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityAwardsUserCountVO {
@Schema(description = "活动id")
private Long activityId;
@Schema(description = "中奖人数")
private Integer awardsNum= 0;
}

View File

@ -0,0 +1,38 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import 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 ActivityAwardsUserPageReqVO extends PageParam {
@Schema(description = "活动id", example = "8386")
private Long activityId;
@Schema(description = "用户id", example = "19931")
private Long userId;
@Schema(description = "电话")
private String mobile;
@Schema(description = "奖品id", example = "3358")
private Long awardsId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
private String awardsStatus;
}

View File

@ -0,0 +1,58 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动中奖人员 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityAwardsUserRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32607")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8386")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19931")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
private String nickName;
private String avatar;
/**
* 领奖状态(0-未领奖1-已领奖2-已过期)
*/
private String awardsStatus;
@Schema(description = "奖品id", example = "3358")
@ExcelProperty("奖品id")
private Long awardsId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
/**
* 奖项名称
*/
private String awardsName;
/**
* 奖品
*/
private String prize;
}

View File

@ -0,0 +1,29 @@
package cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 活动中奖人员新增/修改 Request VO")
@Data
public class ActivityAwardsUserSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32607")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8386")
@NotNull(message = "活动id不能为空")
private Long activityId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "19931")
@NotNull(message = "用户id不能为空")
private Long userId;
@Schema(description = "电话")
private String mobile;
@Schema(description = "奖品id", example = "3358")
private Long awardsId;
}

View File

@ -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));
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -0,0 +1,102 @@
package cn.iocoder.yudao.module.member.controller.admin.activitymerchant;
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.activitymerchant.vo.ActivityMerchantPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activitymerchant.ActivityMerchantDO;
import cn.iocoder.yudao.module.member.service.activitymerchant.ActivityMerchantService;
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-merchant")
@Validated
public class ActivityMerchantController {
@Resource
private ActivityMerchantService activityMerchantService;
@PostMapping("/create")
@Operation(summary = "创建活动商家")
@PreAuthorize("@ss.hasPermission('member:activity-merchant:create')")
public CommonResult<Long> createActivityMerchant(@Valid @RequestBody ActivityMerchantSaveReqVO createReqVO) {
return success(activityMerchantService.createActivityMerchant(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动商家")
@PreAuthorize("@ss.hasPermission('member:activity-merchant:update')")
public CommonResult<Boolean> updateActivityMerchant(@Valid @RequestBody ActivityMerchantSaveReqVO updateReqVO) {
activityMerchantService.updateActivityMerchant(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动商家")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-merchant:delete')")
public CommonResult<Boolean> deleteActivityMerchant(@RequestParam("id") Long id) {
activityMerchantService.deleteActivityMerchant(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动商家")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-merchant:query')")
public CommonResult<ActivityMerchantRespVO> getActivityMerchant(@RequestParam("id") Long id) {
ActivityMerchantDO activityMerchant = activityMerchantService.getActivityMerchant(id);
return success(BeanUtils.toBean(activityMerchant, ActivityMerchantRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动商家分页")
@PreAuthorize("@ss.hasPermission('member:activity-merchant:query')")
public CommonResult<PageResult<ActivityMerchantRespVO>> getActivityMerchantPage(@Valid ActivityMerchantPageReqVO pageReqVO) {
PageResult<ActivityMerchantDO> pageResult = activityMerchantService.getActivityMerchantPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityMerchantRespVO.class));
}
@GetMapping("/list")
@Operation(summary = "获得活动商家列表")
@PreAuthorize("@ss.hasPermission('member:activity-merchant:query')")
public CommonResult<List<ActivityMerchantRespVO>> getActivityMerchantList(@Valid ActivityMerchantPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityMerchantDO> list = activityMerchantService.getActivityMerchantPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityMerchantRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动商家 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-merchant:export')")
@OperateLog(type = EXPORT)
public void exportActivityMerchantExcel(@Valid ActivityMerchantPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityMerchantDO> list = activityMerchantService.getActivityMerchantPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动商家.xls", "数据", ActivityMerchantRespVO.class,
BeanUtils.toBean(list, ActivityMerchantRespVO.class));
}
}

View File

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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 ActivityMerchantPageReqVO extends PageParam {
@Schema(description = "商家名", example = "赵六")
private String name;
@Schema(description = "联系人")
private String person;
@Schema(description = "电话")
private String mobile;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 活动商家 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityMerchantRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16185")
@ExcelProperty("编号")
private Long id;
@Schema(description = "商家名", example = "赵六")
@ExcelProperty("商家名")
private String name;
@Schema(description = "联系人")
@ExcelProperty("联系人")
private String person;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,24 @@
package cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 活动商家新增/修改 Request VO")
@Data
public class ActivityMerchantSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "16185")
private Long id;
@Schema(description = "商家名", example = "赵六")
private String name;
@Schema(description = "联系人")
private String person;
@Schema(description = "电话")
private String mobile;
}

View File

@ -0,0 +1,113 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypay;
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.activitypay.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO;
import cn.iocoder.yudao.module.member.service.activitypay.ActivityPayService;
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-pay")
@Validated
public class ActivityPayController {
@Resource
private ActivityPayService activityPayService;
@PostMapping("/create")
@Operation(summary = "创建活动付款")
@PreAuthorize("@ss.hasPermission('member:activity-pay:create')")
public CommonResult<Long> createActivityPay(@Valid @RequestBody ActivityPaySaveReqVO createReqVO) {
return success(activityPayService.createActivityPay(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动付款")
@PreAuthorize("@ss.hasPermission('member:activity-pay:update')")
public CommonResult<Boolean> updateActivityPay(@Valid @RequestBody ActivityPaySaveReqVO updateReqVO) {
activityPayService.updateActivityPay(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动付款")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-pay:delete')")
public CommonResult<Boolean> deleteActivityPay(@RequestParam("id") Long id) {
activityPayService.deleteActivityPay(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动付款")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-pay:query')")
public CommonResult<ActivityPayRespVO> getActivityPay(@RequestParam("id") Long id) {
ActivityPayDO activityPay = activityPayService.getActivityPay(id);
return success(BeanUtils.toBean(activityPay, ActivityPayRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动付款分页")
@PreAuthorize("@ss.hasPermission('member:activity-pay:query')")
public CommonResult<PageResult<ActivityPayRespVO>> getActivityPayPage(@Valid ActivityPayPageReqVO pageReqVO) {
PageResult<ActivityPayDO> pageResult = activityPayService.getActivityPayPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityPayRespVO.class));
}
@GetMapping("/pageNew")
@Operation(summary = "获得活动付款分页")
@PreAuthorize("@ss.hasPermission('member:activity-pay:query')")
public CommonResult<PageResult<ActivityPayPageRVO>> getActivityPayPageNew(@Valid ActivityPayPageVO pageReqVO) {
PageResult<ActivityPayPageRVO> pageResult = activityPayService.getPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动付款 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-pay:export')")
@OperateLog(type = EXPORT)
public void exportActivityPayExcel(@Valid ActivityPayPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityPayDO> list = activityPayService.getActivityPayPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动付款.xls", "数据", ActivityPayRespVO.class,
BeanUtils.toBean(list, ActivityPayRespVO.class));
}
@GetMapping("/export-excelNew")
@Operation(summary = "导出活动付款 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-pay:export')")
@OperateLog(type = EXPORT)
public void exportActivityPayExcelNew(@Valid ActivityPayPageVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityPayPageRVO> list = activityPayService.getPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动付款.xls", "数据", ActivityPayPageRVO.class,
list);
}
}

View File

@ -0,0 +1,21 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypay.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 活动参加人员 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityPayCountVO {
@Schema(description = "活动id")
private Long activityId;
@Schema(description = "已收钱款")
private BigDecimal income= BigDecimal.ZERO;
}

View File

@ -0,0 +1,52 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypay.vo;
import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动付款分页 Request VO")
@Data
@ToString(callSuper = true)
public class ActivityPayPageRVO {
@ExcelProperty("编号")
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;
@ExcelIgnore
private String voucher;
@ExcelProperty("代金券使用数量")
private int voucherNum;
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,47 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypay.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 活动付款分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityPayPageReqVO extends PageParam {
@Schema(description = "活动id", example = "27391")
private Long activityId;
@Schema(description = "桌号")
private String serialNumbers;
@Schema(description = "价格", example = "7717")
private BigDecimal price;
@Schema(description = "用户id", example = "5313")
private Long userId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "序号")
private List<Integer> serialNumberList;
@Schema(description = "是否查加菜")
private Boolean isDish = false;
private Long merchantId;
private String status;
}

View File

@ -0,0 +1,23 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypay.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
@Schema(description = "管理后台 - 活动付款分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityPayPageVO extends PageParam {
@Schema(description = "是否排除加菜")
private Boolean isDish = false;
private Long merchantId;
private String reserveTime;
}

View File

@ -0,0 +1,41 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypay.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 ActivityPayRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24970")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27391")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "桌号")
@ExcelProperty("桌号")
private String serialNumbers;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "7717")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "用户id", example = "5313")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,47 @@
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
public class ActivityPaySaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24970")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27391")
@NotNull(message = "活动id不能为空")
private Long activityId;
@Schema(description = "桌号")
private String serialNumbers;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "7717")
@NotNull(message = "价格不能为空")
private BigDecimal price;
@Schema(description = "用户id", example = "5313")
private Long userId;
private String status;
private String reserveTime;
private String dish;
private String diningPeriod;
private String voucherId;
private String transactionId;
private String openid;
private List<MenuDTO> menu;
}

View File

@ -0,0 +1,100 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypaytable;
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.activitypaytable.vo.ActivityPayTablePageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO;
import cn.iocoder.yudao.module.member.service.activitypaytable.ActivityPayTableService;
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-pay-table")
@Validated
public class ActivityPayTableController {
@Resource
private ActivityPayTableService activityPayTableService;
@PostMapping("/create")
@Operation(summary = "创建活动付款")
@PreAuthorize("@ss.hasPermission('member:activity-pay-table:create')")
public CommonResult<Long> createActivityPayTable(@Valid @RequestBody ActivityPayTableSaveReqVO createReqVO) {
return success(activityPayTableService.createActivityPayTable(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动付款")
@PreAuthorize("@ss.hasPermission('member:activity-pay-table:update')")
public CommonResult<Boolean> updateActivityPayTable(@Valid @RequestBody ActivityPayTableSaveReqVO updateReqVO) {
activityPayTableService.updateActivityPayTable(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动付款")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-pay-table:delete')")
public CommonResult<Boolean> deleteActivityPayTable(@RequestParam("id") Long id) {
activityPayTableService.deleteActivityPayTable(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动付款")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-pay-table:query')")
public CommonResult<ActivityPayTableRespVO> getActivityPayTable(@RequestParam("id") Long id) {
ActivityPayTableDO activityPayTable = activityPayTableService.getActivityPayTable(id);
return success(BeanUtils.toBean(activityPayTable, ActivityPayTableRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动付款分页")
@PreAuthorize("@ss.hasPermission('member:activity-pay-table:query')")
public CommonResult<PageResult<ActivityPayTableRespVO>> getActivityPayTablePage(@Valid ActivityPayTablePageReqVO pageReqVO) {
PageResult<ActivityPayTableDO> pageResult = activityPayTableService.getActivityPayTablePage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityPayTableRespVO.class));
}
@GetMapping("/groupPage")
@Operation(summary = "获得活动付款分页")
public CommonResult<PageResult<ActivityPayTableRespVO>> getActivityPayTableGroupPage(@Valid ActivityPayTablePageReqVO pageReqVO) {
PageResult<ActivityPayTableRespVO> pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动付款 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-pay-table:export')")
@OperateLog(type = EXPORT)
public void exportActivityPayTableExcel(@Valid ActivityPayTablePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityPayTableDO> list = activityPayTableService.getActivityPayTablePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动付款.xls", "数据", ActivityPayTableRespVO.class,
BeanUtils.toBean(list, ActivityPayTableRespVO.class));
}
}

View File

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 活动付款分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityPayTablePageReqVO extends PageParam {
@Schema(description = "活动id", example = "11464")
private Long activityId;
@Schema(description = "桌号")
private String serialNumbers;
@Schema(description = "价格", example = "18695")
private BigDecimal price;
@Schema(description = "用户id", example = "19527")
private Long userId;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
private Long merchantId;
}

View File

@ -0,0 +1,43 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动付款 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityPayTableRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2305")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11464")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "桌号")
@ExcelProperty("桌号")
private String serialNumbers;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "18695")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "用户id", example = "19527")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private BigDecimal allPrice;
private String name;
}

View File

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 活动付款新增/修改 Request VO")
@Data
public class ActivityPayTableSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "2305")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "11464")
@NotNull(message = "活动id不能为空")
private Long activityId;
@Schema(description = "桌号")
private String serialNumbers;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "18695")
@NotNull(message = "价格不能为空")
private BigDecimal price;
@Schema(description = "用户id", example = "19527")
private Long userId;
}

View File

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.member.controller.admin.activityrestaurant;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.activityrestaurant.ActivityRestaurantDO;
import cn.iocoder.yudao.module.member.service.activityrestaurant.ActivityRestaurantService;
@Tag(name = "管理后台 - 活动用餐")
@RestController
@RequestMapping("/member/activity-restaurant")
@Validated
public class ActivityRestaurantController {
@Resource
private ActivityRestaurantService activityRestaurantService;
@PostMapping("/create")
@Operation(summary = "创建活动用餐")
@PreAuthorize("@ss.hasPermission('member:activity-restaurant:create')")
public CommonResult<Long> createActivityRestaurant(@Valid @RequestBody ActivityRestaurantSaveReqVO createReqVO) {
return success(activityRestaurantService.createActivityRestaurant(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动用餐")
@PreAuthorize("@ss.hasPermission('member:activity-restaurant:update')")
public CommonResult<Boolean> updateActivityRestaurant(@Valid @RequestBody ActivityRestaurantSaveReqVO updateReqVO) {
activityRestaurantService.updateActivityRestaurant(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动用餐")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-restaurant:delete')")
public CommonResult<Boolean> deleteActivityRestaurant(@RequestParam("id") Long id) {
activityRestaurantService.deleteActivityRestaurant(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动用餐")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-restaurant:query')")
public CommonResult<ActivityRestaurantRespVO> getActivityRestaurant(@RequestParam("id") Long id) {
ActivityRestaurantDO activityRestaurant = activityRestaurantService.getActivityRestaurant(id);
return success(BeanUtils.toBean(activityRestaurant, ActivityRestaurantRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动用餐分页")
@PreAuthorize("@ss.hasPermission('member:activity-restaurant:query')")
public CommonResult<PageResult<ActivityRestaurantRespVO>> getActivityRestaurantPage(@Valid ActivityRestaurantPageReqVO pageReqVO) {
PageResult<ActivityRestaurantDO> pageResult = activityRestaurantService.getActivityRestaurantPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityRestaurantRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动用餐 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-restaurant:export')")
@OperateLog(type = EXPORT)
public void exportActivityRestaurantExcel(@Valid ActivityRestaurantPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityRestaurantDO> list = activityRestaurantService.getActivityRestaurantPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动用餐.xls", "数据", ActivityRestaurantRespVO.class,
BeanUtils.toBean(list, ActivityRestaurantRespVO.class));
}
}

View File

@ -0,0 +1,41 @@
package cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.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 ActivityRestaurantPageReqVO extends PageParam {
@Schema(description = "活动id", example = "17921")
private Long activityId;
@Schema(description = "总桌数")
private Integer totalTable;
@Schema(description = "每桌人数")
private Integer tableNum;
@Schema(description = "价格", example = "11086")
private BigDecimal price;
@Schema(description = "菜谱图片", example = "https://www.iocoder.cn")
private String dishUrl;
@Schema(description = "描述", example = "随便")
private String description;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,49 @@
package cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.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 ActivityRestaurantRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32692")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17921")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "总桌数")
@ExcelProperty("总桌数")
private Integer totalTable;
@Schema(description = "每桌人数")
@ExcelProperty("每桌人数")
private Integer tableNum;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "11086")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "菜谱图片", example = "https://www.iocoder.cn")
@ExcelProperty("菜谱图片")
private String dishUrl;
@Schema(description = "描述", example = "随便")
@ExcelProperty("描述")
private String description;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,33 @@
package cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.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 ActivityRestaurantSaveDto {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32692")
private Long id;
@Schema(description = "总桌数")
private Integer totalTable;
@Schema(description = "每桌人数")
private Integer tableNum;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "11086")
@NotNull(message = "价格不能为空")
private BigDecimal price;
@Schema(description = "菜谱图片", example = "https://www.iocoder.cn")
private String dishUrl;
@Schema(description = "描述", example = "随便")
private String description;
}

View File

@ -0,0 +1,36 @@
package cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 活动用餐新增/修改 Request VO")
@Data
public class ActivityRestaurantSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32692")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17921")
@NotNull(message = "活动id不能为空")
private Long activityId;
@Schema(description = "总桌数")
private Integer totalTable;
@Schema(description = "每桌人数")
private Integer tableNum;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "11086")
@NotNull(message = "价格不能为空")
private BigDecimal price;
@Schema(description = "菜谱图片", example = "https://www.iocoder.cn")
private String dishUrl;
@Schema(description = "描述", example = "随便")
private String description;
}

View File

@ -0,0 +1,141 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytable;
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.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;
import cn.iocoder.yudao.module.member.service.activitymerchant.ActivityMerchantService;
import cn.iocoder.yudao.module.member.service.activitytable.ActivityTableService;
import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService;
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 java.util.stream.Collectors;
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-table")
@Validated
public class ActivityTableController {
@Resource
private ActivityTableService activityTableService;
@Resource
private ActivityTableDishService activityTableDishService;
@Resource
private ActivityMerchantService activityMerchantService;
@PostMapping("/create")
@Operation(summary = "创建活动用餐桌子")
@PreAuthorize("@ss.hasPermission('member:activity-table:create')")
public CommonResult<Long> createActivityTable(@Valid @RequestBody ActivityTableSaveReqVO createReqVO) {
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')")
public CommonResult<Boolean> updateActivityTable(@Valid @RequestBody ActivityTableSaveReqVO updateReqVO) {
activityTableService.updateActivityTable(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动用餐桌子")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-table:delete')")
public CommonResult<Boolean> deleteActivityTable(@RequestParam("id") Long id) {
activityTableService.deleteActivityTable(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动用餐桌子")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-table:query')")
public CommonResult<ActivityTableRespVO> getActivityTable(@RequestParam("id") Long id) {
ActivityTableDO activityTable = activityTableService.getActivityTable(id);
return success(BeanUtils.toBean(activityTable, ActivityTableRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动用餐桌子分页")
@PreAuthorize("@ss.hasPermission('member:activity-table:query')")
public CommonResult<PageResult<ActivityTableRespVO>> getActivityTablePage(@Valid ActivityTablePageReqVO pageReqVO) {
if(pageReqVO.getMerchantId() != null){
List<ActivityTableDishDO> listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId());
if (listByActivityIdAndMerchantId.isEmpty()) {
return success(PageResult.empty());
}
List<Integer> collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList());
pageReqVO.setSerialNumbers(collect);
}
PageResult<ActivityTableDO> pageResult = activityTableService.getActivityTablePage(pageReqVO);
PageResult<ActivityTableRespVO> bean = BeanUtils.toBean(pageResult, ActivityTableRespVO.class);
bean.getList().forEach(item -> {
Long merchantIdByActivityIdAndSerialNumber = activityTableDishService.getMerchantIdByActivityIdAndSerialNumber(item.getActivityId(), item.getSerialNumber());
if(merchantIdByActivityIdAndSerialNumber != null){
ActivityMerchantDO activityMerchant = activityMerchantService.getActivityMerchant(merchantIdByActivityIdAndSerialNumber);
item.setName(activityMerchant.getName());
}
});
return success(bean);
}
@GetMapping("/list")
@Operation(summary = "获得所有活动用餐桌子")
@PreAuthorize("@ss.hasPermission('member:activity-table:query')")
public CommonResult<List<ActivityTableRespVO>> getActivityTableList(@Valid ActivityTablePageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityTableDO> list = activityTableService.getActivityTablePage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityTableRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动用餐桌子 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-table:export')")
@OperateLog(type = EXPORT)
public void exportActivityTableExcel(@Valid ActivityTablePageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityTableDO> list = activityTableService.getActivityTablePage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动用餐桌子.xls", "数据", ActivityTableRespVO.class,
BeanUtils.toBean(list, ActivityTableRespVO.class));
}
@PutMapping("/updateTime")
@Operation(summary = "修改用餐时间")
public CommonResult<Boolean> updateTime(@Valid @RequestBody UpdateTimeVO updateTimeVO) {
return success( activityTableService.updateTime(updateTimeVO));
}
}

View File

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 活动用餐桌子 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityTableCountVO {
@Schema(description = "活动id")
private Long activityId;
@Schema(description = "预定人数")
private Integer reserveNum= 0;
}

View File

@ -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;
}

View File

@ -0,0 +1,52 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 活动用餐桌子分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityTablePageReqVO extends PageParam {
@Schema(description = "活动id", example = "8513")
private Long activityId;
@Schema(description = "序号")
private Integer serialNumber;
@Schema(description = "价格", example = "515")
private BigDecimal price;
@Schema(description = "用户id", example = "13832")
private Long userId;
@Schema(description = "电话")
private String mobile;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "是否只查预定的")
private Boolean isReserve = false;
private LocalDate reserveTime;
@Schema(description = "序号")
private List<Integer> serialNumbers;
private Long merchantId;
}

View File

@ -0,0 +1,54 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动用餐桌子 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityTableRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5590")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8513")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "序号")
@ExcelProperty("序号")
private Integer serialNumber;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "515")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13832")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
private String nickName;
private String avatar;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private String name;
private LocalDate reserveTime;
private String type;
}

View File

@ -0,0 +1,35 @@
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;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 活动用餐桌子新增/修改 Request VO")
@Data
public class ActivityTableSaveReqVO {
@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 = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "515")
@NotNull(message = "价格不能为空")
private BigDecimal price;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13832")
private Long userId;
@Schema(description = "电话")
private String mobile;
private String type;
}

View File

@ -0,0 +1,8 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo;
import lombok.Data;
@Data
public class ActivityTableVO {
}

View File

@ -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;
}

View File

@ -0,0 +1,108 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytabledish;
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.activitytabledish.vo.ActivityTableDishPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishSaveReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityUpdateDishVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO;
import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService;
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-table-dish")
@Validated
public class ActivityTableDishController {
@Resource
private ActivityTableDishService activityTableDishService;
@PostMapping("/create")
@Operation(summary = "创建活动用餐桌子配置")
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:create')")
public CommonResult<Long> createActivityTableDish(@Valid @RequestBody ActivityTableDishSaveReqVO createReqVO) {
return success(activityTableDishService.createActivityTableDish(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动用餐桌子配置")
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:update')")
public CommonResult<Boolean> updateActivityTableDish(@Valid @RequestBody ActivityTableDishSaveReqVO updateReqVO) {
activityTableDishService.updateActivityTableDish(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动用餐桌子配置")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:delete')")
public CommonResult<Boolean> deleteActivityTableDish(@RequestParam("id") Long id) {
activityTableDishService.deleteActivityTableDish(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动用餐桌子配置")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:query')")
public CommonResult<ActivityTableDishRespVO> getActivityTableDish(@RequestParam("id") Long id) {
ActivityTableDishDO activityTableDish = activityTableDishService.getActivityTableDish(id);
return success(BeanUtils.toBean(activityTableDish, ActivityTableDishRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动用餐桌子配置分页")
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:query')")
public CommonResult<PageResult<ActivityTableDishRespVO>> getActivityTableDishPage(@Valid ActivityTableDishPageReqVO pageReqVO) {
PageResult<ActivityTableDishDO> pageResult = activityTableDishService.getActivityTableDishPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityTableDishRespVO.class));
}
@GetMapping("/list")
@Operation(summary = "获得所有活动用餐桌子")
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:query')")
public CommonResult<List<ActivityTableDishRespVO>> getActivityTableDishList(@Valid ActivityTableDishPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityTableDishDO> list = activityTableDishService.getActivityTableDishPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityTableDishRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动用餐桌子配置 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-table-dish:export')")
@OperateLog(type = EXPORT)
public void exportActivityTableDishExcel(@Valid ActivityTableDishPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityTableDishDO> list = activityTableDishService.getActivityTableDishPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动用餐桌子配置.xls", "数据", ActivityTableDishRespVO.class,
BeanUtils.toBean(list, ActivityTableDishRespVO.class));
}
@PutMapping("/updateDish")
@Operation(summary = "批量更新活动用餐桌子套餐菜品")
public CommonResult<Boolean> updateDish(@Valid @RequestBody ActivityUpdateDishVO updateReqVO) {
return success(activityTableDishService.updateDish(updateReqVO));
}
}

View File

@ -0,0 +1,51 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import static cn.iocoder.yudao.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 活动用餐桌子配置分页 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class ActivityTableDishPageReqVO extends PageParam {
@Schema(description = "活动id", example = "16826")
private Long activityId;
@Schema(description = "序号")
private Integer serialNumber;
@Schema(description = "价格", example = "9524")
private BigDecimal price;
@Schema(description = "套餐菜品")
private String dish;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
@Schema(description = "ID", example = "1")
private List<Long> ids;
@Schema(description = "序号")
private List<Integer> serialNumbers;
@Schema(description = "用户id", example = "13832")
private Long userId;
private LocalDate reserveTime;
private Long merchantId;
}

View File

@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动用餐桌子配置 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityTableDishRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21273")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16826")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "序号")
@ExcelProperty("序号")
private Integer serialNumber;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "9524")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "套餐菜品")
@ExcelProperty("套餐菜品")
private String dish;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private Long merchantId;
}

View File

@ -0,0 +1,30 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytabledish.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 ActivityTableDishSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21273")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "16826")
@NotNull(message = "活动id不能为空")
private Long activityId;
@Schema(description = "序号")
private Integer serialNumber;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "9524")
@NotNull(message = "价格不能为空")
private BigDecimal price;
@Schema(description = "套餐菜品")
private String dish;
}

View File

@ -0,0 +1,21 @@
package cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.util.List;
@Schema(description = "管理后台 - 活动用餐桌子配置新增/修改 Request VO")
@Data
public class ActivityUpdateDishVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21273")
private List<Long> ids;
@Schema(description = "套餐菜品")
private String dish;
@Schema(description = "商家ID")
private Long merchantId;
}

View File

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.member.controller.admin.activityuser;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.activityuser.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.activityuser.ActivityUserDO;
import cn.iocoder.yudao.module.member.service.activityuser.ActivityUserService;
@Tag(name = "管理后台 - 活动参加人员")
@RestController
@RequestMapping("/member/activity-user")
@Validated
public class ActivityUserController {
@Resource
private ActivityUserService activityUserService;
@PostMapping("/create")
@Operation(summary = "创建活动参加人员")
@PreAuthorize("@ss.hasPermission('member:activity-user:create')")
public CommonResult<Long> createActivityUser(@Valid @RequestBody ActivityUserSaveReqVO createReqVO) {
return success(activityUserService.createActivityUser(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动参加人员")
@PreAuthorize("@ss.hasPermission('member:activity-user:update')")
public CommonResult<Boolean> updateActivityUser(@Valid @RequestBody ActivityUserSaveReqVO updateReqVO) {
activityUserService.updateActivityUser(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动参加人员")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-user:delete')")
public CommonResult<Boolean> deleteActivityUser(@RequestParam("id") Long id) {
activityUserService.deleteActivityUser(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动参加人员")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-user:query')")
public CommonResult<ActivityUserRespVO> getActivityUser(@RequestParam("id") Long id) {
ActivityUserDO activityUser = activityUserService.getActivityUser(id);
return success(BeanUtils.toBean(activityUser, ActivityUserRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动参加人员分页")
@PreAuthorize("@ss.hasPermission('member:activity-user:query')")
public CommonResult<PageResult<ActivityUserRespVO>> getActivityUserPage(@Valid ActivityUserPageReqVO pageReqVO) {
PageResult<ActivityUserDO> pageResult = activityUserService.getActivityUserPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityUserRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动参加人员 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-user:export')")
@OperateLog(type = EXPORT)
public void exportActivityUserExcel(@Valid ActivityUserPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityUserDO> list = activityUserService.getActivityUserPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动参加人员.xls", "数据", ActivityUserRespVO.class,
BeanUtils.toBean(list, ActivityUserRespVO.class));
}
}

View File

@ -0,0 +1,19 @@
package cn.iocoder.yudao.module.member.controller.admin.activityuser.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
@Schema(description = "管理后台 - 活动参加人员 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityUserCountVO {
@Schema(description = "活动id")
private Long activityId;
@Schema(description = "参加人数")
private Integer applyNum = 0;
}

View File

@ -0,0 +1,31 @@
package cn.iocoder.yudao.module.member.controller.admin.activityuser.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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 ActivityUserPageReqVO extends PageParam {
@Schema(description = "活动id", example = "12749")
private Long activityId;
@Schema(description = "用户id", example = "6186")
private Long userId;
@Schema(description = "电话")
private String mobile;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.member.controller.admin.activityuser.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动参加人员 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityUserRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17804")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12749")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6186")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
private String nickName;
private String avatar;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,26 @@
package cn.iocoder.yudao.module.member.controller.admin.activityuser.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
@Schema(description = "管理后台 - 活动参加人员新增/修改 Request VO")
@Data
public class ActivityUserSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17804")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12749")
@NotNull(message = "活动id不能为空")
private Long activityId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6186")
@NotNull(message = "用户id不能为空")
private Long userId;
@Schema(description = "电话")
private String mobile;
}

View File

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucher;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.activityvoucher.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.activityvoucher.ActivityVoucherDO;
import cn.iocoder.yudao.module.member.service.activityvoucher.ActivityVoucherService;
@Tag(name = "管理后台 - 活动代金券")
@RestController
@RequestMapping("/member/activity-voucher")
@Validated
public class ActivityVoucherController {
@Resource
private ActivityVoucherService activityVoucherService;
@PostMapping("/create")
@Operation(summary = "创建活动代金券")
@PreAuthorize("@ss.hasPermission('member:activity-voucher:create')")
public CommonResult<Long> createActivityVoucher(@Valid @RequestBody ActivityVoucherSaveReqVO createReqVO) {
return success(activityVoucherService.createActivityVoucher(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动代金券")
@PreAuthorize("@ss.hasPermission('member:activity-voucher:update')")
public CommonResult<Boolean> updateActivityVoucher(@Valid @RequestBody ActivityVoucherSaveReqVO updateReqVO) {
activityVoucherService.updateActivityVoucher(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动代金券")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-voucher:delete')")
public CommonResult<Boolean> deleteActivityVoucher(@RequestParam("id") Long id) {
activityVoucherService.deleteActivityVoucher(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动代金券")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-voucher:query')")
public CommonResult<ActivityVoucherRespVO> getActivityVoucher(@RequestParam("id") Long id) {
ActivityVoucherDO activityVoucher = activityVoucherService.getActivityVoucher(id);
return success(BeanUtils.toBean(activityVoucher, ActivityVoucherRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动代金券分页")
@PreAuthorize("@ss.hasPermission('member:activity-voucher:query')")
public CommonResult<PageResult<ActivityVoucherRespVO>> getActivityVoucherPage(@Valid ActivityVoucherPageReqVO pageReqVO) {
PageResult<ActivityVoucherDO> pageResult = activityVoucherService.getActivityVoucherPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityVoucherRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动代金券 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-voucher:export')")
@OperateLog(type = EXPORT)
public void exportActivityVoucherExcel(@Valid ActivityVoucherPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityVoucherDO> list = activityVoucherService.getActivityVoucherPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动代金券.xls", "数据", ActivityVoucherRespVO.class,
BeanUtils.toBean(list, ActivityVoucherRespVO.class));
}
}

View File

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucher.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 ActivityVoucherPageReqVO extends PageParam {
@Schema(description = "代金券名字", example = "张三")
private String name;
@Schema(description = "类型 1-折扣2-抵扣", example = "2")
private String type;
@Schema(description = "数值")
private BigDecimal num;
@Schema(description = "使用次数")
private Integer limitNum;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,41 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucher.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 ActivityVoucherRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21748")
@ExcelProperty("编号")
private Long id;
@Schema(description = "代金券名字", example = "张三")
@ExcelProperty("代金券名字")
private String name;
@Schema(description = "类型 1-折扣2-抵扣", example = "2")
@ExcelProperty("类型 1-折扣2-抵扣")
private String type;
@Schema(description = "数值")
@ExcelProperty("数值")
private BigDecimal num;
@Schema(description = "使用次数")
@ExcelProperty("使用次数")
private Integer limitNum;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucher.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
@Schema(description = "管理后台 - 活动代金券新增/修改 Request VO")
@Data
public class ActivityVoucherSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "21748")
private Long id;
@Schema(description = "代金券名字", example = "张三")
private String name;
@Schema(description = "类型 1-折扣2-抵扣", example = "2")
private String type;
@Schema(description = "数值")
private BigDecimal num;
@Schema(description = "使用次数")
private Integer limitNum;
}

View File

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucheruser;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.activityvoucheruser.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.activityvoucheruser.ActivityVoucherUserDO;
import cn.iocoder.yudao.module.member.service.activityvoucheruser.ActivityVoucherUserService;
@Tag(name = "管理后台 - 活动用户拥有代金券")
@RestController
@RequestMapping("/member/activity-voucher-user")
@Validated
public class ActivityVoucherUserController {
@Resource
private ActivityVoucherUserService activityVoucherUserService;
@PostMapping("/create")
@Operation(summary = "创建活动用户拥有代金券")
@PreAuthorize("@ss.hasPermission('member:activity-voucher-user:create')")
public CommonResult<Long> createActivityVoucherUser(@Valid @RequestBody ActivityVoucherUserSaveReqVO createReqVO) {
return success(activityVoucherUserService.createActivityVoucherUser(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新活动用户拥有代金券")
@PreAuthorize("@ss.hasPermission('member:activity-voucher-user:update')")
public CommonResult<Boolean> updateActivityVoucherUser(@Valid @RequestBody ActivityVoucherUserSaveReqVO updateReqVO) {
activityVoucherUserService.updateActivityVoucherUser(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除活动用户拥有代金券")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:activity-voucher-user:delete')")
public CommonResult<Boolean> deleteActivityVoucherUser(@RequestParam("id") Long id) {
activityVoucherUserService.deleteActivityVoucherUser(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得活动用户拥有代金券")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:activity-voucher-user:query')")
public CommonResult<ActivityVoucherUserRespVO> getActivityVoucherUser(@RequestParam("id") Long id) {
ActivityVoucherUserDO activityVoucherUser = activityVoucherUserService.getActivityVoucherUser(id);
return success(BeanUtils.toBean(activityVoucherUser, ActivityVoucherUserRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得活动用户拥有代金券分页")
@PreAuthorize("@ss.hasPermission('member:activity-voucher-user:query')")
public CommonResult<PageResult<ActivityVoucherUserRespVO>> getActivityVoucherUserPage(@Valid ActivityVoucherUserPageReqVO pageReqVO) {
PageResult<ActivityVoucherUserDO> pageResult = activityVoucherUserService.getActivityVoucherUserPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityVoucherUserRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出活动用户拥有代金券 Excel")
@PreAuthorize("@ss.hasPermission('member:activity-voucher-user:export')")
@OperateLog(type = EXPORT)
public void exportActivityVoucherUserExcel(@Valid ActivityVoucherUserPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityVoucherUserDO> list = activityVoucherUserService.getActivityVoucherUserPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "活动用户拥有代金券.xls", "数据", ActivityVoucherUserRespVO.class,
BeanUtils.toBean(list, ActivityVoucherUserRespVO.class));
}
}

View File

@ -0,0 +1,34 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucheruser.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
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 ActivityVoucherUserPageReqVO extends PageParam {
@Schema(description = "代金券ID", example = "24250")
private Long voucherId;
@Schema(description = "用户ID", example = "18771")
private Long userId;
@Schema(description = "电话")
private String mobile;
@Schema(description = "0-未使用1-已使用,2-已过期", example = "2")
private String status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,42 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucheruser.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动用户拥有代金券 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ActivityVoucherUserRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32021")
@ExcelProperty("编号")
private Long id;
@Schema(description = "代金券ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24250")
@ExcelProperty("代金券ID")
private Long voucherId;
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18771")
@ExcelProperty("用户ID")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
@Schema(description = "0-未使用1-已使用,2-已过期", example = "2")
@ExcelProperty("0-未使用1-已使用,2-已过期")
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,28 @@
package cn.iocoder.yudao.module.member.controller.admin.activityvoucheruser.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotNull;
@Schema(description = "管理后台 - 活动用户拥有代金券新增/修改 Request VO")
@Data
public class ActivityVoucherUserSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32021")
private Long id;
@Schema(description = "代金券ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24250")
@NotNull(message = "代金券ID不能为空")
private Long voucherId;
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18771")
private Long userId;
@Schema(description = "电话")
private String mobile;
@Schema(description = "0-未使用1-已使用,2-已过期", example = "2")
private String status;
}

View File

@ -214,4 +214,34 @@ 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);
}
@GetMapping("/overspending")
@Operation(summary = "组内每天超过37元的数据")
@OperateLog(type = EXPORT)
public void exportOverspending(String startTime,String endTime,Long groupId,HttpServletResponse response) throws IOException {
List<OverspendingVO> overspendingVOS = excelService.exportOverspending(startTime, endTime, groupId);
// 导出 Excel
ExcelUtils.write(response, "现金充值.xlsx", "数据", OverspendingVO.class,
overspendingVOS);
}
}

View File

@ -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;
}

View File

@ -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;
}

View File

@ -0,0 +1,35 @@
package cn.iocoder.yudao.module.member.controller.admin.customizeExcel.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.format.NumberFormat;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class OverspendingVO {
@ExcelProperty("昵称")
private String nickName;
@ExcelProperty("手机")
private String mobile;
@ExcelProperty("食堂(元)")
@NumberFormat("#0.00")
private BigDecimal canteenAmount;
@ExcelProperty("超市金额(元)")
@NumberFormat("#0.00")
private BigDecimal marketAmount;
@ExcelProperty("消费金额(元)")
@NumberFormat("#0.00")
private BigDecimal totalMoney;
@ExcelProperty("超出金额(元)")
@NumberFormat("#0.00")
private BigDecimal overMoney;
@ExcelProperty("日期")
private String createTime;
}

View File

@ -34,4 +34,6 @@ public class MemberGroupBaseVO {
@Schema(description = "类型", example = "1")
private Integer type;
private String bindStore;
}

View File

@ -4,6 +4,7 @@ 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.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.idempotent.core.annotation.Idempotent;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsReqVO;
import cn.iocoder.yudao.module.member.controller.admin.order.vo.OrderDetailsRespVO;
@ -129,6 +130,7 @@ public class OrderController {
@GetMapping("/reduction")
@Operation(summary = "减免")
@Idempotent(timeout = 3, message = "正在减免,请勿重复提交")
public CommonResult<Boolean> reduction(Long orderId, BigDecimal money){
orderService.reduction(orderId,money);
return CommonResult.success(true);

View File

@ -0,0 +1,95 @@
package cn.iocoder.yudao.module.member.controller.admin.storediscount;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.storediscount.vo.*;
import cn.iocoder.yudao.module.member.dal.dataobject.storediscount.StoreDiscountDO;
import cn.iocoder.yudao.module.member.service.storediscount.StoreDiscountService;
@Tag(name = "管理后台 - 门店超市折扣")
@RestController
@RequestMapping("/member/store-discount")
@Validated
public class StoreDiscountController {
@Resource
private StoreDiscountService storeDiscountService;
@PostMapping("/create")
@Operation(summary = "创建门店超市折扣")
@PreAuthorize("@ss.hasPermission('member:store-discount:create')")
public CommonResult<Long> createStoreDiscount(@Valid @RequestBody StoreDiscountSaveReqVO createReqVO) {
return success(storeDiscountService.createStoreDiscount(createReqVO));
}
@PutMapping("/update")
@Operation(summary = "更新门店超市折扣")
@PreAuthorize("@ss.hasPermission('member:store-discount:update')")
public CommonResult<Boolean> updateStoreDiscount(@Valid @RequestBody StoreDiscountSaveReqVO updateReqVO) {
storeDiscountService.updateStoreDiscount(updateReqVO);
return success(true);
}
@DeleteMapping("/delete")
@Operation(summary = "删除门店超市折扣")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('member:store-discount:delete')")
public CommonResult<Boolean> deleteStoreDiscount(@RequestParam("id") Long id) {
storeDiscountService.deleteStoreDiscount(id);
return success(true);
}
@GetMapping("/get")
@Operation(summary = "获得门店超市折扣")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('member:store-discount:query')")
public CommonResult<StoreDiscountRespVO> getStoreDiscount(@RequestParam("id") Long id) {
StoreDiscountDO storeDiscount = storeDiscountService.getStoreDiscount(id);
return success(BeanUtils.toBean(storeDiscount, StoreDiscountRespVO.class));
}
@GetMapping("/page")
@Operation(summary = "获得门店超市折扣分页")
@PreAuthorize("@ss.hasPermission('member:store-discount:query')")
public CommonResult<PageResult<StoreDiscountRespVO>> getStoreDiscountPage(@Valid StoreDiscountPageReqVO pageReqVO) {
PageResult<StoreDiscountDO> pageResult = storeDiscountService.getStoreDiscountPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, StoreDiscountRespVO.class));
}
@GetMapping("/export-excel")
@Operation(summary = "导出门店超市折扣 Excel")
@PreAuthorize("@ss.hasPermission('member:store-discount:export')")
@OperateLog(type = EXPORT)
public void exportStoreDiscountExcel(@Valid StoreDiscountPageReqVO pageReqVO,
HttpServletResponse response) throws IOException {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<StoreDiscountDO> list = storeDiscountService.getStoreDiscountPage(pageReqVO).getList();
// 导出 Excel
ExcelUtils.write(response, "门店超市折扣.xls", "数据", StoreDiscountRespVO.class,
BeanUtils.toBean(list, StoreDiscountRespVO.class));
}
}

View File

@ -0,0 +1,43 @@
package cn.iocoder.yudao.module.member.controller.admin.storediscount.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 StoreDiscountPageReqVO extends PageParam {
@Schema(description = "门店ID", example = "24360")
private Long storeId;
@Schema(description = "折扣名字", example = "赵六")
private String discountName;
@Schema(description = "折扣")
private BigDecimal discountNum;
@Schema(description = "开始时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] startTime;
@Schema(description = "结束时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] endTime;
@Schema(description = "0-禁用1-启用", example = "2")
private String status;
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime[] createTime;
}

View File

@ -0,0 +1,49 @@
package cn.iocoder.yudao.module.member.controller.admin.storediscount.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 StoreDiscountRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5567")
@ExcelProperty("编号")
private Long id;
@Schema(description = "门店ID", example = "24360")
@ExcelProperty("门店ID")
private Long storeId;
@Schema(description = "折扣名字", example = "赵六")
@ExcelProperty("折扣名字")
private String discountName;
@Schema(description = "折扣")
@ExcelProperty("折扣")
private BigDecimal discountNum;
@Schema(description = "开始时间")
@ExcelProperty("开始时间")
private LocalDateTime startTime;
@Schema(description = "结束时间")
@ExcelProperty("结束时间")
private LocalDateTime endTime;
@Schema(description = "0-禁用1-启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@ExcelProperty("0-禁用1-启用")
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,37 @@
package cn.iocoder.yudao.module.member.controller.admin.storediscount.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 门店超市折扣新增/修改 Request VO")
@Data
public class StoreDiscountSaveReqVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5567")
private Long id;
@Schema(description = "门店ID", example = "24360")
private Long storeId;
@Schema(description = "折扣名字", example = "赵六")
private String discountName;
@Schema(description = "折扣")
private BigDecimal discountNum;
@Schema(description = "开始时间")
private LocalDateTime startTime;
@Schema(description = "结束时间")
private LocalDateTime endTime;
@Schema(description = "0-禁用1-启用", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
@NotEmpty(message = "0-禁用1-启用不能为空")
private String status;
}

View File

@ -1,33 +1,31 @@
package cn.iocoder.yudao.module.member.controller.admin.storegoodstype;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import javax.validation.constraints.*;
import javax.validation.*;
import javax.servlet.http.*;
import java.util.*;
import java.io.IOException;
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.pojo.CommonResult;
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import cn.iocoder.yudao.framework.excel.core.util.ExcelUtils;
import cn.iocoder.yudao.framework.operatelog.core.annotations.OperateLog;
import static cn.iocoder.yudao.framework.operatelog.core.enums.OperateTypeEnum.*;
import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.*;
import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.StoreGoodsTypePageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.StoreGoodsTypeRespVO;
import cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo.StoreGoodsTypeSaveReqVO;
import cn.iocoder.yudao.module.member.dal.dataobject.storegoodstype.StoreGoodsTypeDO;
import cn.iocoder.yudao.module.member.service.storegoodstype.StoreGoodsTypeService;
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
@ -95,7 +93,7 @@ public class StoreGoodsTypeController {
@GetMapping("/all")
@Operation(summary = "获得商品类别分页")
public CommonResult<List<StoreGoodsTypeRespVO>> getAll() {
List<StoreGoodsTypeDO> all = storeGoodsTypeService.getAll();
List<StoreGoodsTypeDO> all = storeGoodsTypeService.getAllDevice();
return success(BeanUtils.toBean(all, StoreGoodsTypeRespVO.class));
}

View File

@ -1,12 +1,11 @@
package cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.util.*;
import org.springframework.format.annotation.DateTimeFormat;
import lombok.Data;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;
@Schema(description = "管理后台 - 商品类别 Response VO")
@Data
@ -25,4 +24,7 @@ public class StoreGoodsTypeRespVO {
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "是否在APP展示")
private String appShow;
}

View File

@ -1,9 +1,7 @@
package cn.iocoder.yudao.module.member.controller.admin.storegoodstype.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import javax.validation.constraints.*;
import lombok.Data;
@Schema(description = "管理后台 - 商品类别新增/修改 Request VO")
@Data
@ -15,4 +13,7 @@ public class StoreGoodsTypeSaveReqVO {
@Schema(description = "类别名称", example = "芋艿")
private String categoryName;
@Schema(description = "是否在APP展示")
private String appShow;
}

View File

@ -6,6 +6,7 @@ import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@ -68,4 +69,14 @@ public class StoreOrderRespVO {
*/
private Double reductionPrice;
/**
* 原价
*/
private Double originalPrice;
/**
* 折扣
*/
private BigDecimal discountNum;
}

View File

@ -8,13 +8,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.user.vo.MemberUserAddVO;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserExportVo;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserRespVO;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateLevelReqVO;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdatePointReqVO;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.MemberUserUpdateReqVO;
import cn.iocoder.yudao.module.member.controller.admin.user.vo.*;
import cn.iocoder.yudao.module.member.convert.user.MemberUserConvert;
import cn.iocoder.yudao.module.member.dal.dataobject.group.MemberGroupDO;
import cn.iocoder.yudao.module.member.dal.dataobject.level.MemberLevelDO;
@ -32,26 +26,14 @@ import io.swagger.v3.oas.annotations.tags.Tag;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.*;
import java.util.stream.Collectors;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
@ -221,7 +203,12 @@ public class MemberUserController {
return success(true);
}
@PutMapping("/general")
@Operation(summary = "人脸通用设置")
public CommonResult<Boolean> general(@RequestBody GeneralVO generalVO){
memberUserService.general(generalVO.getMobile());
return success(true);
}
}

View File

@ -0,0 +1,8 @@
package cn.iocoder.yudao.module.member.controller.admin.user.vo;
import lombok.Data;
@Data
public class GeneralVO {
private String mobile;
}

View File

@ -0,0 +1,461 @@
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;
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.idempotent.core.annotation.Idempotent;
import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils;
import cn.iocoder.yudao.module.member.controller.admin.activity.vo.ActivityPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activity.vo.ActivityRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitymerchant.vo.ActivityMerchantRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishRespVO;
import cn.iocoder.yudao.module.member.controller.admin.activityuser.vo.ActivityUserPageReqVO;
import cn.iocoder.yudao.module.member.controller.admin.activityvoucheruser.vo.ActivityVoucherUserPageReqVO;
import cn.iocoder.yudao.module.member.controller.app.activity.vo.*;
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;
import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO;
import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO;
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;
import cn.iocoder.yudao.module.member.service.activitytable.ActivityTableService;
import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService;
import cn.iocoder.yudao.module.member.service.activityuser.ActivityUserService;
import cn.iocoder.yudao.module.member.service.activityvoucheruser.ActivityVoucherUserService;
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;
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.framework.common.pojo.CommonResult.success;
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
@Tag(name = "用户 APP - 活动")
@RestController
@RequestMapping("/member/activity1")
@Validated
public class AppActivityDrawController {
@Resource
private ActivityService activityService;
@Resource
private ActivityAwardsService activityAwardsService;
@Resource
private ActivityAwardsUserService activityAwardsUserService;
@Resource
private ActivityUserService activityUserService;
@Resource
private ActivityTableService activityTableService;
@Resource
private ActivityPayService activityPayService;
@Resource
private ActivityRestaurantService activityRestaurantService;
@Resource
private ActivityTableDishService activityTableDishService;
@Resource
private ActivityAddDishService activityAddDishService;
@Resource
private ActivityMerchantService activityMerchantService;
@Resource
private ActivityVoucherUserService activityVoucherUserService;
@Resource
private ActivityMenuService activityMenuService;
@GetMapping("/manage/page")
@Operation(summary = "管理员获取当天活动")
public CommonResult<PageResult<ActivityRespVO>> getTodayActivityPage(@Valid ActivityPageReqVO pageReqVO) {
PageResult<ActivityRespVO> pageResult = activityService.getActivityPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/user/page")
@Operation(summary = "用户获取所有活动")
public CommonResult<PageResult<ActivityRespVO>> getAllActivityPage(@Valid ActivityPageReqVO pageReqVO) {
PageResult<ActivityRespVO> pageResult = activityService.getUserActivityPage(pageReqVO);
return success(pageResult);
}
@GetMapping("/userRecord/page")
@Operation(summary = "用户获取自己的活动记录")
public CommonResult<PageResult<AppActivityRespVO>> getUserRecordActivityPage(@Valid ActivityUserPageReqVO pageReqVO) {
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
pageReqVO.setUserId(loginUserId);
return success(activityUserService.getUserRecordPage(pageReqVO));
}
@GetMapping("/prizeDraw")
@Operation(summary = "抽奖")
@Idempotent(timeout = 10)
public CommonResult<List<ActivityAwardsUserDO>> prizeDraw(@Valid AppActivityPrizeDrawVO drawVO) {
return success( activityService.prizeDraw(drawVO));
}
@GetMapping("/awardsUser/page")
@Operation(summary = "中奖人员分页")
public CommonResult<PageResult<ActivityAwardsUserRespVO>> getActivityAwardsUserPage(@Valid ActivityAwardsUserPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
PageResult<ActivityAwardsUserDO> pageResult = activityAwardsUserService.getActivityAwardsUserPage(pageReqVO);
return success(BeanUtils.toBean(pageResult, ActivityAwardsUserRespVO.class));
}
@PostMapping("/user/apply")
@Operation(summary = "用户报名")
@Idempotent(timeout = 10)
public CommonResult<Boolean> userApply(@Valid @RequestBody AppUserApplyVO appUserApplyVO) {
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
appUserApplyVO.setUserId(loginUserId);
return success( activityUserService.userApply(appUserApplyVO));
}
@GetMapping("/manage/get")
@Operation(summary = "管理员获得活动详情")
public CommonResult<ActivityRespVO> getActivity(@RequestParam("id") Long id) {
ActivityDO activity = activityService.getActivity(id);
ActivityRespVO bean = BeanUtils.toBean(activity, ActivityRespVO.class);
return success(bean);
}
@GetMapping("/user/activity")
@Operation(summary = "用户获得活动详情(记录)")
public CommonResult<AppActivityRespVO> getUserActivity(@RequestParam("id") Long id) {
AppActivityRespVO activity = activityService.getUserActivity(id,SecurityFrameworkUtils.getLoginUserId());
return success(activity);
}
@GetMapping("/user/activity/applyInfo")
@Operation(summary = "用户获得活动详情(报名)")
public CommonResult<AppActivityRespVO> getUserActivityApplyInfo(@RequestParam("id") Long id) {
AppActivityRespVO activity = activityService.getUserActivityApplyInfo(id,SecurityFrameworkUtils.getLoginUserId());
return success(activity);
}
@GetMapping("/user/activityList")
@Operation(summary = "用户获得可订餐的活动")
public CommonResult<List<AppActivityRespVO>> getUserActivityList() {
return success(activityService.getReservatList());
}
@GetMapping("/user/activityList/page")
@Operation(summary = "用户获得可订餐的活动分页")
public CommonResult<PageResult<ActivityRespVO>> getActivityReservePage(@Valid ActivityPageReqVO pageReqVO) {
PageResult<ActivityRespVO> pageResult = activityService.getActivityReservePage(pageReqVO);
return success(pageResult);
}
@GetMapping("/user/table")
@Operation(summary = "用户获取已订餐桌号")
public CommonResult<List<AppActivityTableRespVO>> getUserTableList(@RequestParam("activityId") Long activityId,@RequestParam("time") String time) {
return success(BeanUtils.toBean(activityTableService.getListByActivityIdAndTime(activityId,time), AppActivityTableRespVO.class));
}
@PostMapping("/user/check")
@Operation(summary = "用户订餐桌号检测")
public CommonResult<Boolean> userTableCheck(@RequestBody AppCheckVO vo) {
return success(activityTableService.userTableCheck(vo));
}
@PutMapping("/user/unbind")
@Operation(summary = "支付失败取消用户餐桌绑定")
public CommonResult<Boolean> userTableUnbind(@RequestBody AppUnbindVO vo) {
return success(activityTableService.userTableUnbind(vo));
}
@GetMapping("/qrCode")
@Operation(summary = "获取核销二维码(抽奖)")
public CommonResult<String> getQrCode(@RequestParam("activityAwardsUserId") Long activityAwardsUserId) {
ActivityAwardsUserDO activityAwardsUserDO = activityAwardsUserService.getActivityAwardsUser(activityAwardsUserId);
if(!"0".equals(activityAwardsUserDO.getAwardsStatus())){
throw exception(ACTIVITY_AWARDS_USER_NOT_EFFECTIVE);
}
ActivityDO activity = activityService.getActivity(activityAwardsUserDO.getActivityId());
ActivityAwardsDO activityAwards = activityAwardsService.getActivityAwards(activityAwardsUserDO.getAwardsId());
AppQrCodeVO appQrCodeVO = new AppQrCodeVO();
appQrCodeVO.setActivityAwardsUserId(activityAwardsUserId);
appQrCodeVO.setNickName(activityAwardsUserDO.getNickName());
appQrCodeVO.setMobile(activityAwardsUserDO.getMobile());
appQrCodeVO.setPrize(activityAwards.getPrize());
appQrCodeVO.setActivityName(activity.getActivityName());
appQrCodeVO.setType("1");
String qrCode = QRCodeWithJWTUtil.generateQRCode(JSONUtil.toJsonStr(appQrCodeVO), 350, 350, null);// 生
return success(qrCode);
}
@PutMapping("/cancel")
@Operation(summary = "核销(抽奖)")
public CommonResult<Boolean> cancel(@RequestBody AppCancelVO vo) {
return success(activityAwardsUserService.cancel(vo));
}
@GetMapping("/manage/applyUserList")
@Operation(summary = "报名人员列表")
public CommonResult<List<AppActivityUserRespVO>> applyUserList(@RequestParam("activityId") Long activityId) {
return success(activityUserService.applyUserList(activityId));
}
@GetMapping("/awardsList")
@Operation(summary = "获得活动奖项列表")
public CommonResult<List<ActivityAwardsRespVO>> getActivityAwardsList(@RequestParam("activityId") Long activityId) {
List<ActivityAwardsDO> list = activityAwardsService.getListByActivity(activityId);
return success(BeanUtils.toBean(list, ActivityAwardsRespVO.class));
}
@GetMapping("/user/pay/page")
@Operation(summary = "用户付款记录分页")
public CommonResult<PageResult<AppActivityPayRespVO>> getUserActivityPayPage(@Valid ActivityPayPageReqVO pageReqVO) {
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);
}
@GetMapping("/user/activity/reserveInfo")
@Operation(summary = "用户获得订餐活动详情")
public CommonResult<AppActivityRespVO> getUserActivityReserveInfo(@RequestParam("id") Long id) {
ActivityDO activity = activityService.getActivity(id);
AppActivityRespVO bean = BeanUtils.toBean(activity, AppActivityRespVO.class);
ActivityRestaurantDO activityRestaurantDO = activityRestaurantService.getByActivityId(id);
bean.setActivityRestaurantSaveDto(BeanUtils.toBean(activityRestaurantDO, ActivityRestaurantRespVO.class));
return success(bean);
}
@GetMapping("/reserveQrCode")
@Operation(summary = "获取核销二维码(订餐)")
public CommonResult<String> getReserveQrCode(@RequestParam("activityPayId") Long activityPayId) {
ActivityPayDO activityPay = activityPayService.getActivityPay(activityPayId);
if(!"0".equals(activityPay.getStatus())){
throw exception(ACTIVITY_PAY_USE);
}
if(StrUtil.isEmpty(activityPay.getDish())){
//获取当天日期
LocalDate now = LocalDate.now();
//比较日期是否相等
if(! now.isEqual(activityPay.getReserveTime())){
throw exception(ACTIVITY_PAY_EXPIRE);
}
}
ActivityDO activity = activityService.getActivity(activityPay.getActivityId());
AppReserveQrCodeVO appReserveQrCodeVO = new AppReserveQrCodeVO();
appReserveQrCodeVO.setActivityPayId(activityPayId);
appReserveQrCodeVO.setNickName(activityPay.getNickName());
appReserveQrCodeVO.setMobile(activityPay.getMobile());
appReserveQrCodeVO.setActivityName(activity.getActivityName());
appReserveQrCodeVO.setSerialNumbers(activityPay.getSerialNumbers());
if(StrUtil.isNotBlank(activityPay.getDish())){
appReserveQrCodeVO.setDish(activityPay.getDish());
}
appReserveQrCodeVO.setType("2");
String qrCode = QRCodeWithJWTUtil.generateQRCode(JSONUtil.toJsonStr(appReserveQrCodeVO), 350, 350, null);// 生
return success(qrCode);
}
@PutMapping("/reserveCancel")
@Operation(summary = "核销(订餐)")
public CommonResult<Boolean> reserveCancel(@RequestBody AppCancelVO vo) {
return success(activityPayService.reserveCancel(vo));
}
@GetMapping("/tableList")
@Operation(summary = "获得所有活动用餐桌子")
public CommonResult<List<ActivityTableDishRespVO>> getActivityTableDishList(@Valid ActivityTableDishPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityTableDishDO> list = activityTableDishService.getActivityTableDishPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityTableDishRespVO.class));
}
@GetMapping("/addDishList")
@Operation(summary = "获得活动用餐桌子加菜列表")
public CommonResult<List<ActivityAddDishRespVO>> getActivityAddDishPage(@Valid ActivityAddDishPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityAddDishDO> list = activityAddDishService.getActivityAddDishPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityAddDishRespVO.class));
}
@GetMapping("/user/reserveTable")
@Operation(summary = "用户获得订餐桌号")
public CommonResult<List<ActivityTableDishRespVO>> getActivityAddDishPage(@Valid ActivityTableDishPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
pageReqVO.setReserveTime(LocalDate.now());
List<ActivityTableDO> listByActivityIdAndTimeAndUserId = activityTableService.getListByActivityIdAndTimeAndUserId(pageReqVO.getActivityId(), pageReqVO.getReserveTime(), pageReqVO.getUserId());
if (!listByActivityIdAndTimeAndUserId.isEmpty()) {
List<Integer> collect = listByActivityIdAndTimeAndUserId.stream().map(ActivityTableDO::getSerialNumber).collect(Collectors.toList());
pageReqVO.setSerialNumbers(collect);
}
List<ActivityTableDishDO> list = activityTableDishService.getActivityTableDishPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityTableDishRespVO.class));
}
@GetMapping("/merchantList")
@Operation(summary = "获得商家列表")
public CommonResult<List<ActivityMerchantRespVO>> getMerchantList(@Valid ActivityMerchantPageReqVO pageReqVO) {
pageReqVO.setPageSize(PageParam.PAGE_SIZE_NONE);
List<ActivityMerchantDO> list = activityMerchantService.getActivityMerchantPage(pageReqVO).getList();
return success(BeanUtils.toBean(list, ActivityMerchantRespVO.class));
}
@GetMapping("/checkVoucher")
@Operation(summary = "判断是否能使用代金券")
public CommonResult<Boolean> checkVoucher(@Valid ActivityVoucherVO vo) {
return success(activityVoucherUserService.checkVoucher(vo));
}
@GetMapping("/user/voucherPage")
@Operation(summary = "用户查看自己的代金券(分页)")
public CommonResult<PageResult<AppActivityVoucherUserRespVO>> getActivityVoucherPage(@Valid ActivityVoucherUserPageReqVO pageReqVO) {
return success(activityVoucherUserService.getActivityVoucherPage(pageReqVO));
}
@GetMapping("/user/voucherList")
@Operation(summary = "查看用户的代金券(支付)")
public CommonResult<List<AppActivityVoucherUserRespVO>> getActivityVoucherList(@Valid ActivityVoucherUserPageReqVO pageReqVO) {
pageReqVO.setStatus("0");
pageReqVO.setUserId(SecurityFrameworkUtils.getLoginUserId());
return success(activityVoucherUserService.getActivityVoucherList(pageReqVO));
}
// @GetMapping("/manage/reserveTable")
// @Operation(summary = "管理员查看预定桌子分页")
// public CommonResult<PageResult<ActivityTableRespVO>> getReserveTablePage(@Valid ActivityTablePageReqVO pageReqVO) {
// List<ActivityTableDishDO> listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId());
// if (listByActivityIdAndMerchantId.isEmpty()) {
// return success(PageResult.empty());
// }
// List<Integer> collect = listByActivityIdAndMerchantId.stream().map(ActivityTableDishDO::getSerialNumber).collect(Collectors.toList());
// pageReqVO.setSerialNumbers(collect);
// pageReqVO.setIsReserve(true);
// PageResult<ActivityTableDO> pageResult = activityTableService.getActivityTablePage(pageReqVO);
// return success(BeanUtils.toBean(pageResult, ActivityTableRespVO.class));
// }
@GetMapping("/manage/addDishPage")
@Operation(summary = "管理员查看加菜分页")
public CommonResult<PageResult<AppActivityPayRespVO>> getManageAddDishPage(@Valid ActivityPayPageReqVO pageReqVO) {
List<ActivityTableDishDO> listByActivityIdAndMerchantId = activityTableDishService.getListByActivityIdAndMerchantId(pageReqVO.getActivityId(), pageReqVO.getMerchantId());
if (listByActivityIdAndMerchantId.isEmpty()) {
return success(PageResult.empty());
}
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);
}
@GetMapping("/merchant")
@Operation(summary = "获得商家")
public CommonResult<ActivityMerchantDO> getMerchantByMobile(@Valid String mobile) {
return success(activityMerchantService.getByMobile(mobile));
}
@GetMapping("/merchantMenu")
@Operation(summary = "获得商家套餐列表")
public CommonResult<List<ActivityMenuDO>> getMerchantByMobile(@Valid Long merchantId) {
return success(activityMenuService.getListByMerchantId(merchantId));
}
}

View File

@ -0,0 +1,9 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import lombok.Data;
@Data
public class ActivityVoucherVO {
private Long userId;
}

View File

@ -0,0 +1,59 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 活动付款 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppActivityPayRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "24970")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "27391")
@ExcelProperty("活动id")
private Long activityId;
private String activityName;
@Schema(description = "桌号")
@ExcelProperty("桌号")
private String serialNumbers;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "7717")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "用户id", example = "5313")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private String status;
private LocalDate reserveTime;
private String dish;
private String diningPeriod;
private String menuIds;
private String menuNames;
private String voucher;
private List<PayVO> payVOs;
}

View File

@ -0,0 +1,20 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;
@Data
public class AppActivityPrizeDrawVO {
@Schema(description = "奖项Id")
@NotNull(message = "奖项不能为空")
private Long awardsId;
@Schema(description = "抽奖人数")
@Min(value = 1, message = "数值不能小于 1")
private Integer num;
}

View File

@ -0,0 +1,83 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantRespVO;
import cn.iocoder.yudao.module.member.dal.dataobject.activityawards.ActivityAwardsDO;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.List;
@Schema(description = "管理后台 - 活动 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppActivityRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "29158")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
@ExcelProperty("活动名称")
private String activityName;
@Schema(description = "活动开始时间")
@ExcelProperty("活动开始时间")
private LocalDateTime startTime;
@Schema(description = "活动结束时间")
@ExcelProperty("活动结束时间")
private LocalDateTime endTime;
@Schema(description = "描述", example = "你猜")
@ExcelProperty("描述")
private String description;
@Schema(description = "封面图")
@ExcelProperty("封面图")
private String img;
@Schema(description = "地点")
@ExcelProperty("地点")
private String location;
@Schema(description = "主办方")
@ExcelProperty("主办方")
private String sponsor;
@Schema(description = "可抽奖次数")
@ExcelProperty("可抽奖次数")
private Integer lotteryNum;
@Schema(description = "用餐状态0-禁用1-启用 ", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
@ExcelProperty("用餐状态0-禁用1-启用 ")
private String reservationStatus;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
@Schema(description = "报名人数")
private Integer applyNum;
@Schema(description = "中奖人数")
private Integer awardsNum;
@Schema(description = "预定人数")
private Integer reserveNum;
@Schema(description = "收入")
private BigDecimal income;
@Schema(description = "是否报名")
private Boolean isApply;
private ActivityRestaurantRespVO activityRestaurantSaveDto;
private List<AppUserAwardsVO> awards;
private List<ActivityAwardsDO> awardList;
}

View File

@ -0,0 +1,51 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动用餐桌子 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppActivityTableRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "5590")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "8513")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "序号")
@ExcelProperty("序号")
private Integer serialNumber;
@Schema(description = "价格", requiredMode = Schema.RequiredMode.REQUIRED, example = "515")
@ExcelProperty("价格")
private BigDecimal price;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "13832")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
private String nickName;
private String avatar;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private LocalDate reserveTime;
}

View File

@ -0,0 +1,39 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动参加人员 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppActivityUserRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "17804")
@ExcelProperty("编号")
private Long id;
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12749")
@ExcelProperty("活动id")
private Long activityId;
@Schema(description = "用户id", requiredMode = Schema.RequiredMode.REQUIRED, example = "6186")
@ExcelProperty("用户id")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
private String nickName;
private String avatar;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
}

View File

@ -0,0 +1,51 @@
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
@Schema(description = "管理后台 - 活动用户拥有代金券 Response VO")
@Data
@ExcelIgnoreUnannotated
public class AppActivityVoucherUserRespVO {
@Schema(description = "编号", requiredMode = Schema.RequiredMode.REQUIRED, example = "32021")
@ExcelProperty("编号")
private Long id;
@Schema(description = "代金券ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "24250")
@ExcelProperty("代金券ID")
private Long voucherId;
@Schema(description = "用户ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "18771")
@ExcelProperty("用户ID")
private Long userId;
@Schema(description = "电话")
@ExcelProperty("电话")
private String mobile;
@Schema(description = "0-未使用1-已使用,2-已过期", example = "2")
@ExcelProperty("0-未使用1-已使用,2-已过期")
private String status;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@ExcelProperty("创建时间")
private LocalDateTime createTime;
private String name;
/**
* 类型 1-折扣2-抵扣
*/
private String type;
/**
* 数值
*/
private BigDecimal num;
}

Some files were not shown because too many files have changed in this diff Show More