From b542bb002d9dc8e12cf4bd8bb54dc4aa0b4bb67d Mon Sep 17 00:00:00 2001
From: sinake <sinake1@qq.com>
Date: 星期一, 01 六月 2026 14:02:54 +0800
Subject: [PATCH] 新境上报发送短信、专家发送短信、外链相关接口

---
 ruoyi-admin/target/classes/application-prod.yml                                                       |    6 
 ruoyi-project/target/classes/com/ruoyi/project/domain/GiLink.class                                    |    0 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/GiLinkController.java                       |   55 +++++++--
 ruoyi-admin/target/classes/com/ruoyi/web/controller/common/GiLinkController.class                     |    0 
 ruoyi-project/src/main/java/com/ruoyi/project/domain/GiLink.java                                      |    2 
 ruoyi-project/target/classes/com/ruoyi/project/mapper/GiLinkMapper.class                              |    0 
 ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class                        |    0 
 ruoyi-project/target/classes/com/ruoyi/project/service/IGiLinkService.class                           |    0 
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java                          |   66 ----------
 ruoyi-project/src/main/resources/mapper/project/GiLinkMapper.xml                                      |   11 +
 ruoyi-project/src/main/java/com/ruoyi/project/service/IGiLinkService.java                             |    7 +
 ruoyi-project/src/main/java/com/ruoyi/project/mapper/GiLinkMapper.java                                |    7 +
 ruoyi-admin/src/main/resources/application-prod.yml                                                   |    6 
 ruoyi-admin/src/main/resources/application-druid.yml                                                  |    4 
 ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java                                       |   65 ++++++++++
 ruoyi-project/target/classes/com/ruoyi/project/service/impl/GiLinkService.class                       |    0 
 ruoyi-project/src/main/java/com/ruoyi/project/service/impl/GiLinkService.java                         |   74 +++++++++++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java |   24 ++-
 ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java                          |    2 
 19 files changed, 239 insertions(+), 90 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/GiLinkController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/GiLinkController.java
index 00bae2d..ea90436 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/GiLinkController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/GiLinkController.java
@@ -7,14 +7,18 @@
 import com.ruoyi.common.exception.base.BaseException;
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.project.domain.BaseAnnextype;
+import com.ruoyi.project.domain.GiLink;
 import com.ruoyi.project.service.IBaseAnnextypeService;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
+import com.ruoyi.project.service.IGiLinkService;
+import io.swagger.annotations.*;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.Random;
 
 @Slf4j
