修改了代码结构

This commit is contained in:
2025-06-23 16:30:46 +08:00
parent 2c25017f0a
commit 5ec4c4ff42
15 changed files with 546 additions and 39 deletions

View File

@ -91,27 +91,7 @@ public class ProjectController {
@RequiresPermission(mustRole = UserConstant.DEFAULT_ROLE)
// @SysLog(title = "项目管理", content = "小程序用户查看项目列表")
public BaseResponse<List<ProjectCardVO>> queryProjectCardList(HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
// 获取项目明细抽佣列表
List<ProjectCommission> projectCommissionList = commonService.findByFieldEqTargetField(ProjectCommission::getUserId, userId, projectCommissionService);
// 封装Map集合项目id, 值:项目总价)
Map<Long, BigDecimal> projectPriceMap = new HashMap<>();
for (ProjectCommission projectCommission : projectCommissionList) {
Long projectId = projectCommission.getProjectId();
BigDecimal projectPrice = projectPriceMap.get(projectId);
if (projectPrice == null) {
projectPrice = projectCommission.getMyUnitPrice();
} else {
projectPrice = projectPrice.add(projectCommission.getMyUnitPrice());
}
projectPriceMap.put(projectId, projectPrice);
}
List<Project> projectList = commonService.findByFieldEqTargetField(Project::getIsShelves, 1, projectService);
for (Project project : projectList) {
BigDecimal projectPrice = projectPriceMap.get(project.getId());
project.setProjectPrice(projectPrice == null ? BigDecimal.ZERO : projectPrice);
}
List<ProjectCardVO> projectCardVOS = commonService.convertList(projectList, ProjectCardVO.class);
List<ProjectCardVO> projectCardVOS = projectService.queryProjectCardList(request);
return ResultUtils.success(projectCardVOS);
}
@ -281,10 +261,7 @@ public class ProjectController {
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "项目管理", content = "web端管理员根据id查询项目")
public BaseResponse<ProjectVO> queryProjectById(@Valid @RequestBody CommonRequest commonRequest) {
Long id = commonRequest.getId();
Project project = projectService.getById(id);
ThrowUtils.throwIf(project == null, ErrorCode.OPERATION_ERROR, "当前项目不存在");
ProjectVO projectVO = commonService.copyProperties(project, ProjectVO.class);
ProjectVO projectVO = projectService.queryProjectById(commonRequest);
return ResultUtils.success(projectVO);
}

View File

@ -114,12 +114,7 @@ public class PromoCodeController {
@RequiresPermission(mustRole = UserConstant.ADMIN_ROLE)
@SysLog(title = "推广码管理", content = "web端管理员批量删除推广码")
public BaseResponse<Boolean> delBatchPromoCode(@Valid @RequestBody CommonBatchRequest commonBatchRequest) {
List<Long> ids = commonBatchRequest.getIds();
LambdaQueryWrapper<PromoCode> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PromoCode::getId, ids).eq(PromoCode::getPromoCodeStatus, true);
List<PromoCode> promoCodeList = promoCodeService.list(lambdaQueryWrapper);
ThrowUtils.throwIf(promoCodeList.size() > 0, ErrorCode.OPERATION_ERROR, "当前推广码正在使用中,无法删除");
promoCodeService.removeByIds(ids);
promoCodeService.delBatchPromoCode(commonBatchRequest);
return ResultUtils.success(true);
}

View File

@ -58,10 +58,7 @@ public class UserAccountController {
@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);
userAccountService.addUserAccount(userAccountAddRequest, request);
return ResultUtils.success(true);
}
@ -75,10 +72,7 @@ public class UserAccountController {
@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);
userAccountService.updateUserAccount(userAccountUpdateRequest, request);
return ResultUtils.success(true);
}

View File

