Quellcode durchsuchen

add 保利威VID

he2802 vor 4 Jahren
Ursprung
Commit
6f09b1eda5

+ 1 - 1
zhongzheng-api/src/main/java/com/zhongzheng/controller/wx/WxLoginController.java

@@ -48,7 +48,7 @@ public class WxLoginController
     {
         AjaxResult ajax = AjaxResult.success();
         String union = "cba";
-        String token = wxLoginService.login(union);
+        String token = wxLoginService.login(loginBody);
         ajax.put(Constants.TOKEN, token);
         return ajax;
     }

+ 65 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/AES.java

@@ -0,0 +1,65 @@
+package com.zhongzheng.common.utils;
+
+import org.bouncycastle.jce.provider.BouncyCastleProvider;
+import javax.crypto.BadPaddingException;
+import javax.crypto.Cipher;
+import javax.crypto.IllegalBlockSizeException;
+import javax.crypto.NoSuchPaddingException;
+import javax.crypto.spec.IvParameterSpec;
+import javax.crypto.spec.SecretKeySpec;
+import java.security.*;
+
+
+public class AES {
+    public static boolean initialized = false;
+
+    /**
+     * AES解密
+     * @param content 密文
+     * @return
+     * @throws InvalidAlgorithmParameterException
+     * @throws NoSuchProviderException
+     */
+    public static byte[] decrypt(byte[] content, byte[] keyByte, byte[] ivByte) throws InvalidAlgorithmParameterException {
+        initialize();
+        try {
+//            Cipher cipher = Cipher.getInstance("DES/ECB/NoPadding");
+            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding");
+            Key sKeySpec = new SecretKeySpec(keyByte, "AES");
+
+            cipher.init(Cipher.DECRYPT_MODE, sKeySpec, generateIV(ivByte));// 初始化
+            byte[] result = cipher.doFinal(content);
+            return result;
+        } catch (NoSuchAlgorithmException e) {
+            e.printStackTrace();
+        } catch (NoSuchPaddingException e) {
+            e.printStackTrace();
+        } catch (InvalidKeyException e) {
+            e.printStackTrace();
+        } catch (IllegalBlockSizeException e) {
+            e.printStackTrace();
+        } catch (BadPaddingException e) {
+            e.printStackTrace();
+        } catch (NoSuchProviderException e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        } catch (Exception e) {
+            // TODO Auto-generated catch block
+            e.printStackTrace();
+        }
+        return null;
+    }
+
+    public static void initialize(){
+        if (initialized) return;
+        Security.addProvider(new BouncyCastleProvider());
+        initialized = true;
+    }
+    //生成iv
+    public static AlgorithmParameters generateIV(byte[] iv) throws Exception{
+        AlgorithmParameters params = AlgorithmParameters.getInstance("AES");
+        params.init(new IvParameterSpec(iv));
+        return params;
+    }
+
+}

+ 24 - 0
zhongzheng-common/src/main/java/com/zhongzheng/common/utils/TelPhoneUtils.java

@@ -0,0 +1,24 @@
+package com.zhongzheng.common.utils;
+
+import com.zhongzheng.common.utils.spring.SpringUtils;
+import org.springframework.context.MessageSource;
+import org.springframework.context.i18n.LocaleContextHolder;
+
+/**
+ * 手机号码工具栏
+ *
+ * @author hjl
+ */
+public class TelPhoneUtils
+{
+    /**
+     * 隐藏手机号码
+     * @param tel
+     * @return
+     */
+    public static String hideTelPhone(String tel)
+    {
+        String phoneNumber = tel.replaceAll("(\\d{3})\\d{4}(\\d{4})","$1****$2");
+        return phoneNumber;
+    }
+}

+ 40 - 1
zhongzheng-framework/src/main/java/com/zhongzheng/framework/web/service/WxLoginService.java

@@ -1,12 +1,18 @@
 package com.zhongzheng.framework.web.service;
 
 
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
 import com.zhongzheng.common.core.bo.WxLoginResultBo;
 import com.zhongzheng.common.exception.CustomException;
 
