From 19c35c58f8b767d7d9c57d0cf910fd091dc7669f Mon Sep 17 00:00:00 2001
From: 无关风月 <443237572@qq.com>
Date: 星期四, 27 二月 2025 16:37:08 +0800
Subject: [PATCH] 2.0新增

---
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java                          |    4 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java                          |    4 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java                 |    1 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java         |   15 +
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java                        |    2 
 ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverInvite.js                          |   19 -
 ZuulOKTravel/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java                                      |   14 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml                  |    3 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java                          |    2 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java         |  103 ++++++++++--
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java                         |    2 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java                           |    4 
 DriverOKTravel/guns-admin/pom.xml                                                                                     |    5 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java                     |   16 ++
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java                           |   30 +++
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java                       |    2 
 DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml                |    3 
 ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tUser/tUserInvite.js                              |   19 -
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java |    2 
 UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java                             |    4 
 ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html               |  186 -----------------------
 21 files changed, 181 insertions(+), 259 deletions(-)

diff --git a/DriverOKTravel/guns-admin/pom.xml b/DriverOKTravel/guns-admin/pom.xml
index ca9dc8d..327a3c6 100644
--- a/DriverOKTravel/guns-admin/pom.xml
+++ b/DriverOKTravel/guns-admin/pom.xml
@@ -16,7 +16,10 @@
     <packaging>jar</packaging>
 
     <dependencies>
-
+        <dependency>
+            <groupId>org.springframework</groupId>
+            <artifactId>spring-test</artifactId>
+        </dependency>
         <dependency>
             <groupId>com.github.pagehelper</groupId>
             <artifactId>pagehelper-spring-boot-starter</artifactId>
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
index b1a075b..1d415f9 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/DriverController.java
@@ -99,11 +99,12 @@
             if (userInfo.getCode()==null){
                 userInfo = driverService.generateCode(userInfo);
             }
+            driverService.generateCode(userInfo);
             Map<String, String> res = new HashMap<>();
             res.put("code",userInfo.getCode());
             int i = inviteService.selectCount(new EntityWrapper<Invite>()
                     .eq("inviteUserId", uid)
-                    .eq("useType", 2));
+                    .eq("userType", 2));
 
             res.put("inviteNumber",i+"");
             return ResultUtil.success(res);
@@ -138,6 +139,7 @@
                 startTime = startTime + " 00:00:00";
                 endTime = endTime + " 23:59:59";
             }
