增删改查接口

在这里插入图片描述

💗wei_shuo的个人主页

💫wei_shuo的学习社区

🌐Hello World !


增删改查

@RestController
@RequestMapping("system/mappingCode")
@Slf4j
@Api(tags = "系统管理 - 映射码")
public class SystemMappingCodeEndpoint {
    @Resource
    private SystemMappingCodeService systemMappingCodeService;

    @PostMapping("add")
    @ApiOperation("新增映射码")
    @Logger(menu = "系统管理", action = "映射码")
    public Result add(@RequestBody @Validated SystemMappingCodeAddVo request) {
        systemMappingCodeService.add(request);
        return Result.succ();
    }

    @PostMapping("getByID")
    @ApiOperation("根据ID获取")
    @Logger(menu = "系统管理", action = "映射码")
    public Result<SystemMappingCodeResp> getByID(@RequestBody CommonRequestId request) {
        SystemMappingCodeResp systemMappingCodeResp= systemMappingCodeService.getByID(request.getId());
        return Result.succ(systemMappingCodeResp);
    }

    @PostMapping("update")
    @ApiOperation("修改")
    @Logger(menu = "系统管理", action = "映射码")
    public Result<SystemMappingCodeResp> update(@RequestBody SystemMappingCodeResp request) {
        systemMappingCodeService.update(request);
        return Result.succ();
    }

    @PostMapping("bindAdd")
    @ApiOperation("映射码配置应答码")
    @Logger(menu = "系统管理", action = "映射码")
    public Result bindSave(@RequestBody SystemMappingCodeBindListVo request) {
        systemMappingCodeService.bindSaveOrUpdate(request);
        return Result.succ();
    }

    @PostMapping("getBindCodeByID")
    @ApiOperation("根据ID获取映射码绑定的应答码")
    @Logger(menu = "系统管理", action = "映射码")
    public Result<SystemMappingCodeBindListVo> getBindCodeByID(@RequestBody CommonRequestId request) {
        SystemMappingCodeBindListVo addBindVo= systemMappingCodeService.getBindCodeByID(request.getId());
        return Result.succ(addBindVo);
    }

    @GetMapping("list")
    @ApiOperation("查询映射码")
    public Result<PageResult<SystemMappingCodeResp>> list (SystemMappingCodeQuery query){
        PageResult<SystemMappingCodeResp> list = systemMappingCodeService.list(query);
        return Result.succ(list);
    }

}
@Service
public class SystemMappingCodeService {

    @Resource
    private SystemMappingCodeRepo systemMappingCodeRepo;
    @Resource
    private SystemMappingCodeMapper systemMappingCodeMapper;
    @Resource
    private SystemMappingCodeBindRepo systemMappingCodeBindRepo;
    @Resource
    private SystemCompanyRepo systemCompanyRepo;

    public void add(SystemMappingCodeAddVo request) {
        SystemMappingCode one = systemMappingCodeRepo.getOne(new QueryWrapper<SystemMappingCode>().eq(SystemMappingCodeCol.CODE_RESP, request.getCodeResp()));
        if (one != null){
            throw new ManageException("该映射码已存在,不可进行重复添加");
        }
        SystemMappingCode systemMappingCode = new SystemMappingCode();
        ConvertBeanUtils.copy(request, systemMappingCode);
        systemMappingCode.setCreateAt(new Date());
        systemMappingCodeRepo.save(systemMappingCode);
    }

    public SystemMappingCodeResp getByID(Long id) {
        SystemMappingCode mappingCode = systemMappingCodeRepo.getById(id);
        if (mappingCode == null){
            throw new ManageException("该映射码信息不存在");
        }
        SystemMappingCodeResp resp = new SystemMappingCodeResp();
        resp.setId(mappingCode.getId());
        resp.setCodeResp(mappingCode.getCodeResp());
        resp.setMerchantResp(mappingCode.getMerchantResp());
        resp.setCardholderResp(mappingCode.getCardholderResp());
        resp.setRemark(mappingCode.getRemark());
        return resp;
    }

