个人网厅——销户

目录

需求文档

公积金销户类

controller层

 service层

service层实现类

1.验证 (个人账户)

2.提交(添加) 

controller层

service层

service层实现类

3.分页查询

controller层

service层

service层实现类

4. 详情查询

controller层

service层

service层实现类


需求文档

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

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

公积金销户类

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

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

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

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

    @Resource
    private TqGjjxhlsbMapper tqGjjxhlsbMapper;

    ...
}

1.验证 (个人账户)

    /**
     * 根据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层
    /**
     *提交 保存数据 注意业务状态
     * */
    @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层
    /**
     * 创建个人网上营业厅-公积金销户流水
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    BigDecimal createTqGjjxhlsb(@Valid TqGjjxhlsbCreateReqVO createReqVO);
service层实现类
    @Override
    public BigDecimal createTqGjjxhlsb(TqGjjxhlsbCreateReqVO createReqVO) {
        // 插入
        TqGjjxhlsbDO tqGjjxhlsb = TqGjjxhlsbConvert.INSTANCE.convert(createReqVO);
        tqGjjxhlsbMapper.insert(tqGjjxhlsb);
        // 返回
        return tqGjjxhlsb.getId();
    }

3.分页查询

controller层
    /**
     * @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层
    /**
     * 获得个人网上营业厅-公积金销户流水分页
     *
     * @param pageReqVO 分页查询
     * @return 个人网上营业厅-公积金销户流水分页
     */
    PageResult<TqGjjxhlsbDO> getTqGjjxhlsbPage(TqGjjxhlsbPageReqVO pageReqVO);
service层实现类
    @Override
    public PageResult<TqGjjxhlsbDO> getTqGjjxhlsbPage(TqGjjxhlsbPageReqVO pageReqVO) {
        return tqGjjxhlsbMapper.selectPage(pageReqVO);
    }

4. 详情查询

controller层
    /**
     * 详情
     * @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层
    /**
     * 获得个人网上营业厅-公积金销户流水
     *
     * @param id 编号
     * @return 个人网上营业厅-公积金销户流水
     */
    TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id);
service层实现类
    @Override
    public TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id) {
        return tqGjjxhlsbMapper.selectById(id);
    }

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/126699.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2.【自动驾驶与机器人中的SLAM技术】左乘模型推导ESKF

目录 1. 证明题 证明&#xff1a;若某个高斯随机变量为零均值&#xff0c;协方差为对角线矩阵且大小相同&#xff08;各向同性&#xff09;&#xff0c;那么在乘任意旋转矩阵以后&#xff0c;其均值仍为零&#xff0c;且协方差不变&#xff1b; 2. 代码实现运动方程将F矩阵…

layui table合并相同的列

