已完成小程序端的项目查询

This commit is contained in:
chen-xin-zhi 2025-05-11 09:25:09 +08:00
parent 035018657c
commit d54e517f7f
20 changed files with 823 additions and 41 deletions

View File

@ -3,7 +3,6 @@ package com.greenorange.promotion.controller.project;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.greenorange.promotion.annotation.RequiresPermission;
import com.greenorange.promotion.annotation.SysLog;
@ -11,19 +10,18 @@ import com.greenorange.promotion.common.BaseResponse;
import com.greenorange.promotion.common.ErrorCode;
import com.greenorange.promotion.common.ResultUtils;
import com.greenorange.promotion.constant.UserConstant;
import com.greenorange.promotion.exception.BusinessException;
import com.greenorange.promotion.exception.ThrowUtils;
import com.greenorange.promotion.model.dto.CommonBatchRequest;
import com.greenorange.promotion.model.dto.CommonRequest;
import com.greenorange.promotion.model.dto.project.ProjectAddRequest;
import com.greenorange.promotion.model.dto.project.ProjectQueryRequest;
import com.greenorange.promotion.model.dto.project.ProjectStatusUpdateRequest;
import com.greenorange.promotion.model.dto.project.ProjectUpdateRequest;
import com.greenorange.promotion.model.dto.projectDetail.ProjectDetailAddRequest;
import com.greenorange.promotion.model.dto.projectNotification.ProjectNotificationAddRequest;
import com.greenorange.promotion.model.dto.promoCodeApply.PromoCodeApplyRequest;
import com.greenorange.promotion.model.entity.*;
import com.greenorange.promotion.model.vo.project.ProjectCardVO;
import com.greenorange.promotion.model.vo.project.ProjectDetailVO;
import com.greenorange.promotion.model.vo.project.ProjectPageVO;
import com.greenorange.promotion.model.vo.project.ProjectVO;
import com.greenorange.promotion.model.vo.projectNotification.ProjectNotificationVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.project.*;
import io.swagger.v3.oas.annotations.Operation;
@ -70,6 +68,68 @@ public class ProjectController {
private SubUserProjectCommissionService subUserProjectCommissionService;
/**
* 小程序用户查看项目列表
* @return 项目列表
*/
@PostMapping("query/card")
@Operation(summary = "小程序用户查看项目列表", description = "参数权限管理员方法名queryProjectCardList")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "项目管理", content = "小程序用户查看项目列表")
public BaseResponse<List<ProjectCardVO>> queryProjectCardList() {
List<Project> projectList = projectService.list();
List<ProjectCardVO> projectCardVOS = commonService.convertList(projectList, ProjectCardVO.class);
return ResultUtils.success(projectCardVOS);
}
/**
* 小程序用户根据id查询项目详情
* @param commonRequest 项目id
* @return 项目详情
*/
@PostMapping("query/id")
@Operation(summary = "小程序用户根据id查询项目详情", description = "参数权限管理员方法名queryProjectDetailById")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "项目管理", content = "小程序用户根据id查询项目详情")
public BaseResponse<ProjectDetailVO> queryProjectDetailById(@Valid @RequestBody CommonRequest commonRequest) {
Long id = commonRequest.getId();
Project project = projectService.getById(id);
ProjectDetailVO projectDetailVO = commonService.copyProperties(project, ProjectDetailVO.class);
// 获取项目通知列表
LambdaQueryWrapper<ProjectNotification> notificationLambdaQueryWrapper = new LambdaQueryWrapper<>();
notificationLambdaQueryWrapper.eq(ProjectNotification::getProjectId, id);
List<ProjectNotification> projectNotificationList = projectNotificationService.list(notificationLambdaQueryWrapper);
List<ProjectNotificationVO> projectNotificationVOS = commonService.convertList(projectNotificationList, ProjectNotificationVO.class);
// 获取项目明细列表
LambdaQueryWrapper<ProjectDetail> projectDetailLambdaQueryWrapper = new LambdaQueryWrapper<>();
projectDetailLambdaQueryWrapper.eq(ProjectDetail::getProjectId, id);
List<ProjectDetail> projectDetailList = projectDetailService.list(projectDetailLambdaQueryWrapper);
List<ProjectDetailVO> projectDetailVOS = commonService.convertList(projectDetailList, ProjectDetailVO.class);
projectDetailVO.setProjectNotificationVOList(projectNotificationVOS);
projectDetailVO.setProjectDetailVOList(projectDetailVOS);
return ResultUtils.success(projectDetailVO);
}
// /**
// * 小程序用户申请推广码
// * @param promoCodeApplyRequest 推广码申请请求体
// * @return 项目详情
// */
// @PostMapping("query/id")
// @Operation(summary = "小程序用户申请推广码", description = "参数权限管理员方法名applyPromoCode")
// @RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
// @SysLog(title = "项目管理", content = "小程序用户申请推广码")
// public BaseResponse<ProjectDetailVO> applyPromoCode(@Valid @RequestBody PromoCodeApplyRequest promoCodeApplyRequest) {
// // 取出当前项目的推广码
// Long projectId = promoCodeApplyRequest.getProjectId();
// LambdaQueryWrapper<PromoCode> promoCodeLambdaQueryWrapper = new LambdaQueryWrapper<>();
// promoCodeLambdaQueryWrapper.eq(PromoCode::getProjectId, projectId);
// List<PromoCode> promoCodeList = promoCodeService.list(promoCodeLambdaQueryWrapper);
// return ResultUtils.success(projectDetailVO);
// }
/**
* web端管理员添加项目
* @param projectAddRequest 项目添加请求体

View File

@ -1,5 +1,6 @@
package com.greenorange.promotion.controller.projectSettlement;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.greenorange.promotion.annotation.RequiresPermission;
import com.greenorange.promotion.annotation.SysLog;
@ -12,13 +13,20 @@ import com.greenorange.promotion.model.dto.CommonBatchRequest;
import com.greenorange.promotion.model.dto.withdrawalApply.WithdrawalApplyAddRequest;
import com.greenorange.promotion.model.dto.withdrawalApply.WithdrawalApplyQueryRequest;
import com.greenorange.promotion.model.dto.withdrawalApply.WithdrawalApplyUpdateRequest;
import com.greenorange.promotion.model.entity.FundsChange;
import com.greenorange.promotion.model.entity.UserInfo;
import com.greenorange.promotion.model.entity.WithdrawalApply;
import com.greenorange.promotion.model.vo.fundsChange.FundsChangeVO;
import com.greenorange.promotion.model.vo.withdrawalApply.WithdrawalApplyVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.settle.FundsChangeService;
import com.greenorange.promotion.service.settle.WithdrawalApplyService;
import com.greenorange.promotion.service.user.UserInfoService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.With;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
@ -28,6 +36,7 @@ import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.math.BigDecimal;
import java.util.List;
@ -43,10 +52,71 @@ public class WithdrawalApplyController {
@Resource
private WithdrawalApplyService withdrawalApplyService;
@Resource
private FundsChangeService fundsChangeService;
@Resource
private CommonService commonService;
/**
* 小程序端用户申请提现
* @param withdrawalApplyAddRequest 提现申请记录查添加请求体
* @return 提现申请记录id
*/
@PostMapping("add")
@Operation(summary = "小程序端用户申请提现", description = "参数提现申请记录查添加请求体权限管理员方法名addWithdrawalApply")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "提现申请记录管理", content = "小程序端用户申请提现")
public BaseResponse<Long> addWithdrawalApply(@Valid @RequestBody WithdrawalApplyAddRequest withdrawalApplyAddRequest, HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
BigDecimal withdrawnAmount = withdrawalApplyAddRequest.getWithdrawnAmount();
WithdrawalApply withdrawalApply = WithdrawalApply.builder()
.withdrawnAmount(withdrawnAmount)
.userId(userId)
.build();
withdrawalApplyService.save(withdrawalApply);
return ResultUtils.success(withdrawalApply.getId());
}
/**
* 小程序端用户查询提现申请记录
* @return 提现申请记录列表
*/
@PostMapping("query")
@Operation(summary = "小程序端用户查询提现申请记录", description = "参数权限管理员方法名queryWithdrawalApplyByUserId")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "提现申请记录管理", content = "小程序端用户查询提现申请记录")
public BaseResponse<List<WithdrawalApplyVO>> queryWithdrawalApplyByUserId(HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
LambdaQueryWrapper<WithdrawalApply> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(WithdrawalApply::getUserId, userId);
List<WithdrawalApply> withdrawalApplyList = withdrawalApplyService.list(lambdaQueryWrapper);
List<WithdrawalApplyVO> withdrawalApplyVOS = commonService.convertList(withdrawalApplyList, WithdrawalApplyVO.class);
return ResultUtils.success(withdrawalApplyVOS);
}
/**
* 小程序端用户查询资金变动记录
* @return 提现申请记录id
*/
@PostMapping("query/change")
@Operation(summary = "小程序端用户查询资金变动记录", description = "参数权限管理员方法名queryFundsChangeByUserId")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "提现申请记录管理", content = "小程序端用户查询资金变动记录")
public BaseResponse<List<FundsChangeVO>> queryFundsChangeByUserId(HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
LambdaQueryWrapper<FundsChange> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(FundsChange::getUserId, userId);
List<FundsChange> fundsChangeList = fundsChangeService.list(lambdaQueryWrapper);
List<FundsChangeVO> fundsChangeVOS = commonService.convertList(fundsChangeList, FundsChangeVO.class);
return ResultUtils.success(fundsChangeVOS);
}
/**
* Web端管理员分页查询提现申请记录
* @param withdrawalApplyQueryRequest 提现申请记录查询请求体

View File

@ -0,0 +1,105 @@
package com.greenorange.promotion.controller.userInfo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.greenorange.promotion.annotation.RequiresPermission;
import com.greenorange.promotion.annotation.SysLog;
import com.greenorange.promotion.common.BaseResponse;
import com.greenorange.promotion.common.ErrorCode;
import com.greenorange.promotion.common.ResultUtils;
import com.greenorange.promotion.constant.UserConstant;
import com.greenorange.promotion.exception.ThrowUtils;
import com.greenorange.promotion.model.dto.CommonBatchRequest;
import com.greenorange.promotion.model.dto.userAccount.UserAccountAddRequest;
import com.greenorange.promotion.model.dto.userAccount.UserAccountQueryRequest;
import com.greenorange.promotion.model.dto.userAccount.UserAccountUpdateRequest;
import com.greenorange.promotion.model.entity.UserAccount;
import com.greenorange.promotion.model.vo.userAccount.UserAccountVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.settle.UserAccountService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.greenorange.promotion.model.dto.CommonRequest;
import jakarta.validation.Valid;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* 用户账户 控制器
*/
@RestController
@RequestMapping("userAccount")
@Slf4j
@Tag(name = "用户账户管理")
public class UserAccountController {
@Resource
private UserAccountService userAccountService;
@Resource
private CommonService commonService;
/**
* 小程序端用户添加用户账户
* @param userAccountAddRequest 用户账户添加请求体
* @return 是否添加成功
*/
@PostMapping("add")
@Operation(summary = "小程序端用户添加用户账户", description = "参数用户账户添加请求体权限管理员方法名addUserAccount")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "用户账户管理", content = "小程序端用户添加用户账户")
public BaseResponse<Boolean> addUserAccount(@Valid @RequestBody UserAccountAddRequest userAccountAddRequest, HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
UserAccount userAccount = commonService.copyProperties(userAccountAddRequest, UserAccount.class);
userAccount.setUserId(userId);
userAccountService.save(userAccount);
return ResultUtils.success(true);
}
/**
* 小程序端用户根据id修改用户账户信息
* @param userAccountUpdateRequest 用户账户更新请求体
* @return 是否更新成功
*/
@PostMapping("update")
@Operation(summary = "小程序端用户根据id修改用户账户信息", description = "参数用户账户更新请求体权限管理员方法名updateUserAccount")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "用户账户管理", content = "小程序端用户根据id修改用户账户信息")
public BaseResponse<Boolean> updateUserAccount(@Valid @RequestBody UserAccountUpdateRequest userAccountUpdateRequest, HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
UserAccount userAccount = commonService.copyProperties(userAccountUpdateRequest, UserAccount.class);
userAccount.setUserId(userId);
userAccountService.updateById(userAccount);
return ResultUtils.success(true);
}
/**
* 小程序端用户根据id查询用户账户
* @return 用户账户信息
*/
@PostMapping("queryById")
@Operation(summary = "web端管理员根据id查询用户账户", description = "参数权限管理员方法名queryUserAccountByUserId")
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
@SysLog(title = "用户账户管理", content = "web端管理员根据id查询用户账户")
public BaseResponse<UserAccountVO> queryUserAccountByUserId(HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
LambdaQueryWrapper<UserAccount> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.eq(UserAccount::getUserId, userId);
UserAccount userAccount = userAccountService.getOne(lambdaQueryWrapper);
UserAccountVO userAccountVO = commonService.copyProperties(userAccount, UserAccountVO.class);
return ResultUtils.success(userAccountVO);
}
}

