From 008e2d028976bf8b032bafd0a6de5b25282c20f9 Mon Sep 17 00:00:00 2001 From: lijiarao Date: Tue, 21 Jun 2022 14:13:55 +0800 Subject: [PATCH] =?UTF-8?q?add=20=E4=BC=9A=E8=AE=AE=E9=9A=8F=E6=9C=BA?= =?UTF-8?q?=E7=A0=81=20=E6=96=B0=E5=A2=9E=EF=BC=8C=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E6=9B=B4=E6=8D=A2=E9=80=BB=E8=BE=91=E4=B8=BA=E5=85=A8=E9=87=8F?= =?UTF-8?q?=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- db/会议随机码.sql | 6 +- .../controller/PayRandomCodeController.java | 24 ++---- .../jero/meeting/entity/PayRandomCode.java | 2 +- .../meeting/entity/PayRandomCodeLink.java | 8 +- .../meeting/service/PayRandomCodeService.java | 80 ++++++++++++++++--- .../java/com/jero/meeting/vo/GenerateDTO.java | 21 +++++ 6 files changed, 107 insertions(+), 34 deletions(-) create mode 100644 jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GenerateDTO.java diff --git a/db/会议随机码.sql b/db/会议随机码.sql index 7f019596..077c1ef4 100644 --- a/db/会议随机码.sql +++ b/db/会议随机码.sql @@ -17,4 +17,8 @@ create table pay_random_code_link random_code_id varchar(36) not null comment 'random_code_id', random_code varchar(6) null comment '随机码', use_flag tinyint(1) default 0 comment '是否使用' -) comment '随机码关联表'; \ No newline at end of file +) comment '随机码关联表'; + +INSERT INTO sys_dict ( id, dict_name, dict_code, description, del_flag, create_by, create_time ) VALUES ( '1539122073714880513', '使用状态', 'use_flag', '', 0, 'LKGLZ', '2022-06-21 13:44:32' ); +INSERT INTO sys_dict_item ( id, dict_id, item_text, item_value, description, sort_order, status, create_by, create_time ) VALUES ( '1539122136461668354', '1539122073714880513', '未使用', '0', '', 1, 1, 'LKGLZ', '2022-06-21 13:44:47' ); +INSERT INTO sys_dict_item ( id, dict_id, item_text, item_value, description, sort_order, status, create_by, create_time ) VALUES ( '1539122172666900482', '1539122073714880513', '已使用', '1', '', 2, 1, 'LKGLZ', '2022-06-21 13:44:56' ); \ No newline at end of file diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayRandomCodeController.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayRandomCodeController.java index 36c066c5..84ea1ba7 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayRandomCodeController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/controller/PayRandomCodeController.java @@ -10,7 +10,9 @@ import java.util.List; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.jero.meeting.vo.GenerateDTO; import org.apache.shiro.authz.annotation.RequiresPermissions; +import org.springframework.beans.BeanUtils; import org.springframework.web.bind.annotation.*; import com.jero.common.api.vo.Result; import com.jero.common.system.query.QueryGenerator; @@ -109,21 +111,11 @@ public class PayRandomCodeController extends JeroController generate(@Validated @RequestBody PayRandomCode randomCode) { - payRandomCodeService.generate(randomCode); - return Result.OK("生成成功!"); - } - - /** - * 追加 - */ - @RequiresPermissions("internationalSeminarGenerateCode:edit") - @AutoLog(value = "随机码表-追加") - @ApiOperation(value="随机码表-追加", notes="随机码表-追加") - @PostMapping(value = "/additional") - public Result additional(@Validated @RequestBody PayRandomCode randomCode) { - payRandomCodeService.additional(randomCode); - return Result.OK("追加成功!"); + public Result> generate(@Validated @RequestBody GenerateDTO generateDTO) { + PayRandomCode randomCode = new PayRandomCode(); + BeanUtils.copyProperties(generateDTO,randomCode); + List generate = payRandomCodeService.generate(randomCode); + return Result.OK(generate); } /** @@ -133,7 +125,7 @@ public class PayRandomCodeController extends JeroController randomCodeLinkList = new ArrayList<>(); - for (Integer i = 0; i < randomCode.getRandomCodeCount(); i++) { - PayRandomCodeLink randomCodeLink = new PayRandomCodeLink(); + List randomCodeLinkList = randomCode.getRandomCodeLinkList(); + for (PayRandomCodeLink randomCodeLink : randomCodeLinkList) { randomCodeLink.setRandomCodeId(randomCodeId); - randomCodeLink.setRandomCode(RandomUtil.randomString(6)); - randomCodeLinkList.add(randomCodeLink); } randomCodeLinkMapper.insertList(randomCodeLinkList); - } public void editById(PayRandomCode randomCode) { - + randomCodeMapper.updateById(randomCode); + String randomCodeId = randomCode.getRandomCodeId(); + //先删除未使用的 + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayRandomCodeLink::getRandomCodeId,randomCodeId); + wrapper.eq(PayRandomCodeLink::getUseFlag, CommonConstant.DEL_FLAG_0); + randomCodeLinkMapper.delete(wrapper); + //查询已使用code + wrapper.clear(); + List useRandomCodeLinkList = randomCodeLinkMapper.selectList(wrapper); + List useCodeList = useRandomCodeLinkList.stream() + .map(PayRandomCodeLink::getRandomCode) + .collect(Collectors.toList()); + //处理新增的数据 + List allRandomCodeLinkList = randomCode.getRandomCodeLinkList(); + allRandomCodeLinkList.forEach(item ->{ + String randomCode1 = item.getRandomCode(); + //如果在已使用中,就赋值为1 + if (useCodeList.contains(randomCode1)) { + item.setUseFlag(CommonConstant.DEL_FLAG_1); + }else { + item.setUseFlag(CommonConstant.DEL_FLAG_0); + } + }); + //筛选出未使用code + List unUseList = allRandomCodeLinkList.stream() + .filter(one -> Objects.equals(one.getUseFlag(), CommonConstant.DEL_FLAG_0)) + .collect(Collectors.toList()); + for (PayRandomCodeLink randomCodeLink : unUseList) { + randomCodeLink.setRandomCodeId(randomCodeId); + } + randomCodeLinkMapper.insertList(unUseList); } - public void generate(PayRandomCode randomCode) { - + /** + * 生成 + */ + public List generate(PayRandomCode randomCode) { + String randomCodeId = randomCode.getRandomCodeId(); + List randomCodeLinkList = new ArrayList<>(); + //根据id判断是新增还是编辑 + if (StringUtils.isBlank(randomCodeId)){ + for (int i = 0; i < randomCode.getRandomCodeCount(); i++) { + PayRandomCodeLink randomCodeLink = new PayRandomCodeLink(); + randomCodeLink.setRandomCode(RandomUtil.randomString(6)); + randomCodeLinkList.add(randomCodeLink); + } + return randomCodeLinkList; + }else { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(PayRandomCodeLink::getRandomCodeId,randomCodeId); + wrapper.eq(PayRandomCodeLink::getUseFlag, CommonConstant.DEL_FLAG_1); + List useList = randomCodeLinkMapper.selectList(wrapper); + randomCodeLinkList.addAll(useList); + for (int i = 0; i < randomCode.getRandomCodeCount() - useList.size(); i++) { + PayRandomCodeLink randomCodeLink = new PayRandomCodeLink(); + randomCodeLink.setRandomCode(RandomUtil.randomString(6)); + randomCodeLinkList.add(randomCodeLink); + } + return randomCodeLinkList; + } } - public void additional(PayRandomCode randomCode) { - - } } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GenerateDTO.java b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GenerateDTO.java new file mode 100644 index 00000000..52a78324 --- /dev/null +++ b/jero-boot-incoming-payment/src/main/java/com/jero/meeting/vo/GenerateDTO.java @@ -0,0 +1,21 @@ +package com.jero.meeting.vo; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.jeecgframework.poi.excel.annotation.Excel; + +/** + * @author liJiaRao + * @date 2022-06-21 11:45 + */ +@Data +public class GenerateDTO { + @ApiModelProperty(value="id") + private String randomCodeId; + /** + * 随机码个数 + */ + @ApiModelProperty(value="随机码个数") + private Integer randomCodeCount; +}