结算记录
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
package com.greenorange.promotion.controller.projectSettlement;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.greenorange.promotion.annotation.RequiresPermission;
|
||||
import com.greenorange.promotion.annotation.SysLog;
|
||||
import com.greenorange.promotion.common.BaseResponse;
|
||||
@ -9,25 +9,28 @@ 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.CommonRequest;
|
||||
import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementAddRequest;
|
||||
import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementQueryRequest;
|
||||
import com.greenorange.promotion.model.dto.projectSettlement.ProjectSettlementUpdateRequest;
|
||||
import com.greenorange.promotion.model.entity.ProjectSettlement;
|
||||
import com.greenorange.promotion.model.entity.*;
|
||||
import com.greenorange.promotion.model.vo.projectSettlement.ProjectSettlementVO;
|
||||
import com.greenorange.promotion.service.common.CommonService;
|
||||
import com.greenorange.promotion.service.project.PromoCodeApplyService;
|
||||
import com.greenorange.promotion.service.settle.FundsChangeService;
|
||||
import com.greenorange.promotion.service.settle.ProjectSettlementService;
|
||||
import com.greenorange.promotion.service.user.UserInfoService;
|
||||
import com.greenorange.promotion.service.user.UserMainInfoService;
|
||||
import io.swagger.v3.oas.annotations.Operation;
|
||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||
import jakarta.annotation.Resource;
|
||||
import jakarta.validation.Valid;
|
||||
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.math.BigDecimal;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@ -43,9 +46,18 @@ public class ProjectSettlementController {
|
||||
@Resource
|
||||
private ProjectSettlementService projectSettlementService;
|
||||
|
||||
@Resource
|
||||
private FundsChangeService fundsChangeService;
|
||||
|
||||
@Resource
|
||||
private CommonService commonService;
|
||||
|
||||
@Resource
|
||||
private PromoCodeApplyService promoCodeApplyService;
|
||||
|
||||
@Resource
|
||||
private UserMainInfoService userMainInfoService;
|
||||
|
||||
/**
|
||||
* web端管理员添加项目结算记录
|
||||
* @param projectSettlementAddRequest 项目结算记录添加请求体
|
||||
@ -58,6 +70,30 @@ public class ProjectSettlementController {
|
||||
public BaseResponse<Boolean> addProjectSettlement(@Valid @RequestBody ProjectSettlementAddRequest projectSettlementAddRequest) {
|
||||
ProjectSettlement projectSettlement = commonService.copyProperties(projectSettlementAddRequest, ProjectSettlement.class);
|
||||
projectSettlementService.save(projectSettlement);
|
||||
|
||||
// 查询对应的推广码申请记录
|
||||
Long pid = projectSettlement.getPromoCodeRequestRecordId();
|
||||
LambdaQueryWrapper<PromoCodeApply> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(PromoCodeApply::getId, pid);
|
||||
PromoCodeApply promoCodeApply = promoCodeApplyService.getOne(lambdaQueryWrapper);
|
||||
// 获取推广码申请记录的参数
|
||||
String projectName = promoCodeApply.getProjectName();
|
||||
Long userId = promoCodeApply.getUserId();
|
||||
UserMainInfo userMainInfo = userMainInfoService.getById(userId);
|
||||
BigDecimal currentBalance = userMainInfo.getCurrentBalance();
|
||||
// 获取项目结算记录的参数
|
||||
BigDecimal settlementRevenue = projectSettlement.getSettlementRevenue();
|
||||
Long projectSettlementId = projectSettlement.getId();
|
||||
// 添加资金变动记录
|
||||
FundsChange fundsChange = FundsChange.builder()
|
||||
.projectName(projectName)
|
||||
.changeAmount(settlementRevenue)
|
||||
.currentAmount(currentBalance.add(settlementRevenue))
|
||||
.userId(userId)
|
||||
.projectSettlementId(projectSettlementId)
|
||||
.build();
|
||||
fundsChangeService.save(fundsChange);
|
||||
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
@ -67,12 +103,23 @@ public class ProjectSettlementController {
|
||||
* @return 是否更新成功
|
||||
*/
|
||||
@PostMapping("update")
|
||||
@Operation(summary = "web端管理员更新项目结算记录", description = "参数:项目结算记录更新请求体,权限:管理员,方法名:updateProjectSettlement")
|
||||
@Operation(summary = "web端管理员根据id修改项目结算记录信息", description = "参数:项目结算记录更新请求体,权限:管理员,方法名:updateProjectSettlement")
|
||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
@SysLog(title = "项目结算记录管理", content = "web端管理员根据id修改项目结算记录信息")
|
||||
public BaseResponse<Boolean> updateProjectSettlement(@Valid @RequestBody ProjectSettlementUpdateRequest projectSettlementUpdateRequest) {
|
||||
ProjectSettlement projectSettlement = commonService.copyProperties(projectSettlementUpdateRequest, ProjectSettlement.class);
|
||||
projectSettlementService.updateById(projectSettlement);
|
||||
// 修改资金变动记录
|
||||
Long id = projectSettlement.getId();
|
||||
LambdaQueryWrapper<FundsChange> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(FundsChange::getProjectSettlementId, id);
|
||||
FundsChange fundsChange = fundsChangeService.getOne(lambdaQueryWrapper);
|
||||
BigDecimal changeAmount = fundsChange.getChangeAmount();
|
||||
BigDecimal currentAmount = fundsChange.getCurrentAmount();
|
||||
BigDecimal originAmount = currentAmount.subtract(changeAmount);
|
||||
fundsChange.setChangeAmount(projectSettlement.getSettlementRevenue());
|
||||
fundsChange.setCurrentAmount(originAmount.add(projectSettlement.getSettlementRevenue()));
|
||||
fundsChangeService.updateById(fundsChange);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
@ -88,23 +135,27 @@ public class ProjectSettlementController {
|
||||
public BaseResponse<Boolean> delProjectSettlement(@Valid @RequestBody CommonRequest commonRequest) {
|
||||
Long id = commonRequest.getId();
|
||||
projectSettlementService.removeById(id);
|
||||
// 删除资金变动记录
|
||||
LambdaQueryWrapper<FundsChange> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(FundsChange::getProjectSettlementId, id);
|
||||
fundsChangeService.remove(lambdaQueryWrapper);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
|
||||
/**
|
||||
* web端管理员批量删除项目结算记录
|
||||
* @param commonBatchRequest 项目结算记录批量删除请求体
|
||||
* @return 是否删除成功
|
||||
*/
|
||||
@PostMapping("delBatch")
|
||||
@Operation(summary = "web端管理员批量删除项目结算记录", description = "参数:项目结算记录批量删除请求体,权限:管理员,方法名:delBatchProjectSettlement")
|
||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
@SysLog(title = "项目结算记录管理", content = "web端管理员批量删除项目结算记录")
|
||||
public BaseResponse<Boolean> delBatchProjectSettlement(@Valid @RequestBody CommonBatchRequest commonBatchRequest) {
|
||||
List<Long> ids = commonBatchRequest.getIds();
|
||||
projectSettlementService.removeByIds(ids);
|
||||
return ResultUtils.success(true);
|
||||
}
|
||||
// /**
|
||||
// * web端管理员批量删除项目结算记录
|
||||
// * @param commonBatchRequest 项目结算记录批量删除请求体
|
||||
// * @return 是否删除成功
|
||||
// */
|
||||
// @PostMapping("delBatch")
|
||||
// @Operation(summary = "web端管理员批量删除项目结算记录", description = "参数:项目结算记录批量删除请求体,权限:管理员,方法名:delBatchProjectSettlement")
|
||||
// @RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
// @SysLog(title = "项目结算记录管理", content = "web端管理员批量删除项目结算记录")
|
||||
// public BaseResponse<Boolean> delBatchProjectSettlement(@Valid @RequestBody CommonBatchRequest commonBatchRequest) {
|
||||
// List<Long> ids = commonBatchRequest.getIds();
|
||||
// projectSettlementService.removeByIds(ids);
|
||||
// return ResultUtils.success(true);
|
||||
// }
|
||||
|
||||
/**
|
||||
* web端管理员根据id查询项目结算记录
|
||||
@ -123,6 +174,27 @@ public class ProjectSettlementController {
|
||||
return ResultUtils.success(projectSettlementVO);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Web端管理员根据推广码申请记录id查询项目结算记录列表
|
||||
* @param commonRequest 推广码申请记录id
|
||||
* @return 项目结算记录列表
|
||||
*/
|
||||
@PostMapping("queryByPId")
|
||||
@Operation(summary = "Web端管理员根据推广码申请记录id查询项目结算记录列表", description = "参数:推广码申请记录id,权限:管理员,方法名:queryProjectSettlementByPid")
|
||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
@SysLog(title = "项目结算记录管理", content = "Web端管理员根据推广码申请记录id查询项目结算记录列表")
|
||||
public BaseResponse<List<ProjectSettlementVO>> queryProjectSettlementByPid(@Valid @RequestBody CommonRequest commonRequest) {
|
||||
Long id = commonRequest.getId();
|
||||
LambdaQueryWrapper<ProjectSettlement> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(ProjectSettlement::getPromoCodeRequestRecordId, id);
|
||||
List<ProjectSettlement> projectSettlementList = projectSettlementService.list(lambdaQueryWrapper);
|
||||
List<ProjectSettlementVO> projectSettlementVOS = commonService.convertList(projectSettlementList, ProjectSettlementVO.class);
|
||||
return ResultUtils.success(projectSettlementVOS);
|
||||
}
|
||||
|
||||
|
||||
|
||||
// /**
|
||||
// * Web端管理员分页查询项目结算记录
|
||||
// * @param projectSettlementQueryRequest 项目结算记录查询请求体
|
||||
|
@ -178,10 +178,8 @@ public class UserInfoController {
|
||||
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
|
||||
@SysLog(title = "用户管理", content = "web端用户根据jwt获取用户信息")
|
||||
public BaseResponse<UserInfoVO> getWebUserInfoByJWT(HttpServletRequest request) {
|
||||
String userAccount = (String) request.getAttribute("userAccount");
|
||||
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount);
|
||||
UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper);
|
||||
Long userId = (Long) request.getAttribute("userId");
|
||||
UserInfo userInfo = userInfoService.getById(userId);
|
||||
UserInfoVO userInfoVO = commonService.copyProperties(userInfo, UserInfoVO.class);
|
||||
return ResultUtils.success(userInfoVO);
|
||||
}
|
||||
@ -197,10 +195,8 @@ public class UserInfoController {
|
||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||
@SysLog(title = "用户管理", content = "小程序端用户根据jwt获取用户信息")
|
||||
public BaseResponse<UserInfoVO> getMiniUserInfoByJWT(HttpServletRequest request) {
|
||||
String userAccount = (String) request.getAttribute("userAccount");
|
||||
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount);
|
||||
UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper);
|
||||
Long userId = (Long) request.getAttribute("userId");
|
||||
UserInfo userInfo = userInfoService.getById(userId);
|
||||
UserInfoVO userInfoVO = commonService.copyProperties(userInfo, UserInfoVO.class);
|
||||
return ResultUtils.success(userInfoVO);
|
||||
}
|
||||
@ -215,14 +211,9 @@ public class UserInfoController {
|
||||
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
|
||||
@SysLog(title = "用户管理", content = "小程序端用户根据jwt获取用户主要信息")
|
||||
public BaseResponse<UserMainInfoVO> getMiniUserMainInfoByJWT(HttpServletRequest request) {
|
||||
String userAccount = (String) request.getAttribute("userAccount");
|
||||
LambdaQueryWrapper<UserInfo> lambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
lambdaQueryWrapper.eq(UserInfo::getUserAccount, userAccount);
|
||||
UserInfo userInfo = userInfoService.getOne(lambdaQueryWrapper);
|
||||
|
||||
Long id = userInfo.getId();
|
||||
Long userId = (Long) request.getAttribute("userId");
|
||||
LambdaQueryWrapper<UserMainInfo> userMainInfoLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
||||
userMainInfoLambdaQueryWrapper.eq(UserMainInfo::getUserId, id);
|
||||
userMainInfoLambdaQueryWrapper.eq(UserMainInfo::getUserId, userId);
|
||||
UserMainInfo userMainInfo = userMainInfoService.getOne(userMainInfoLambdaQueryWrapper);
|
||||
UserMainInfoVO userMainInfoVO = commonService.copyProperties(userMainInfo, UserMainInfoVO.class);
|
||||
return ResultUtils.success(userMainInfoVO);
|
||||
|
Reference in New Issue
Block a user