View File

@ -27,13 +27,13 @@ public class Generator {
// 作者
private static final String AUTHOR = "chenxinzhi";
// 表注释
private static final String TABLE_COMMENT = "提现申请记录";
private static final String TABLE_COMMENT = "用户账户";
// 实体类名
private static final String ENTITY_NAME = "WithdrawalApply";
private static final String ENTITY_NAME = "UserAccount";
// 表名
private static final String TABLE_NAME = "withdrawal_apply";
private static final String TABLE_NAME = "user_account";
// 实体类属性名
private static final String ENTITY_NAME_LOWER = "withdrawalApply";
private static final String ENTITY_NAME_LOWER = "userAccount";
// 父包名
private static final String PARENT_PATH = "com.greenorange.promotion";

View File

@ -0,0 +1,18 @@
package com.greenorange.promotion.mapper;
import com.greenorange.promotion.model.entity.UserAccount;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
* @author 35880
* @description 针对表user_account(用户账户表)的数据库操作Mapper
* @createDate 2025-05-11 01:44:18
* @Entity com.greenorange.promotion.model.entity.UserAccount
*/
public interface UserAccountMapper extends BaseMapper<UserAccount> {
}

View File

@ -0,0 +1,43 @@
package com.greenorange.promotion.model.dto.promoCodeApply;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.Min;
import jakarta.validation.constraints.NotBlank;
import lombok.Data;
import java.io.Serializable;
/**
* 推广码申请请求体
*/
@Data
@Schema(description = "推广码申请记录添加请求体", requiredProperties = {
"salespersonName",
"salespersonPhone",
"projectId",
})
public class PromoCodeApplyRequest implements Serializable {
/**
* 业务员姓名
*/
@NotBlank(message = "业务员姓名不能为空")
@Schema(description = "业务员姓名", example = "chenxinzhi")
private String salespersonName;
/**
* 业务员手机号
*/
@NotBlank(message = "业务员手机号不能为空")
@Schema(description = "业务员手机号", example = "15888610253")
private String salespersonPhone;
/**
* 项目ID
*/
@Min(value = 1L, message = "项目ID ID不能小于1")
@Schema(description = "项目ID", example = "1")
private Long projectId;
}

View File

@ -0,0 +1,57 @@
package com.greenorange.promotion.model.dto.userAccount;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.math.BigDecimal;
import java.io.Serial;
import java.io.Serializable;
/**
* 用户账户添加请求体
*/
@Data
@Schema(description = "用户账户添加请求体", requiredProperties = {
"cardHolder",
"idCardNumber",
"phoneNumber",
"bankCardNumber",
"userId",
})
public class UserAccountAddRequest implements Serializable {
/**
* 持卡人
*/
@NotBlank(message = "持卡人不能为空")
@Schema(description = "持卡人", example = "chenxinzhi")
private String cardHolder;
/**
* 身份证号
*/
@NotBlank(message = "身份证号不能为空")
@Schema(description = "身份证号", example = "110101199001011234")
private String idCardNumber;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
@Schema(description = "手机号", example = "15888610253")
private String phoneNumber;
/**
* 银行卡号
*/
@NotBlank(message = "银行卡号不能为空")
@Schema(description = "银行卡号", example = "5105105105105100")
private String bankCardNumber;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,66 @@
package com.greenorange.promotion.model.dto.userAccount;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.math.BigDecimal;
import java.io.Serial;
import java.io.Serializable;
import com.greenorange.promotion.common.PageRequest;
/**
* 用户账户查询请求体继承自分页请求 PageRequest
*/
@Data
@Schema(description = "用户账户查询请求体", requiredProperties = {"current", "pageSize"})
public class UserAccountQueryRequest extends PageRequest implements Serializable {
/**
* 账户ID
*/
@Min(value = 1L, message = "账户ID ID不能小于1")
@Schema(description = "账户ID", example = "1")
private Long id;
/**
* 持卡人
*/
@NotBlank(message = "持卡人不能为空")
@Schema(description = "持卡人", example = "chenxinzhi")
private String cardHolder;
/**
* 身份证号
*/
@NotBlank(message = "身份证号不能为空")
@Schema(description = "身份证号", example = "110101199001011234")
private String idCardNumber;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
@Schema(description = "手机号", example = "15888610253")
private String phoneNumber;
/**
* 银行卡号
*/
@NotBlank(message = "银行卡号不能为空")
@Schema(description = "银行卡号", example = "5105105105105100")
private String bankCardNumber;
/**
* 用户ID
*/
@Min(value = 1L, message = "用户ID ID不能小于1")
@Schema(description = "用户ID", example = "1")
private Long userId;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,64 @@
package com.greenorange.promotion.model.dto.userAccount;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.Min;
import lombok.Data;
import java.math.BigDecimal;
import java.io.Serial;
import java.io.Serializable;
/**
* 用户账户更新请求体
*/
@Data
@Schema(description = "用户账户更新请求体", requiredProperties = {
"id",
"cardHolder",
"idCardNumber",
"phoneNumber",
"bankCardNumber",
"userId",
})
public class UserAccountUpdateRequest implements Serializable {
/**
* 账户ID
*/
@Min(value = 1L, message = "账户ID ID不能小于1")
@Schema(description = "账户ID", example = "1")
private Long id;
/**
* 持卡人
*/
@NotBlank(message = "持卡人不能为空")
@Schema(description = "持卡人", example = "chenxinzhi")
private String cardHolder;
/**
* 身份证号
*/
@NotBlank(message = "身份证号不能为空")
@Schema(description = "身份证号", example = "110101199001011234")
private String idCardNumber;
/**
* 手机号
*/
@NotBlank(message = "手机号不能为空")
@Schema(description = "手机号", example = "15888610253")
private String phoneNumber;
/**
* 银行卡号
*/
@NotBlank(message = "银行卡号不能为空")
@Schema(description = "银行卡号", example = "5105105105105100")
private String bankCardNumber;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -28,20 +28,6 @@ public class WithdrawalApplyAddRequest implements Serializable {
@Schema(description = "提现金额", example = "1.00")
private BigDecimal withdrawnAmount;
/**
* 提现状态[提现中(processing)|提现成功(success)|提现失败(failed)]
*/
@WithdrawStatusEnumValue(enumClass = WithdrawStatusEnum.class)
@Schema(description = "提现状态[提现中(processing)|提现成功(success)|提现失败(failed)]", example = "processing")
private String withdrawalStatus;
/**
* 用户ID
*/
@Min(value = 1L, message = "用户ID ID不能小于1")
@Schema(description = "用户ID", example = "1")
private Long userId;
@Serial
private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,66 @@
package com.greenorange.promotion.model.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;
/**
* 用户账户表
* @TableName user_account
*/
@TableName(value ="user_account")
@Data
public class UserAccount implements Serializable {
/**
* 账户ID
*/
@TableId(type = IdType.AUTO)
private Long id;
/**
* 持卡人
*/
private String cardHolder;
/**
* 身份证号
*/
private String idCardNumber;
/**
* 手机号
*/
private String phoneNumber;
/**
* 银行卡号
*/
private String bankCardNumber;
/**
* 用户ID
*/
private Long userId;
/**
* 是否删除
*/
private Integer isDelete;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
@TableField(exist = false)
private static final long serialVersionUID = 1L;
}

View File

@ -7,7 +7,11 @@ import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
/**
* 提现申请记录表
@ -15,6 +19,9 @@ import lombok.Data;
*/
@TableName(value ="withdrawal_apply")
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class WithdrawalApply implements Serializable {
/**
* 提现申请ID

View File

@ -38,17 +38,6 @@ public class FundsChangeVO implements Serializable {
@Schema(description = "当前金额(变动后的总金额)", example = "0.34")
private BigDecimal currentAmount;
/**
* 用户ID
*/
@Schema(description = "用户ID", example = "1")
private Long userId;
/**
* 项目结算记录ID
*/
@Schema(description = "项目结算记录ID", example = "1")
private Long projectSettlementId;
@Serial
private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,59 @@
package com.greenorange.promotion.model.vo.project;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
public class ProjectCardVO implements Serializable {
/**
* 项目 ID
*/
@Schema(description = "项目 ID", example = "1")
private Long id;
/**
* 项目名称
*/
@Schema(description = "项目名称", example = "美团省钱包")
private String projectName;
/**
* 项目价格
*/
@Schema(description = "项目价格", example = "6.88")
private BigDecimal projectPrice;
/**
* 当前推广人数
*/
@Schema(description = "当前推广人数", example = "10")
private Integer currentPromotionCount;
/**
* 项目图片URL
*/
@Schema(description = "项目图片URL", example = "http://xxx.png")
private String projectImage;
/**
* 项目结算周期
*/
@Schema(description = "项目结算周期", example = "2")
private Integer projectSettlementCycle;
/**
* 项目状态[项目运行(running)|人数已满(full)|项目暂停(paused)]
*/
@Schema(description = "项目状态[项目运行(running)|人数已满(full)|项目暂停(paused)]", example = "running")
private String projectStatus;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,88 @@
package com.greenorange.promotion.model.vo.project;
import com.greenorange.promotion.model.entity.ProjectNotification;
import com.greenorange.promotion.model.vo.projectNotification.ProjectNotificationVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.List;
@Data
public class ProjectDetailVO implements Serializable {
/**
* 项目 ID
*/
@Schema(description = "项目 ID", example = "1")
private Long id;
/**
* 项目名称
*/
@Schema(description = "项目名称", example = "美团省钱包")
private String projectName;
/**
* 项目图片URL
*/
@Schema(description = "项目图片URL", example = "http://xxx.png")
private String projectImage;
/**
* 项目价格
*/
@Schema(description = "项目价格", example = "6.88")
private BigDecimal projectPrice;
/**
* 项目简介
*/
@Schema(description = "项目简介", example = "不限制推广方式,禁止/恶意/夸大虚假宣传")
private String projectDescription;
/**
* 项目状态[项目运行(running)|人数已满(full)|项目暂停(paused)]
*/
@Schema(description = "项目状态[项目运行(running)|人数已满(full)|项目暂停(paused)]", example = "running")
private String projectStatus;
/**
* 结算说明富文本
*/
@Schema(description = "结算说明(富文本)", example = "富文本")
private String settlementDesc;
/**
* 项目说明富文本
*/
@Schema(description = "项目说明(富文本)", example = "富文本")
private String projectDesc;
/**
* 项目流程富文本
*/
@Schema(description = "项目流程(富文本)", example = "富文本")
private String projectFlow;
/**
* 项目通知列表
*/
@Schema(description = "项目通知列表")
private List<ProjectNotificationVO> projectNotificationVOList;
/**
* 项目明细列表
*/
@Schema(description = "项目明细列表")
private List<ProjectDetailVO> projectDetailVOList;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -0,0 +1,51 @@
package com.greenorange.promotion.model.vo.userAccount;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
/**
* 用户账户 视图对象
*/
@Data
@Schema(description = "用户账户 视图对象")
public class UserAccountVO implements Serializable {
/**
* 用户账户ID
*/
@Schema(description = "用户账户ID", example = "1")
private Long id;
/**
* 持卡人
*/
@Schema(description = "持卡人", example = "chenxinzhi")
private String cardHolder;
/**
* 身份证号
*/
@Schema(description = "身份证号", example = "110101199001011234")
private String idCardNumber;
/**
* 手机号
*/
@Schema(description = "手机号", example = "15888610253")
private String phoneNumber;
/**
* 银行卡号
*/
@Schema(description = "银行卡号", example = "5105105105105100")
private String bankCardNumber;
@Serial
private static final long serialVersionUID = 1L;
}

View File

@ -32,12 +32,6 @@ public class WithdrawalApplyVO implements Serializable {
@Schema(description = "提现状态", example = "processing")
private String withdrawalStatus;
/**
* 用户ID
*/
@Schema(description = "用户ID", example = "1")
private Long userId;
@Serial
private static final long serialVersionUID = 1L;

View File

@ -0,0 +1,13 @@
package com.greenorange.promotion.service.settle;
import com.greenorange.promotion.model.entity.UserAccount;
import com.baomidou.mybatisplus.extension.service.IService;
/**
* @author 35880
* @description 针对表user_account(用户账户表)的数据库操作Service
* @createDate 2025-05-11 01:44:18
*/
public interface UserAccountService extends IService<UserAccount> {
}

View File

@ -0,0 +1,22 @@
package com.greenorange.promotion.service.settle.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.greenorange.promotion.model.entity.UserAccount;
import com.greenorange.promotion.service.settle.UserAccountService;
import com.greenorange.promotion.mapper.UserAccountMapper;
import org.springframework.stereotype.Service;
/**
* @author 35880
* @description 针对表user_account(用户账户表)的数据库操作Service实现
* @createDate 2025-05-11 01:44:18
*/
@Service
public class UserAccountServiceImpl extends ServiceImpl<UserAccountMapper, UserAccount>
implements UserAccountService{
}

View File

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.greenorange.promotion.mapper.UserAccountMapper">
<resultMap id="BaseResultMap" type="com.greenorange.promotion.model.entity.UserAccount">
<id property="id" column="id" jdbcType="BIGINT"/>
<result property="cardHolder" column="cardHolder" jdbcType="VARCHAR"/>
<result property="idCardNumber" column="idCardNumber" jdbcType="VARCHAR"/>
<result property="phoneNumber" column="phoneNumber" jdbcType="VARCHAR"/>
<result property="bankCardNumber" column="bankCardNumber" jdbcType="VARCHAR"/>
<result property="userId" column="userId" jdbcType="BIGINT"/>
<result property="isDelete" column="isDelete" jdbcType="TINYINT"/>
<result property="createTime" column="createTime" jdbcType="TIMESTAMP"/>
<result property="updateTime" column="updateTime" jdbcType="TIMESTAMP"/>
</resultMap>
<sql id="Base_Column_List">
id,cardHolder,idCardNumber,
phoneNumber,bankCardNumber,userId,
isDelete,createTime,updateTime
</sql>
</mapper>