@ -1,13 +1,17 @@
package com.greenorange.promotion.model.vo.project;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
@Data
@NoArgsConstructor
@AllArgsConstructor
public class ProjectCardVO implements Serializable {
/**

View File

@ -1,9 +1,15 @@
package com.greenorange.promotion.service.project;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.greenorange.promotion.model.dto.CommonRequest;
import com.greenorange.promotion.model.dto.project.ProjectQueryRequest;
import com.greenorange.promotion.model.entity.Project;
import com.baomidou.mybatisplus.extension.service.IService;
import com.greenorange.promotion.model.vo.project.ProjectCardVO;
import com.greenorange.promotion.model.vo.project.ProjectVO;
import jakarta.servlet.http.HttpServletRequest;
import java.util.List;
/**
* @author 35880
@ -17,4 +23,17 @@ public interface ProjectService extends IService<Project> {
* 获取查询条件
*/
QueryWrapper<Project> getQueryWrapper(ProjectQueryRequest projectQueryRequest);
/**
* 小程序用户查看项目列表
* @return 项目列表
*/
List<ProjectCardVO> queryProjectCardList(HttpServletRequest request);
/**
* web端管理员根据id查询项目
*/
ProjectVO queryProjectById(CommonRequest commonRequest);
}

View File

@ -1,5 +1,6 @@
package com.greenorange.promotion.service.project;
import com.greenorange.promotion.model.dto.CommonBatchRequest;
import com.greenorange.promotion.model.entity.PromoCode;
import com.baomidou.mybatisplus.extension.service.IService;
@ -10,4 +11,9 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface PromoCodeService extends IService<PromoCode> {
/**
* web端管理员批量删除推广码
*/
void delBatchPromoCode(CommonBatchRequest commonBatchRequest);
}

View File

@ -2,16 +2,32 @@ package com.greenorange.promotion.service.project.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.greenorange.promotion.common.ErrorCode;
import com.greenorange.promotion.common.ResultUtils;
import com.greenorange.promotion.constant.CommonConstant;
import com.greenorange.promotion.exception.ThrowUtils;
import com.greenorange.promotion.model.dto.CommonRequest;
import com.greenorange.promotion.model.dto.project.ProjectQueryRequest;
import com.greenorange.promotion.model.entity.Project;
import com.greenorange.promotion.model.entity.ProjectCommission;
import com.greenorange.promotion.model.entity.UserInfo;
import com.greenorange.promotion.model.vo.project.ProjectCardVO;
import com.greenorange.promotion.model.vo.project.ProjectVO;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.project.ProjectCommissionService;
import com.greenorange.promotion.service.project.ProjectService;
import com.greenorange.promotion.mapper.ProjectMapper;
import com.greenorange.promotion.utils.SqlUtils;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author 35880
* @description 针对表【project(项目表)】的数据库操作Service实现
@ -21,6 +37,19 @@ import org.springframework.stereotype.Service;
public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
implements ProjectService{
@Resource
private CommonService commonService;
@Resource
private ProjectService projectService;
@Resource
private ProjectCommissionService projectCommissionService;
/**
* 获取查询条件
*/
@ -36,6 +65,49 @@ public class ProjectServiceImpl extends ServiceImpl<ProjectMapper, Project>
queryWrapper.orderBy(SqlUtils.validSortField(sortField), sortOrder.equals(CommonConstant.SORT_ORDER_ASC), sortField);
return queryWrapper;
}
/**
* 小程序用户查看项目列表
* @return 项目列表
*/
@Override
public List<ProjectCardVO> queryProjectCardList(HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
// 获取项目明细抽佣列表
List<ProjectCommission> projectCommissionList = commonService.findByFieldEqTargetField(ProjectCommission::getUserId, userId, projectCommissionService);
// 封装Map集合项目id, 值:项目总价)
Map<Long, BigDecimal> projectPriceMap = new HashMap<>();
for (ProjectCommission projectCommission : projectCommissionList) {
Long projectId = projectCommission.getProjectId();
BigDecimal projectPrice = projectPriceMap.get(projectId);
if (projectPrice == null) {
projectPrice = projectCommission.getMyUnitPrice();
} else {
projectPrice = projectPrice.add(projectCommission.getMyUnitPrice());
}
projectPriceMap.put(projectId, projectPrice);
}
List<Project> projectList = commonService.findByFieldEqTargetField(Project::getIsShelves, 1, projectService);
for (Project project : projectList) {
BigDecimal projectPrice = projectPriceMap.get(project.getId());
project.setProjectPrice(projectPrice == null ? BigDecimal.ZERO : projectPrice);
}
return commonService.convertList(projectList, ProjectCardVO.class);
}
/**
* web端管理员根据id查询项目
*/
@Override
public ProjectVO queryProjectById(CommonRequest commonRequest) {
Long id = commonRequest.getId();
Project project = projectService.getById(id);
ThrowUtils.throwIf(project == null, ErrorCode.OPERATION_ERROR, "当前项目不存在");
return commonService.copyProperties(project, ProjectVO.class);
}
}