@@ -23,23 +27,50 @@
 @RequestMapping("/GiLink")
 public class GiLinkController {
     @Autowired
-    private IBaseAnnextypeService baseAnnextypeService;
+    private IGiLinkService giLinkService;
 
-    @ApiOperation("鏂板")
+    @ApiOperation("澶栭摼鏂板")
     @PostMapping("/add")
-    public AjaxResult add(@RequestBody BaseAnnextype baseAnnextype) {
-        Random rand = new Random(4);
-        String hexString = String.format("%x", rand.nextInt());
-        boolean save = baseAnnextypeService.save(baseAnnextype);
-        return AjaxResult.success(baseAnnextype);
+    public AjaxResult add(@RequestBody GiLink model) {
+
+        return AjaxResult.success(giLinkService.Add(model));
     }
 
 
-    @ApiOperation("浠g爜鑾峰彇淇℃伅")
+    @ApiOperation("澶栭摼浠g爜鑾峰彇淇℃伅")
     @GetMapping(value = "/getCode")
-    public AjaxResult getCode(Long id) {
+    public AjaxResult getCode(String code) {
+        Map<String, Object> columnMap = new HashMap<>();
+        columnMap.put("code", code);
+        List<GiLink> links = giLinkService.listByMap(columnMap);
+        if (links.size() > 0)
+            return AjaxResult.success(links.get(0));
+        else
+            return AjaxResult.success("");
+    }
 
-        return AjaxResult.success(baseAnnextypeService.getById(id));
+    @ApiOperation("涓婃姤鍙戦�佺煭淇�")
+    @GetMapping("/sendReport")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "涓婃姤id", dataType = "Long", required = true),
+            @ApiImplicitParam(name = "coordinatorNo", value = "鍗忚皟鍛樼紪鍙�", dataType = "String", required = true),
+            @ApiImplicitParam(name = "toHospital", value = "涓婃姤鍖婚櫌", dataType = "String", required = true)
+    })
+    public AjaxResult SendReport(Long id,String coordinatorNo,String toHospital) {
+
+        return AjaxResult.success(giLinkService.SendReport(id,coordinatorNo,toHospital));
+    }
+
+    @ApiOperation("涓撳鍙戦�佺煭淇�")
+    @GetMapping("/sendExpert")
+    @ApiImplicitParams({
+            @ApiImplicitParam(name = "id", value = "涓撳鎰忚id", dataType = "Long", required = true),
+            @ApiImplicitParam(name = "expertNo", value = "涓撳缂栧彿", dataType = "String", required = true),
+            @ApiImplicitParam(name = "infoId", value = "妗堜緥id", dataType = "String", required = true)
+    })
+    public AjaxResult SendExpert(String id,String expertNo,String infoId) {
+
+        return AjaxResult.success(giLinkService.SendExpert(id,expertNo,infoId));
     }
 
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
index 452ea7d..0685122 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/common/SmsController.java
@@ -1,89 +1,33 @@
 package com.ruoyi.web.controller.common;
 
-import com.alibaba.fastjson2.JSON;
 import com.ruoyi.common.core.domain.AjaxResult;
-import com.ruoyi.common.utils.http.HttpUtils;
-import com.ruoyi.common.utils.sign.Md5Utils;
-import com.ruoyi.project.domain.GiApi;
-import com.ruoyi.project.domain.dto.ApiDTO;
 import com.ruoyi.project.domain.dto.SmsDTO;
