个人网厅——销户

目录

需求文档

公积金销户类

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 {@Resourceprivate TqGjjxhlsbService tqGjjxhlsbService;...(类中功能方法)}
 service层
/*** 个人网上营业厅-公积金销户流水 Service 接口** @author 芋道源码*/
public interface TqGjjxhlsbService {...
}
service层实现类
/*** 个人网上营业厅-公积金销户流水 Service 实现类** @author 芋道源码*/
@Service
@Validated
public class TqGjjxhlsbServiceImpl implements TqGjjxhlsbService {@Resourceprivate 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层实现类
    @Overridepublic 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层实现类
    @Overridepublic 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层实现类
    @Overridepublic TqGjjxhlsbDO getTqGjjxhlsb(BigDecimal id) {return tqGjjxhlsbMapper.selectById(id);}

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

excel中通过ROW函数返回引用的行号

例如&#xff0c;想引用B3的行号&#xff08;行号应该是3&#xff09;&#xff1a; 鼠标点在想输入函数的单元格&#xff1a; 插入-》函数&#xff1a; 选择ROW函数&#xff1a; 点击“继续”&#xff0c;然后点击红框圈出来的按钮&#xff1a; 鼠标点击B3单元格&…

数据结构----链式栈的操作

链式栈的定义其实和链表的定义是一样的&#xff0c;只不过在进行链式栈的操作时要遵循栈的规则----即“先进后出”。 1.链式栈的定义 typedef struct StackNode {SElemType data;struct StackNode *next; }StackNode,*LinkStack; 2.链式栈的初始化 Status InitStack(LinkSta…

人工智能与充电技术:携手共创智能充电新时代

人工智能与充电技术&#xff1a;携手共创智能充电新时代 摘要&#xff1a;本文探讨了人工智能与充电技术的结合及其在未来充电设施领域的应用。通过分析智能充电系统的技术原理、优势以及挑战&#xff0c;本文展望了由人工智能驱动的充电技术为未来电动交通带来的巨大变革与机…

25.4 MySQL 函数

1. 函数的介绍 1.1 函数简介 在编程中, 函数是一种组织代码的方式, 用于执行特定任务. 它是一段可以被重复使用的代码块, 通常接受一些输入(参数)然后返回一个输出. 函数可以帮助开发者将大型程序分解为更小的, 更易于管理的部分, 提高代码的可读性和可维护性.函数在编程语言…

Elasticsearch 面试题

文章目录 Elasticsearch 读取数据您能解释一下 X-Pack for Elasticsearch 的功能和重要性吗&#xff1f;Elasticsearch 中的节点&#xff08;比如共 20 个&#xff09;&#xff0c;其中的 10 个选了 一个master&#xff0c;另外 10 个选了另一个 master&#xff0c;怎么办&…

《原则》思维导图

ProcessOn 《原则》是一本投资与管理领域的经典之作&#xff0c;作者瑞达利欧以生动的语言和深入浅出的方式&#xff0c;分享了他的投资原则和管理经验。这本书不仅适合金融从业者&#xff0c;也对一般读者有很大启发。 通过阅读《原则》&#xff0c;你将了解到如何建立有效的…

Java 并发-Lock

目录 Lock 源码 lock() tryLock() tryLock(long time, TimeUnit unit) Lock与synchronized Lock Lock 是 java.util.concurrent.locks包 下的接口。 上图是 java.util.concurrent.locks包下主要常用的类与接口的关系。 源码 public interface Lock {void lock();void l…

什么是代理模式,用 Python 如何实现 Proxy(代理 或 Surrogate)对象结构型模式?

什么是代理模式&#xff1f; 代理&#xff08;Proxy&#xff09;是一种结构型设计模式&#xff0c;其目的是通过引入一个代理对象来控制对另一个对象的访问。代理对象充当目标对象的接口&#xff0c;这样客户端就可以通过代理对象间接地访问目标对象&#xff0c;从而在访问过程…

Ubuntu诞生已经19年了

导读2004 年 10 月 20 日&#xff0c;Ubuntu 4.10 正式发布&#xff0c;代号‘Warty Warthog’。 2004 年 10 月 20 日&#xff0c;Ubuntu 4.10 正式发布&#xff0c;代号‘Warty Warthog’。 ▲ Ubuntu 4.10 与最新版 Ubuntu 23.10 的对比 作为 Ubuntu 第一个版本&#xff0…

MATLAB 全景图切割及盒图显示的实现步骤

参考&#xff1a;MATLAB 全景图切割及盒图显示的实现步骤 | w3cschool笔记 在摄像领域中全景图是一种可以将周围360度景象全部收录的一种拍照技术&#xff0c;但全景图的实际观感并不是那么好&#xff08;可以看下文的全景图的样例&#xff09;。我们可以通过matlab来进行全景…

4.CentOS7安装MySQL5.7

CentOS7安装MySQL5.7 2023-11-13 小柴你能看到嘛 哔哩哔哩视频地址 https://www.bilibili.com/video/BV1jz4y1A7LS/?vd_source9ba3044ce322000939a31117d762b441 一.解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz1.在/usr/local解压 tar -xvf mysql-5.7.44-…

R语言——taxize(第一部分)

ropensci 系列之 taxize &#xff08;中译手册&#xff09; taxize 包1. taxize支持的网络数据源简介目前支持的API&#xff1a;针对Catalogue of Life&#xff08;COL&#xff09; 2. 浅尝 taxize 的一些使用例子2.1. **从NCBI上获取唯一的分类标识符**2.2. **获取分类信息**2…

list复制出新的list后修改元素,也更改了旧的list?

例子 addAll() Testpublic void CopyListTest(){Student student Student.builder().id(1).name("张三").age(23).classId(1).build();Student student2 Student.builder().id(2).name("李四").age(22).classId(1).build();List<Student> student…

ElasticSearch的文档、字段、映射和高级查询

1. 文档&#xff08;Document&#xff09; 在ES中一个文档是一个可被索引的基础信息单元&#xff0c;也就是一条数据 比如&#xff1a;你可以拥有某一个客户的文档&#xff0c;某一个产品的一个文档&#xff0c;当然&#xff0c;也可以拥有某个订单的一个文档。文档以JSON&…

[文件读取]lanproxy 文件读取 (CVE-2021-3019)

1.1漏洞描述 漏洞编号CVE-2021-3019漏洞类型文件读取漏洞等级⭐漏洞环境VULFOCUS攻击方式 描述: Lanproxy 路径遍历漏洞通过../绕过读取任意文件。该漏洞允许目录遍历读取/../conf/config.properties来获取到内部网连接的凭据。 1.2漏洞等级 高危 1.3影响版本 Lanproxy 1.4漏洞…

块设备的工作模式

块设备的mknod 还是会创建在 /dev 路径下面&#xff0c;这一点和字符设备一样。/dev 路径下面是 devtmpfs 文件系统。这是块设备遇到的第一个文件系统。我们会为这个块设备文件&#xff0c;分配一个特殊的 inode&#xff0c;这一点和字符设备也是一样的。只不过字符设备走 S_IS…

Linux C 目录编程

目录编程 前言目录编程函数mkdir  创建目录rmdir  删除目录opendir  打开目录readdir  读取目录stat  获取文件信息chdir  跳转目录closedir  关闭目录 判断文件类型的宏遍历指定目录及子目录下所有.c文件示例 前言 相较于文件编程&#xff0c;目录编程也有一套自…

主题讲座:全球增材制造现状与未来(暨香港科技大学广州|智能制造学域2024博士学位全额奖学金项目)

时间&#xff1a;2023 年11月16日&#xff08;星期四&#xff09;14:30 地点&#xff1a;合肥工业大学 学术会议中心三楼报告厅 主讲嘉宾&#xff1a;陈模军 助理教授 https://facultyprofiles.hkust-gz.edu.cn/faculty-personal-page/CHEN-Mojun/mjchen 报名表直达&#xff1…

uniapp打包安卓app获取包名

uniapp打包安卓app获取包名的两种方式 1.uniapp云打包 这上面直接可以看到包名&#xff0c;可以修改&#xff0c;也可以在 manifest.json 文件中配置修改 package配置的就是包名&#xff0c;要确保唯一性 2.使用aapt工具获取 1.下载aapt工具&#xff0c;然后添加到环境变量…

如何更好的使用Copilot

Copilot从诞生到现在过去了挺长时间了&#xff0c;大家对Copilot的评价算是褒贬不一吧。有些人觉得Copilot高效且神奇&#xff0c;可以对自己的工作大大提效&#xff1b;有些觉得也就那样&#xff0c;为什么要花那么多钱做这个事情&#xff0c;钱它不香吗&#xff1f; 从最开始…