+            pageNum = (pageNum - 1) * size;
             List<Invite> invites = inviteService.inviteList(uid,startTime,endTime,pageNum,size);
             for (Invite invite : invites) {
                 // 将手机号phone中间四位替换为*
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
index 578f7e7..7f5cd8f 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/OrderController.java
@@ -4,6 +4,7 @@
 import com.stylefeng.guns.modular.smallLogistics.server.IOrderLogisticsService;
 import com.stylefeng.guns.modular.system.dao.DriverWorkMapper;
 import com.stylefeng.guns.modular.system.dao.TUseMoneyMapper;
+import com.stylefeng.guns.modular.system.dao.UserCouponRecordMapper;
 import com.stylefeng.guns.modular.system.model.*;
 import com.stylefeng.guns.modular.system.service.*;
 import com.stylefeng.guns.modular.system.util.ChinaMobileUtil;
@@ -448,6 +449,8 @@
     private IPaymentRecordService paymentRecordService;
     @Autowired
     private ITransactionDetailsService transactionDetailsService;
+    @Autowired
+    private UserCouponRecordMapper userCouponRecordMapper;
     /**
      * 司机手动确认收款
      * @param orderId
@@ -497,7 +500,7 @@
             // 平台收入
             double money;
             Driver driver = driverService.selectById(orderTaxi.getDriverId());
-            Company company = companyService.selectById(driver.getFranchiseeId());
+            Company company = companyService.selectById(driver.getCompanyId());
 
             if(orderTaxi.getOrderSource() == 2 || orderTaxi.getOrderSource() == 3){
                 double v = company.getPercentageDeduction() / 100;
@@ -507,6 +510,31 @@
                 money = company.getFixedDeduction();
                 moneyTwo = orderTaxi.getOrderMoney()-money;
             }
+            Double orderMoney = orderTaxi.getOrderMoney();
+            if (orderTaxi.getCouponId()!=null){
+                UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(orderTaxi.getCouponId());
+//                    if(userCouponRecord.getCompanyId() != orderTaxi.getCompanyId()){
+//                        return ResultUtil.error("优惠券不能用于此订单", "");
+//                    }
+//                    if(userCouponRecord.getState() == 2){
+//                        return ResultUtil.error("优惠券已使用", "");
+//                    }
+//                    if(userCouponRecord.getState() == 3){
+//                        return ResultUtil.error("优惠券已过期", "");
+//                    }
+//                    if(userCouponRecord.getCouponUseType() != 0 && userCouponRecord.getCouponUseType() != 2){
+//                        return ResultUtil.error("优惠券不能用于此类型订单", "");
+//                    }
+//                    if(userCouponRecord.getCouponType() == 2 && orderMoney.compareTo(userCouponRecord.getFullMoney()) < 0){
+//                        return ResultUtil.error("优惠券不能用于此订单", "");
+//                    }
+                    orderMoney = orderMoney - userCouponRecord.getMoney();
+                    orderTaxi.setCouponMoney(userCouponRecord.getMoney());
+                    orderTaxi.setCouponId(orderTaxi.getCouponId());
+            }
+            orderTaxi.setPayMoney(orderMoney);
+            orderTaxiService.updateById(orderTaxi);
+
             driver.setBalance(driver.getBalance() + moneyTwo);
             // 新增扣除使用费记录
             transactionDetailsService.saveDataTaxi(driver.getId(), "软件使用费", money, 2, 1, 2, 6, orderTaxi.getId(),placeOrderWay,company.getId());
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java
index e2df6d2..1eb2272 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java
@@ -9,6 +9,6 @@
 public interface InviteMapper extends BaseMapper<Invite> {
 
 
-    List<Invite> inviteList(@Param("uid")Integer uid,@Param("uid") String startTime, @Param("uid")String endTime,
+    List<Invite> inviteList(@Param("uid")Integer uid,@Param("startTime") String startTime, @Param("endTime")String endTime,
                             @Param("pageNum")Integer pageNum, @Param("size")Integer size);
 }
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
index 922efc7..8f0f371 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
@@ -10,9 +10,10 @@
         <if test="null != uid">
             and t1.inviteUserId = #{uid}
         </if>
-        <if test="null != startTime and null != endTime">
+        <if test="null != startTime and '' != startTime">
             and t1.registerTime between #{startTime} and #{endTime}
         </if>
+        and t1.userType = 2
         order by t1.registerTime desc
         limit #{pageNum}, #{size}
     </select>
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java
index da92124..0e27936 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java
@@ -36,8 +36,8 @@
     /**
      * 使用范围(1=用户,2=司机)
      */
-    @TableField("useType")
-    private Integer useType;
+    @TableField("userType")
+    private Integer userType;
 
     @TableField(exist = false)
     @ApiModelProperty("头像")
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
index a0ec194..b01c5e2 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/IDriverService.java
@@ -357,5 +357,6 @@
     ResultUtil loginOut(Integer id) throws Exception;
 
     Driver generateCode(Driver userInfo);
+    String generateQrCodeTemp();
 
 }
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
index 9fed505..d2cd7d2 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/DriverServiceImpl.java
@@ -21,6 +21,7 @@
 import com.stylefeng.guns.modular.system.warpper.LoginWarpper;
 import com.stylefeng.guns.modular.system.warpper.RegisteredWarpper;
 import com.stylefeng.guns.modular.taxi.service.IOrderTaxiService;
+import org.apache.http.entity.ContentType;
 import org.apache.shiro.authc.SimpleAuthenticationInfo;
 import org.apache.shiro.authc.UsernamePasswordToken;
 import org.apache.shiro.authc.credential.HashedCredentialsMatcher;
@@ -28,9 +29,8 @@
 import org.apache.shiro.util.ByteSource;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.http.HttpEntity;
-import org.springframework.http.HttpMethod;
-import org.springframework.http.ResponseEntity;
+import org.springframework.http.*;
+import org.springframework.mock.web.MockMultipartFile;
 import org.springframework.stereotype.Service;
 import org.springframework.util.LinkedMultiValueMap;
 import org.springframework.util.MultiValueMap;
@@ -1568,16 +1568,7 @@
         generateQrCode(userInfo);
         return userInfo;
     }