-import com.ruoyi.project.service.IApiService;
+import com.ruoyi.common.utils.SmsUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang3.ObjectUtils;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
-
-import java.nio.charset.StandardCharsets;
-import java.security.MessageDigest;
-import java.security.NoSuchAlgorithmException;
-import java.util.ArrayList;
-import java.util.Base64;
-import java.util.List;
-import java.util.Map;
 
 @Slf4j
 @Api(description = "鐭俊鏈嶅姟")
 @RestController
 @RequestMapping("/sms")
 public class SmsController {
-    @Value("${sms.url}")
-    private String url="http://103.21.119.249:3131/http/send.aspx";
-    @Value("${sms.loginName}")
-    private String loginName="qddxfsyy";
-    @Value("${sms.passWord}")
-    private String passWord="Qyfy_0718";
+
     @ApiOperation("鐭俊鏈嶅姟->鍙戦�佺煭淇�")
     @PostMapping("/send")
-    public AjaxResult getApiList(@RequestBody SmsDTO DTO) {
+    public AjaxResult Send(@RequestBody SmsDTO DTO) {
         if (ObjectUtils.isNotEmpty(DTO.getTel())&&ObjectUtils.isNotEmpty(DTO.getMessageContent())) {
-            String key= keyForMd5(loginName,passWord);
-            String content="{\"LoginName\":\""+loginName+"\",\"PassWord\":\""+passWord+"\"," +
-                    "\"Key\":\""+key+"\"," +
-                    "\"Tel\":\""+DTO.getTel()+"\",\"MessageContent\":\""+DTO.getMessageContent()+"\"}";
-            String result="";
-            result= HttpUtils.sendPost(url, Base64.getEncoder().encodeToString(content.getBytes()) );
-            return AjaxResult.success(result);
+            SmsUtils sms=new SmsUtils();
+            return AjaxResult.success(sms.send(DTO.getTel(),DTO.getMessageContent()));
         } else {
             return AjaxResult.error("鐢佃瘽鍜屾秷鎭笉鑳戒负绌�");
         }
     }
-    public String keyForMd5(String name, String pass)
-    {
-        return md5(md5(pass) + pass + md5(name));
-    }
 
 
 
-    public static String md5(String str) {
-        try {
-            // 1. 鑾峰彇 MD5 娑堟伅鎽樿瀹炰緥
-            MessageDigest md = MessageDigest.getInstance("MD5");
-            // 2. 浣跨敤 UTF-8 缂栫爜灏嗗瓧绗︿覆杞崲涓哄瓧鑺傛暟缁勫苟璁$畻鍝堝笇
-            byte[] hashBytes = md.digest(str.getBytes(StandardCharsets.UTF_8));
-            // 3. 灏嗗瓧鑺傛暟缁勮浆鎹负鍗佸叚杩涘埗瀛楃涓诧紙灏忓啓锛�
-            return bytesToHex(hashBytes).toLowerCase();
-        } catch (NoSuchAlgorithmException e) {
-            // MD5 鏄爣鍑嗙畻娉曪紝姝e父鎯呭喌涓嬩笉浼氭姏鍑烘寮傚父
-            throw new RuntimeException("绯荤粺涓嶆敮鎸� MD5 绠楁硶", e);
-        }
-    }
 
-    /**
-     * 灏嗗瓧鑺傛暟缁勮浆鎹负鍗佸叚杩涘埗瀛楃涓�
-     *
-     * @param bytes 瀛楄妭鏁扮粍
-     * @return 鍗佸叚杩涘埗瀛楃涓�
-     */
-    private static String bytesToHex(byte[] bytes) {
-        StringBuilder sb = new StringBuilder(bytes.length * 2);
-        for (byte b : bytes) {
-            // 灏嗘瘡涓瓧鑺傜殑楂�4浣嶅拰浣�4浣嶅垎鍒浆鎹负鍗佸叚杩涘埗瀛楃
-            sb.append(String.format("%02x", b));
-        }
-        return sb.toString();
-    }
 
 }
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java
index e160595..6de9a8d 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/project/ServiceDonatebaseinfoReportController.java
@@ -5,6 +5,7 @@
 import com.ruoyi.common.annotation.RepeatSubmit;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.domain.model.LoginUser;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.exception.base.BaseException;
@@ -12,20 +13,17 @@
 import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.poi.ExcelUtil;
 import com.ruoyi.project.common.IdGeneratorUtils;
-import com.ruoyi.project.domain.ServiceDonatebaseinfoReport;
-import com.ruoyi.project.domain.ServiceDonatebaseinfoReportFile;
-import com.ruoyi.project.domain.ServiceTransport;
-import com.ruoyi.project.domain.VUserOrg;
-import com.ruoyi.project.service.IServiceDonatebaseinfoReportFileService;
-import com.ruoyi.project.service.IServiceDonatebaseinfoReportService;
-import com.ruoyi.project.service.IServiceTransportService;
-import com.ruoyi.project.service.IVUserOrgService;
+import com.ruoyi.project.domain.*;
+import com.ruoyi.project.service.*;
 import com.ruoyi.system.domain.SysConfig;
 import com.ruoyi.system.service.ISysConfigService;
+import com.ruoyi.system.service.ISysUserService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.collections4.CollectionUtils;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.web.bind.annotation.*;
 
 import java.util.HashMap;
@@ -52,6 +50,8 @@
     private IVUserOrgService vUserOrgService;
     @Autowired
     private IServiceTransportService serviceTransport;
+    @Autowired
+    private IGiLinkService linkService;
 
 
     /**
@@ -141,8 +141,12 @@
 
         boolean save = serviceDonatebaseinfoReportService.save(serviceDonatebaseinfoReport);
         //灏嗙敓鎴愮殑鏂囦欢鍦板潃瀛樺偍鍒版暟鎹簱涓�
-        if (save)
-            serviceDonatebaseinfoReportFileService.addList(serviceDonatebaseinfoReport.getAnnexfilesList(), serviceDonatebaseinfoReport.getCaseNo(), getNickName(), serviceDonatebaseinfoReport.getId());
+        if (save) {
+            boolean res= serviceDonatebaseinfoReportFileService.addList(serviceDonatebaseinfoReport.getAnnexfilesList(), serviceDonatebaseinfoReport.getCaseNo(), getNickName(), serviceDonatebaseinfoReport.getId());
+            if(res){
+                linkService.SendReport(serviceDonatebaseinfoReport.getId(),serviceDonatebaseinfoReport.getCoordinatorNo(),serviceDonatebaseinfoReport.getToHospital());
+            }
+        }
         return toAjax(save);
     }
 
diff --git a/ruoyi-admin/src/main/resources/application-druid.yml b/ruoyi-admin/src/main/resources/application-druid.yml
index 6c09fdd..0f467ee 100644
--- a/ruoyi-admin/src/main/resources/application-druid.yml
+++ b/ruoyi-admin/src/main/resources/application-druid.yml
@@ -103,3 +103,7 @@
   url: http://103.21.119.249:3131/http/send.aspx
   loginName: qddxfsyy
   passWord: Qyfy_0718
+
+link:
+  report_url: http://localhost:8095/pages/case/transferinfo
+  expert_url: http://localhost:8095/pages/ethicalReview/ethicalInfo
\ No newline at end of file
diff --git a/ruoyi-admin/src/main/resources/application-prod.yml b/ruoyi-admin/src/main/resources/application-prod.yml
index 6eda976..d843355 100644
--- a/ruoyi-admin/src/main/resources/application-prod.yml
+++ b/ruoyi-admin/src/main/resources/application-prod.yml
@@ -115,4 +115,8 @@
   # 鏄惁寮�鍚痵wagger
   enabled: false
   # 璇锋眰鍓嶇紑
-  pathMapping: /
\ No newline at end of file
+  pathMapping: /
+
+link:
+  report_url: http://localhost:8095/pages/case/transferinfo
+  expert_url: http://localhost:8095/pages/ethicalReview/ethicalInfo
\ No newline at end of file
diff --git a/ruoyi-admin/target/classes/application-prod.yml b/ruoyi-admin/target/classes/application-prod.yml
index 6eda976..d843355 100644
--- a/ruoyi-admin/target/classes/application-prod.yml
+++ b/ruoyi-admin/target/classes/application-prod.yml
@@ -115,4 +115,8 @@
   # 鏄惁寮�鍚痵wagger
   enabled: false
   # 璇锋眰鍓嶇紑
-  pathMapping: /
\ No newline at end of file
+  pathMapping: /
+
+link:
+  report_url: http://localhost:8095/pages/case/transferinfo
+  expert_url: http://localhost:8095/pages/ethicalReview/ethicalInfo
\ No newline at end of file
diff --git a/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/GiLinkController.class b/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/GiLinkController.class
index f923aae..e0788c7 100644
--- a/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/GiLinkController.class
+++ b/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/GiLinkController.class
Binary files differ
diff --git a/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class b/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class
index e7b4be7..bced452 100644
--- a/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class
+++ b/ruoyi-admin/target/classes/com/ruoyi/web/controller/common/SmsController.class
Binary files differ
diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java
new file mode 100644
index 0000000..76dd5a4
--- /dev/null
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/utils/SmsUtils.java
@@ -0,0 +1,65 @@
+package com.ruoyi.common.utils;
+
+import com.ruoyi.common.utils.http.HttpUtils;
+import org.springframework.beans.factory.annotation.Value;
+
+import java.nio.charset.StandardCharsets;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.util.Base64;
+
+public class SmsUtils {
+    @Value("${sms.url}")
+    private String url="http://103.21.119.249:3131/http/send.aspx";
+    @Value("${sms.loginName}")
+    private String loginName="qddxfsyy";
+    @Value("${sms.passWord}")
+    private String passWord="Qyfy_0718";
+
+    public  String send(String tel,String messageContent){
+
+        String key= keyForMd5(loginName,passWord);
+        String content="{\"LoginName\":\""+loginName+"\",\"PassWord\":\""+passWord+"\"," +
+                "\"Key\":\""+key+"\"," +
+                "\"Tel\":\""+tel+"\",\"MessageContent\":\""+messageContent+"\"}";
+        String result="";
+        result= HttpUtils.sendPost(url, Base64.getEncoder().encodeToString(content.getBytes()) );
+
+        return result;
+    }
+
+    public String keyForMd5(String name, String pass)
+    {
+        return md5(md5(pass) + pass + md5(name));
+    }
+
+
+
+    public static String md5(String str) {
+        try {
+            // 1. 鑾峰彇 MD5 娑堟伅鎽樿瀹炰緥
+            MessageDigest md = MessageDigest.getInstance("MD5");
+            // 2. 浣跨敤 UTF-8 缂栫爜灏嗗瓧绗︿覆杞崲涓哄瓧鑺傛暟缁勫苟璁$畻鍝堝笇
+            byte[] hashBytes = md.digest(str.getBytes(StandardCharsets.UTF_8));
+            // 3. 灏嗗瓧鑺傛暟缁勮浆鎹负鍗佸叚杩涘埗瀛楃涓诧紙灏忓啓锛�
+            return bytesToHex(hashBytes).toLowerCase();
+        } catch (NoSuchAlgorithmException e) {
+            // MD5 鏄爣鍑嗙畻娉曪紝姝e父鎯呭喌涓嬩笉浼氭姏鍑烘寮傚父
+            throw new RuntimeException("绯荤粺涓嶆敮鎸� MD5 绠楁硶", e);
+        }
+    }
+    /**
+     * 灏嗗瓧鑺傛暟缁勮浆鎹负鍗佸叚杩涘埗瀛楃涓�
+     *
+     * @param bytes 瀛楄妭鏁扮粍
+     * @return 鍗佸叚杩涘埗瀛楃涓�
+     */
+    private static String bytesToHex(byte[] bytes) {
+        StringBuilder sb = new StringBuilder(bytes.length * 2);
+        for (byte b : bytes) {
+            // 灏嗘瘡涓瓧鑺傜殑楂�4浣嶅拰浣�4浣嶅垎鍒浆鎹负鍗佸叚杩涘埗瀛楃
+            sb.append(String.format("%02x", b));
+        }
+        return sb.toString();
+    }
+}
diff --git a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
index b8b1fda..700db2d 100644
--- a/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
+++ b/ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -101,7 +101,7 @@
                 // 杩囨护璇锋眰
                 .authorizeRequests()
                 // 瀵逛簬鐧诲綍login 娉ㄥ唽register 楠岃瘉鐮乧aptchaImage 鍏佽鍖垮悕璁块棶