View File

@ -1,11 +1,17 @@
package com.greenorange.promotion.service.project.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.greenorange.promotion.common.ErrorCode;
import com.greenorange.promotion.exception.ThrowUtils;
import com.greenorange.promotion.model.dto.CommonBatchRequest;
import com.greenorange.promotion.model.entity.PromoCode;
import com.greenorange.promotion.service.project.PromoCodeService;
import com.greenorange.promotion.mapper.PromoCodeMapper;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author 35880
* @description 针对表【promo_code(推广码信息表)】的数据库操作Service实现
@ -15,6 +21,19 @@ import org.springframework.stereotype.Service;
public class PromoCodeServiceImpl extends ServiceImpl<PromoCodeMapper, PromoCode>
implements PromoCodeService{
/**
* web端管理员批量删除推广码
*/
@Override
public void delBatchPromoCode(CommonBatchRequest commonBatchRequest) {
List<Long> ids = commonBatchRequest.getIds();
LambdaQueryWrapper<PromoCode> lambdaQueryWrapper = new LambdaQueryWrapper<>();
lambdaQueryWrapper.in(PromoCode::getId, ids).eq(PromoCode::getPromoCodeStatus, true);
List<PromoCode> promoCodeList = this.list(lambdaQueryWrapper);
ThrowUtils.throwIf(promoCodeList.size() > 0, ErrorCode.OPERATION_ERROR, "当前推广码正在使用中,无法删除");
this.removeByIds(ids);
}
}

View File

@ -1,7 +1,10 @@
package com.greenorange.promotion.service.settle;
import com.greenorange.promotion.model.dto.userAccount.UserAccountAddRequest;
import com.greenorange.promotion.model.dto.userAccount.UserAccountUpdateRequest;
import com.greenorange.promotion.model.entity.UserAccount;
import com.baomidou.mybatisplus.extension.service.IService;
import jakarta.servlet.http.HttpServletRequest;
/**
* @author 35880
@ -10,4 +13,14 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface UserAccountService extends IService<UserAccount> {
/**
* 小程序端用户添加用户账户
*/
void addUserAccount(UserAccountAddRequest userAccountAddRequest, HttpServletRequest request);
/**
* 小程序端用户根据id修改用户账户信息
*/
void updateUserAccount(UserAccountUpdateRequest userAccountUpdateRequest, HttpServletRequest request);
}

View File

@ -1,9 +1,14 @@
package com.greenorange.promotion.service.settle.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.greenorange.promotion.model.dto.userAccount.UserAccountAddRequest;
import com.greenorange.promotion.model.dto.userAccount.UserAccountUpdateRequest;
import com.greenorange.promotion.model.entity.UserAccount;
import com.greenorange.promotion.service.common.CommonService;
import com.greenorange.promotion.service.settle.UserAccountService;
import com.greenorange.promotion.mapper.UserAccountMapper;
import jakarta.annotation.Resource;
import jakarta.servlet.http.HttpServletRequest;
import org.springframework.stereotype.Service;
/**
@ -15,6 +20,33 @@ import org.springframework.stereotype.Service;
public class UserAccountServiceImpl extends ServiceImpl<UserAccountMapper, UserAccount>
implements UserAccountService{
@Resource
private CommonService commonService;
/**
* 小程序端用户添加用户账户
*/
@Override
public void addUserAccount(UserAccountAddRequest userAccountAddRequest, HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
UserAccount userAccount = commonService.copyProperties(userAccountAddRequest, UserAccount.class);
userAccount.setUserId(userId);
this.save(userAccount);
}
/**
* 小程序端用户根据id修改用户账户信息
*/
@Override
public void updateUserAccount(UserAccountUpdateRequest userAccountUpdateRequest, HttpServletRequest request) {
Long userId = (Long) request.getAttribute("userId");
UserAccount userAccount = commonService.copyProperties(userAccountUpdateRequest, UserAccount.class);
userAccount.setUserId(userId);
this.updateById(userAccount);
}
}