-    public MultipartFile convertInputStreamToMultipartFile(InputStream inputStream, String fileName, String contentType) throws IOException {
-        ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
-        byte[] buffer = new byte[1024];
-        int bytesRead;
-        while ((bytesRead = inputStream.read(buffer)) != -1) {
-            byteArrayOutputStream.write(buffer, 0, bytesRead);
-        }
-        byte[] data = byteArrayOutputStream.toByteArray();
-        return new CustomMultipartFile(data, fileName, contentType);
-    }
+
     private void generateQrCode(Driver userInfo) {
         if (userInfo.getCode()!=null){
             return;
@@ -1591,7 +1582,7 @@
 //            param.put("page", "pageA/houseDetail");
             param.put("check_path", false);
             // 用户id 用于分享
-            param.put("scene", "uid="+userInfo.getId()+"userType=1");
+            param.put("scene", "uid="+userInfo.getId()+"userType=2");
             param.put("env_version", "trial");
             param.put("width", 200); //二维码尺寸
             param.put("is_hyaline", true); // 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 参数仅对小程序码生效
@@ -1602,17 +1593,26 @@
             line_color.put("b", 0);
             param.put("line_color", line_color);
             System.err.println("调用生成微信URL接口传参:" + param);
-            MultiValueMap<String, String> headers = new LinkedMultiValueMap<>();
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
             HttpEntity requestEntity = new HttpEntity(param, headers);
-            ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class, new Object[0]);
+//            HashMap<String, String> map = new HashMap<>();
+//            map.put("path", path);
+//            HttpHeaders headers = new HttpHeaders();
+//            headers.setContentType(MediaType.APPLICATION_JSON);
+//            HttpEntity requestEntity = new HttpEntity(map, headers);
+//            ResponseEntity<byte[]> rep = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class);
+//            byte[] bytes = rep.getBody();
+            ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class);
             System.err.println("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody());
             byte[] result = entity.getBody();
             System.err.println(Base64.encodeBase64String(result));
 
             inputStream = new ByteArrayInputStream(result);
-            String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + ".jpeg";
-            MultipartFile multipartFile = convertInputStreamToMultipartFile(inputStream, finalFileName, "image/jpeg");
-            String pictureName = OssUploadUtil.ossUploadCode(multipartFile);
+            String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + ".jpg";
+            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(result);
+            MultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), byteArrayInputStream);
+            String pictureName = OssUploadUtil.ossUploadCode(file,finalFileName);
             System.err.println(pictureName);
             userInfo.setCode(pictureName);
             this.updateById(userInfo);
@@ -1636,7 +1636,72 @@
             }
         }
     }
