优化
This commit is contained in:
@ -0,0 +1,15 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.api.activitypay;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayDTO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户收件地址 API 接口
|
||||||
|
*
|
||||||
|
* @author 芋道源码
|
||||||
|
*/
|
||||||
|
public interface ActivityApi {
|
||||||
|
|
||||||
|
|
||||||
|
void createActivityPay(ActivityPayDTO createReqVO);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.api.activitypay.dto;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 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;
|
||||||
|
|
||||||
|
}
|
@ -188,5 +188,28 @@ public interface ErrorCodeConstants {
|
|||||||
ErrorCode DINING_PLATES_BIND_MAX = 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 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_19, "请先选择桌子");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,6 +110,10 @@
|
|||||||
<artifactId>javase</artifactId>
|
<artifactId>javase</artifactId>
|
||||||
<version>3.4.1</version>
|
<version>3.4.1</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>cn.iocoder.boot</groupId>
|
||||||
|
<artifactId>yudao-spring-boot-starter-protection</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
</dependencies>
|
</dependencies>
|
||||||
|
@ -0,0 +1,29 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.api.activitypay;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.iocoder.yudao.module.member.api.activitypay.dto.ActivityPayDTO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPaySaveReqVO;
|
||||||
|
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);
|
||||||
|
activityPayService.addActivityPay(bean);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
@ -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);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,93 @@
|
|||||||
|
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.ActivityPayPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayRespVO;
|
||||||
|
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 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("/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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.admin.activitypay.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 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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.admin.activitypay.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 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;
|
||||||
|
|
||||||
|
}
|
@ -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<ActivityPayTableDO> pageResult = activityPayTableService. getActivityPayTableGroupPage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, ActivityPayTableRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.admin.activitypaytable.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 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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,41 @@
|
|||||||
|
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;
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,103 @@
|
|||||||
|
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.ActivityTablePageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO;
|
||||||
|
import cn.iocoder.yudao.module.member.service.activitytable.ActivityTableService;
|
||||||
|
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")
|
||||||
|
@Validated
|
||||||
|
public class ActivityTableController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityTableService activityTableService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建活动用餐桌子")
|
||||||
|
@PreAuthorize("@ss.hasPermission('member:activity-table:create')")
|
||||||
|
public CommonResult<Long> createActivityTable(@Valid @RequestBody ActivityTableSaveReqVO createReqVO) {
|
||||||
|
return success(activityTableService.createActivityTable(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) {
|
||||||
|
PageResult<ActivityTableDO> pageResult = activityTableService.getActivityTablePage(pageReqVO);
|
||||||
|
return success(BeanUtils.toBean(pageResult, ActivityTableRespVO.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
@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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,43 @@
|
|||||||
|
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.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 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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,49 @@
|
|||||||
|
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.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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,33 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,8 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.admin.activitytable.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class ActivityTableVO {
|
||||||
|
}
|
@ -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));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
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.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;
|
||||||
|
}
|
@ -0,0 +1,40 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
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;
|
||||||
|
|
||||||
|
}
|
@ -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));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,301 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity;
|
||||||
|
|
||||||
|
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.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.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.activitypay.ActivityPayDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityrestaurant.ActivityRestaurantDO;
|
||||||
|
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.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.util.QRCodeWithJWTUtil;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
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.List;
|
||||||
|
|
||||||
|
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/activity")
|
||||||
|
@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;
|
||||||
|
|
||||||
|
@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);
|
||||||
|
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);
|
||||||
|
}
|
||||||
|
//获取当天日期
|
||||||
|
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());
|
||||||
|
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));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,50 @@
|
|||||||
|
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 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;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
}
|
@ -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;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,11 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppCancelVO {
|
||||||
|
|
||||||
|
private Long activityAwardsUserId;
|
||||||
|
|
||||||
|
private Long activityPayId;
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppCheckVO {
|
||||||
|
|
||||||
|
|
||||||
|
private List<Integer> serialNumbers;
|
||||||
|
|
||||||
|
private String time;
|
||||||
|
|
||||||
|
private Long activityId;
|
||||||
|
|
||||||
|
private BigDecimal price;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppQrCodeVO {
|
||||||
|
|
||||||
|
private Long activityAwardsUserId;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
private String prize;
|
||||||
|
|
||||||
|
private String activityName;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppReserveQrCodeVO {
|
||||||
|
|
||||||
|
private Long activityPayId;
|
||||||
|
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
private String serialNumbers;
|
||||||
|
|
||||||
|
private String activityName;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String type;
|
||||||
|
}
|
@ -0,0 +1,15 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppUnbindVO {
|
||||||
|
|
||||||
|
private List<Integer> serialNumbers;
|
||||||
|
|
||||||
|
private String time;
|
||||||
|
|
||||||
|
private Long activityId;
|
||||||
|
}
|
@ -0,0 +1,23 @@
|
|||||||
|
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.NotBlank;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppUserApplyVO {
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "活动id", requiredMode = Schema.RequiredMode.REQUIRED, example = "12749")
|
||||||
|
@NotNull(message = "活动id不能为空")
|
||||||
|
private Long activityId;
|
||||||
|
|
||||||
|
@Schema(description = "用户Id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@Schema(description = "电话")
|
||||||
|
@NotBlank(message = "用户电话不能为空")
|
||||||
|
private String mobile;
|
||||||
|
}
|
@ -0,0 +1,16 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.controller.app.activity.vo;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
public class AppUserAwardsVO {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
|
private String awardsName;
|
||||||
|
private String prize;
|
||||||
|
private String awardsStatus;
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activity;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity")
|
||||||
|
@KeySequence("member_activity_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动名称
|
||||||
|
*/
|
||||||
|
private String activityName;
|
||||||
|
/**
|
||||||
|
* 活动开始时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime startTime;
|
||||||
|
/**
|
||||||
|
* 活动结束时间
|
||||||
|
*/
|
||||||
|
private LocalDateTime endTime;
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
private String description;
|
||||||
|
/**
|
||||||
|
* 封面图
|
||||||
|
*/
|
||||||
|
private String img;
|
||||||
|
/**
|
||||||
|
* 地点
|
||||||
|
*/
|
||||||
|
private String location;
|
||||||
|
/**
|
||||||
|
* 主办方
|
||||||
|
*/
|
||||||
|
private String sponsor;
|
||||||
|
/**
|
||||||
|
* 可抽奖次数
|
||||||
|
*/
|
||||||
|
private Integer lotteryNum;
|
||||||
|
/**
|
||||||
|
* 用餐状态,0-禁用,1-启用
|
||||||
|
*/
|
||||||
|
private String reservationStatus;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activityadddish;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子加菜 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_add_dish")
|
||||||
|
@KeySequence("member_activity_add_dish_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityAddDishDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 桌子
|
||||||
|
*/
|
||||||
|
private Long tableDishId;
|
||||||
|
/**
|
||||||
|
* 序号
|
||||||
|
*/
|
||||||
|
private Integer serialNumber;
|
||||||
|
/**
|
||||||
|
* 菜名
|
||||||
|
*/
|
||||||
|
private String dishName;
|
||||||
|
/**
|
||||||
|
* 菜品价格
|
||||||
|
*/
|
||||||
|
private BigDecimal dishPrice;
|
||||||
|
/**
|
||||||
|
* 菜品图片
|
||||||
|
*/
|
||||||
|
private String dishImg;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activityawards;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动奖项 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_awards")
|
||||||
|
@KeySequence("member_activity_awards_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityAwardsDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 奖项名称
|
||||||
|
*/
|
||||||
|
private String awardsName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 限制类型(1-整个活动,2-单个奖项,3-无限制)
|
||||||
|
*/
|
||||||
|
private String limitType;
|
||||||
|
/**
|
||||||
|
* 奖项人数
|
||||||
|
*/
|
||||||
|
@TableField(updateStrategy = FieldStrategy.ALWAYS)
|
||||||
|
private Integer awardsNum;
|
||||||
|
/**
|
||||||
|
* 奖品
|
||||||
|
*/
|
||||||
|
private String prize;
|
||||||
|
/**
|
||||||
|
* 排序
|
||||||
|
*/
|
||||||
|
private Integer sortNum;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动中奖人员 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_awards_user")
|
||||||
|
@KeySequence("member_activity_awards_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityAwardsUserDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 领奖状态(0-未领奖,1-已领奖,2-已过期)
|
||||||
|
*/
|
||||||
|
private String awardsStatus;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 电话
|
||||||
|
*/
|
||||||
|
private String mobile;
|
||||||
|
/**
|
||||||
|
* 奖品id
|
||||||
|
*/
|
||||||
|
private Long awardsId;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,61 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activitypay;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_pay")
|
||||||
|
@KeySequence("member_activity_pay_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityPayDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 桌号
|
||||||
|
*/
|
||||||
|
private String serialNumbers;
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
|
||||||
|
private String status;
|
||||||
|
|
||||||
|
private LocalDate reserveTime;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
private String dish;
|
||||||
|
|
||||||
|
private String diningPeriod;
|
||||||
|
}
|
@ -0,0 +1,58 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_pay_table")
|
||||||
|
@KeySequence("member_activity_pay_table_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityPayTableDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 桌号
|
||||||
|
*/
|
||||||
|
private String serialNumbers;
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 预定时间
|
||||||
|
*/
|
||||||
|
private LocalDate reserveTime;
|
||||||
|
|
||||||
|
@TableField(value = "sum(price)",insertStrategy = FieldStrategy.NEVER,updateStrategy = FieldStrategy.NEVER)
|
||||||
|
private BigDecimal allPrice;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String mobile;
|
||||||
|
}
|
@ -0,0 +1,56 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activityrestaurant;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_restaurant")
|
||||||
|
@KeySequence("member_activity_restaurant_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityRestaurantDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 总桌数
|
||||||
|
*/
|
||||||
|
private Integer totalTable;
|
||||||
|
/**
|
||||||
|
* 每桌人数
|
||||||
|
*/
|
||||||
|
private Integer tableNum;
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
/**
|
||||||
|
* 菜谱图片
|
||||||
|
*/
|
||||||
|
private String dishUrl;
|
||||||
|
/**
|
||||||
|
* 描述
|
||||||
|
*/
|
||||||
|
private String description;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activitytable;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_table")
|
||||||
|
@KeySequence("member_activity_table_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityTableDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 序号
|
||||||
|
*/
|
||||||
|
private Integer serialNumber;
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 电话
|
||||||
|
*/
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String avatar;
|
||||||
|
|
||||||
|
private LocalDate reserveTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,48 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子配置 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_table_dish")
|
||||||
|
@KeySequence("member_activity_table_dish_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityTableDishDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 序号
|
||||||
|
*/
|
||||||
|
private Integer serialNumber;
|
||||||
|
/**
|
||||||
|
* 价格
|
||||||
|
*/
|
||||||
|
private BigDecimal price;
|
||||||
|
/**
|
||||||
|
* 套餐菜品
|
||||||
|
*/
|
||||||
|
private String dish;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,45 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.dataobject.activityuser;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
import com.baomidou.mybatisplus.annotation.KeySequence;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动参加人员 DO
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@TableName("member_activity_user")
|
||||||
|
@KeySequence("member_activity_user_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class ActivityUserDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 编号
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 活动id
|
||||||
|
*/
|
||||||
|
private Long activityId;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
/**
|
||||||
|
* 电话
|
||||||
|
*/
|
||||||
|
private String mobile;
|
||||||
|
|
||||||
|
private String nickName;
|
||||||
|
|
||||||
|
private String avatar;
|
||||||
|
}
|
@ -0,0 +1,52 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activity;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activity.vo.ActivityPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityMapper extends BaseMapperX<ActivityDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityDO> selectPage(ActivityPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityDO>()
|
||||||
|
.likeIfPresent(ActivityDO::getActivityName, reqVO.getActivityName())
|
||||||
|
.leIfPresent(ActivityDO::getStartTime, reqVO.getStartTime())
|
||||||
|
.geIfPresent(ActivityDO::getEndTime, reqVO.getStartTime())
|
||||||
|
.eqIfPresent(ActivityDO::getDescription, reqVO.getDescription())
|
||||||
|
.eqIfPresent(ActivityDO::getImg, reqVO.getImg())
|
||||||
|
.eqIfPresent(ActivityDO::getLocation, reqVO.getLocation())
|
||||||
|
.eqIfPresent(ActivityDO::getSponsor, reqVO.getSponsor())
|
||||||
|
.eqIfPresent(ActivityDO::getLotteryNum, reqVO.getLotteryNum())
|
||||||
|
.eqIfPresent(ActivityDO::getReservationStatus, reqVO.getReservationStatus())
|
||||||
|
.betweenIfPresent(ActivityDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ActivityDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default PageResult<ActivityDO> selectPageApp(ActivityPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityDO>()
|
||||||
|
.likeIfPresent(ActivityDO::getActivityName, reqVO.getActivityName())
|
||||||
|
.leIfPresent(ActivityDO::getStartTime, reqVO.getStartTime())
|
||||||
|
.geIfPresent(ActivityDO::getEndTime, reqVO.getStartTime())
|
||||||
|
.eqIfPresent(ActivityDO::getDescription, reqVO.getDescription())
|
||||||
|
.eqIfPresent(ActivityDO::getImg, reqVO.getImg())
|
||||||
|
.eqIfPresent(ActivityDO::getLocation, reqVO.getLocation())
|
||||||
|
.eqIfPresent(ActivityDO::getSponsor, reqVO.getSponsor())
|
||||||
|
.eqIfPresent(ActivityDO::getLotteryNum, reqVO.getLotteryNum())
|
||||||
|
.eqIfPresent(ActivityDO::getReservationStatus, reqVO.getReservationStatus())
|
||||||
|
.betweenIfPresent(ActivityDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.last("ORDER BY " +
|
||||||
|
" CASE " +
|
||||||
|
" WHEN start_time <= NOW() AND end_time >= NOW() THEN 0 " +
|
||||||
|
" ELSE 1 " +
|
||||||
|
" END," +
|
||||||
|
" end_time ASC "));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activityadddish;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityadddish.ActivityAddDishDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子加菜 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityAddDishMapper extends BaseMapperX<ActivityAddDishDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityAddDishDO> selectPage(ActivityAddDishPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityAddDishDO>()
|
||||||
|
.eqIfPresent(ActivityAddDishDO::getTableDishId, reqVO.getTableDishId())
|
||||||
|
.eqIfPresent(ActivityAddDishDO::getSerialNumber, reqVO.getSerialNumber())
|
||||||
|
.likeIfPresent(ActivityAddDishDO::getDishName, reqVO.getDishName())
|
||||||
|
.eqIfPresent(ActivityAddDishDO::getDishPrice, reqVO.getDishPrice())
|
||||||
|
.eqIfPresent(ActivityAddDishDO::getDishImg, reqVO.getDishImg())
|
||||||
|
.betweenIfPresent(ActivityAddDishDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.inIfPresent(ActivityAddDishDO::getTableDishId, reqVO.getTableDishIds())
|
||||||
|
.orderByDesc(ActivityAddDishDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activityawards;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawards.ActivityAwardsDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动奖项 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityAwardsMapper extends BaseMapperX<ActivityAwardsDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityAwardsDO> selectPage(ActivityAwardsPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityAwardsDO>()
|
||||||
|
.eqIfPresent(ActivityAwardsDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.likeIfPresent(ActivityAwardsDO::getAwardsName, reqVO.getAwardsName())
|
||||||
|
.eqIfPresent(ActivityAwardsDO::getAwardsNum, reqVO.getAwardsNum())
|
||||||
|
.eqIfPresent(ActivityAwardsDO::getPrize, reqVO.getPrize())
|
||||||
|
.eqIfPresent(ActivityAwardsDO::getSortNum, reqVO.getSortNum())
|
||||||
|
.betweenIfPresent(ActivityAwardsDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByAsc(ActivityAwardsDO::getSortNum));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,54 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activityawardsuser;
|
||||||
|
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserCountVO;
|
||||||
|
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.dal.dataobject.activityawards.ActivityAwardsDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动中奖人员 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityAwardsUserMapper extends BaseMapperX<ActivityAwardsUserDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityAwardsUserDO> selectPage(ActivityAwardsUserPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityAwardsUserDO>()
|
||||||
|
.eqIfPresent(ActivityAwardsUserDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityAwardsUserDO::getUserId, reqVO.getUserId())
|
||||||
|
.eqIfPresent(ActivityAwardsUserDO::getMobile, reqVO.getMobile())
|
||||||
|
.eqIfPresent(ActivityAwardsUserDO::getAwardsId, reqVO.getAwardsId())
|
||||||
|
.betweenIfPresent(ActivityAwardsUserDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ActivityAwardsUserDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ActivityAwardsUserCountVO> countByActivityIds(@Param("activityIds") List<Long> activityIds);
|
||||||
|
|
||||||
|
default PageResult<ActivityAwardsUserRespVO> selectJoinPage(ActivityAwardsUserPageReqVO reqVO) {
|
||||||
|
Page<ActivityAwardsUserRespVO> activityAwardsUserRespVOPage = selectJoinPage(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), ActivityAwardsUserRespVO.class,
|
||||||
|
new MPJLambdaWrapper<ActivityAwardsUserDO>()
|
||||||
|
.selectAll(ActivityAwardsUserDO.class)
|
||||||
|
.select(ActivityAwardsDO::getAwardsName, ActivityAwardsDO::getPrize)
|
||||||
|
.leftJoin(ActivityAwardsDO.class, ActivityAwardsDO::getId, ActivityAwardsUserDO::getAwardsId)
|
||||||
|
.eq(reqVO.getActivityId() != null, ActivityAwardsUserDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eq(reqVO.getAwardsId() != null, ActivityAwardsUserDO::getAwardsId, reqVO.getAwardsId())
|
||||||
|
.eq(StrUtil.isNotBlank(reqVO.getAwardsStatus()), ActivityAwardsUserDO::getAwardsStatus,reqVO.getAwardsStatus())
|
||||||
|
.eq(StrUtil.isNotBlank(reqVO.getMobile()), ActivityAwardsUserDO::getMobile, reqVO.getMobile())
|
||||||
|
.orderByAsc(ActivityAwardsDO::getSortNum)
|
||||||
|
);
|
||||||
|
return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,35 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activitypay;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityPayMapper extends BaseMapperX<ActivityPayDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityPayDO> selectPage(ActivityPayPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityPayDO>()
|
||||||
|
.eqIfPresent(ActivityPayDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityPayDO::getSerialNumbers, reqVO.getSerialNumbers())
|
||||||
|
.eqIfPresent(ActivityPayDO::getPrice, reqVO.getPrice())
|
||||||
|
.eqIfPresent(ActivityPayDO::getUserId, reqVO.getUserId())
|
||||||
|
.betweenIfPresent(ActivityPayDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ActivityPayDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
List<ActivityPayCountVO> countByActivityIds(@Param("activityIds") List<Long> activityIds);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activitypaytable;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityPayTableMapper extends BaseMapperX<ActivityPayTableDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityPayTableDO> selectPage(ActivityPayTablePageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityPayTableDO>()
|
||||||
|
.eqIfPresent(ActivityPayTableDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityPayTableDO::getSerialNumbers, reqVO.getSerialNumbers())
|
||||||
|
.eqIfPresent(ActivityPayTableDO::getPrice, reqVO.getPrice())
|
||||||
|
.eqIfPresent(ActivityPayTableDO::getUserId, reqVO.getUserId())
|
||||||
|
.betweenIfPresent(ActivityPayTableDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ActivityPayTableDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,32 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activityrestaurant;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityrestaurant.ActivityRestaurantDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityRestaurantMapper extends BaseMapperX<ActivityRestaurantDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityRestaurantDO> selectPage(ActivityRestaurantPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityRestaurantDO>()
|
||||||
|
.eqIfPresent(ActivityRestaurantDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityRestaurantDO::getTotalTable, reqVO.getTotalTable())
|
||||||
|
.eqIfPresent(ActivityRestaurantDO::getTableNum, reqVO.getTableNum())
|
||||||
|
.eqIfPresent(ActivityRestaurantDO::getPrice, reqVO.getPrice())
|
||||||
|
.eqIfPresent(ActivityRestaurantDO::getDishUrl, reqVO.getDishUrl())
|
||||||
|
.eqIfPresent(ActivityRestaurantDO::getDescription, reqVO.getDescription())
|
||||||
|
.betweenIfPresent(ActivityRestaurantDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ActivityRestaurantDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,38 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activitytable;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTablePageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitytable.ActivityTableDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityTableMapper extends BaseMapperX<ActivityTableDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityTableDO> selectPage(ActivityTablePageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityTableDO>()
|
||||||
|
.eqIfPresent(ActivityTableDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityTableDO::getSerialNumber, reqVO.getSerialNumber())
|
||||||
|
.eqIfPresent(ActivityTableDO::getPrice, reqVO.getPrice())
|
||||||
|
.eqIfPresent(ActivityTableDO::getUserId, reqVO.getUserId())
|
||||||
|
.eqIfPresent(ActivityTableDO::getMobile, reqVO.getMobile())
|
||||||
|
.betweenIfPresent(ActivityTableDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.isNotNull(reqVO.getIsReserve(),ActivityTableDO::getUserId)
|
||||||
|
.orderByDesc(ActivityTableDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ActivityTableCountVO> countByActivityIds(@Param("activityIds") List<Long> activityIds);
|
||||||
|
|
||||||
|
|
||||||
|
void deleteByActivityId(@Param("activityId")Long activityId);
|
||||||
|
}
|
@ -0,0 +1,29 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activitytabledish;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitytabledish.vo.ActivityTableDishPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitytabledish.ActivityTableDishDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子配置 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityTableDishMapper extends BaseMapperX<ActivityTableDishDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityTableDishDO> selectPage(ActivityTableDishPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityTableDishDO>()
|
||||||
|
.eqIfPresent(ActivityTableDishDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityTableDishDO::getSerialNumber, reqVO.getSerialNumber())
|
||||||
|
.eqIfPresent(ActivityTableDishDO::getPrice, reqVO.getPrice())
|
||||||
|
.eqIfPresent(ActivityTableDishDO::getDish, reqVO.getDish())
|
||||||
|
.betweenIfPresent(ActivityTableDishDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.inIfPresent(ActivityTableDishDO::getId, reqVO.getIds())
|
||||||
|
.orderByAsc(ActivityTableDishDO::getSerialNumber));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.dal.mysql.activityuser;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityuser.vo.ActivityUserCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityuser.vo.ActivityUserPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityuser.ActivityUserDO;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动参加人员 Mapper
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface ActivityUserMapper extends BaseMapperX<ActivityUserDO> {
|
||||||
|
|
||||||
|
default PageResult<ActivityUserDO> selectPage(ActivityUserPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<ActivityUserDO>()
|
||||||
|
.eqIfPresent(ActivityUserDO::getActivityId, reqVO.getActivityId())
|
||||||
|
.eqIfPresent(ActivityUserDO::getUserId, reqVO.getUserId())
|
||||||
|
.eqIfPresent(ActivityUserDO::getMobile, reqVO.getMobile())
|
||||||
|
.betweenIfPresent(ActivityUserDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(ActivityUserDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ActivityUserCountVO> countByActivityIds(@Param("activityIds") List<Long> activityIds);
|
||||||
|
|
||||||
|
default PageResult<AppActivityRespVO> selectUserRecordPage(ActivityUserPageReqVO reqVO) {
|
||||||
|
Page<AppActivityRespVO> activityAwardsUserRespVOPage = selectJoinPage(new Page<>(reqVO.getPageNo(), reqVO.getPageSize()), AppActivityRespVO.class,
|
||||||
|
new MPJLambdaWrapper<ActivityUserDO>()
|
||||||
|
.selectAll(ActivityDO.class)
|
||||||
|
.leftJoin(ActivityDO.class, ActivityDO::getId, ActivityUserDO::getActivityId)
|
||||||
|
.eq(ActivityUserDO::getUserId, reqVO.getUserId())
|
||||||
|
.orderByDesc(ActivityUserDO::getCreateTime)
|
||||||
|
);
|
||||||
|
return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.job;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
||||||
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO;
|
||||||
|
import cn.iocoder.yudao.module.member.service.activityawardsuser.ActivityAwardsUserService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:qjq
|
||||||
|
* @Date:2024/4/3 14:50
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class ActivityJob implements JobHandler {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityAwardsUserService activityAwardsUserService;
|
||||||
|
/**
|
||||||
|
* 执行任务
|
||||||
|
*
|
||||||
|
* @param param 参数
|
||||||
|
* @return 结果
|
||||||
|
* @throws Exception 异常
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@TenantIgnore
|
||||||
|
public String execute(String param){
|
||||||
|
|
||||||
|
List<ActivityAwardsUserDO> listByTime = activityAwardsUserService.getListByTime();
|
||||||
|
if(CollectionUtil.isNotEmpty(listByTime)){
|
||||||
|
for (ActivityAwardsUserDO activityAwardsUserDO : listByTime) {
|
||||||
|
activityAwardsUserDO.setAwardsStatus("2");
|
||||||
|
}
|
||||||
|
activityAwardsUserService.updateBatch(listByTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("[execute][上一天中奖信息过期 {}条]", listByTime.size());
|
||||||
|
return String.format("中奖信息过期 %s 条 ", listByTime.size());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,47 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.job;
|
||||||
|
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.iocoder.yudao.framework.quartz.core.handler.JobHandler;
|
||||||
|
import cn.iocoder.yudao.framework.tenant.core.aop.TenantIgnore;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO;
|
||||||
|
import cn.iocoder.yudao.module.member.service.activitypay.ActivityPayService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @Author:qjq
|
||||||
|
* @Date:2024/4/3 14:50
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class ActivityReserveJob implements JobHandler {
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityPayService activityPayService;
|
||||||
|
/**
|
||||||
|
* 执行任务
|
||||||
|
*
|
||||||
|
* @param param 参数
|
||||||
|
* @return 结果
|
||||||
|
* @throws Exception 异常
|
||||||
|
*/
|
||||||
|
@Override
|
||||||
|
@TenantIgnore
|
||||||
|
public String execute(String param){
|
||||||
|
|
||||||
|
List<ActivityPayDO> listByTime = activityPayService.getListByTime();
|
||||||
|
if(CollectionUtil.isNotEmpty(listByTime)){
|
||||||
|
for (ActivityPayDO activityPayDO : listByTime) {
|
||||||
|
activityPayDO.setStatus("2");
|
||||||
|
}
|
||||||
|
activityPayService.updateBatch(listByTime);
|
||||||
|
}
|
||||||
|
|
||||||
|
log.info("[execute][上一天预约信息过期 {}条]", listByTime.size());
|
||||||
|
return String.format("预约信息过期 %s 条 ",listByTime.size());
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,79 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activity;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
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.app.activity.vo.AppActivityPrizeDrawVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动 Service 接口
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
public interface ActivityService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建活动
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createActivity(@Valid ActivitySaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新活动
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateActivity(@Valid ActivitySaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteActivity(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 活动
|
||||||
|
*/
|
||||||
|
ActivityDO getActivity(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 活动分页
|
||||||
|
*/
|
||||||
|
PageResult<ActivityRespVO> getActivityPage(ActivityPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得用户活动分页
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
PageResult<ActivityRespVO> getUserActivityPage(ActivityPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
List<ActivityAwardsUserDO> prizeDraw(@Valid AppActivityPrizeDrawVO drawVO);
|
||||||
|
|
||||||
|
AppActivityRespVO getUserActivity(Long id,Long userId);
|
||||||
|
|
||||||
|
AppActivityRespVO getUserActivityApplyInfo(Long id,Long userId);
|
||||||
|
|
||||||
|
List<AppActivityRespVO> getReservatList();
|
||||||
|
|
||||||
|
PageResult<ActivityRespVO> getActivityReservePage(ActivityPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,416 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activity;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.collection.CollectionUtil;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
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.activity.vo.ActivitySaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsListDTO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantSaveDto;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityrestaurant.vo.ActivityRestaurantSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitytable.vo.ActivityTableCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityuser.vo.ActivityUserCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityPrizeDrawVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO;
|
||||||
|
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.activityrestaurant.ActivityRestaurantDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityuser.ActivityUserDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.mysql.activity.ActivityMapper;
|
||||||
|
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.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.user.MemberUserService;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ActivityServiceImpl implements ActivityService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityMapper activityMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityAwardsService activityAwardsService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityUserService activityUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityTableService activityTableService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityRestaurantService activityRestaurantService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityAwardsUserService activityAwardsUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private MemberUserService memberUserService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityPayService activityPayService;
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private ActivityTableDishService activityTableDishService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public Long createActivity(ActivitySaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ActivityDO activity = BeanUtils.toBean(createReqVO, ActivityDO.class);
|
||||||
|
activityMapper.insert(activity);
|
||||||
|
ArrayList<ActivityAwardsDO> activityAwardsDOarrayList = new ArrayList<ActivityAwardsDO>();
|
||||||
|
for (ActivityAwardsListDTO dto : createReqVO.getActivityAwardsList()) {
|
||||||
|
ActivityAwardsDO activityAwardsDO = BeanUtils.toBean(dto, ActivityAwardsDO.class);
|
||||||
|
activityAwardsDO.setActivityId(activity.getId());
|
||||||
|
activityAwardsDOarrayList.add(activityAwardsDO);
|
||||||
|
}
|
||||||
|
if (CollectionUtil.isNotEmpty(activityAwardsDOarrayList)) {
|
||||||
|
activityAwardsService.insertActivityAwards(activityAwardsDOarrayList);
|
||||||
|
}
|
||||||
|
if ("1".equals(createReqVO.getReservationStatus()) && createReqVO.getActivityRestaurantSaveDto() != null) {
|
||||||
|
|
||||||
|
ActivityRestaurantSaveReqVO bean = BeanUtils.toBean(createReqVO.getActivityRestaurantSaveDto(), ActivityRestaurantSaveReqVO.class);
|
||||||
|
if (bean.getTotalTable() <= 0) {
|
||||||
|
throw exception(ACTIVITY_TABLE_ZERO);
|
||||||
|
}
|
||||||
|
bean.setActivityId(activity.getId());
|
||||||
|
activityRestaurantService.createActivityRestaurant(bean);
|
||||||
|
activityTableDishService.createByRestaurant(bean);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 返回
|
||||||
|
return activity.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void updateActivity(ActivitySaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityExists(updateReqVO.getId());
|
||||||
|
validateActivityTime(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ActivityDO updateObj = BeanUtils.toBean(updateReqVO, ActivityDO.class);
|
||||||
|
|
||||||
|
if ("1".equals(updateReqVO.getReservationStatus()) && updateReqVO.getActivityRestaurantSaveDto() != null) {
|
||||||
|
|
||||||
|
ActivityRestaurantSaveDto activityRestaurantSaveDto = updateReqVO.getActivityRestaurantSaveDto();
|
||||||
|
ActivityRestaurantSaveReqVO bean = BeanUtils.toBean(activityRestaurantSaveDto, ActivityRestaurantSaveReqVO.class);
|
||||||
|
if (bean.getTotalTable() <= 0) {
|
||||||
|
throw exception(ACTIVITY_TABLE_ZERO);
|
||||||
|
}
|
||||||
|
bean.setActivityId(updateObj.getId());
|
||||||
|
if (bean.getId() != null) {
|
||||||
|
// activityTableService.deleteByActivityId(updateObj.getId());
|
||||||
|
activityRestaurantService.updateActivityRestaurant(bean);
|
||||||
|
} else {
|
||||||
|
bean.setActivityId(updateObj.getId());
|
||||||
|
activityRestaurantService.createActivityRestaurant(bean);
|
||||||
|
activityTableDishService.createByRestaurant(bean);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
activityMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void deleteActivity(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityExists(id);
|
||||||
|
validateActivityTime(id);
|
||||||
|
// 删除
|
||||||
|
activityMapper.deleteById(id);
|
||||||
|
activityAwardsService.deleteByActivityId(id);
|
||||||
|
activityRestaurantService.deleteByActivityId(id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActivityExists(Long id) {
|
||||||
|
if (activityMapper.selectById(id) == null) {
|
||||||
|
throw exception(ACTIVITY_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActivityTime(Long id) {
|
||||||
|
ActivityDO activityDO = activityMapper.selectById(id);
|
||||||
|
LocalDateTime startTime = activityDO.getStartTime();
|
||||||
|
LocalDateTime endTime = activityDO.getEndTime();
|
||||||
|
//现在时间再开始时间之后
|
||||||
|
if (startTime.isBefore(LocalDateTime.now())) {
|
||||||
|
throw exception(ACTIVITY_START);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActivityDO getActivity(Long id) {
|
||||||
|
return activityMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityRespVO> getActivityPage(ActivityPageReqVO pageReqVO) {
|
||||||
|
PageResult<ActivityDO> activityDOPageResult = activityMapper.selectPage(pageReqVO);
|
||||||
|
List<ActivityDO> list = activityDOPageResult.getList();
|
||||||
|
List<Long> activityIds = list.stream().map(ActivityDO::getId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isEmpty(activityIds)) {
|
||||||
|
return BeanUtils.toBean(activityDOPageResult, ActivityRespVO.class);
|
||||||
|
}
|
||||||
|
Map<Long, ActivityUserCountVO> userCountVOMap = activityUserService.countByActivityIds(activityIds);
|
||||||
|
Map<Long, ActivityTableCountVO> tableCountVOMap = activityTableService.countByActivityIds(activityIds);
|
||||||
|
Map<Long, ActivityAwardsUserCountVO> awardsUserCountVOMap = activityAwardsUserService.countByActivityIds(activityIds);
|
||||||
|
Map<Long, ActivityPayCountVO> longActivityPayCountVOMap = activityPayService.countByActivityIds(activityIds);
|
||||||
|
ArrayList<ActivityRespVO> activityRespVOS = new ArrayList<>();
|
||||||
|
|
||||||
|
for (ActivityDO activity : list) {
|
||||||
|
ActivityRespVO bean = BeanUtils.toBean(activity, ActivityRespVO.class);
|
||||||
|
bean.setApplyNum(userCountVOMap.getOrDefault(activity.getId(), new ActivityUserCountVO()).getApplyNum());
|
||||||
|
bean.setReserveNum(tableCountVOMap.getOrDefault(activity.getId(), new ActivityTableCountVO()).getReserveNum());
|
||||||
|
bean.setIncome((longActivityPayCountVOMap.getOrDefault(activity.getId(), new ActivityPayCountVO()).getIncome()));
|
||||||
|
bean.setAwardsNum(awardsUserCountVOMap.getOrDefault(activity.getId(), new ActivityAwardsUserCountVO()).getAwardsNum());
|
||||||
|
activityRespVOS.add(bean);
|
||||||
|
}
|
||||||
|
return new PageResult<>(activityRespVOS, activityDOPageResult.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityRespVO> getUserActivityPage(ActivityPageReqVO pageReqVO) {
|
||||||
|
pageReqVO.setUserId(SecurityFrameworkUtils.getLoginUserId());
|
||||||
|
PageResult<ActivityDO> activityDOPageResult = activityMapper.selectPageApp(pageReqVO);
|
||||||
|
List<ActivityDO> list = activityDOPageResult.getList();
|
||||||
|
List<Long> activityIds = list.stream().map(ActivityDO::getId).collect(Collectors.toList());
|
||||||
|
if (CollectionUtil.isEmpty(activityIds)) {
|
||||||
|
return BeanUtils.toBean(activityDOPageResult, ActivityRespVO.class);
|
||||||
|
}
|
||||||
|
Map<Long, ActivityUserCountVO> userCountVOMap = activityUserService.countByActivityIds(activityIds);
|
||||||
|
List<Long> applyByActivityIds = activityUserService.isApplyByActivityIds(activityIds, pageReqVO.getUserId());
|
||||||
|
|
||||||
|
ArrayList<ActivityRespVO> activityRespVOS = new ArrayList<>();
|
||||||
|
for (ActivityDO activity : list) {
|
||||||
|
ActivityRespVO bean = BeanUtils.toBean(activity, ActivityRespVO.class);
|
||||||
|
bean.setApplyNum(userCountVOMap.getOrDefault(activity.getId(), new ActivityUserCountVO()).getApplyNum());
|
||||||
|
bean.setIsApply(applyByActivityIds.contains(activity.getId()));
|
||||||
|
activityRespVOS.add(bean);
|
||||||
|
}
|
||||||
|
return new PageResult<>(activityRespVOS, activityDOPageResult.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsUserDO> prizeDraw(AppActivityPrizeDrawVO drawVO) {
|
||||||
|
|
||||||
|
// 查询奖品
|
||||||
|
ActivityAwardsDO activityAwards = activityAwardsService.getActivityAwards(drawVO.getAwardsId());
|
||||||
|
|
||||||
|
// 查询活动
|
||||||
|
ActivityDO activityDO = activityMapper.selectById(activityAwards.getActivityId());
|
||||||
|
|
||||||
|
if(activityDO.getStartTime().isAfter(LocalDateTime.now())){
|
||||||
|
throw exception(ACTIVITY_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询报名用户
|
||||||
|
List<ActivityUserDO> activityUserDOList = activityUserService.getUserListByActivityId(activityDO.getId());
|
||||||
|
|
||||||
|
//抽奖用户池
|
||||||
|
Set<Long> drawUserPool = activityUserDOList.stream().map(ActivityUserDO::getUserId).collect(Collectors.toSet());
|
||||||
|
|
||||||
|
if(CollectionUtil.isEmpty(drawUserPool)){
|
||||||
|
throw exception(ACTIVITY_NO_USER);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 查询当天中奖用户
|
||||||
|
List<ActivityAwardsUserDO> activityAwardsUserDOList = activityAwardsUserService.getAwardsUserListByActivityId(activityDO.getId());
|
||||||
|
|
||||||
|
|
||||||
|
//统计已中该奖项的人数
|
||||||
|
// int count = (int) activityAwardsUserDOList.stream().filter(vo -> vo.getAwardsId().equals(activityAwards.getId())).count();
|
||||||
|
//
|
||||||
|
// if (count + drawVO.getNum() > activityAwards.getAwardsNum()) {
|
||||||
|
// throw exception(ACTIVITY_AWARDS_EXCEED);
|
||||||
|
// }
|
||||||
|
|
||||||
|
//查询整个活动中限制类型为整个活动(1)的奖项
|
||||||
|
List<ActivityAwardsDO> limitTypeList = activityAwardsService.getListByActivityIdAndAwardsStatus(activityDO.getId(), "1");
|
||||||
|
//优先排除这批中奖人员
|
||||||
|
if(CollectionUtil.isNotEmpty(limitTypeList)){
|
||||||
|
for (ActivityAwardsDO activityAwardsDO : limitTypeList) {
|
||||||
|
Map<Long, Long> map = activityAwardsUserDOList.stream().filter(vo -> vo.getAwardsId().equals(activityAwardsDO.getId()))
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
ActivityAwardsUserDO::getUserId,
|
||||||
|
Collectors.counting()
|
||||||
|
));
|
||||||
|
Integer awardsNum = activityAwardsDO.getAwardsNum();
|
||||||
|
// 筛选出次数 大于限定次数 的用户ID,存入Set去重
|
||||||
|
Set<Long> inconsistentUserList = map.entrySet().stream()
|
||||||
|
.filter(entry -> entry.getValue() >= awardsNum)
|
||||||
|
.map(Map.Entry::getKey)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
// 从抽奖用户池中移除次数大于限定次数的用户
|
||||||
|
drawUserPool.removeAll(inconsistentUserList);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取该奖项的限制类型
|
||||||
|
String limitType = activityAwards.getLimitType();
|
||||||
|
|
||||||
|
//如果是单个奖项(2)的话,需要排除该奖项次数满的 整个活动(1)的话上面已排除 无限制(3)无需排除
|
||||||
|
if ("2".equals(limitType)){
|
||||||
|
Map<Long, Long> map = activityAwardsUserDOList.stream().filter(vo -> vo.getAwardsId().equals(activityAwards.getId()))
|
||||||
|
.collect(Collectors.groupingBy(
|
||||||
|
ActivityAwardsUserDO::getUserId,
|
||||||
|
Collectors.counting()
|
||||||
|
));
|
||||||
|
|
||||||
|
//每个人可中奖次数
|
||||||
|
Integer awardsNum = activityAwards.getAwardsNum();
|
||||||
|
|
||||||
|
// 筛选出次数 大于限定次数 的用户ID,存入Set去重
|
||||||
|
Set<Long> inconsistentUserList = map.entrySet().stream()
|
||||||
|
.filter(entry -> entry.getValue() >= awardsNum)
|
||||||
|
.map(Map.Entry::getKey)
|
||||||
|
.collect(Collectors.toSet());
|
||||||
|
drawUserPool.removeAll(inconsistentUserList);
|
||||||
|
}
|
||||||
|
|
||||||
|
//开始抽奖
|
||||||
|
List<Long> longs = selectRandom(drawUserPool, drawVO.getNum());
|
||||||
|
|
||||||
|
//中奖人员信息
|
||||||
|
List<MemberUserDO> userList = memberUserService.getUserList(longs);
|
||||||
|
|
||||||
|
//插入数据库
|
||||||
|
ArrayList<ActivityAwardsUserDO> list = new ArrayList<>();
|
||||||
|
for (MemberUserDO user : userList) {
|
||||||
|
ActivityAwardsUserDO activityAwardsUserDO = new ActivityAwardsUserDO();
|
||||||
|
activityAwardsUserDO.setActivityId(activityDO.getId());
|
||||||
|
activityAwardsUserDO.setUserId(user.getId());
|
||||||
|
activityAwardsUserDO.setNickName(user.getNickname());
|
||||||
|
activityAwardsUserDO.setAvatar(user.getAvatar());
|
||||||
|
activityAwardsUserDO.setMobile(user.getMobile());
|
||||||
|
activityAwardsUserDO.setAwardsId(activityAwards.getId());
|
||||||
|
activityAwardsUserDO.setAwardsStatus("0");
|
||||||
|
list.add(activityAwardsUserDO);
|
||||||
|
}
|
||||||
|
activityAwardsUserService.insertBatch(list);
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Long> selectRandom(Set<Long> drawUserPool, int count) {
|
||||||
|
// 校验输入
|
||||||
|
if (drawUserPool == null || drawUserPool.isEmpty()) {
|
||||||
|
return Collections.emptyList();
|
||||||
|
}
|
||||||
|
int total = drawUserPool.size();
|
||||||
|
if (count >= total) {
|
||||||
|
return new ArrayList<>(drawUserPool); // 直接返回所有元素
|
||||||
|
}
|
||||||
|
|
||||||
|
// 转换为列表并复制,避免修改原始集合
|
||||||
|
List<Long> list = new ArrayList<>(drawUserPool);
|
||||||
|
Random random = new Random();
|
||||||
|
|
||||||
|
// Fisher-Yates 洗牌算法(原地打乱)
|
||||||
|
for (int i = total - 1; i > 0; i--) {
|
||||||
|
int j = random.nextInt(i + 1); // 生成 [0, i] 之间的随机索引
|
||||||
|
Collections.swap(list, i, j); // 交换元素,确保每个位置等概率出现
|
||||||
|
}
|
||||||
|
|
||||||
|
// 取前 count 个元素
|
||||||
|
return list.subList(0, count);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppActivityRespVO getUserActivity(Long id,Long userId) {
|
||||||
|
ActivityDO activityDO = activityMapper.selectById(id);
|
||||||
|
if( activityDO == null){
|
||||||
|
throw exception(ACTIVITY_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
AppActivityRespVO activity = BeanUtil.toBean(activityDO, AppActivityRespVO.class);
|
||||||
|
Map<Long, ActivityUserCountVO> userCountVOMap = activityUserService.countByActivityIds(Collections.singletonList(id));
|
||||||
|
activity.setApplyNum(userCountVOMap.getOrDefault(activity.getId(), new ActivityUserCountVO()).getApplyNum());
|
||||||
|
|
||||||
|
activity.setAwards(activityAwardsUserService.getListByActivityIdAndUserId(id, userId));
|
||||||
|
return activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AppActivityRespVO getUserActivityApplyInfo(Long id, Long userId) {
|
||||||
|
ActivityDO activityDO = activityMapper.selectById(id);
|
||||||
|
if( activityDO == null){
|
||||||
|
throw exception(ACTIVITY_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
AppActivityRespVO activity = BeanUtil.toBean(activityDO, AppActivityRespVO.class);
|
||||||
|
Map<Long, ActivityUserCountVO> userCountVOMap = activityUserService.countByActivityIds(Collections.singletonList(id));
|
||||||
|
activity.setApplyNum(userCountVOMap.getOrDefault(activity.getId(), new ActivityUserCountVO()).getApplyNum());
|
||||||
|
|
||||||
|
activity.setIsApply(activityUserService.selectIsApply(id, userId));
|
||||||
|
|
||||||
|
activity.setAwardList(activityAwardsService.getListByActivityId(id));
|
||||||
|
return activity;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AppActivityRespVO> getReservatList() {
|
||||||
|
LocalDateTime now = LocalDateTime.now();
|
||||||
|
List<ActivityDO> activityDOS = activityMapper.selectList(Wrappers.<ActivityDO>lambdaQuery()
|
||||||
|
.eq(ActivityDO::getReservationStatus, "1")
|
||||||
|
.ge(ActivityDO::getEndTime, now)
|
||||||
|
// .le(ActivityDO::getStartTime, now)
|
||||||
|
);
|
||||||
|
List<AppActivityRespVO> result = new ArrayList<>();
|
||||||
|
for (ActivityDO activityDO : activityDOS) {
|
||||||
|
AppActivityRespVO bean = BeanUtils.toBean(activityDO, AppActivityRespVO.class);
|
||||||
|
ActivityRestaurantDO activityRestaurantDO = activityRestaurantService.getByActivityId(activityDO.getId());
|
||||||
|
bean.setActivityRestaurantSaveDto(BeanUtils.toBean(activityRestaurantDO, ActivityRestaurantRespVO.class));
|
||||||
|
result.add(bean);
|
||||||
|
}
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityRespVO> getActivityReservePage(ActivityPageReqVO reqVO) {
|
||||||
|
PageResult<ActivityDO> activityDOPageResult = activityMapper.selectPage(reqVO, new LambdaQueryWrapperX<ActivityDO>()
|
||||||
|
.eq(ActivityDO::getReservationStatus, "1")
|
||||||
|
.ge(ActivityDO::getEndTime, LocalDateTime.now())
|
||||||
|
.orderByDesc(ActivityDO::getId));
|
||||||
|
return BeanUtils.toBean(activityDOPageResult, ActivityRespVO.class);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,58 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activityadddish;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishPageReqVO;
|
||||||
|
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 javax.validation.Valid;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子加菜 Service 接口
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
public interface ActivityAddDishService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建活动用餐桌子加菜
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createActivityAddDish(@Valid ActivityAddDishSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新活动用餐桌子加菜
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateActivityAddDish(@Valid ActivityAddDishSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动用餐桌子加菜
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteActivityAddDish(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动用餐桌子加菜
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 活动用餐桌子加菜
|
||||||
|
*/
|
||||||
|
ActivityAddDishDO getActivityAddDish(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动用餐桌子加菜分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 活动用餐桌子加菜分页
|
||||||
|
*/
|
||||||
|
PageResult<ActivityAddDishDO> getActivityAddDishPage(ActivityAddDishPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
void createActivityAddDishBatch(ActivityAddDishSaveBatchVO activityAddDishSaveBatchVO);
|
||||||
|
}
|
@ -0,0 +1,105 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activityadddish;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityadddish.vo.ActivityAddDishPageReqVO;
|
||||||
|
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.dal.dataobject.activitytabledish.ActivityTableDishDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.mysql.activityadddish.ActivityAddDishMapper;
|
||||||
|
import cn.iocoder.yudao.module.member.service.activitytabledish.ActivityTableDishService;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_ADD_DISH_NOT_CHANGE;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_ADD_DISH_NOT_EXISTS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动用餐桌子加菜 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ActivityAddDishServiceImpl implements ActivityAddDishService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityAddDishMapper activityAddDishMapper;
|
||||||
|
@Resource
|
||||||
|
private ActivityTableDishService activityTableDishService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createActivityAddDish(ActivityAddDishSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ActivityAddDishDO activityAddDish = BeanUtils.toBean(createReqVO, ActivityAddDishDO.class);
|
||||||
|
activityAddDishMapper.insert(activityAddDish);
|
||||||
|
// 返回
|
||||||
|
return activityAddDish.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateActivityAddDish(ActivityAddDishSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityAddDishExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ActivityAddDishDO updateObj = BeanUtils.toBean(updateReqVO, ActivityAddDishDO.class);
|
||||||
|
activityAddDishMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteActivityAddDish(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityAddDishExists(id);
|
||||||
|
// 删除
|
||||||
|
activityAddDishMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActivityAddDishExists(Long id) {
|
||||||
|
if (activityAddDishMapper.selectById(id) == null) {
|
||||||
|
throw exception(ACTIVITY_ADD_DISH_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActivityAddDishDO getActivityAddDish(Long id) {
|
||||||
|
return activityAddDishMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityAddDishDO> getActivityAddDishPage(ActivityAddDishPageReqVO pageReqVO) {
|
||||||
|
return activityAddDishMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void createActivityAddDishBatch(ActivityAddDishSaveBatchVO activityAddDishSaveBatchVO) {
|
||||||
|
|
||||||
|
List<Long> tableDishIds = activityAddDishSaveBatchVO.getTableDishIds();
|
||||||
|
if(tableDishIds == null){
|
||||||
|
throw exception(ACTIVITY_ADD_DISH_NOT_CHANGE);
|
||||||
|
}
|
||||||
|
List<ActivityTableDishDO> listByIds = activityTableDishService.getListByIds(tableDishIds);
|
||||||
|
Map<Long, Integer> collect = listByIds.stream().collect(Collectors.toMap(ActivityTableDishDO::getId, ActivityTableDishDO::getSerialNumber));
|
||||||
|
|
||||||
|
|
||||||
|
List<ActivityAddDishDO> list = new ArrayList<>();
|
||||||
|
for (Long tableDishId : tableDishIds){
|
||||||
|
ActivityAddDishDO activityAddDishDO = new ActivityAddDishDO();
|
||||||
|
activityAddDishDO.setTableDishId(tableDishId);
|
||||||
|
activityAddDishDO.setDishName(activityAddDishSaveBatchVO.getDishName());
|
||||||
|
activityAddDishDO.setDishPrice(activityAddDishSaveBatchVO.getDishPrice());
|
||||||
|
activityAddDishDO.setDishImg(activityAddDishSaveBatchVO.getDishImg());
|
||||||
|
activityAddDishDO.setSerialNumber(collect.get(tableDishId));
|
||||||
|
list.add(activityAddDishDO);
|
||||||
|
}
|
||||||
|
activityAddDishMapper.insertBatch(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,69 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activityawards;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawards.ActivityAwardsDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动奖项 Service 接口
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
public interface ActivityAwardsService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建活动奖项
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createActivityAwards(@Valid ActivityAwardsSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新活动奖项
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateActivityAwards(@Valid ActivityAwardsSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动奖项
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteActivityAwards(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动奖项
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 活动奖项
|
||||||
|
*/
|
||||||
|
ActivityAwardsDO getActivityAwards(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动奖项分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 活动奖项分页
|
||||||
|
*/
|
||||||
|
PageResult<ActivityAwardsDO> getActivityAwardsPage(ActivityAwardsPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
|
||||||
|
void insertActivityAwards(List<ActivityAwardsDO> activityAwardsDOList);
|
||||||
|
|
||||||
|
void deleteByActivityId(Long activityId);
|
||||||
|
|
||||||
|
List<ActivityAwardsDO> getListByActivityId(Long activityId);
|
||||||
|
|
||||||
|
List<ActivityAwardsDO> getListByIds(List<Long> ids);
|
||||||
|
|
||||||
|
List<ActivityAwardsDO> getListByActivityIdAndAwardsStatus(Long activityId, String limitType);
|
||||||
|
|
||||||
|
List<ActivityAwardsDO> getListByActivity(Long activityId);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,111 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activityawards;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawards.vo.ActivityAwardsPageReqVO;
|
||||||
|
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.dal.mysql.activityawards.ActivityAwardsMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_AWARDS_NOT_EXISTS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动奖项 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ActivityAwardsServiceImpl implements ActivityAwardsService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityAwardsMapper activityAwardsMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createActivityAwards(ActivityAwardsSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ActivityAwardsDO activityAwards = BeanUtils.toBean(createReqVO, ActivityAwardsDO.class);
|
||||||
|
activityAwardsMapper.insert(activityAwards);
|
||||||
|
// 返回
|
||||||
|
return activityAwards.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateActivityAwards(ActivityAwardsSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityAwardsExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ActivityAwardsDO updateObj = BeanUtils.toBean(updateReqVO, ActivityAwardsDO.class);
|
||||||
|
activityAwardsMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteActivityAwards(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityAwardsExists(id);
|
||||||
|
// 删除
|
||||||
|
activityAwardsMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActivityAwardsExists(Long id) {
|
||||||
|
if (activityAwardsMapper.selectById(id) == null) {
|
||||||
|
throw exception(ACTIVITY_AWARDS_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActivityAwardsDO getActivityAwards(Long id) {
|
||||||
|
return activityAwardsMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityAwardsDO> getActivityAwardsPage(ActivityAwardsPageReqVO pageReqVO) {
|
||||||
|
return activityAwardsMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertActivityAwards(List<ActivityAwardsDO> activityAwardsDOList) {
|
||||||
|
activityAwardsMapper.insertBatch(activityAwardsDOList);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteByActivityId(Long activityId) {
|
||||||
|
activityAwardsMapper.delete(Wrappers.lambdaQuery(ActivityAwardsDO.class).eq(ActivityAwardsDO::getActivityId,activityId));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsDO> getListByActivityId(Long activityId) {
|
||||||
|
|
||||||
|
return activityAwardsMapper.selectList(Wrappers.lambdaQuery(ActivityAwardsDO.class)
|
||||||
|
.eq(ActivityAwardsDO::getActivityId, activityId)
|
||||||
|
.orderByAsc(ActivityAwardsDO::getSortNum));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsDO> getListByIds(List<Long> ids) {
|
||||||
|
return activityAwardsMapper.selectList(Wrappers.lambdaQuery(ActivityAwardsDO.class)
|
||||||
|
.in(ActivityAwardsDO::getId, ids)
|
||||||
|
.orderByAsc(ActivityAwardsDO::getSortNum));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsDO> getListByActivityIdAndAwardsStatus(Long activityId, String limitType) {
|
||||||
|
return activityAwardsMapper.selectList(Wrappers.lambdaQuery(ActivityAwardsDO.class)
|
||||||
|
.eq(ActivityAwardsDO::getActivityId, activityId)
|
||||||
|
.eq(ActivityAwardsDO::getLimitType, limitType));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsDO> getListByActivity(Long activityId) {
|
||||||
|
return activityAwardsMapper.selectList(Wrappers.lambdaQuery(ActivityAwardsDO.class)
|
||||||
|
.eq(ActivityAwardsDO::getActivityId, activityId));
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,76 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activityawardsuser;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserCountVO;
|
||||||
|
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.controller.app.activity.vo.AppCancelVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppUserAwardsVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动中奖人员 Service 接口
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
public interface ActivityAwardsUserService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建活动中奖人员
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createActivityAwardsUser(@Valid ActivityAwardsUserSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新活动中奖人员
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateActivityAwardsUser(@Valid ActivityAwardsUserSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动中奖人员
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteActivityAwardsUser(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动中奖人员
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 活动中奖人员
|
||||||
|
*/
|
||||||
|
ActivityAwardsUserDO getActivityAwardsUser(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动中奖人员分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 活动中奖人员分页
|
||||||
|
*/
|
||||||
|
PageResult<ActivityAwardsUserDO> getActivityAwardsUserPage(ActivityAwardsUserPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
PageResult<ActivityAwardsUserRespVO> getActivityAwardsUserJoinPage(ActivityAwardsUserPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
Map<Long, ActivityAwardsUserCountVO> countByActivityIds(List<Long> activityIds);
|
||||||
|
|
||||||
|
List<ActivityAwardsUserDO> getAwardsUserListByActivityId(Long activityId);
|
||||||
|
|
||||||
|
void insertBatch(List<ActivityAwardsUserDO> list);
|
||||||
|
|
||||||
|
List<AppUserAwardsVO> getListByActivityIdAndUserId(Long activityId, Long userId);
|
||||||
|
|
||||||
|
Boolean cancel(AppCancelVO vo);
|
||||||
|
|
||||||
|
List<ActivityAwardsUserDO> getListByTime();
|
||||||
|
|
||||||
|
void updateBatch(List<ActivityAwardsUserDO> list );
|
||||||
|
}
|
@ -0,0 +1,160 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activityawardsuser;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activityawardsuser.vo.ActivityAwardsUserCountVO;
|
||||||
|
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.controller.app.activity.vo.AppCancelVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppUserAwardsVO;
|
||||||
|
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.mysql.activityawardsuser.ActivityAwardsUserMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalTime;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_AWARDS_USER_NOT_EFFECTIVE;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.ACTIVITY_AWARDS_USER_NOT_EXISTS;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动中奖人员 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ActivityAwardsUserServiceImpl implements ActivityAwardsUserService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityAwardsUserMapper activityAwardsUserMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createActivityAwardsUser(ActivityAwardsUserSaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ActivityAwardsUserDO activityAwardsUser = BeanUtils.toBean(createReqVO, ActivityAwardsUserDO.class);
|
||||||
|
activityAwardsUserMapper.insert(activityAwardsUser);
|
||||||
|
// 返回
|
||||||
|
return activityAwardsUser.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateActivityAwardsUser(ActivityAwardsUserSaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityAwardsUserExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ActivityAwardsUserDO updateObj = BeanUtils.toBean(updateReqVO, ActivityAwardsUserDO.class);
|
||||||
|
activityAwardsUserMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteActivityAwardsUser(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityAwardsUserExists(id);
|
||||||
|
// 删除
|
||||||
|
activityAwardsUserMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActivityAwardsUserExists(Long id) {
|
||||||
|
if (activityAwardsUserMapper.selectById(id) == null) {
|
||||||
|
throw exception(ACTIVITY_AWARDS_USER_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActivityAwardsUserDO getActivityAwardsUser(Long id) {
|
||||||
|
return activityAwardsUserMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityAwardsUserDO> getActivityAwardsUserPage(ActivityAwardsUserPageReqVO pageReqVO) {
|
||||||
|
return activityAwardsUserMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityAwardsUserRespVO> getActivityAwardsUserJoinPage(ActivityAwardsUserPageReqVO pageReqVO) {
|
||||||
|
return activityAwardsUserMapper.selectJoinPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Long, ActivityAwardsUserCountVO> countByActivityIds(List<Long> activityIds) {
|
||||||
|
List<ActivityAwardsUserCountVO> activityAwardsUserCountVOS = activityAwardsUserMapper.countByActivityIds(activityIds);
|
||||||
|
if (activityAwardsUserCountVOS.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
return activityAwardsUserCountVOS.stream().collect(Collectors.toMap(ActivityAwardsUserCountVO::getActivityId, v -> v));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsUserDO> getAwardsUserListByActivityId(Long activityId) {
|
||||||
|
|
||||||
|
LocalDateTime date = LocalDateTime.now();
|
||||||
|
|
||||||
|
LocalDateTime startOfDay = date.with(LocalTime.MIN);
|
||||||
|
|
||||||
|
LocalDateTime endOfDay = date.with(LocalTime.MAX);
|
||||||
|
|
||||||
|
return activityAwardsUserMapper.selectList(Wrappers.<ActivityAwardsUserDO>lambdaQuery()
|
||||||
|
.eq(ActivityAwardsUserDO::getActivityId, activityId)
|
||||||
|
.between(ActivityAwardsUserDO::getCreateTime, startOfDay, endOfDay));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void insertBatch(List<ActivityAwardsUserDO> list) {
|
||||||
|
activityAwardsUserMapper.insertBatch(list);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<AppUserAwardsVO> getListByActivityIdAndUserId(Long activityId, Long userId) {
|
||||||
|
return activityAwardsUserMapper
|
||||||
|
.selectJoinList(AppUserAwardsVO.class,
|
||||||
|
new MPJLambdaWrapper<ActivityAwardsUserDO>()
|
||||||
|
.select(ActivityAwardsDO::getPrize, ActivityAwardsDO::getAwardsName)
|
||||||
|
.select(ActivityAwardsUserDO::getAwardsStatus, ActivityAwardsUserDO::getCreateTime, ActivityAwardsUserDO::getId)
|
||||||
|
.leftJoin(ActivityAwardsDO.class, ActivityAwardsDO::getId, ActivityAwardsUserDO::getAwardsId)
|
||||||
|
.eq(ActivityAwardsUserDO::getActivityId, activityId)
|
||||||
|
.eq(ActivityAwardsUserDO::getUserId, userId)
|
||||||
|
.orderByAsc(ActivityAwardsUserDO::getCreateTime));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean cancel(AppCancelVO vo) {
|
||||||
|
ActivityAwardsUserDO activityAwardsUserDO = activityAwardsUserMapper.selectById(vo.getActivityAwardsUserId());
|
||||||
|
if(!"0".equals(activityAwardsUserDO.getAwardsStatus())){
|
||||||
|
throw exception(ACTIVITY_AWARDS_USER_NOT_EFFECTIVE);
|
||||||
|
}
|
||||||
|
activityAwardsUserDO.setAwardsStatus("1");
|
||||||
|
int i = activityAwardsUserMapper.updateById(activityAwardsUserDO);
|
||||||
|
return i>0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityAwardsUserDO> getListByTime() {
|
||||||
|
LocalDateTime date = LocalDateTime.now().minusDays(1);
|
||||||
|
|
||||||
|
LocalDateTime endOfDay = date.with(LocalTime.MAX);
|
||||||
|
|
||||||
|
return activityAwardsUserMapper.selectList(Wrappers.<ActivityAwardsUserDO>lambdaQuery()
|
||||||
|
.le(ActivityAwardsUserDO::getCreateTime, endOfDay)
|
||||||
|
.eq(ActivityAwardsUserDO::getAwardsStatus, "0")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateBatch(List<ActivityAwardsUserDO> list) {
|
||||||
|
activityAwardsUserMapper.updateBatch(list);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,71 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activitypay;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPaySaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityPayRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppCancelVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 Service 接口
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
public interface ActivityPayService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建活动付款
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createActivityPay(@Valid ActivityPaySaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新活动付款
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateActivityPay(@Valid ActivityPaySaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动付款
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteActivityPay(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动付款
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 活动付款
|
||||||
|
*/
|
||||||
|
ActivityPayDO getActivityPay(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动付款分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 活动付款分页
|
||||||
|
*/
|
||||||
|
PageResult<ActivityPayDO> getActivityPayPage(ActivityPayPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
Map<Long, ActivityPayCountVO> countByActivityIds(List<Long> activityIds);
|
||||||
|
|
||||||
|
void addActivityPay(ActivityPaySaveReqVO createReqVO);
|
||||||
|
|
||||||
|
PageResult<AppActivityPayRespVO> getUserActivityPayPage(ActivityPayPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
Boolean reserveCancel(AppCancelVO vo);
|
||||||
|
|
||||||
|
List<ActivityPayDO> getListByTime();
|
||||||
|
|
||||||
|
void updateBatch(List<ActivityPayDO> list);
|
||||||
|
}
|
@ -0,0 +1,201 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activitypay;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.framework.common.util.object.BeanUtils;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayCountVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPayPageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypay.vo.ActivityPaySaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppActivityPayRespVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.app.activity.vo.AppCancelVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activity.ActivityDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activityawardsuser.ActivityAwardsUserDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypay.ActivityPayDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.user.MemberUserDO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.mysql.activitypay.ActivityPayMapper;
|
||||||
|
import cn.iocoder.yudao.module.member.service.activitypaytable.ActivityPayTableService;
|
||||||
|
import cn.iocoder.yudao.module.member.service.user.MemberUserService;
|
||||||
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.github.yulichang.wrapper.MPJLambdaWrapper;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.math.RoundingMode;
|
||||||
|
import java.time.LocalDate;
|
||||||
|
import java.time.format.DateTimeFormatter;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static cn.iocoder.yudao.module.member.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class ActivityPayServiceImpl implements ActivityPayService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityPayMapper activityPayMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private ActivityPayTableService activityPayTableService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
@Lazy
|
||||||
|
private MemberUserService memberUserService;
|
||||||
|
@Override
|
||||||
|
public Long createActivityPay(ActivityPaySaveReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
ActivityPayDO activityPay = BeanUtils.toBean(createReqVO, ActivityPayDO.class);
|
||||||
|
activityPayMapper.insert(activityPay);
|
||||||
|
// 返回
|
||||||
|
return activityPay.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateActivityPay(ActivityPaySaveReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityPayExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
ActivityPayDO updateObj = BeanUtils.toBean(updateReqVO, ActivityPayDO.class);
|
||||||
|
activityPayMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteActivityPay(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateActivityPayExists(id);
|
||||||
|
// 删除
|
||||||
|
activityPayMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateActivityPayExists(Long id) {
|
||||||
|
if (activityPayMapper.selectById(id) == null) {
|
||||||
|
throw exception(ACTIVITY_PAY_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ActivityPayDO getActivityPay(Long id) {
|
||||||
|
return activityPayMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<ActivityPayDO> getActivityPayPage(ActivityPayPageReqVO pageReqVO) {
|
||||||
|
return activityPayMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Map<Long, ActivityPayCountVO> countByActivityIds(List<Long> activityIds) {
|
||||||
|
List<ActivityPayCountVO> activityPayCountVOS = activityPayMapper.countByActivityIds(activityIds);
|
||||||
|
if (activityPayCountVOS.isEmpty()) {
|
||||||
|
return Collections.emptyMap();
|
||||||
|
}
|
||||||
|
return activityPayCountVOS.stream().collect(Collectors.toMap(ActivityPayCountVO::getActivityId, v -> v));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = Exception.class)
|
||||||
|
public void addActivityPay(ActivityPaySaveReqVO createReqVO) {
|
||||||
|
|
||||||
|
ActivityPayDO activityPayDO = new ActivityPayDO();
|
||||||
|
BeanUtil.copyProperties(createReqVO, activityPayDO,"reserveTime");
|
||||||
|
MemberUserDO user = memberUserService.getUser(createReqVO.getUserId());
|
||||||
|
activityPayDO.setMobile(user.getMobile());
|
||||||
|
activityPayDO.setNickName(user.getNickname());
|
||||||
|
|
||||||
|
String reserveTime = createReqVO.getReserveTime();
|
||||||
|
LocalDate localDate = null;
|
||||||
|
if(StrUtil.isNotBlank(reserveTime)){
|
||||||
|
//转化成date
|
||||||
|
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
|
localDate = LocalDate.parse(reserveTime, formatter);
|
||||||
|
}
|
||||||
|
activityPayDO.setReserveTime(localDate);
|
||||||
|
|
||||||
|
activityPayMapper.insert(activityPayDO);
|
||||||
|
|
||||||
|
String serialNumbers = createReqVO.getSerialNumbers();
|
||||||
|
String[] split = serialNumbers.split(",");
|
||||||
|
BigDecimal divide = createReqVO.getPrice().divide(BigDecimal.valueOf(split.length),2, RoundingMode.HALF_UP);
|
||||||
|
List<ActivityPayTableDO> activityPayTableDOS = new ArrayList<>();
|
||||||
|
for (String serialNumber : split) {
|
||||||
|
ActivityPayTableDO activityPayTableDO = new ActivityPayTableDO();
|
||||||
|
activityPayTableDO.setActivityId(activityPayDO.getActivityId());
|
||||||
|
activityPayTableDO.setSerialNumbers(serialNumber);
|
||||||
|
activityPayTableDO.setPrice(divide);
|
||||||
|
activityPayTableDO.setUserId(activityPayDO.getUserId());
|
||||||
|
activityPayTableDO.setReserveTime(activityPayDO.getReserveTime());
|
||||||
|
activityPayTableDO.setNickName(activityPayDO.getNickName());
|
||||||
|
activityPayTableDO.setMobile(activityPayDO.getMobile());
|
||||||
|
activityPayTableDOS.add(activityPayTableDO);
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!activityPayTableDOS.isEmpty()){
|
||||||
|
activityPayTableService.insertBatch(activityPayTableDOS);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<AppActivityPayRespVO> getUserActivityPayPage(ActivityPayPageReqVO pageReqVO) {
|
||||||
|
|
||||||
|
Page<AppActivityPayRespVO> activityAwardsUserRespVOPage = activityPayMapper.selectJoinPage(new Page<>(pageReqVO.getPageNo(), pageReqVO.getPageSize()), AppActivityPayRespVO.class,
|
||||||
|
new MPJLambdaWrapper<ActivityPayDO>()
|
||||||
|
.selectAll(ActivityPayDO.class)
|
||||||
|
.select(ActivityDO::getActivityName)
|
||||||
|
.leftJoin(ActivityDO.class, ActivityDO::getId, ActivityAwardsUserDO::getActivityId)
|
||||||
|
.eq(pageReqVO.getActivityId() != null, ActivityAwardsUserDO::getActivityId, pageReqVO.getActivityId())
|
||||||
|
.eq( ActivityPayDO::getUserId, pageReqVO.getUserId())
|
||||||
|
.orderByDesc(ActivityPayDO::getCreateTime)
|
||||||
|
);
|
||||||
|
return new PageResult<>(activityAwardsUserRespVOPage.getRecords(), activityAwardsUserRespVOPage.getTotal());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean reserveCancel(AppCancelVO vo) {
|
||||||
|
ActivityPayDO activityPayDO = activityPayMapper.selectById(vo.getActivityPayId());
|
||||||
|
if(!"0".equals(activityPayDO.getStatus())){
|
||||||
|
throw exception(ACTIVITY_PAY_USE);
|
||||||
|
}
|
||||||
|
//获取当天日期
|
||||||
|
LocalDate now = LocalDate.now();
|
||||||
|
//比较日期是否相等
|
||||||
|
if(! now.isEqual(activityPayDO.getReserveTime())){
|
||||||
|
throw exception(ACTIVITY_PAY_EXPIRE);
|
||||||
|
}
|
||||||
|
activityPayDO.setStatus("1");
|
||||||
|
int i = activityPayMapper.updateById(activityPayDO);
|
||||||
|
return i>0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<ActivityPayDO> getListByTime() {
|
||||||
|
LocalDate localDate = LocalDate.now().minusDays(1);
|
||||||
|
|
||||||
|
return activityPayMapper.selectList(Wrappers.<ActivityPayDO>lambdaQuery()
|
||||||
|
.le(ActivityPayDO::getReserveTime, localDate)
|
||||||
|
.eq(ActivityPayDO::getStatus, "0")
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateBatch(List<ActivityPayDO> list) {
|
||||||
|
activityPayMapper.updateBatch(list);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,59 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.service.activitypaytable;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.common.pojo.PageResult;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTablePageReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.controller.admin.activitypaytable.vo.ActivityPayTableSaveReqVO;
|
||||||
|
import cn.iocoder.yudao.module.member.dal.dataobject.activitypaytable.ActivityPayTableDO;
|
||||||
|
|
||||||
|
import javax.validation.Valid;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 活动付款 Service 接口
|
||||||
|
*
|
||||||
|
* @author 我是秦俊旗
|
||||||
|
*/
|
||||||
|
public interface ActivityPayTableService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建活动付款
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createActivityPayTable(@Valid ActivityPayTableSaveReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新活动付款
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateActivityPayTable(@Valid ActivityPayTableSaveReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除活动付款
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteActivityPayTable(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动付款
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 活动付款
|
||||||
|
*/
|
||||||
|
ActivityPayTableDO getActivityPayTable(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得活动付款分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 活动付款分页
|
||||||
|
*/
|
||||||
|
PageResult<ActivityPayTableDO> getActivityPayTablePage(ActivityPayTablePageReqVO pageReqVO);
|
||||||
|
|
||||||
|
void insertBatch(List<ActivityPayTableDO> list);
|
||||||
|
|
||||||
|
PageResult<ActivityPayTableDO> getActivityPayTableGroupPage(ActivityPayTablePageReqVO pageReqVO);
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user