table.render({elem: #samples,url: /index/Develorderss/samplelists?od_idod_id //数据接口,page: { //支持传入 laypage 组件的所有参数&#xff08;某些参数除外&#xff0c;如&#xff1a;jump/elem&#xff09; - 详见文档layout: [prev, page, next, count,skip,limit]…

链表OJ题(1)

今天讲解两道链表OJ题目。 1.链表的中间节点 给你单链表的头结点 head &#xff0c;请你找出并返回链表的中间结点。 如果有两个中间结点&#xff0c;则返回第二个中间结点。 示例 输入&#xff1a;head [1,2,3,4,5] 输出&#xff1a;[3,4,5] 解释&#xff1a;链表只有一个…

mac 安装使用svn教程

mac 安装使用svn教程 一、安装Homebrew 要在Mac OS上安装SVN&#xff0c;首先需要安装Homebrew。Homebrew是一个流行的包管理器&#xff0c;因此我们将使用它来安装SVN。 /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"…

区块链多链数字钱包开发

随着区块链技术的不断发展&#xff0c;多链数字钱包的开发逐渐成为热门领域。多链数字钱包是一种可以支持多种区块链网络的数字钱包&#xff0c;用户可以使用它来存储、管理和转移不同的数字资产。本文将探讨多链数字钱包的开发背景、市场需求、技术实现和未来趋势等方面。 一、…

redisson中的分布式锁二

公平锁&#xff08;Fair Lock&#xff09; 基于Redis的Redisson分布式可重入公平锁也是实现了java.util.concurrent.locks.Lock接口的一种RLock对象。同时还提供了异步&#xff08;Async&#xff09;、反射式&#xff08;Reactive&#xff09;和RxJava2标准的接口。它保证了当…

YB1205B S0T23开关式异步升压具恒压恒流LED驱动器

YB1205B S0T23开关式异步升压具恒压恒流LED驱动器 产品简介&#xff1a; YB1205B是一种输入电压范围宽(0.85.5V),可调恒定电流和限定电流两种模式来驱动白光LED而设计的升压型DCDC变换器。采用变频模式&#xff0c;逐周期限流&#xff0c;使输入输出电流随电源电压降低均匀变…

微服务之Nacos注册管理

文章目录 一、Nacos安装步骤1.安装地址2.安装版本3.目录说明4.端口配置5.启动 二、Nacos服务注册1.Nacos依赖2.客户端修改配置文件3.启动效果图4.总结 三、Nacos服务集群属性1.服务跨集群调用问题2.服务集群属性3.总结 四、Nacos根据集群负载均衡1.修改配置文件2.设置集群服务类…

【C语法学习】20 - 文件访问顺序

文章目录 0 前言1 文件位置指示符2 rewind()函数2.1 函数原型2.2 参数2.3 返回值2.4 使用说明 3 ftell()函数3.1 函数原型3.2 参数3.3 返回值 4 fseek()函数4.1 函数原型4.2 参数4.3 返回值 5 示例5.1 示例15.2 示例2 0 前言 C语言文件访问分为顺序文件访问和随机文件访问。 …

Kotlin库实现多线程爬取数据

由于字数限制&#xff0c;以下是一个简化版的爬虫程序示例&#xff0c;使用了Kotlin的网络库kotlinx.coroutines和kotlinx.html。这个程序会爬取一个简单的Python多线程跑数据的网页&#xff0c;并打印出结果。 import kotlinx.coroutines.* import kotlinx.html.* import java…

oracle-sql语句解析类型

语句执行过程&#xff1a;1. 解析(将sql解析成执行计划) 2.执行 3.获取数据(fetch) 1. shared pool的组成。 share pool是一块内存池。 主要分成3块空间。free&#xff0c; library(库缓存&#xff0c;缓存sql以及执行计划)&#xff0c;row cache(字典缓存) select * from v…

振南技术干货集:C语言的一些“骚操作”及其深层理解(10)

注解目录 第二章《c语言的一些“操作”及其深层理解》 一、字符串的实质就是指针 &#xff08;如何将 35 转为对应的十六进制字符串”0X23”&#xff1f;&#xff09; 二 、转义符\ &#xff08;打入字符串内部的“奸细”。&#xff09; 三、字符串常量的连接 &#xff…

WebSocket在node端和客户端的使用

摘要 如果想要实现一个聊天的功能&#xff0c;就会想到使用WebSocket来搭建。那如果没有WebSocet的时候&#xff0c;我们会以什么样的思路来实现聊天功能呢&#xff1f; 假如有一个A页面 和 B页面进行通信&#xff0c;当A发送信息后&#xff0c;我们可以将信息存储在文件或者…

Vue 最简单路由 页面路由 配置路由

路由安装 Vue3使用 vue-router4 Vue2使用 vue-router3 npm i vue-router3创建路由文件 配置路由规则 import Vue from vue import VueRouter from vue-router //导入路由器 Vue.use(VueRouter)import Login from ../components/Login import User from ../components/User //…

服务器数据恢复—云服务器mysql数据库表被truncate的数据恢复案例

云服务器数据恢复环境&#xff1a; 阿里云ECS网站服务器&#xff0c;linux操作系统mysql数据库。 云服务器故障&#xff1a; 在执行数据库版本更新测试时&#xff0c;在生产库误执行了本来应该在测试库执行的sql脚本&#xff0c;导致生产库部分表被truncate&#xff0c;还有部…

基于springboot实现福聚苑社区团购平台系统项目【项目源码】

基于springboot实现福聚苑社区团购平台系统演示 Javar技术 Java是一种网络脚本语言&#xff0c;广泛运用于web应用开发&#xff0c;可以用来添加网页的格式动态效果&#xff0c;该语言不用进行预编译就直接运行&#xff0c;可以直接嵌入HTML语言中&#xff0c;写成js语言&…

如何在时间循环里最优决策——时间旅行者的最优决策

文章目录 每日一句正能量前言时间旅行和平行宇宙强化学习策略梯度算法代码案例推荐阅读赠书活动 每日一句正能量 做一个决定&#xff0c;并不难&#xff0c;难的是付诸行动&#xff0c;并且坚持到底。 前言 时间循环是一类热门的影视题材&#xff0c;其设定常常如下&#xff1…

javaSE学习笔记(四)常见类,基本数据类型包装类,StringBufferStringBuilder

目录 三、面向对象 16.Object类 方法 和equals() 17.String类 注意 构造方法 String的最大长度 String的底层存储结构 字符串的常量池机制 String类的方法 String类的判断功能 String类的获取功能 String类的转换功能 String类拼接 String类的其他功能 18.Math…

vue3 自动导入composition-apiI和组件

1.api的自动导入 常规写法&#xff1a; <script setup>import { ref, reactive, onMounted, computed ,watch } from vue;import { useRouter } from "vue-router";const router useRouter();const person reactive ({name&#xff1a;张三&#xff0c;age…

美国Embarcadero公司正式发布2023 RAD Studio Delphi C++ Builder 12 Athens

Embarcadero 非常高兴地宣布发布 RAD Studio 12 Athens 以及 Delphi 12 和 CBuilder 12。RAD Studio 12 Athens 版本包含令人兴奋的新功能&#xff0c;为该产品的未来奠定了基础。 目录 主要新功能 C 的奇妙之处Delphi 的一些不错的补充FireMonkey 和 Skia 作为新基金会采用 MD…