+    @Override
+    public String generateQrCodeTemp() {
 
+        String accessToken = weChatUtil.getAccessToken();
+        InputStream inputStream = null;
+        OutputStream outputStream = null;
+        try {
+            String url = "https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token=" + accessToken;
+            Map<String, Object> param = new HashMap<>();
+//            param.put("page", "pageA/houseDetail");
+            param.put("check_path", false);
+            // 用户id 用于分享
+            param.put("scene", "uid="+1+"userType=1");
+//            param.put("env_version", "trial");
+//            param.put("width", 200); //二维码尺寸
+//            param.put("is_hyaline", true); // 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 参数仅对小程序码生效
+//            param.put("auto_color", true); // 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 参数仅对小程序码生效
+//            Map<String, Object> line_color = new HashMap<>();
+//            line_color.put("r", 0);
+//            line_color.put("g", 0);
+//            line_color.put("b", 0);
+//            param.put("line_color", line_color);
+            System.err.println("调用生成微信URL接口传参:" + param);
+            HttpHeaders headers = new HttpHeaders();
+            headers.setContentType(MediaType.APPLICATION_JSON);
+            HttpEntity requestEntity = new HttpEntity(param, headers);
+//            HashMap<String, String> map = new HashMap<>();
+//            map.put("path", path);
+//            HttpHeaders headers = new HttpHeaders();
+//            headers.setContentType(MediaType.APPLICATION_JSON);
+//            HttpEntity requestEntity = new HttpEntity(map, headers);
+//            ResponseEntity<byte[]> rep = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class);
+//            byte[] bytes = rep.getBody();
+            ResponseEntity<byte[]> entity = restTemplate.exchange(url, HttpMethod.POST, requestEntity, byte[].class);
+            System.err.println("调用小程序生成微信永久小程序码URL接口返回结果:" + entity.getBody());
+            byte[] result = entity.getBody();
+            System.err.println(Base64.encodeBase64String(result));
+
+            inputStream = new ByteArrayInputStream(result);
+            String finalFileName = System.currentTimeMillis() + "" + new SecureRandom().nextInt(0x0400) + ".jpg";
+            ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(result);
+            MultipartFile file = new MockMultipartFile(ContentType.APPLICATION_OCTET_STREAM.toString(), byteArrayInputStream);
+            String pictureName = OssUploadUtil.ossUploadCode(file,finalFileName);
+            System.err.println(pictureName);
+            return Base64.encodeBase64String(result);
+
+        } catch (Exception e) {
+            System.err.println("调用小程序生成微信永久小程序码URL接口异常" + e);
+        } finally {
+            if (inputStream != null) {
+                try {
+                    inputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+            if (outputStream != null) {
+                try {
+                    outputStream.close();
+                } catch (IOException e) {
+                    e.printStackTrace();
+                }
+            }
+        }
+        return "";
+    }
     /**
      * 获取编号
      * @return
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
index b80ed24..02a1557 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/OssUploadUtil.java
@@ -54,4 +54,20 @@
 		}
 		return fileName;
 	}
+	public static String ossUploadCode( MultipartFile file,String originalFilename) throws IOException{
+		//CommonsMultipartFile file = (CommonsMultipartFile)multipartFile;
+		String fileName = "";
+		if(file!=null && !"".equals(originalFilename) && originalFilename!=null){
+			InputStream content = file.getInputStream();//获得指定文件的输入流
+			ObjectMetadata meta = new ObjectMetadata();// 创建上传Object的Metadata
+			meta.setContentLength(file.getSize());  // 必须设置ContentLength
+			fileName =  UUID.randomUUID().toString().replaceAll("-","") + originalFilename.subSequence(originalFilename.lastIndexOf("."), originalFilename.length());
+			ossClient.putObject(bucketName,"img/"+fileName,content,meta);// 上传Object.
+			if(fileName != null && !"".equals(fileName)){
+				System.out.println(fileName);
+				fileName = oss_domain_cdn+"img/"+fileName;
+			}
+		}
+		return fileName;
+	}
 }
diff --git a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
index 1961a68..18b4ea2 100644
--- a/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
+++ b/DriverOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
@@ -112,7 +112,7 @@
      * @return
      */
     public String getAccessToken(){
-        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx0e72f86394831b34&secret=930f857abc74f7bb5cbd89e1544c5669";
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx4d36488fa2cd2718&secret=f3874e9c813f31a2e90c37346eb74d82";
         String backData = restTemplate.getForObject(url, String.class);
         String accessToken = JSONObject.parseObject(backData).getString("access_token");
         return accessToken;
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html
index 62a89a9..8ed04f7 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/WEB-INF/view/system/userActivity/userActivity_detail.html
@@ -240,193 +240,7 @@
                             </div>
                         </div>
                     </div>
-<!--                    <div class="row" id="content4" style="margin-left: 100px;">-->
-<!--                        <div class="col-sm-11">-->
-<!--                            <h1>充值赠送奖励</h1>-->
-<!--                            <br/>-->
-<!--                            <br/>-->
-<!--                            <div class="form-group">-->
-<!--                                <div class="col-sm-10">-->
-<!--                                    &nbsp;&nbsp;&nbsp;&nbsp;启用:&nbsp;-->
-<!--                                    <input type="checkbox"-->
-<!--                                           @if(isNotEmpty(balanceInfoList) && balanceInfoList[0].enable==2){-->
-<!--                                           checked=""-->
-<!--                                           @}-->
-<!--                                           id="content4Check"  class="js-switch4">-->
-<!--                                </div>-->
-<!--                            </div>-->
-<!--                            <div class="form-group">-->
-<!--                                <div class="col-sm-15">-->
-<!--                                    <div style="height: 200px; border: 1px solid #e5e6e7;overflow-y: auto;">-->
-<!--                                        <table class="table table-striped table-bordered table-hover table-condensed">-->
-<!--                                            <thead>-->
-<!--                                            <tr>-->
-<!--                                                <th style="width: 250px;">充值金额</th>-->
-<!--                                                <th style="width: 250px;">有效天数</th>-->
-<!--                                                <th style="width: 300px;">最高金额</th>-->
-<!--                                                <th style="width: 300px;">通用券金额</th>-->
-<!--                                                <th style="width: 300px;">通用券数量</th>-->
-<!--                                                <th style="width: 300px;">专车券金额</th>-->
-<!--                                                <th style="width: 300px;">专车券数量</th>-->
-<!--                                                <th style="width: 400px;">出租车券金额</th>-->
-<!--                                                <th style="width: 400px;">出租车券数量</th>-->
-<!--                                                <th style="width: 300px;">城际金额</th>-->
-<!--                                                <th style="width: 300px;">城际券数量</th>-->
-<!--                                            </tr>-->
-<!--                                            </thead>-->
-<!--                                            <tbody id="coun">-->
-<!--                                                @for(obj in balanceInfoList){-->
-<!--                                                    <tr class="timeClass">' +-->
-<!--                                                        <td><input type="hidden" id="num1" name="num1" value="${obj.money}">${obj.money}</td>-->
-<!--                                                        <td><input type="hidden" id="num10" name="num10" value="${obj.effective}">${obj.effective}</td>-->
-<!--                                                        <td><input type="hidden" id="num11" name="num3" value="${obj.totalPrice}">${obj.totalPrice}</td>-->
-<!--                                                        <td><input type="hidden" id="num3" name="num3" value="${obj.generalCouponMoney}">${obj.generalCouponMoney}</td>-->
-<!--                                                        <td><input type="hidden" id="num2" name="num2" value="${obj.generalNum}">${obj.generalNum}</td>-->
 
-<!--                                                        <td><input type="hidden" id="num5" name="num5" value="${obj.specialCouponMoney}">${obj.specialCouponMoney}</td>-->
-<!--                                                        <td><input type="hidden" id="num4" name="num4" value="${obj.specialNum}">${obj.specialNum}</td>-->
-
-<!--                                                        <td><input type="hidden" id="num7" name="num7" value="${obj.taxiCouponMoney}">${obj.taxiCouponMoney}</td>-->
-<!--                                                        <td><input type="hidden" id="num6" name="num6" value="${obj.taxiNum}">${obj.taxiNum}</td>-->
-
-<!--                                                        <td><input type="hidden" id="num9" name="num9" value="${obj.intercityCouponMoney}">${obj.intercityCouponMoney}</td>-->
-<!--                                                        <td><input type="hidden" id="num8" name="num8" value="${obj.intercityNum}">${obj.intercityNum}</td>-->
-<!--                                                    </tr>-->
-<!--                                                @}-->
-<!--                                            </tbody>-->
-<!--                                        </table>-->
-<!--                                    </div>-->
-<!--                                </div>-->
-<!--                            </div>-->
-<!--                        </div>-->
-<!--                    </div>-->
-<!--                    <div class="row" id="content5" style="margin-left: 100px;">-->
-<!--                        <div class="col-sm-11">-->
-<!--                            <div class="form-group">-->
-<!--                                <div class="col-sm-10">-->
-<!--                                    <h1>打折活动奖励</h1>-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    启用:&nbsp;<input-->
-<!--                                        @if(isNotEmpty(item4) && item4.enable==2){-->
-<!--                                        checked=""-->
-<!--                                        @}-->
-<!--                                        type="checkbox" id="content5Check"  class="js-switch2">-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    专车活动打折:-->
-<!--                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-->
-<!--                                    &nbsp;<input type="text"-->
-<!--                                                 @if(isNotEmpty(item4)){-->
-<!--                                                 value="${item4.special}"-->
-<!--                                                 @}else{-->
-<!--                                                 value=""-->
-<!--                                                 @}-->
-<!--                                                 name="zc1" id="content5Num1" class="form-control newWidth"  readonly/>&nbsp;-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    出租车活动打折:-->
-<!--                                    &nbsp;&nbsp;&nbsp;-->
-<!--                                    &nbsp;<input type="text"-->
-<!--                                                 @if(isNotEmpty(item4)){-->
-<!--                                                 value="${item4.taxi}"-->
-<!--                                                 @}else{-->
-<!--                                                 value=""-->
-<!--                                                 @}-->
-<!--                                                 name="zc1" id="content5Num2" class="form-control newWidth"  readonly/>&nbsp;-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    小件物流活动打折:-->
-<!--                                    &nbsp;<input type="text"-->
-<!--                                                 @if(isNotEmpty(item4)){-->
-<!--                                                 value="${item4.logistics}"-->
-<!--                                                 @}else{-->
-<!--                                                 value=""-->
-<!--                                                 @}-->
-<!--                                                 name="zc1" id="content5Num3" class="form-control newWidth" readonly />&nbsp;-->
-<!--                                </div>-->
-<!--                            </div>-->
-<!--                        </div>-->
-<!--                    </div>-->
-
-<!--                    <div class="row" id="content6" style="margin-left: 100px;">-->
-<!--                        <div class="col-sm-11">-->
-<!--                            <div class="form-group">-->
-<!--                                <div class="col-sm-10">-->
-<!--                                    <input type="hidden"-->
-<!--                                           @if(isNotEmpty(item5)){-->
-<!--                                           value="${item5.redEnvelopeId}"-->
-<!--                                           @}else{-->
-<!--                                           value=""-->
-<!--                                           @}-->
-<!--                                           id="content6RedId">-->
-
-<!--                                    <h1>红包活动奖励</h1>-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    启用:&nbsp;<input type="checkbox"-->
-<!--                                                    @if(isNotEmpty(item5) && item5.enable==2){-->
-<!--                                                    checked=""-->
-<!--                                                    @}-->
-<!--                                                    id="content6Check"  class="js-switch3">-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    红包类型:-->
-<!--                                    &nbsp;-->
-<!--                                    &nbsp;&nbsp;&nbsp;&nbsp;-->
-<!--                                    &nbsp;<input type="text"-->
-<!--                                                 @if(isNotEmpty(item5Red)){-->
-<!--                                                 value="${item5Red.type==1?'固定金额':'随机金额'}"-->
-<!--                                                 @}else{-->
-<!--                                                 value=""-->
-<!--                                                 @}-->
-<!--                                                 name="zc1" id="content6Num1" class="form-control newWidth" readonly/>&nbsp;-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    总金额:-->
-<!--                                    &nbsp;&nbsp;&nbsp;&nbsp;-->
-<!--                                    &nbsp;&nbsp;&nbsp;&nbsp;-->
-<!--                                    &nbsp;<input type="text"-->
-
-<!--                                                 @if(isNotEmpty(item5Red)){-->
-<!--                                                 value="${item5Red.totalMoney}"-->
-<!--                                                 @}else{-->
-<!--                                                 value=""-->
-<!--                                                 @}-->
-<!--                                                 name="zc1" id="content6Num2" class="form-control newWidth"  readonly/>&nbsp;-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    每个红包金额:&nbsp;<input type="text"-->
-<!--                                                        @if(isNotEmpty(item5Red)){-->
-<!--                                                        value="${item5Red.type==1?item5Red.money:item5Red.startMoney+'-'+item5Red.endMoney}"-->
-<!--                                                        @}else{-->
-<!--                                                        value=""-->
-<!--                                                        @}-->
-<!--                                                        name="zc1" id="content6Num3" class="form-control newWidth"  readonly/>&nbsp;-->
-<!--                                    <br/>-->
-<!--                                    <br/>-->
-<!--                                    有效期:-->
-<!--                                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;-->
-<!--                                    &nbsp;<input type="text"-->
-
-<!--                                                 @if(isNotEmpty(item5Red)){-->
-<!--                                                 value="${item5Red.effective}"-->
-<!--                                                 @}else{-->
-<!--                                                 value=""-->
-<!--                                                 @}-->
-<!--                                                 name="zc1" id="content6Num4" class="form-control newWidth" readonly/>&nbsp;天,-->
-<!--                                    最高金额:&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type="text"-->
-<!--                                                                              @if(isNotEmpty(item5)){-->
-<!--                                                                              value="${item5.totalPrice}"-->
-<!--                                                                              @}else{-->
-<!--                                                                              value=""-->
-<!--                                                                              @}-->
-<!--                                                                              name="zc1" id="content6Num5" class="form-control newWidth"  readonly/>&nbsp;-->
-<!--                                    <br/>-->
-<!--                                </div>-->
-<!--                            </div>-->
-<!--                        </div>-->
-<!--                    </div>-->
                 </div>
             </div>
 
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverInvite.js b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverInvite.js
index ba9792c..57fa17a 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverInvite.js
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tDriver/tDriverInvite.js
@@ -21,20 +21,11 @@
 TUser.initColumn = function () {
     return [
         {field: 'selectItem', radio: true},
-        {title: '邀请人', field: 'inviteUserName', visible: false, align: 'center', valign: 'middle',width:'8%'},
-        {title: '被邀请用户', field: 'nickName', visible: true, align: 'center', valign: 'middle',width:'8%'},
-        {title: '被邀请用户手机号', field: 'phone', visible: true, align: 'center', valign: 'middle',width:'8%'},
-        {title: '被邀请用户ID', field: 'userId', visible: true, align: 'center', valign: 'middle',width:'8%'},
-        {title: '注册时间', field: 'registerTime', visible: true, align: 'center', valign: 'middle',width:'10%',
-            formatter: function (value, row) {
-                var btn = "";
-                if(row.insertTime != '' && row.insertTime != null) {
-                    var time = row.insertTime.replace(" ",'<br>');
-                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.registerTime + '" onfocus="TUser.tooltip()">' + time + '</p>']
-                }
-                return btn;
-            }
-        },
+        {title: '邀请人', field: 'inviteUserName', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '被邀请用户', field: 'nickName', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '被邀请用户手机号', field: 'phone', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '被邀请用户ID', field: 'userId', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '注册时间', field: 'registerTime', visible: true, align: 'center', valign: 'middle',width:'19%',},
     ];
 };
 
diff --git a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tUser/tUserInvite.js b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tUser/tUserInvite.js
index 5f9d536..e66514b 100644
--- a/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tUser/tUserInvite.js
+++ b/ManagementOKTravel/guns-admin/src/main/webapp/static/modular/system/tUser/tUserInvite.js
@@ -21,20 +21,11 @@
 TUser.initColumn = function () {
     return [
         {field: 'selectItem', radio: true},
-        {title: '邀请人', field: 'inviteUserName', visible: false, align: 'center', valign: 'middle',width:'8%'},
-        {title: '被邀请用户', field: 'nickName', visible: true, align: 'center', valign: 'middle',width:'8%'},
-        {title: '被邀请用户手机号', field: 'phone', visible: true, align: 'center', valign: 'middle',width:'8%'},
-        {title: '被邀请用户ID', field: 'userId', visible: true, align: 'center', valign: 'middle',width:'8%'},
-        {title: '注册时间', field: 'registerTime', visible: true, align: 'center', valign: 'middle',width:'10%',
-            formatter: function (value, row) {
-                var btn = "";
-                if(row.insertTime != '' && row.insertTime != null) {
-                    var time = row.insertTime.replace(" ",'<br>');
-                    btn = ['<p class="toolTip" style="overflow:hidden;white-space:nowrap;text-overflow:ellipsis;" title="' + row.registerTime + '" onfocus="TUser.tooltip()">' + time + '</p>']
-                }
-                return btn;
-            }
-        },
+        {title: '邀请人', field: 'inviteUserName', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '被邀请用户', field: 'nickName', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '被邀请用户手机号', field: 'phone', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '被邀请用户ID', field: 'userId', visible: true, align: 'center', valign: 'middle',width:'19%'},
+        {title: '注册时间', field: 'registerTime', visible: true, align: 'center', valign: 'middle',width:'19%',},
     ];
 };
 
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
index 36dda04..1c20c21 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/api/UserInfoController.java
@@ -82,7 +82,7 @@
             res.put("code",userInfo.getCode());
             int i = inviteService.selectCount(new EntityWrapper<Invite>()
                     .eq("inviteUserId", uid)
-                    .eq("useType", 1));
+                    .eq("userType", 1));
 
             res.put("inviteNumber",i+"");
             return ResultUtil.success(res);
@@ -116,6 +116,7 @@
                 startTime = startTime + " 00:00:00";
                 endTime = endTime + " 23:59:59";
             }
