个人网厅——销户

目录

需求文档

公积金销户类

controller层

service层

service层实现类

[1.验证 (个人账户)](#1.验证 (个人账户))

2.提交(添加)

controller层

service层

service层实现类

3.分页查询

controller层

service层

service层实现类

[4. 详情查询](#4. 详情查询)

controller层

service层

service层实现类


需求文档

公积金销户流水表提交(添加)、分页、查看(详情查询)、验证(个人账户)

在离职、退休、提前退休的情况下,会将公积金账户注销并取出里面资金

公积金销户类

controller层
java 复制代码
@Tag(name = "管理后台-销户-公积金销户")
@RestController
@RequestMapping("/business/tq-gjjxh")
@Validated
public class TqGjjxhlsbController {

    @Resource
    private TqGjjxhlsbService tqGjjxhlsbService;
    
    ...(类中功能方法)

}
service层
java 复制代码
/**
 * 个人网上营业厅-公积金销户流水 Service 接口
 *
 * @author 芋道源码
 */
public interface TqGjjxhlsbService {

    ...
}
service层实现类
java 复制代码
/**
 * 个人网上营业厅-公积金销户流水 Service 实现类
 *
 * @author 芋道源码
 */
@Service
@Validated
public class TqGjjxhlsbServiceImpl implements TqGjjxhlsbService {

    @Resource
    private TqGjjxhlsbMapper tqGjjxhlsbMapper;

    ...
}

1.验证 (个人账户)

java 复制代码
    /**
     * 根据vo中的定义验证参数合法后,验证请求数据合法性
     * @param createReqVO (暂存、直接保存)请求参数
     * @return SaveGeneralReturn
     */
    private CommonResult<SaveGeneralReturn> validateData(TqGjjxhlsbCreateReqVO createReqVO){
        SaveGeneralReturn saveGeneralReturn=new SaveGeneralReturn();
        List<ErrorCode> errorCodeList=new ArrayList<>();
        //传入参数不合法

        /*******判断网厅是否存在未审批记录*************/
        LambdaQueryWrapper<TqGjjxhlsbDO> queryWrapper = new LambdaQueryWrapper();
        queryWrapper.eq(TqGjjxhlsbDO::getGrzh,createReqVO.getGrzh());
        queryWrapper.ne(TqGjjxhlsbDO::getYwzt,"100");
        List<TqGjjxhlsbDO> tqGjjxhlsbDOList = tqGjjxhlsbService.getSelectList(queryWrapper);
        if (tqGjjxhlsbDOList != null && tqGjjxhlsbDOList.size() > 0) {
            errorCodeList.add(GJJXHLSB_WSP);
        }


        saveGeneralReturn.setValidate(errorCodeList.size() == 0);
        saveGeneralReturn.setErrorCount(errorCodeList.size());
        saveGeneralReturn.setErrorCodes(errorCodeList);
        //特殊判断
        return success(saveGeneralReturn);
    }

通过查询数据库表TqGjjxhlsbDO来判断,具体查询条件是根据createReqVO中的"grzh"属性等于表中的"grzh"并且"ywzt"属性不等于"100"。如果查询结果不为空且数量大于0,将给予错误码GJJXHLSB_WSP(公积金提取流水表未审批)提示。个人账户具有唯一性,相同的个人账户,不予添加。

2.提交(添加)

controller层
java 复制代码
    /**
     *提交 保存数据 注意业务状态
     * */
    @PostMapping("/create")
    @Operation(summary = "公积金销户_保存")
    public CommonResult<SaveGeneralReturn> createTqGjjxhlsb(@Valid @RequestBody TqGjjxhlsbCreateReqVO createReqVO){
        CommonResult<SaveGeneralReturn> validatedReturn=validateData(createReqVO);
        SaveGeneralReturn validated=validatedReturn.getData();

        if(validated.getValidate()){
            createReqVO.setYwzt("0");
            BigDecimal id = tqGjjxhlsbService.createTqGjjxhlsb(createReqVO);
            validated.setId(id);
            validated.setSuccessMsg("暂存成功");
            return success(validated);
        }
        return error(validatedReturn);
    }

通过判断validated对象的validate属性是否为true来确定是否通过了数据验证。如果通过验证,即为库中不存在相同账户的额数据,将createReqVOywzt属性设置为"0",

调用tqGjjxhlsbService.createTqGjjxhlsb(createReqVO)方法保存数据,并将返回的id赋值给validated对象的id属性。随后,设置validated对象的successMsg属性为"暂存成功",并返回success(validated)

service层
java 复制代码
    /**
     * 创建个人网上营业厅-公积金销户流水
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    BigDecimal createTqGjjxhlsb(@Valid TqGjjxhlsbCreateReqVO createReqVO);
service层实现类
java 复制代码
    @Override
    public BigDecimal createTqGjjxhlsb(TqGjjxhlsbCreateReqVO createReqVO) {
        // 插入
        TqGjjxhlsbDO tqGjjxhlsb = TqGjjxhlsbConvert.INSTANCE.convert(createReqVO);
        tqGjjxhlsbMapper.insert(tqGjjxhlsb);
        // 返回
        return tqGjjxhlsb.getId();
    }

3.分页查询

controller层
java 复制代码
    /**
     * @param pageVO 请求参数(包括分页参数)
     * @return PageResult<TqGjjxhlsbRespVO>
     */
    @GetMapping("/page")
    @Operation(summary = "公积金销户_分页查询")
    public CommonResult<PageResult<TqGjjxhlsbRespVO>> getTqGjjxhlsbPage(@Valid TqGjjxhlsbPageReqVO pageVO){
        PageResult<TqGjjxhlsbDO> pageResult = tqGjjxhlsbService.getTqGjjxhlsbPage(pageVO);
        return success(TqGjjxhlsbConvert.INSTANCE.convertPage(pageResult));
    }
service层
java 复制代码
    /**
     * 获得个人网上营业厅-公积金销户流水分页
     *
     * @param pageReqVO 分页查询
     * @return 个人网上营业厅-公积金销户流水分页
     */
    PageResult<TqGjjxhlsbDO> getTqGjjxhlsbPage(TqGjjxhlsbPageReqVO pageReqVO);
service层实现类
java 复制代码
    @Override
    public PageResult<TqGjjxhlsbDO> getTqGjjxhlsbPage(TqGjjxhlsbPageReqVO pageReqVO) {
        return tqGjjxhlsbMapper.selectPage(pageReqVO);
    }

4. 详情查询

controller层
java 复制代码
    /**
     * 详情
     * @param id 查询参数
     * @result TqGjjxhlsbRespVO
     */
    @GetMapping("/get")
    @Operation(summary = "公积金销户_查看详情")
    @Parameter(name = "id", description = "编号", required = true, example = "1024")
    public  CommonResult<TqGjjxhlsbRespVO> getTqGjjxhlsb(@RequestParam("id") BigDecimal id){
        TqGjjxhlsbDO tqGjjxhlsb = tqGjjxhlsbService.getTqGjjxhlsb(id);
        return success(TqGjjxhlsbConvert.INSTANCE.convert(tqGjjxhlsb));
    }
service层
java 复制代码
    /**
     * 获得个人网上营业厅-公积金销户流水
     *
     * @param id 编号
     * @return 个人网上营业厅-公积金销户流水
     */
    TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id);
service层实现类
java 复制代码
    @Override
    public TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id) {
        return tqGjjxhlsbMapper.selectById(id);
    }
相关推荐
知识分享小能手9 分钟前
Vue3 学习教程,从入门到精通,Axios 在 Vue 3 中的使用指南(37)
前端·javascript·vue.js·学习·typescript·vue·vue3
轻抚酸~1 小时前
小迪23年-32~40——java简单回顾
java·web安全
程序员码歌3 小时前
【零代码AI编程实战】AI灯塔导航-总结篇
android·前端·后端
Sirius Wu3 小时前
Maven环境如何正确配置
java·maven
七七&5563 小时前
2024年08月13日 Go生态洞察:Go 1.23 发布与全面深度解读
开发语言·网络·golang
java坤坤3 小时前
GoLand 项目从 0 到 1:第八天 ——GORM 命名策略陷阱与 Go 项目启动慢问题攻坚
开发语言·后端·golang
元清加油3 小时前
【Golang】:函数和包
服务器·开发语言·网络·后端·网络协议·golang
用户21411832636023 小时前
免费玩转 AI 编程!Claude Code Router + Qwen3-Code 实战教程
前端
健康平安的活着4 小时前
java之 junit4单元测试Mockito的使用
java·开发语言·单元测试
Java小白程序员4 小时前
Spring Framework :IoC 容器的原理与实践
java·后端·spring