Quellcode durchsuchen

添加手动发送短信

liujiankang vor 7 Jahren
Ursprung
Commit
84afad5920

+ 9 - 0
watero-rst-interface/src/main/java/com/iamberry/rst/faces/sms/SmsService.java

@@ -9,5 +9,14 @@ public interface SmsService {
     //定时推送待确认短信
     public ResponseJson sms(String phone,Integer type,Integer num);
 
+    /**
+     * 向指定手机发送短信 返回发送结果
+     * @param phone	电话
+     * @param text	短信内容
+     * @return
+     */
+    public String sendOtherCMS(String phone, String text);
+
+
 
 }

+ 2 - 1
watero-rst-service/src/main/java/com/iamberry/rst/service/sms/SmsServiceImpl.java

@@ -88,11 +88,12 @@ public class SmsServiceImpl implements SmsService {
      * @param text	短信内容
      * @return
      */
-    private String sendOtherCMS(String phone, String text) {
+    public String sendOtherCMS(String phone, String text) {
         String results = sendSms(text,phone);
         //logger.info("向手机:" + phone + ",推送确认短信:" + text + ",返回结果-->>" + results);
         JSONObject json =  JSONObject.fromObject(results);
         String resultcod  = json.get("code").toString();
+        System.out.println("短信返回值:"+json);
         if("0".equals(resultcod)){
             return "SUCCESS";
         }else{

+ 3 - 0
watero-rst-service/src/main/java/com/iamberry/rst/util/SmsConfig.java

@@ -23,6 +23,8 @@ public class SmsConfig {
     public static String THROUGH_TEXT="";
     /**		通知发货模板	*/
     public static String DELIVERY_TEXT="";
+    /**		通知发送滤芯短信	*/
+    public static String SEND_NOTICE="";
 
 
     static {
@@ -41,6 +43,7 @@ public class SmsConfig {
             INTER_SMS_KEY=pro.getProperty("INTER_SMS_KEY");
             THROUGH_TEXT=pro.getProperty("THROUGH_TEXT");
             DELIVERY_TEXT=pro.getProperty("DELIVERY_TEXT");
+            SEND_NOTICE=pro.getProperty("SEND_NOTICE");
         } catch (Exception e) {
             e.printStackTrace();
         }

+ 70 - 0
watero-rst-web/src/main/java/com/iamberry/rst/controllers/pts/PtsCodeController.java

@@ -0,0 +1,70 @@
+package com.iamberry.rst.controllers.pts;
+
+import com.iamberry.rst.controllers.sys.SysController;
+import com.iamberry.rst.faces.sms.SmsService;
+import com.iamberry.rst.utils.ExcelUtil;
+import com.iamberry.wechat.tools.ResponseJson;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+import java.text.MessageFormat;
+import java.util.List;
+
+import static com.iamberry.rst.util.SmsConfig.SEND_NOTICE;
+
+/**
+ * Created by Administrator on 2017/10/24.
+ */
+@Controller
+@RequestMapping("/admin/code")
+public class PtsCodeController {
+    private static Logger logger = LoggerFactory.getLogger(SysController.class);
+
+    @Autowired
+    private SmsService smsService;
+    /**
+     * 手动向特定手机发送滤芯故障短信
+     * @param response
+     * @return
+     */
+    /*@RequestMapping("/failureInform")*/
+    @ResponseBody
+    public String informShipping(HttpServletResponse response, @RequestParam("file") String file)throws IOException  {
+        String msg = "";
+        Integer successNumber = 0;
+        Integer errorNumber = 0;
+        List<String> listString  = ExcelUtil.readExcelHead(file);
+        List<String> phones =   ExcelUtil.readCell2(file,listString.get(1));//手机号
+        List<String> kuyaidi =   ExcelUtil.readCell2(file,listString.get(6));//快递公司
+        List<String> danhao =   ExcelUtil.readCell2(file,listString.get(7));//快递单号
+            if(phones.size() != kuyaidi.size() || phones.size() != danhao.size()){
+                return "数据不合格,请检查文档内的数据是否正常!";
+            }
+            for(int i = 0;i< phones.size();i++){
+                String kd = "";
+                if(kuyaidi.get(i).indexOf("申通") != -1){
+                    kd = "申通";
+                }else if(kuyaidi.get(i).indexOf("EMS") != -1){
+                    kd = "EMS";
+                }else{
+                    return "快递公司出错,请检查文档内的数据是否正常!";
+                }
+                String text = MessageFormat.format(SEND_NOTICE, kd + " "+danhao.get(i));
+                msg = smsService.sendOtherCMS(phones.get(i),text);
+                if(msg.equals("SUCCESS")){
+                    successNumber++;
+                }else{
+                    errorNumber++;
+                }
+            }
+            msg = "共发送"+(successNumber+errorNumber)+"条,成功:"+successNumber+"条,失败:"+errorNumber+"条。";
+        return msg;
+    }
+}

+ 64 - 1
watero-rst-web/src/main/java/com/iamberry/rst/utils/ExcelUtil.java

@@ -61,7 +61,12 @@ public class ExcelUtil {
 
         return heads;
     }
-
+    /**
+     * 读取Excel内容
+     * 去除重复
+     * @param filePath
+     * @return
+     */
     public static List<String> readCell(String filePath, String cellName) throws IOException {
         // 判断文件是否存在
         File file = new File(filePath);
@@ -116,6 +121,64 @@ public class ExcelUtil {
         Collection<String> valueCollection = map.values();
         return new ArrayList<String>(valueCollection);
     }
+    /**
+     * 读取Excel内容
+     * 不去除重复
+     * @param filePath
+     * @return
+     */
+    public static List<String> readCell2(String filePath, String cellName) throws IOException {
+        // 判断文件是否存在
+        File file = new File(filePath);
+        if (!file.exists()) {
+            return null;
+        }
+        // 获取Workbook
+        InputStream inputStream = new BufferedInputStream(new FileInputStream(file));
+        Workbook wb  = null;
+        if (filePath.endsWith("xls")) {
+            wb = new HSSFWorkbook(inputStream);
+        } else {
+            wb = new XSSFWorkbook(inputStream);
+        }
+        inputStream.close();
+
+        // 获取Sheet
+        Sheet sheet = wb.getSheetAt(0);
+        Iterator<Row> rows = sheet.rowIterator();
+
+        // 获取第一行的数据,匹配到表头
+        int cellNum = -1;
+        Row row = rows.next();
+        Iterator<Cell> cells = row.cellIterator();
+        while (cells.hasNext()) {
+            Cell cell = cells.next();
+            if (cellName.trim().equals(cell.getStringCellValue().trim())) {
+                cellNum = cell.getColumnIndex();break;
+            }
+        }
+        if (cellNum == -1) return null;
+
+        // 读取数据
+        ArrayList<String> arreyMap = new ArrayList<String>();
+        while (rows.hasNext()) {
+            Row temp = rows.next();
+            Cell cell = temp.getCell(cellNum);
+            // 非空的列需要使用
+            if (cell == null) {
+                continue;
+            }
+            String name = getValue(cell);
+            if (name != null && !"".equals(name.trim())) {
+                String cellValue = getValue(cell);
+                arreyMap.add(cellValue);
+            }
+        }
+
+        // Map to List
+        /*Collection<String> valueCollection = map.values();*/
+        return arreyMap;
+    }
 
 
     public static List<EfastOrder> readCell(String filePath, String productName, String[] maps,

+ 2 - 0
watero-rst-web/src/main/resources/platform.properties

@@ -30,6 +30,8 @@ REJECTED_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u6709{0}\u6761\u8BA2\u5355
 THROUGH_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u6709{0}\u6761\u8BA2\u5355\u5DF2\u5BA1\u6838\u901A\u8FC7\uFF01
 #\u901A\u77E5\u53D1\u8D27\u77ED\u4FE1
 DELIVERY_TEXT=\u3010\u7231\u8D1D\u6E90RST\u3011\u60A8\u67091\u4E2A\u5730\u63A8\u8BA2\u5355\u5F85\u53D1\u8D27\uFF0C\u8BF7\u53CA\u65F6\u5904\u7406\u3002
+#\u901A\u77E5\u53D1\u9001\u6EE4\u82AF\u77ED\u4FE1
+SEND_NOTICE = \u3010\u7F8E\u56FDWaterO\u3011\u514D\u8D39\u4E3A\u60A8\u66F4\u6362\u7684\u6EE4\u82AF\u5DF2\u5BC4\u51FA\uFF0C\u5FEB\u9012\u4FE1\u606F\uFF1A{0}\uFF0C\u8BF7\u6CE8\u610F\u67E5\u6536\u3002\u6536\u8D27\u540E\u8BF7\u52A1\u5FC5\u4E00\u6B21\u6574\u4F53\u66F4\u6362\u51C0\u6C34\u673A\u4E2DT1\u3001T2\u3001T3\u6EE4\u82AF\u3002\u7ED9\u60A8\u9020\u6210\u4E0D\u4FBF\u6DF1\u611F\u62B1\u6B49\uFF0C\u611F\u8C22\u60A8\u4F7F\u7528WaterO\u51C0\u6C34\u673A\uFF0C\u795D\u60A8\u751F\u6D3B\u6109\u5FEB\uFF01
 #---SMS end---#
 #weixin
 # pubNo