+import com.zhongzheng.common.utils.AES;
+import com.zhongzheng.modules.user.bo.UserAddBo;
 import com.zhongzheng.modules.user.domain.User;
 import com.zhongzheng.modules.user.entity.ClientLoginUser;
 import com.zhongzheng.modules.user.service.IUserService;
+import com.zhongzheng.modules.wx.bo.WxLoginBody;
+import org.apache.commons.codec.binary.Base64;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import org.springframework.stereotype.Component;
@@ -39,7 +45,8 @@ public class WxLoginService
     @Autowired
     private IUserService iUserService;
 
-    public String login(String unionId) {
+    public String login(WxLoginBody loginBody) {
+        String unionId = getWxUnionId(loginBody.getCode());
         User user = iUserService.queryByUnionId(unionId);
         if(user==null){
             throw new CustomException("unionId不存在");
@@ -49,9 +56,41 @@ public class WxLoginService
         return wxTokenService.createToken(loginUser);
     }
 
+    /**
+     * 小程序注册
+     * @param openId
+     * @param unionId
+     * @param tel
+     * @return
+     */
+    public String register_small(String openId,String unionId,String tel) {
+        UserAddBo bo = new UserAddBo();
+        bo.setOpenId(openId);
+        bo.setUnionId(unionId);
+        bo.setTelphone(tel);
+
+        return null;
+    }
+
     public String getWxUnionId(String code) {
         String url = String.format(wxAuthUrl, appid, appsrcret, code);
         WxLoginResultBo wxLoginResult = restTemplate.getForObject(url, WxLoginResultBo.class);
         return null;
     }
+
+    public void obtainWxPhone(String iv, String encryptedData,String session_key){
+        String userInfo = null;
+        JSONObject userInfoJSON = null;
+        try {
+            byte[] resultByte = AES.decrypt(Base64.decodeBase64(encryptedData),
+                    Base64.decodeBase64(session_key),
+                    Base64.decodeBase64(iv));
+
+            userInfo = new String(resultByte, "UTF-8");
+            System.out.println("userInfo:" + userInfo);
+            userInfoJSON = JSON.parseObject(userInfo);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
 }

+ 1 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/domain/CourseSection.java

@@ -66,4 +66,5 @@ private static final long serialVersionUID=1L;
     private String mp4;
     @TableField(exist = false)
     private String firstImage;
+
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/course/vo/CourseSectionVo.java

@@ -55,5 +55,7 @@ public class CourseSectionVo {
 	private String mp4;
 	@ApiModelProperty("预览图")
 	private String firstImage;
+	@ApiModelProperty("保利威VID")
+	private String vid;
 
 }

+ 2 - 0
zhongzheng-system/src/main/java/com/zhongzheng/modules/user/bo/UserAddBo.java

@@ -87,4 +87,6 @@ public class UserAddBo {
     /** 状态 1正常 0关闭 */
     @ApiModelProperty("状态 1正常 0关闭")
     private Integer status;
+    @ApiModelProperty("$column.columnComment")
+    private String unionId;
 }

+ 1 - 1
zhongzheng-system/src/main/java/com/zhongzheng/modules/wx/bo/WxLoginBody.java

@@ -32,6 +32,6 @@ public class WxLoginBody {
     @ApiModelProperty("encryptedData")
     private String encryptedData;
 
-    private String tel;
+
 
 }

+ 3 - 1
zhongzheng-system/src/main/resources/mapper/modules/course/CourseSectionMapper.xml

@@ -18,6 +18,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="duration" column="duration"/>
         <result property="mp4" column="mp4"/>
         <result property="firstImage" column="first_image"/>
+        <result property="vid" column="vid"/>
     </resultMap>
 
     <select id="selectCourseSectionList" parameterType="com.zhongzheng.modules.course.bo.CourseSectionQueryBo"  resultMap="CourseSectionResult">
@@ -28,7 +29,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         cs.`status`,
         pv.duration,
         pv.first_image,
-        pv.mp4
+        pv.mp4,
+        pv.vid
         FROM
         course_section cs
         LEFT JOIN polyv_video pv ON cs.polyv_id = pv.polyv_id