    public void update(SystemMappingCodeResp request){
        List<SystemMappingCode> codeListExcludeCurrentId = systemMappingCodeRepo.list(new QueryWrapper<SystemMappingCode>().ne(SystemMappingCodeCol.ID, request.getId()));
        List<SystemMappingCode> repeatCode = codeListExcludeCurrentId.stream().filter(bean -> bean.getCodeResp().equals(request.getCodeResp())).collect(Collectors.toList());
        if (repeatCode.isEmpty()){
            throw new ManageException("该映射码已存在,不可重复");
        }
        systemMappingCodeRepo.update(
                new UpdateWrapper<SystemMappingCode>()
                        .set(SystemMappingCodeCol.CODE_RESP, request.getCodeResp())
                        .set(SystemMappingCodeCol.MERCHANT_RESP, request.getMerchantResp())
                        .set(SystemMappingCodeCol.CARDHOLDER_RESP, request.getCardholderResp())
                        .set(SystemMappingCodeCol.REMARK, request.getRemark())
                        .set(SystemMappingCodeCol.UPDATE_AT, new Date())
                        .eq(SystemMappingCodeCol.ID, request.getId())
        );
    }

    public void bindSaveOrUpdate(SystemMappingCodeBindListVo request) {
        //删除当前绑定列表
        systemMappingCodeBindRepo.remove(new QueryWrapper<SystemMappingCodeBind>().eq(SystemMappingCodeBindCol.CODE_MAPPING_ID, request.getCodeMappingId()));

        HashMap<Long, Date> stringDateHashMap = new HashMap<>();
        List<SystemMappingCodeBindVo> requestList = request.getList();
        List<SystemMappingCodeBind> addList = new ArrayList<>();
        if (requestList.isEmpty()) {
            throw new ManageException("应答码列表为空,不可进行操作");
        }

        checkMappingCodeList(requestList);
        List<Long> requestIds = requestList.stream().map(SystemMappingCodeBindVo::getId).collect(Collectors.toList());
        List<SystemMappingCodeBind> systemMappingCodeBinds = systemMappingCodeBindRepo.listByIds(requestIds);
        for (SystemMappingCodeBind bean : systemMappingCodeBinds){
            stringDateHashMap.put(bean.getId(),bean.getCreateAt());
        }
        for (SystemMappingCodeBindVo bean : requestList) {
            SystemMappingCodeBind systemMappingCodeBind = new SystemMappingCodeBind();
            ConvertBeanUtils.copy(bean, systemMappingCodeBind);
            systemMappingCodeBind.setCodeMappingId(request.getCodeMappingId());
            if (request.getIsAdd()) {
                systemMappingCodeBind.setCreateAt(new Date());
            } else {
                systemMappingCodeBind.setCreateAt(stringDateHashMap.get(bean.getId()));
                systemMappingCodeBind.setUpdateAt(new Date());
            }
            addList.add(systemMappingCodeBind);
        }
        systemMappingCodeBindRepo.saveBatch(addList);
    }

    private void checkMappingCodeList(List<SystemMappingCodeBindVo> request) {
        HashMap<String, String> errorMessageMap = new HashMap<>();
        for (SystemMappingCodeBindVo bean : request) {
            QueryWrapper<SystemMappingCodeBind> wrapper = new QueryWrapper<SystemMappingCodeBind>()
                    .eq(SystemMappingCodeBindCol.COMPANY_CODE, bean.getCompanyCode())
                    .eq(SystemMappingCodeBindCol.RESPONSE_CODE, bean.getResponseCode());
            SystemMappingCodeBind one = systemMappingCodeBindRepo.getOne(wrapper);

            if (one != null) {
                SystemCompany company = systemCompanyRepo.getOne(new QueryWrapper<SystemCompany>().eq(SystemCompanyCol.COMPANY_CODE, bean.getCompanyCode()));
                errorMessageMap.put(company.getCompanyName() + "---" + bean.getResponseCode(), "该应答码已存在于其他映射码,不可进行重复添加");
            }
        }
        if (!errorMessageMap.isEmpty()){
            throw new ManageException(JsonMapper.objectToJson(errorMessageMap));
        }
    }

    public PageResult<SystemMappingCodeResp> list(SystemMappingCodeQuery query) {
        SystemMappingCodeQueryBo convert = SystemMappingCodeQueryBo.convert(query);
        List<SystemMappingCodeResp> collect = systemMappingCodeMapper.queryList(convert);
        return PageResult.<SystemMappingCodeResp>builder().pageNo(Integer.parseInt(query.getPageNo()))
                .pageSize(Integer.parseInt(query.getPageSize()))
                .total(systemMappingCodeMapper.getTotal(convert)).items(collect).build();
    }

