Selaa lähdekoodia

工单处理功能提交

user5 8 kuukautta sitten
vanhempi
commit
baf133d67a

+ 13 - 0
jeeplus-modules/jeeplus-test/src/main/java/com/jeeplus/test/garbageClearance/controller/LookOverController.java

@@ -9,6 +9,7 @@ import com.jeeplus.notify.service.dto.NotifyDTO;
 import com.jeeplus.sys.service.OfficeService;
 import com.jeeplus.sys.service.dto.OfficeDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.ALiYunSmsUtil;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.garbageClearance.domain.LookOver;
@@ -26,6 +27,7 @@ import org.springframework.http.ResponseEntity;
 import org.springframework.web.bind.annotation.*;
 
 import javax.validation.Valid;
+import java.io.IOException;
 import java.util.*;
 
 /**
@@ -130,6 +132,17 @@ public class LookOverController {
             notifyDTO.setLookOverId(lookOver.getId());
 
             notifyService.saveOrUpdate(notifyDTO);
+
+            //处理完给村负责人发送短信通知
+            try {
+                //获取下一步处理人的手机号
+                String mobile = user.getMobile();
+                //根据手机号进行发送短信
+                //发送短信通知
+                ALiYunSmsUtil.tourInformSendSms(mobile,"XS-J" + lookOver.getNo());
+            } catch (Exception e) {
+                e.printStackTrace();
+            }
             return ResponseEntity.ok("保存成功");
         }
     }

+ 12 - 0
jeeplus-modules/jeeplus-test/src/main/java/com/jeeplus/test/wdt/disposeRubbish/controller/DisposeRubbishController.java

@@ -5,6 +5,7 @@ import com.jeeplus.common.utils.ResponseUtil;
 import com.jeeplus.sys.service.OfficeService;
 import com.jeeplus.sys.service.dto.OfficeDTO;
 import com.jeeplus.sys.service.dto.UserDTO;
+import com.jeeplus.sys.utils.ALiYunSmsUtil;
 import com.jeeplus.sys.utils.StringUtils;
 import com.jeeplus.sys.utils.UserUtils;
 import com.jeeplus.test.garbageClearance.domain.LookOver;
@@ -143,6 +144,17 @@ public class DisposeRubbishController {
                 }
                 overService.updateStatus(lookOver);
             }
+
+            if("5".equals(disposeRubbish.getStatus())){
+                //处理完给村负责人发送短信通知
+                try {
+                    //根据手机号进行发送短信
+                    //发送短信通知
+                    ALiYunSmsUtil.transferInformSendSms(disposeRubbish.getClearUserMobile(),disposeRubbish.getNo());
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
         }
         return ResponseUtil.newInstance ( ).add("businessTable", "dispose_rubbish").add("businessId", disposeRubbish.getId()).ok ("保存成功");
     }

+ 1 - 1
jeeplus-modules/jeeplus-test/src/main/java/com/jeeplus/test/wdt/disposeRubbish/service/DisposeRubbishService.java

@@ -99,7 +99,7 @@ public class DisposeRubbishService extends ServiceImpl<DisposeRubbishMapper, Dis
                 if(null != overServiceById && StringUtils.isNotBlank(overServiceById.getNo())){
                     WorkOverNo workOverNo = new WorkOverNo();
                     workOverNo.setId(overServiceById.getId());
-                    workOverNo.setNo("XS_J" + overServiceById.getNo());
+                    workOverNo.setNo("XS-J" + overServiceById.getNo());
                     workOverNoList.add(workOverNo);
                 }
             }

+ 18 - 0
jeeplus-platform/jeeplus-admin/pom.xml

@@ -40,6 +40,24 @@
             <artifactId>log4j</artifactId>
             <version>1.2.17</version>
         </dependency>
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>dysmsapi20170525</artifactId>
+            <version>3.0.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-core</artifactId>
+            <version>4.5.0</version>
+        </dependency>
+
+        <dependency>
+            <groupId>com.aliyun</groupId>
+            <artifactId>aliyun-java-sdk-dysmsapi</artifactId>
+            <version>2.1.0</version>
+        </dependency>
+
     </dependencies>
 
 

+ 25 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/controller/UserController.java

@@ -23,6 +23,7 @@ import com.jeeplus.sys.domain.User;
 import com.jeeplus.sys.service.UserService;
 import com.jeeplus.sys.service.dto.UserDTO;
 import com.jeeplus.sys.service.mapstruct.UserWrapper;
+import com.jeeplus.sys.utils.ALiYunSmsUtil;
 import com.jeeplus.sys.utils.DictUtils;
 import com.jeeplus.sys.utils.MenuUtils;
 import com.jeeplus.sys.utils.UserUtils;
@@ -332,6 +333,30 @@ public class UserController {
                 j.put("success",false);
                 j.put("message","短信发送失败!");
             }*/
