Ver código fonte

Merge remote-tracking branch 'origin/master'

# Conflicts:
#	pom.xml
吴洪双 5 anos atrás
pai
commit
71d7ae4cd4

+ 1 - 1
src/main/java/com/shawn/model/dto/ResultMessage.java

@@ -22,5 +22,5 @@ public class ResultMessage<E> implements Serializable {
     private boolean code; // Error code
     private String message; // Error message
     private E data; // Error message
-
+    private String token;
 }

+ 42 - 0
src/main/java/com/shawn/util/JavaWebToken.java

@@ -0,0 +1,42 @@
+package com.shawn.util;
+
+
+import io.jsonwebtoken.Jwts;
+import io.jsonwebtoken.SignatureAlgorithm;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.crypto.spec.SecretKeySpec;
+import javax.xml.bind.DatatypeConverter;
+import java.security.Key;
+import java.util.Map;
+
+public class JavaWebToken {
+    private static Logger log = LoggerFactory.getLogger(JavaWebToken.class);
+
+    //该方法使用HS256算法和Secret:bankgl生成signKey
+    private static Key getKeyInstance() {
+        //We will sign our JavaWebToken with our ApiKey secret
+        SignatureAlgorithm signatureAlgorithm = SignatureAlgorithm.HS256;
+        byte[] apiKeySecretBytes = DatatypeConverter.parseBase64Binary("bankgl");
+        Key signingKey = new SecretKeySpec(apiKeySecretBytes, signatureAlgorithm.getJcaName());
+        return signingKey;
+    }
+
+    //使用HS256签名算法和生成的signingKey最终的Token,claims中是有效载荷
+    public static String createJavaWebToken(Map<String, Object> claims) {
+        return Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS256, getKeyInstance()).compact();
+    }
+
+    //解析Token,同时也能验证Token,当验证失败返回null
+    public static Map<String, Object> parserJavaWebToken(String jwt) {
+        try {
+            Map<String, Object> jwtClaims =
+                    Jwts.parser().setSigningKey(getKeyInstance()).parseClaimsJws(jwt).getBody();
+            return jwtClaims;
+        } catch (Exception e) {
+            log.error("json web token verify failed");
+            return null;
+        }
+    }
+}

+ 5 - 1
src/main/java/com/shawn/web/controller/TAdminController.java

@@ -8,6 +8,7 @@ package com.shawn.web.controller;
 import java.util.*;
 
 
+import com.shawn.util.JavaWebToken;
 import org.apache.commons.lang.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
@@ -56,10 +57,13 @@ public class TAdminController extends BaseController<TAdmin,TAdminExample,TAdmin
 		criteria.andPasswordEqualTo(param.getPassword());
 		List<TAdmin> list = tAdminService.selectByOption(example);
 		if(list.size()>0){
+			Map<String,Object> m = new HashMap<String,Object>();
+			m.put("userId",list.get(0).getId());
+			String token = JavaWebToken.createJavaWebToken(m);                // 根据存在用户的id生成token字符串
 			TAdmin admin = tAdminService.selectEntityById(list.get(0).getId());
 //			admin.getIfOpen();
 			return ResponseEntity.status(HttpStatus.OK)
-					.body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS"));
+					.body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS").setToken(token));
 		}
 		return ResponseEntity.status(HttpStatus.OK)
 				.body(new ResultMessage().setCode(false).setData(null).setMessage("用户名或密码错误"));

+ 29 - 3
src/main/java/com/shawn/web/controller/TEquipmentController.java

@@ -234,18 +234,44 @@ public class TEquipmentController extends BaseController<TEquipment, TEquipmentE
                         .setData("SUCCESS")
                         .setMessage("SUCCESS"));
     }
-
-    //机器关机
+    // 获取机器开关机状态
+    @PostMapping("/onoffStatus")
+    public ResponseEntity<?> onoffStatus(@RequestBody StatisticsParam param) {
+        String equipmentId = param.getEquipmentId();
+        Long id = Long.valueOf(equipmentId);
+        TEquipment equipments = tEquipmentService.selectEntityById(id);
+        PushUtils.push(equipments.getGtClientId(), "", "", PushUtils.buildJson("onoffstatus", "0").toString());
+        return ResponseEntity
+                .status(HttpStatus.OK)
+                .body(new ResultMessage()
+                        .setCode(true)
+                        .setData("SUCCESS")
+                        .setMessage("SUCCESS"));
+    }
+    //机器开关机
     @PostMapping("/onOff")
     public ResponseEntity<?> onOff(@RequestBody StatisticsParam param) {
         String equipmentId = param.getEquipmentId();
         Long id = Long.valueOf(equipmentId);
+//        TEquipment equipments = tEquipmentService.selectEntityById(id);
+//        PushUtils.push(equipments.getGtClientId(), "", "", PushUtils.buildJson("onoffstatus", "0").toString());
         TEquipment equipment = tEquipmentService.selectEntityById(id);
         if (equipment == null) {
 //			return ERROR_MESSAGE;
         }
         String eqeStatus = "1";
         String code = param.getAdminId();
+        //开机为1,关机为0
+        Integer intcode = Integer.valueOf(code);
+        Integer eqeStatus1 = equipment.getEqeStatus();
+        if(intcode==eqeStatus1){
+            return ResponseEntity
+                    .status(HttpStatus.OK)
+                    .body(new ResultMessage()
+                            .setCode(false)
+                            .setData("ERROT")
+                            .setMessage("操作异常"));
+        }
         if (code.equals("0")) {
             eqeStatus = "0";
             equipment.setEqeStatus(0);
@@ -253,9 +279,9 @@ public class TEquipmentController extends BaseController<TEquipment, TEquipmentE
             equipment.setEqeStatus(1);
         }
 
+        PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("eqeStatus", eqeStatus).toString());
 
         tEquipmentService.updateById(equipment);