    public SystemMappingCodeBindListVo getBindCodeByID(Long id) {
        QueryWrapper<SystemMappingCodeBind> wrapper = new QueryWrapper<SystemMappingCodeBind>()
                .eq(SystemMappingCodeBindCol.CODE_MAPPING_ID, id);
        List<SystemMappingCodeBind> list = systemMappingCodeBindRepo.list(wrapper);

        List<SystemMappingCodeBindVo> listResp = list.stream()
                .map(codeBind -> {
                    SystemMappingCodeBindVo codeBindVo = new SystemMappingCodeBindVo();
                    codeBindVo.setId(codeBind.getId());
                    codeBindVo.setCompanyCode(codeBind.getCompanyCode());
                    codeBindVo.setResponseCode(codeBind.getResponseCode());
                    codeBindVo.setResponseCodeDescription(codeBind.getResponseCodeDescription());
                    return codeBindVo;
                })
                .collect(Collectors.toList());

        SystemMappingCodeBindListVo resp = new SystemMappingCodeBindListVo();
        resp.setCodeMappingId(id);
        resp.setList(listResp);
        return resp;
    }

}

🌼 结语:创作不易,如果觉得博主的文章赏心悦目,还请——点赞👍收藏⭐️评论📝


在这里插入图片描述

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

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

相关文章

设备通过GB28181注册到EasyCVR,平台看不到设备信息的排查方法汇总

智慧安防平台EasyCVR能在复杂的网络环境中&#xff08;专网、局域网、广域网、VPN、公网等&#xff09;将前端海量的设备进行统一集中接入与视频汇聚管理&#xff0c;平台支持设备通过4G、5G、WIFI、有线等方式进行视频流的接入与传输&#xff0c;支持的接入协议包括&#xff1…

【Elasticsearch篇】详解使用RestClient操作索引库的相关操作

文章目录 &#x1f354;什么是Elasticsearch&#x1f33a;什么是RestClient&#x1f386;代码操作⭐初始化RestClient⭐使用RestClient操作索引库⭐使用RestClient删除索引库⭐使用RestClient判断索引库是否存在 &#x1f354;什么是Elasticsearch Elasticsearch是一个开源的分…

OpenCV第 1 课 计算机视觉和 OpenCV 介绍

文章目录 第 1 课 计算机视觉和 OpenCV 介绍1.机器是如何“看”的2.机器视觉技术的常见应用3.图像识别介绍4. 图像识别技术的常见应用5.OpenCV 介绍6.图像在计算机中的存储形式 第 1 课 计算机视觉和 OpenCV 介绍 1.机器是如何“看”的 我们人类可以通过眼睛看到五颜六色的世界…

【新闻感想】谈一下PandoraNext的覆灭(潘多拉Next-国内可访问的免费开放GPT共享站将于2024年1月30日关闭)

文章目录 悲报&#xff1a;TIME TO SAY GOODBYE&#xff01;PandoraNext&#xff01;PandoraNext作者言&#xff1a;你们赢了&#xff0c;但我却没有输我如何了解到PandoraNext的合照留念于是开始逆向&#xff01; 悲报&#xff1a;TIME TO SAY GOODBYE&#xff01;PandoraNext…

前端数据结构与算法总结<week three>

标题没有错哈哈 还多了零&#xff0c;想概括得更全面一点~ 零、String 字符串 0.1 验证回文串 0.1.1 思路 将原始字符串转化为只有小写字母和数字字符串&#xff0c;利用双指针进行比对 0.1.2 步骤 设置正则表达式进行匹配将不符合正则表达式的去掉头尾比较 0.1.3 代码 …

C++ STL之list的使用及模拟实现

文章目录 1. 介绍2. list类的使用2.1 list类对象的构造函数2.2 list类对象的容量操作2.3 list类对象的修改操作2.4 list类对象的访问及遍历操作 3. list类的模拟实现 1. 介绍 英文解释&#xff1a; 也就是说&#xff1a; list是可以在常数范围内在任意位置进行插入和删除的序列…

解决国内 github.com 打不开的准确方法

** 下载watt toolkit&#xff0c; 选择‘github’&#xff0c;点击‘一键加速’&#xff0c;很简单方便 **

第137期 Oracle的数据生命周期管理(20240123)

数据库管理137期 2024-01-23 第137期 Oracle的数据生命周期管理&#xff08;20240123&#xff09;1 ILM2 Heat Map3 ADO4 优点5 对比总结 第137期 Oracle的数据生命周期管理&#xff08;20240123&#xff09; 作者&#xff1a;胖头鱼的鱼缸&#xff08;尹海文&#xff09; Orac…

(学习日记)2024.01.22:各类型占用字节 与 指针

写在前面&#xff1a; 由于时间的不足与学习的碎片化&#xff0c;写博客变得有些奢侈。 但是对于记录学习&#xff08;忘了以后能快速复习&#xff09;的渴望一天天变得强烈。 既然如此 不如以天为单位&#xff0c;以时间为顺序&#xff0c;仅仅将博客当做一个知识学习的目录&a…