+            pageNum = (pageNum - 1) * size;
             List<Invite> invites = inviteService.inviteList(uid,startTime,endTime,pageNum,size);
             for (Invite invite : invites) {
                 // 将手机号phone中间四位替换为*
@@ -330,6 +331,7 @@
             e.printStackTrace();
             return ResultUtil.runErr();
         }
+
     }
 
 
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java
index 141dfec..1faba42 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/InviteMapper.java
@@ -11,6 +11,6 @@
 public interface InviteMapper extends BaseMapper<Invite> {
 
 
-    List<Invite> inviteList(@Param("uid")Integer uid,@Param("uid") String startTime, @Param("uid")String endTime,
+    List<Invite> inviteList(@Param("uid")Integer uid,@Param("startTime") String startTime, @Param("endTime")String endTime,
                             @Param("pageNum")Integer pageNum, @Param("size")Integer size);
 }
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
index 922efc7..a974722 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/dao/mapping/InviteMapper.xml
@@ -10,9 +10,10 @@
         <if test="null != uid">
             and t1.inviteUserId = #{uid}
         </if>
-        <if test="null != startTime and null != endTime">
+        <if test="null != startTime and '' != startTime">
             and t1.registerTime between #{startTime} and #{endTime}
         </if>
+        and t1.userType = 1
         order by t1.registerTime desc
         limit #{pageNum}, #{size}
     </select>
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java
index 5ca1931..da5d762 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/model/Invite.java
@@ -36,8 +36,8 @@
     /**
      * 使用范围(1=用户,2=司机)
      */
-    @TableField("useType")
-    private Integer useType;
+    @TableField("userType")
+    private Integer userType;
 
     @TableField(exist = false)
     @ApiModelProperty("头像")
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
index d89b29e..9e341fd 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserCouponRecordServiceImpl.java
@@ -70,7 +70,7 @@
     @Override
     public ResultUtil delMyCoupon(Integer id, Integer uid) throws Exception {
         UserCouponRecord userCouponRecord = userCouponRecordMapper.selectById(id);
-        if(userCouponRecord.getUserId() != uid){
+        if(!userCouponRecord.getUserId().equals(uid)){
             return ResultUtil.error("您不能删除此优惠券");
         }
         userCouponRecordMapper.deleteById(id);
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
index f09cf82..2739ae5 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/service/impl/UserInfoServiceImpl.java
@@ -88,6 +88,7 @@
 
     @Resource
     private DriverMapper driverMapper;
+
     @Autowired
     private RestTemplate restTemplate;
     @Resource
@@ -248,7 +249,7 @@
                 invite.setInviteUserId(uid);
                 invite.setUserId(userInfo.getId());
                 invite.setRegisterTime(new Date());
-                invite.setUseType(userType);
+                invite.setUserType(userType);
                 inviteMapper.insert(invite);
                 if (userType==1){
                     // 只有用户邀请用户会获得优惠券
@@ -287,7 +288,6 @@
                     }
                 }
             }
-            this.addCoupon(userInfo);//添加优惠券
         }
         if(userInfo.getState() == 2){
             return ResultUtil.error("账号被冻结");
@@ -554,7 +554,7 @@
                 invite.setInviteUserId(uid);
                 invite.setUserId(userInfo.getId());
                 invite.setRegisterTime(new Date());
-                invite.setUseType(userType);
+                invite.setUserType(userType);
                 inviteMapper.insert(invite);
                 if (userType==1){
                     // 只有用户邀请用户会获得优惠券
@@ -651,7 +651,9 @@
             param.put("check_path", false);
             // 用户id 用于分享
             param.put("scene", "uid="+userInfo.getId()+"userType=1");
-            param.put("env_version", "trial");
+
+            param.put("env_version", "trial");// 体验版
+//            param.put("env_version", "release");// 正式版
             param.put("width", 200); //二维码尺寸
             param.put("is_hyaline", true); // 是否需要透明底色, is_hyaline 为true时,生成透明底色的小程序码 参数仅对小程序码生效
             param.put("auto_color", true); // 自动配置线条颜色,如果颜色依然是黑色,则说明不建议配置主色调 参数仅对小程序码生效
@@ -1108,6 +1110,11 @@
         }
         jsonObject.put(userId.toString(), openid);
         redisUtil.setStrValue("appletOpenId", jsonObject.toJSONString());
+        UserInfo userInfo = userInfoMapper.selectById(userId);
+        if (userInfo!=null){
+            userInfo.setAppletsOpenId(openid);
+            userInfoMapper.updateById(userInfo);
+        }
         return ResultUtil.success();
     }
 