-        PushUtils.push(equipment.getGtClientId(), "", "", PushUtils.buildJson("eqeStatus", eqeStatus).toString());
         return ResponseEntity
                 .status(HttpStatus.OK)
                 .body(new ResultMessage()

+ 12 - 153
src/main/java/com/shawn/web/controller/TWeixinController.java

@@ -11,15 +11,13 @@ import java.net.URL;
 import java.net.URLDecoder;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.List;
-import java.util.Map;
-import java.util.TreeMap;
+import java.util.*;
 
 import com.alibaba.fastjson.JSONObject;
 //import com.paytm.pg.merchant.CheckSumServiceHelper;
 import com.shawn.model.entity.*;
 import com.shawn.service.interfac.TAdminServiceInterface;
+import com.shawn.util.JavaWebToken;
 import com.shawn.util.JoinpayConstant;
 import com.shawn.util.PushUtils;
 import com.shawn.util.WeChatUtil;
@@ -58,153 +56,6 @@ public class TWeixinController extends BaseController<TWeixin,TWeixinExample,TWe
 	protected TWeixinExample createNewExample() {
 		return new TWeixinExample();
 	}
-
-    /**
-     * 印度paytm支付
-     * @param
-     * @return
-     */
-//    @GetMapping("/paytmpay")
-//    public ResponseEntity<?> paytmpay(String orderId,String type ) {
-//        /* initialize an object */
-//        JSONObject paytmParams = new JSONObject();
-//
-//        /* body parameters */
-//        JSONObject body = new JSONObject();
-//        if(type.equals("SMS")){
-//            body.put("sendSms", true);
-//        }else{
-//            body.put("sendEmail", true);
-//        }
-//        Double amount = 0.10;
-//        body.put("amount", amount);
-//        /* Find your MID in your Paytm Dashboard at https://dashboard.paytm.com/next/apikeys */
-//        JSONObject customerContact = new JSONObject();
-//        customerContact.put("customerEmail", "520283710@qq.com");
-//        customerContact.put("customerMobile", "9910215225");
-//        body.put("customerContact", customerContact);
-//        body.put("statusCallbackUrl", "https://app.sunzee.com.cn/ShenzeeServer/TWeixin/paytmNotify");
-//        body.put("mid", "WorldP64425807474247");
-//
-//        /* Possible value are "GENERIC", "FIXED", "INVOICE" */
-//        body.put("linkType", "LINK_TYPE");
-//
-//        /* Enter your choice of payment link description here, special characters are not allowed */
-//        body.put("linkDescription", "PAYMENT LINK DESCRIPTION");
-//
-//        /* Enter your choice of payment link name here, special characters and spaces are not allowed */
-//        body.put("linkName", "PAYMENTLINKNAME");
-//        String result = "";
-///**
-// * Generate checksum by parameters we have in body
-// * You can get Checksum JAR from https://developer.paytm.com/docs/v1/payment-gateway/#code
-// * Find your Merchant Key in your Paytm Dashboard at https://dashboard.paytm.com/next/apikeys
-// */
-//        String checksum2="";
-//        try { String checksum = CheckSumServiceHelper.getCheckSumServiceHelper().genrateCheckSum("kbzk1DSbJiV_O3p5", body.toString());
-//
-//        /* head parameters */
-//        JSONObject head = new JSONObject();
-//        Long startTs = System.currentTimeMillis(); // 当前时间戳
-//        /* This will be AES */
-//            Long yiu=new Long(9000l);
-//            Long cd=new Long(startTs);
-//            Long d=cd-yiu;
-////            Long time = startTs-yiu;‬
-//        head.put("timestamp", d);
-//        head.put("tokenType", "AES");
-//
-//        /* put generated checksum value here */
-//        head.put("signature", checksum);
-//
-//        /* prepare JSON string for request */
-//        paytmParams.put("body", body);
-//        paytmParams.put("head", head);
-//        String post_data = paytmParams.toString();
-//
-//        /* for Staging */
-//        URL url = new URL("https://securegw-stage.paytm.in/link/create");
-//
-//        /* for Production */
-//// URL url = new URL("https://securegw.paytm.in/link/create);
-////            TWeixin weixin = new TWeixin();
-////            weixin.setAdminId("1");
-////            weixin.setAvatarUrl(paytmParams.toString().substring(0,200));
-////            weixin.setCreateDate(new Date());
-////            weixin.setModifyDate(new Date());
-////            weixin.setNickName(checksum);
-////            tWeixinService.insert(weixin);
-//
-//            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
-//            connection.setRequestMethod("POST");
-//            connection.setRequestProperty("Content-Type", "application/json");
-//            connection.setDoOutput(true);
-//
-//            DataOutputStream requestWriter = new DataOutputStream(connection.getOutputStream());
-//            requestWriter.writeBytes(post_data);
-//            requestWriter.close();
-//            String responseData = "";
-//            InputStream is = connection.getInputStream();
-//            BufferedReader responseReader = new BufferedReader(new InputStreamReader(is));
-//            checksum2 = checksum;
-//            if ((responseData = responseReader.readLine()) != null) {
-//                result=responseData;
-//                System.out.append("Response: " + responseData);
-//            }
-//            // System.out.append("Request: " + post_data);
-//            responseReader.close();
-//        } catch (Exception exception) {
-//            exception.printStackTrace();
-//        }
-//        return ResponseEntity.status(HttpStatus.OK)
-//                .body(new ResultMessage().setCode(true).setData(result.substring(0,240)).setMessage(checksum2));
-//    }
-    /**
-     * 支付成功回调
-     *
-     * @return
-     */
-//    @RequestMapping(value = "/paytmNotify", method = RequestMethod.GET)
-//    @ResponseBody
-//    public Object refund(HttpServletRequest request) {
-//
-////        String r6_Status = request.getParameter("r6_Status");
-//        try {String paytmChecksum = null;
-//
-//        /* Create a TreeMap from the parameters received in POST */
-//        TreeMap<String, String> paytmParams = new TreeMap<String, String>();
-//        for (Map.Entry<String, String[]> requestParamsEntry : request.getParameterMap().entrySet()) {
-//            if ("CHECKSUMHASH".equalsIgnoreCase(requestParamsEntry.getKey())){
-//                paytmChecksum = requestParamsEntry.getValue()[0];
-//            } else {
-//                paytmParams.put(requestParamsEntry.getKey(), requestParamsEntry.getValue()[0]);
-//            }
-//
-//        }
-//        TWeixin weixin = new TWeixin();
-//        weixin.setAdminId("1");
-//        weixin.setAvatarUrl(paytmParams.toString().substring(0,240));
-//        weixin.setCreateDate(new Date());
-//        weixin.setModifyDate(new Date());
-//        weixin.setNickName(paytmChecksum);
-//            tWeixinService.insert(weixin);
-///**
-// * Verify checksum
-// * Find your Merchant Key in your Paytm Dashboard at https://dashboard.paytm.com/next/apikeys
-// */
-//        boolean isValidChecksum = CheckSumServiceHelper.getCheckSumServiceHelper().verifycheckSum("kbzk1DSbJiV_O3p5", paytmParams, paytmChecksum);
-//        if (isValidChecksum) {
-//            System.out.append("Checksum Matched");
-//        } else {
-//            System.out.append("Checksum Mismatched");
-//        }
-//        } catch (Exception exception) {
-//            exception.printStackTrace();
-//        }
-//
-//        return "success";
-//    }
-
 	/**
 	 * 微信登录
 	 * @param
@@ -225,8 +76,12 @@ public class TWeixinController extends BaseController<TWeixin,TWeixinExample,TWe
                     tWeixin.setNickName(weiXin.getNickName());
                     tWeixin.setAvatarUrl(weiXin.getAvatarUrl());
                     tWeixinService.updateById(tWeixin);
+                    Map<String,Object> m = new HashMap<String,Object>();
+                    m.put("userId",list.get(0).getId());
+                    // 根据存在用户的id生成token字符串
+                    String token = JavaWebToken.createJavaWebToken(m);
                     return ResponseEntity.status(HttpStatus.OK)
-                            .body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS"));
+                            .body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS").setToken(token));
                 }
             }
         }else {
@@ -265,8 +120,12 @@ public class TWeixinController extends BaseController<TWeixin,TWeixinExample,TWe
             newWeixin.setCreateDate(new Date());
             newWeixin.setModifyDate(new Date());
             Integer integer = tWeixinService.insert(newWeixin);
+            Map<String,Object> m = new HashMap<String,Object>();
+            m.put("userId",list.get(0).getId());
+            // 根据存在用户的id生成token字符串
+            String token = JavaWebToken.createJavaWebToken(m);
             return ResponseEntity.status(HttpStatus.OK)
-                    .body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS"));
+                    .body(new ResultMessage().setCode(true).setData(list.get(0)).setMessage("SUCCESS").setToken(token));
         }
         return ResponseEntity.status(HttpStatus.OK)
                 .body(new ResultMessage().setCode(false).setData(null).setMessage("用户名或密码错误"));