+
+            try{
+                //调用工具类返回结果
+                result = ALiYunSmsUtil.loginSendSms(mobile, randomCode);
+                Integer statusCode = (Integer) result.get("statusCode");
+                if (200 == statusCode) {
+                    j.put("success",true);
+                    j.put("message","短信发送成功!");
+                    //存放验证码
+                    //以手机号+为key 五分钟为时效 将验证码进行短期存储
+                    redisUtils.setEx(mobile+ "loginPassword", randomCode, 300, TimeUnit.SECONDS);
+                }else if(400 == statusCode){
+                    j.put("success",false);
+                    j.put("message","手机号获取验证码次数已达每日上限!");
+                }else{
+                    j.put("success",false);
+                    j.put("message","短信发送失败,错误代码:101,请联系管理员!");
+                    j.put("ErrorXml",result);
+                }
+            }catch (Exception e){
+                e.printStackTrace();
+                j.put("success",false);
+                j.put("message","短信发送失败!");
+            }
         } else {
             j.put("success",false);
             j.put("message","当前手机号未注册!请联系管理员");

+ 112 - 0
jeeplus-platform/jeeplus-admin/src/main/java/com/jeeplus/sys/utils/ALiYunSmsUtil.java

@@ -0,0 +1,112 @@
+package com.jeeplus.sys.utils;
+
+import com.aliyun.dysmsapi20170525.Client;
+import com.aliyun.dysmsapi20170525.models.SendSmsRequest;
+import com.aliyun.dysmsapi20170525.models.SendSmsResponse;
+import com.aliyun.tea.TeaException;
+import com.aliyun.teaopenapi.models.Config;
+
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Random;
+
+/**
+ * @author: 徐滕
+ * @version: 2024-09-06 11:20
+ */
+public class ALiYunSmsUtil {
+    private static final String ACCESS_KEY_ID = "LTAI5tMtykpNyYhfHjdneobt";//AccessKey自己账号的
+    private static final String ACCESS_KEY_SECRET = "AHE0Mdv5y5zW1h9xwHvJwzkXoKKrAd";
+    private static final String ENDPOINT = "dysmsapi.aliyuncs.com";//固定死
+    private static final String SIGNNAME = "大屏展示";//签名名称
+    private static final String TCODE = "";//模版的编号
+
+    public static HashMap<String,Object> loginSendSms(String phoneNumbers, String randomCode) throws Exception {
+        HashMap<String,Object> map = new HashMap<>();
+        Config config = new Config()
+                .setAccessKeyId(ACCESS_KEY_ID)
+                .setAccessKeySecret(ACCESS_KEY_SECRET)
+                .setEndpoint(ENDPOINT);
+
+        Client client = new Client(config);
+        SendSmsRequest sendSmsRequest = new SendSmsRequest()
+                .setPhoneNumbers(phoneNumbers)
+                .setSignName(SIGNNAME)
+                .setTemplateCode("SMS_472770050")
+                //此处是设计模版的时候预留的变量${code}就验证码,用下面的随机生成4位数字传入
+                .setTemplateParam(String.format("{\"code\":\"%s\"}", randomCode));
+
+        try {
+            SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
+            System.out.println(sendSmsResponse);
+            map.put("statusCode",sendSmsResponse.getStatusCode());
+            return map;
+        } catch (TeaException error) {
+            return map;
+        }
+    }
+
+    /**
+     * 发送通知(巡视通知)
+     * @param phoneNumbers
+     * @param no
+     * @return
+     * @throws Exception
+     */
+    public static HashMap<String,Object> tourInformSendSms(String phoneNumbers, String no) throws Exception {
+        HashMap<String,Object> map = new HashMap<>();
+        Config config = new Config()
+                .setAccessKeyId(ACCESS_KEY_ID)
+                .setAccessKeySecret(ACCESS_KEY_SECRET)
+                .setEndpoint(ENDPOINT);
+
+        Client client = new Client(config);
+        SendSmsRequest sendSmsRequest = new SendSmsRequest()
+                .setPhoneNumbers(phoneNumbers)
+                .setSignName(SIGNNAME)
+                .setTemplateCode("SMS_472680059")
+                //此处是设计模版的时候预留的变量${code}就验证码,用下面的随机生成4位数字传入
+                .setTemplateParam(String.format("{\"no\":\"%s\"}", no));
+
+        try {
+            SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
+            System.out.println(sendSmsResponse);
+            map.put("statusCode",sendSmsResponse.getStatusCode());
+            return map;
+        } catch (TeaException error) {
+            return map;
+        }
+    }
+
+    /**
+     * 发送通知(转运通知)
+     * @param phoneNumbers
+     * @param no
+     * @return
+     * @throws Exception
+     */
+    public static HashMap<String,Object> transferInformSendSms(String phoneNumbers, String no) throws Exception {
+        HashMap<String,Object> map = new HashMap<>();
+        Config config = new Config()
+                .setAccessKeyId(ACCESS_KEY_ID)
+                .setAccessKeySecret(ACCESS_KEY_SECRET)
+                .setEndpoint(ENDPOINT);
+
+        Client client = new Client(config);
+        SendSmsRequest sendSmsRequest = new SendSmsRequest()
+                .setPhoneNumbers(phoneNumbers)
+                .setSignName(SIGNNAME)
+                .setTemplateCode("SMS_472775053")
+                //此处是设计模版的时候预留的变量${code}就验证码,用下面的随机生成4位数字传入
+                .setTemplateParam(String.format("{\"no\":\"%s\"}", no));
+
+        try {
+            SendSmsResponse sendSmsResponse = client.sendSms(sendSmsRequest);
+            System.out.println(sendSmsResponse);
+            map.put("statusCode",sendSmsResponse.getStatusCode());
+            return map;
+        } catch (TeaException error) {
+            return map;
+        }
+    }
+}