SSM:Spring + Spring MVC + MyBatis 的整合

SSM 前言整合 前言 在完成 Spring 、Spring MVC 与 MyBatis 基础知识的学习后&#xff0c;下面简单介绍 SSM 框架的整合使用。 整合 SSM&#xff0c;是 Java 开发中常用的一个 Web 框架组合&#xff0c;用于构建基于 Spring 和 MyBatis 的 Web 应用&#xff08; Spring MVC …

Zabbix分布式监控系统

实验过程 ps&#xff1a; 阿里云盘Xnode1获取 xnode1 https://www.alipan.com/s/HgLXfoeBWG2 提取码: eb70 1、xnode1克隆两台虚拟机并修改ip zabbix-server192.168.224.3 zabbix-agent192.168.224.4 2、修改主机名 [rootlocalhost ~]# hostnamectl set-hostname zabbix-se…

旧衣服回收小程序开发

随着人们的消费理念逐渐提升&#xff0c;每个家庭的闲置衣物每年就能够达到30公斤左右&#xff0c;这也促进了我国旧衣回收行业的发展。近几年我国的旧衣回收市场规模在300-400亿元&#xff0c;发展潜力较大。 旧衣回收行业是当下的环保型商业模式&#xff0c;商业价值较为可观…

JavaScript递归函数如何匹配上下级id和pid的数据(for...of,foreach.reduce)

目录 一、for...of 二、forEach 三、reduce 递归函数是一种在编程中常用的方法&#xff0c;用于解决一些需要重复操作的问题。在JavaScript中&#xff0c;递归函数可以用来匹配上下级id和pid的数据结构&#xff0c;例如树形结构或者父子关系的数据。 一、for...of 首先…

ARM安装与项目结构

1. 安装环境 参考E:\peixunQianrushi\arm\ziliao\FS4412新版&#xff08;学生资料&#xff09;\环境相关资料 这边建议全部默认路径 安装注意事项&#xff1a; 1、在接下来的安装过程中&#xff0c;对于使用win10、win8的操作系统的用户&#xff0c;所有的安装请均以管理员身份…

【渗透测试】nmap基本使用方法整理

nmap作用介绍 nmap是一款工具&#xff0c;用于收集信息时使用。通过nmap可以快速的扫描目标的端口操作系统使用的服务等。以便于后续的渗透测试。 但是值得注意的是&#xff0c;nmap误报是个超正常的事情&#xff0c;还是要人为的去判断一下。 单机快速端口扫描 我们默认扫…

P9568 [SDCPC2023] Computational Geometry 题解

P9568 [SDCPC2023] Computational Geometry 题解 感谢战学长的帮助。 解法 本题的关键是将多边形 Q Q Q 分割为两部分&#xff0c;一部分是由点 a , b , c a,b,c a,b,c 组成的三角形&#xff0c;另一部分是由从 b b b 到 c c c 这 k 1 k 1 k1 个点组成的凸多边形。注…

回归问题波士顿房价预测

线性回归API sklearn.linear_model.LinearRegression(fit_interceptTrue) 正规方程优化参数&#xff1a;fit_intercept&#xff0c;是否计算偏置属性&#xff1a;LinearRegression.coef_ &#xff08;回归系数&#xff09; LinearRegression.intercept_&#xff08;偏置&…

2024.1.23 GNSS 零散知识 学习笔记

1.天线种类 2.接收机 2.四大导航系统的介绍 3.卫星高度与轨道卫星种类 4.GNSS有哪些应用 5.在空间保持静⽌或匀速直线运动(⽆加速度)的坐标系称为惯性坐标系。 6.地⼼惯性坐标系实际上并没有满⾜能成为惯性坐标系的条件&#xff1a; ⾸先&#xff0c;地球及其质⼼都在围绕太阳…

《WebKit 技术内幕》学习之九(2): JavaScript引擎

2 V8引擎 2.1 基础 V8是一个开源项目&#xff0c;也是一个JavaScript引擎的实现。它最开始是由一些语言方面的专家设计出来的&#xff0c;后被Google收购&#xff0c;成为了JavaScript引擎和众多相关技术的引领者。其目的很简单&#xff0c;就是为了提高性能。因为在当时之前…

C++比较两个proto是否一样

参考:https://stackoverflow.com/questions/3228107/google-protocol-buffers-compare/32351914#32351914 #include <google/protobuf/util/message_differencer.h>MessageDifferencer::Equals(msg1, msg2);