From 6c497e6c1c99aa8fb53252b23aa9886dc5ed8420 Mon Sep 17 00:00:00 2001
From: dougang <78125310@kidgrow.com>
Date: Wed, 23 Dec 2020 15:00:40 +0800
Subject: [PATCH] 解决二维码生成不对的问题

---
 kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java |   56 ++++++++++++++++++++++++++++++++++----------------------
 1 files changed, 34 insertions(+), 22 deletions(-)

diff --git a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java
index 9169434..a671255 100644
--- a/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java
+++ b/kidgrow-business/kidgrow-opration-center/kidgrow-opration-center-server/src/main/java/com/kidgrow/oprationcenter/controller/ScreeningOrganizationInfoController.java
@@ -20,6 +20,7 @@
 import org.apache.commons.collections4.MapUtils;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.io.ClassPathResource;
 import org.springframework.validation.BindingResult;
 import org.springframework.validation.ObjectError;
 import org.springframework.web.bind.annotation.*;
@@ -28,7 +29,10 @@
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.io.*;
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
@@ -106,15 +110,16 @@
             }
             return ResultBody.failed().msg(errMsg.toString());
         } else {
-            if (organizationInfo.getId() == null) {
-                //新增机构增加关注二维码
-                String url = createQr(String.valueOf(organizationInfo.getId()));
-                if (StringUtils.isNotBlank(url)) {
-                    organizationInfo.setQrCode(url);
-                }
-            }
             boolean v = organizationInfoService.saveOrUpdate(organizationInfo);
             if (v) {
+                if (StringUtils.isBlank(organizationInfo.getQrCode())) {
+                    //新增机构增加关注二维码
+                    String url = createQr(String.valueOf(organizationInfo.getId()));
+                    if (StringUtils.isNotBlank(url)) {
+                        organizationInfo.setQrCode(url);
+                        organizationInfoService.updateById(organizationInfo);
+                    }
+                }
                 return ResultBody.ok().data(organizationInfo).msg("保存成功");
             } else {
                 return ResultBody.failed().msg("保存失败");
@@ -124,7 +129,7 @@
 
     private String createQr(String id) {
         String url = "";
-        String str = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"kagscreening_\" " + id + "}}}";
+        String str = "{\"action_name\": \"QR_LIMIT_STR_SCENE\", \"action_info\": {\"scene\": {\"scene_str\": \"kagscreening_ " + id + "\"}}}";
 
         String token = redisUtils.get("Wechat:Token:KagReceiveToken").toString();
         String result = HttpRequest.post("https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=" + token)
@@ -219,21 +224,24 @@
                 List<ScreeningOrganizationExcel> list = ExcelUtil.importExcel(excel, 0, 1, ScreeningOrganizationExcel.class);
                 rowNum = list.size();
                 if (rowNum > 0) {
-                    List<ScreeningOrganizationInfo> users = new ArrayList<>(rowNum);
                     String[] area = areaCode.split("#");
 
                     list.forEach(u -> {
-                        ScreeningOrganizationInfo user = new ScreeningOrganizationInfo();
-                        BeanUtil.copyProperties(u, user);
-                        user.setSourceHospitalName(hospitalName);
-                        user.setSourceHospitalId(Long.parseLong(hospitalId));
-                        user.setProvince(area[0]);
-                        user.setCity(area[1]);
-                        user.setArea(area[2]);
-                        user.setAreaCode(areaName);
-                        users.add(user);
+                        ScreeningOrganizationInfo organizationInfo = new ScreeningOrganizationInfo();
+                        BeanUtil.copyProperties(u, organizationInfo);
+                        organizationInfo.setSourceHospitalName(hospitalName);
+                        organizationInfo.setSourceHospitalId(Long.parseLong(hospitalId));
+                        organizationInfo.setProvince(area[0]);
+                        organizationInfo.setCity(area[1]);
+                        organizationInfo.setArea(area[2]);
+                        organizationInfo.setAreaCode(areaName);
+                        organizationInfoService.saveOrUpdate(organizationInfo);
+                        if (StringUtils.isBlank(organizationInfo.getQrCode())) {
+                            organizationInfo.setQrCode(createQr(String.valueOf(organizationInfo.getId())));
+                            organizationInfoService.updateById(organizationInfo);
+                        }
                     });
-                    organizationInfoService.saveBatch(users);
+
                 }
             }
         } catch (Exception e) {
@@ -249,7 +257,11 @@
     @PostMapping("/export")
     public void export(HttpServletResponse response) {
         try {
-            InputStream inStream =this.getClass().getResourceAsStream("/static/pages/template/机构导入模板.xlsx");
+            InputStream inStream = null;
+            ClassPathResource resource = new ClassPathResource(File.separator + "template" + File.separator + "机构导入模板.xlsx");
+            if (resource.exists()) {
+                inStream = resource.getInputStream();
+            }
             // 设置输出的格式
             response.reset();
             response.setContentType("bin");
@@ -274,7 +286,7 @@
     @PostMapping("/getOrganizationListByHospitalId")
     public ResultBody getOrganizationListByHospitalId(@RequestBody String id) {
         List<ScreeningOrganizationInfo> byHospitalId = organizationInfoService.findByHospitalId(Long.valueOf(id));
-        if(byHospitalId != null && byHospitalId.size() > 0){
+        if (byHospitalId != null && byHospitalId.size() > 0) {
             return ResultBody.ok().data(byHospitalId).msg("查询成功");
         }
         return ResultBody.failed().msg("查询失败");

--
Gitblit v1.8.0