diff --git a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
index 1961a68..18b4ea2 100644
--- a/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
+++ b/UserOKTravel/guns-admin/src/main/java/com/stylefeng/guns/modular/system/util/WeChatUtil.java
@@ -112,7 +112,7 @@
      * @return
      */
     public String getAccessToken(){
-        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx0e72f86394831b34&secret=930f857abc74f7bb5cbd89e1544c5669";
+        String url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=wx4d36488fa2cd2718&secret=f3874e9c813f31a2e90c37346eb74d82";
         String backData = restTemplate.getForObject(url, String.class);
         String accessToken = JSONObject.parseObject(backData).getString("access_token");
         return accessToken;
diff --git a/ZuulOKTravel/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java b/ZuulOKTravel/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java
index 4bfa176..cabb640 100644
--- a/ZuulOKTravel/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java
+++ b/ZuulOKTravel/src/main/java/com/sinata/zuul/util/applets/ChildChannelHandler.java
@@ -14,13 +14,13 @@
     @Override
     protected void initChannel(SocketChannel socketChannel) throws Exception {
 //        String path = "C:\\Program Files\\Apache Software Foundation\\Tomcat 8.5\\cert\\SHA256withRSA_lzhyc.cn.pfx";
-        String path = "/usr/local/tomcat/ssl/xn95128.cn.pfx";
-        SSLContext sslContext = createSSLContext.createSSLContext("PKCS12"
-                , path, "djgz8ivi");
-        //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信
-        SSLEngine engine = sslContext.createSSLEngine();
-        engine.setUseClientMode(false);
-        socketChannel.pipeline().addLast("ssl", new SslHandler(engine));
+//        String path = "/usr/local/tomcat/ssl/xn95128.cn.pfx";
+//        SSLContext sslContext = createSSLContext.createSSLContext("PKCS12"
+//                , path, "djgz8ivi");
+//        //SSLEngine 此类允许使用ssl安全套接层协议进行安全通信
+//        SSLEngine engine = sslContext.createSSLEngine();
+//        engine.setUseClientMode(false);
+//        socketChannel.pipeline().addLast("ssl", new SslHandler(engine));
 
         // 设置30秒没有读到数据,则触发一个READER_IDLE事件。
         // pipeline.addLast(new IdleStateHandler(30, 0, 0));

--
Gitblit v1.7.1