Browse Source

机器二维码

liujiankang 7 years ago
parent
commit
1b0ce1474e

+ 9 - 0
tooth-common-core/src/main/java/com/iamberry/wechat/core/entity/apparatus/Apparatus.java

@@ -14,6 +14,7 @@ public class Apparatus implements java.io.Serializable{
 
     private Integer apparatusId;        //id
     private String apparatusBarcode;    //机器条码
+    private Integer colorId;            //产品颜色id
     private String userOpenid;          //用户openid
     private Integer storeId;            //渠道id
     private Integer apparatusStatus;    //状态
@@ -94,4 +95,12 @@ public class Apparatus implements java.io.Serializable{
     public void setApparatusCreateTime(Date apparatusCreateTime) {
         this.apparatusCreateTime = apparatusCreateTime;
     }
+
+    public Integer getColorId() {
+        return colorId;
+    }
+
+    public void setColorId(Integer colorId) {
+        this.colorId = colorId;
+    }
 }

+ 5 - 0
tooth-common-tool/src/main/java/com/iamberry/wechat/tools/ResultInfo.java

@@ -230,4 +230,9 @@ public class ResultInfo {
 	public static String PROBATION_START_FIRST = "感谢您申请试用美国Watero净饮水一体机";
 	public static String PROBATION_END_FIRST = "您的订单正在安排配送员派送中,请继续留意关注申请详情,谢谢。";
 
+	/**
+	 * 获取RST系统产品信息接口地址
+	 */
+	public static String GET_MACHINE_INFO = "https://rst.iamberry.com/mcahine/getMachineInfo?barCode=";
+
 }

+ 10 - 0
tooth-wechat-interface/src/main/java/com/iamberry/wechat/face/apparatus/ApparatusService.java

@@ -30,4 +30,14 @@ public interface ApparatusService {
      * @return
      */
     boolean registerMember(Apparatus apparatus, Member member);
+
+    /**
+     * 根据openid和条形码查询单个机器信息
+     * **/
+    Apparatus getApparatus(Apparatus apparatus);
+
+    /**
+     * 根据RST产品id和查询颜色id
+     * **/
+    Integer getColorIdByProductId(String productId);
 }

+ 10 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/ApparatusMapper.java

@@ -22,4 +22,14 @@ public interface ApparatusMapper {
      * @return
      */
     Integer addApparatus(Apparatus apparatus);
+
+    /**
+     * 根据openid和条形码查询单个机器信息
+     * **/
+    Apparatus getApparatus(Apparatus apparatus);
+
+    /**
+     * 根据RST产品id和查询颜色id
+     * **/
+    Integer getColorIdByProductId(String productId);
 }

+ 8 - 0
tooth-wechat-service/src/main/java/com/iamberry/wechat/service/mapper/apparatusMapper.xml

@@ -41,4 +41,12 @@
           #{storeId}, #{apparatusBuyDate}, #{apparatusWarrantyDate}
         )
     </insert>
+
+    <select id="getApparatus" parameterType="Apparatus" resultType="Apparatus">
+        SELECT * from tb_iamberry_member_apparatus where apparatus_barcode = #{apparatusBarcode} and user_openid = #{userOpenid}
+    </select>
+
+    <select id="getColorIdByProductId" parameterType="String" resultType="Integer">
+        select color_id from tb_iamberry_product_related_rst_produce where pts_produce_id = #{productId}
+    </select>
 </mapper>

+ 26 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/apparatus/ApparatusHandler.java

@@ -1,5 +1,6 @@
 package com.iamberry.wechat.handles.apparatus;
 
+import com.iamberry.app.tool.util.HttpUtility;
 import com.iamberry.wechat.core.entity.PageBean;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.core.entity.WechatUtils;