-                .antMatchers("/login", "/openidlogin", "/register", "/captchaImage", "/getToken").anonymous()
+                .antMatchers("/login", "/openidlogin", "/register", "/captchaImage", "/getToken","/getCode").anonymous()
                 .antMatchers(
                         HttpMethod.GET,
                         "/",
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiLink.java b/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiLink.java
index c815595..bfb5480 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiLink.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/domain/GiLink.java
@@ -1,6 +1,7 @@
 package com.ruoyi.project.domain;
 
 import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.ruoyi.common.annotation.Excel;
 import io.swagger.annotations.ApiModel;
@@ -32,5 +33,6 @@
     private Integer isDel;
 
     @ApiModelProperty("鍒涘缓鏃堕棿")
+    @TableField(exist = false)
     private String createTime;
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/GiLinkMapper.java b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/GiLinkMapper.java
index c9b6a90..adfc7da 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/mapper/GiLinkMapper.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/mapper/GiLinkMapper.java
@@ -1,7 +1,14 @@
 package com.ruoyi.project.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.common.core.domain.entity.BasePrcaddressDict;
+import com.ruoyi.project.domain.BaseAnnextype;
 import com.ruoyi.project.domain.GiLink;
 
+import java.util.List;
+
 public interface GiLinkMapper extends BaseMapper<GiLink> {
+
+    Integer getMaxID();
+
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/IGiLinkService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/IGiLinkService.java
index c26902e..9dacc9e 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/IGiLinkService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/IGiLinkService.java
@@ -5,6 +5,11 @@
 
 public interface IGiLinkService extends IService<GiLink>{
 
-    Long Add(GiLink model);
+    String Add(GiLink model);
+
+    String SendReport(Long id,String coordinatorNo,String toHospital);
+
+    String SendExpert(String id,String expertNo,String infoId);
+
 
 }
diff --git a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/GiLinkService.java b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/GiLinkService.java
index f05f430..f3aaecd 100644
--- a/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/GiLinkService.java
+++ b/ruoyi-project/src/main/java/com/ruoyi/project/service/impl/GiLinkService.java
@@ -1,20 +1,88 @@
 package com.ruoyi.project.service.impl;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.ruoyi.common.core.domain.entity.SysUser;
+import com.ruoyi.common.utils.SmsUtils;
 import com.ruoyi.project.domain.GiLink;
 import com.ruoyi.project.mapper.ApiMapper;
 import com.ruoyi.project.mapper.GiLinkMapper;
 import com.ruoyi.project.service.IGiLinkService;
+import com.ruoyi.system.service.ISysUserService;
+import org.apache.commons.lang3.ObjectUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Service;
+
+import java.util.Random;
 
 @Service
 public class GiLinkService  extends ServiceImpl<GiLinkMapper, GiLink> implements IGiLinkService {
     @Autowired
     GiLinkMapper mapper;
+    @Autowired
+    private ISysUserService userService;
+    @Autowired
+    private IGiLinkService linkService;
+    @Value("${link.report_url}")
+    private String reportUrl;
+    @Value("${link.expert_url}")
+    private String expertUrl;
+    public String Add(GiLink model) {
+        Integer maxid = mapper.getMaxID();
+        Random rand = new Random();
+        String code = maxid + String.format("%x", rand.nextInt(100));
+        model.setCode(code);
+        Integer res = mapper.insert(model);
+        if (res == 1)
+            return code;
+        else
+            return "";
+    }
+    /**
+     * 涓婃姤鍙戦�佺煭淇�
+     * @param id 涓婃姤id
+     * @param coordinatorNo 鍗忚皟鍛樼紪鍙�
+     * @param toHospital 涓婃姤鍖婚櫌
+     */
+    public String SendReport(Long id,String coordinatorNo,String toHospital){
+        String res="";
+        SysUser user= userService.selectUserByUserName(coordinatorNo);
+        if(user!=null&& ObjectUtils.isNotEmpty(user.getPhonenumber())) {
+            GiLink link=new GiLink();
+            link.setUserName(user.getUserName());
+            link.setUserPhone(user.getPhonenumber());
+            link.setExtContent("{\"id\":\""+id+"\"}");
+            String code=linkService.Add(link);
+            reportUrl += "?code=" + code;
+            String content = "妗堜緥涓婃姤閫氱煡锛氥�愰潚宀涘ぇ瀛﹂檮灞炲尰闄€��" + toHospital
+                    + "涓婃姤娼滃湪鎹愮尞妗堜緥锛岃鐧诲綍OPO绯荤粺鏌ョ湅璇︾粏淇℃伅锛屽強鏃惰繘琛屽鎺ャ�傜櫥褰曢摼鎺ワ細" + reportUrl + " 銆�";
+            SmsUtils sms=new SmsUtils();
+            res=sms.send(user.getPhonenumber(),content);
+        }
+        return res;
+    }
 
-    public Long Add(GiLink model){
-
-        return 1L;
+    /**
+     * 涓撳鍙戦�佺煭淇�
+     * @param id 涓撳鎰忚id
+     * @param expertNo 涓撳缂栧彿
+     * @param infoId 妗堜緥id
+     */
+    public String SendExpert(String id,String expertNo,String infoId){
+        String res="";
+        SysUser user= userService.selectUserByUserName(expertNo);
+        if(user!=null&& ObjectUtils.isNotEmpty(user.getPhonenumber())) {
+            GiLink link=new GiLink();
+            link.setUserName(user.getUserName());
+            link.setUserPhone(user.getPhonenumber());
+            link.setExtContent("{\"id\":\""+id+"\",\"type\": \"review\",\"status\": \"1\",\"infoId\": \""+infoId+"\"}");
+            String code=linkService.Add(link);
+            expertUrl += "?code=" + code;
+            String content = "浼︾悊涓撳瀹℃煡閫氱煡锛氥�愰潚宀涘ぇ瀛﹂檮灞炲尰闄€�戝皧鏁殑涓撳鎮ㄥソ锛佹偍鏈夌揣鎬ヤ汉浣撳櫒瀹樼Щ妞嶄鸡鐞嗗鏌ョ敵璇峰緟澶勭悊锛�" +
+                    "璇峰姟蹇呬簬1灏忔椂鍐呯櫥褰曞尰闄PO绯荤粺杩涜瀹℃壒銆傜櫥褰曢摼鎺ワ細 " + expertUrl + "銆傝阿璋� 銆�";
+            SmsUtils sms=new SmsUtils();
+            res=sms.send(user.getPhonenumber(),content);
+        }
+        return res;
     }
 }
diff --git a/ruoyi-project/src/main/resources/mapper/project/GiLinkMapper.xml b/ruoyi-project/src/main/resources/mapper/project/GiLinkMapper.xml
new file mode 100644
index 0000000..6fb7481
--- /dev/null
+++ b/ruoyi-project/src/main/resources/mapper/project/GiLinkMapper.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ruoyi.project.mapper.GiLinkMapper">
+
+    <select id="getMaxID" resultType="java.lang.Integer">
+        select ifnull(max(id),0)  from gi_link
+
+    </select>
+</mapper>
\ No newline at end of file
diff --git a/ruoyi-project/target/classes/com/ruoyi/project/domain/GiLink.class b/ruoyi-project/target/classes/com/ruoyi/project/domain/GiLink.class
index 211677a..b6c1131 100644
--- a/ruoyi-project/target/classes/com/ruoyi/project/domain/GiLink.class
+++ b/ruoyi-project/target/classes/com/ruoyi/project/domain/GiLink.class
Binary files differ
diff --git a/ruoyi-project/target/classes/com/ruoyi/project/mapper/GiLinkMapper.class b/ruoyi-project/target/classes/com/ruoyi/project/mapper/GiLinkMapper.class
index 78e6510..ba08b14 100644
--- a/ruoyi-project/target/classes/com/ruoyi/project/mapper/GiLinkMapper.class
+++ b/ruoyi-project/target/classes/com/ruoyi/project/mapper/GiLinkMapper.class
Binary files differ
diff --git a/ruoyi-project/target/classes/com/ruoyi/project/service/IGiLinkService.class b/ruoyi-project/target/classes/com/ruoyi/project/service/IGiLinkService.class
index a2e8a39..2ab1850 100644
--- a/ruoyi-project/target/classes/com/ruoyi/project/service/IGiLinkService.class
+++ b/ruoyi-project/target/classes/com/ruoyi/project/service/IGiLinkService.class
Binary files differ
diff --git a/ruoyi-project/target/classes/com/ruoyi/project/service/impl/GiLinkService.class b/ruoyi-project/target/classes/com/ruoyi/project/service/impl/GiLinkService.class
index 5c9c43e..3650d35 100644
--- a/ruoyi-project/target/classes/com/ruoyi/project/service/impl/GiLinkService.class
+++ b/ruoyi-project/target/classes/com/ruoyi/project/service/impl/GiLinkService.class
Binary files differ

--
Gitblit v1.9.3