@@ -77,6 +78,8 @@ public class ApparatusHandler {
     @RequestMapping("add_apparatus")
     public ResultMsg addApparatus(HttpServletRequest request,Member member) throws Exception {
         ResultMsg msg = new ResultMsg();
+       /* String machinrJson =  HttpUtility.httpsGet("https://rst.iamberry.com/mcahine/getMachineInfo?barCode=AURORAA30180100005");*/
+
         SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         Member memberInfo = WechatUtils.getUserBySession(request);
         //获取换新时间期限
@@ -102,9 +105,31 @@ public class ApparatusHandler {
         if (apparatusList != null && apparatusList.size() > 0) {
             msg.setResultCode(ResultInfo.ERRORCODE);
             msg.setStatus(false);
-            msg.setMessage("机器条形码为空,请重新扫描二维码!");
+            msg.setMessage("获取机器信息失败!");
+            return msg;
+        }
+        //获取rst系统产品信息,根据获取到的产品id查出对呀的产品颜色id
+        Integer productColorId = 0;
+        String json =  HttpUtility.httpsGet(ResultInfo.GET_MACHINE_INFO+barCode);
+        if(json == null){
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("会员注册失败,请重新注册!");
+            return msg;
+        }
+        JSONObject machineJson = JSONObject.fromObject(json);
+        JSONObject message = machineJson.getJSONObject("message");
+        String isBeing = message.getString("message");
+        if(isBeing.equals("1")){
+            String productId = message.getString("productId");//产品id
+            productColorId = apparatusService.getColorIdByProductId(productId);
+        }else{
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("会员注册失败,请重新注册!");
             return msg;
         }
+        apparatus.setColorId(productColorId);
         apparatus.setUserOpenid(memberInfo.getUserOpenid());
         apparatus.setApparatusBuyDate(format.parse(buyDate));
         apparatus.setApparatusWarrantyDate(updateDate(format.parse(buyDate),renewRule.getRuleNum().intValue()));

+ 2 - 1
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/kuaidi/LogisticsHandler.java

@@ -1,5 +1,6 @@
 package com.iamberry.wechat.handles.kuaidi;
 
+import com.iamberry.app.tool.util.HttpUtility;
 import com.iamberry.wechat.core.entity.ResultMsg;
 import com.iamberry.wechat.face.order.CodeService;
 import com.iamberry.wechat.tools.NameUtils;
@@ -63,7 +64,7 @@ public class LogisticsHandler {
      */
     /*@RequestMapping("/informShipping")
     @ResponseBody
-    public String informShipping(HttpServletResponse response,@RequestParam("iphone") String iphone){
+    public String informShipping(HttpServletResponse response,@RequestParam("iphone") String iphone) throws Exception{
         String msg = codeService.informShipping(iphone,INFORM_SHIPPING);
         return msg;
     }*/

+ 41 - 0
tooth-wechat-web/src/main/java/com/iamberry/wechat/handles/wx/QrCodeHandler.java

@@ -1,5 +1,14 @@
 package com.iamberry.wechat.handles.wx;
 
+import com.iamberry.wechat.core.entity.ResultMsg;
+import com.iamberry.wechat.core.entity.WechatUtils;
+import com.iamberry.wechat.core.entity.apparatus.Apparatus;
+import com.iamberry.wechat.core.entity.member.Member;
+import com.iamberry.wechat.face.apparatus.ApparatusService;
+import com.iamberry.wechat.face.member.MemberService;
+import com.iamberry.wechat.tools.ResultInfo;
+import com.iamberry.wechat.tools.payUtil.StringUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.PathVariable;
 import org.springframework.web.bind.annotation.RequestMapping;
@@ -10,6 +19,7 @@ import javax.servlet.ServletException;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.IOException;
+import java.util.Map;
 
 /**
  * Created by Administrator on 2017/12/29.
@@ -17,9 +27,40 @@ import java.io.IOException;
 @Controller("scannQr")
 @RequestMapping("/wechat")
 public class QrCodeHandler {
+    @Autowired
+    ApparatusService apparatusService;
+    @Autowired
+    MemberService memberService;
 
     @RequestMapping("/qr/{qrCode}")
     public void getQrCode(@PathVariable("qrCode") String qrCode, HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
         res.sendRedirect("http://w.iamberry.com/tooth/view/default.html?qrCode="+qrCode);
     }
+
+    @RequestMapping("/getMember/{qrCode}")
+    public ResultMsg getMember(@PathVariable("qrCode") String qrCode, HttpServletRequest req, HttpServletResponse res)throws ServletException, IOException {
+        ResultMsg msg = new ResultMsg();
+        if (!StringUtil.isNotEmpty(qrCode)) {
+            msg.setResultCode(ResultInfo.ERRORCODE);
+            msg.setStatus(false);
+            msg.setMessage("未扫描到二维码,请重新扫描!");
+            return msg;
+        }
+        boolean isActivation = false;//是否激活
+        Member memberInfo = WechatUtils.getUserBySession(req);
+        Apparatus apparatus = new Apparatus();
+        apparatus.setApparatusBarcode(qrCode);
+        apparatus.setUserOpenid(memberInfo.getUserOpenid());
+        apparatus =  apparatusService.getApparatus(apparatus);
+        if(apparatus != null){//不为空表示已激活
+            isActivation = true;
+        }
+        //查询用户信息
+        memberInfo = memberService.getMemberByUserOpenId(memberInfo.getUserOpenid());
+        Map<String,Object> map = null;
+        map.put("memberInfo",memberInfo);
+        map.put("isActivation",isActivation);
+        msg.setData(map);
+        return msg;
+    }
 }