Althars123 il y a 3 ans
Parent
commit
e3849f8268

+ 47 - 31
jkt-admin/src/main/java/com/miaxis/system/controller/system/SysLoginController.java

@@ -1,5 +1,6 @@
 package com.miaxis.system.controller.system;
 
+import com.alibaba.fastjson.JSONObject;
 import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysMenu;
 import com.miaxis.common.core.domain.entity.SysUser;
@@ -16,6 +17,8 @@ import com.miaxis.system.dto.common.RouterDTO;
 import com.miaxis.system.dto.system.TokenDTO;
 import com.miaxis.system.dto.system.UserInfoDTO;
 import com.miaxis.system.service.ISysMenuService;
+import com.miaxis.wx.dto.WxResult;
+import com.miaxis.wx.service.WxService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -50,6 +53,22 @@ public class SysLoginController
     private TokenService tokenService;
 
 
+    @Autowired
+    private WxService wxService;
+
+
+
+    @Value("${app.appId}")
+    private String appid;
+
+    @Value("${app.appSecret}")
+    private String appSecret;
+
+
+
+
+
+
 
 
 
@@ -84,48 +103,45 @@ public class SysLoginController
         tokenDTO.setToken(token);
         return Response.success(tokenDTO);
     }
-//
-//    /**
-//     * 用户 jscode登录
-//     *
-//     */
-//    @PostMapping("/login/jscode")
-//    @ApiOperation("用户jscode登录")
-//    public Response<TokenDTO> getInfo(String jscode){
-//        String result = wxService.getWxInfo(appid, secret, jscode,"authorization_code");
-//        JSONObject jsonString = JSONObject.parseObject(result);
-//        WxResult wxResult = JSONObject.toJavaObject(jsonString, WxResult.class);
-//        TokenDTO tokenDTO = new TokenDTO();
-//        // 生成令牌
-//        if (wxResult.getOpenid() != null){
-//            // 生成令牌
-//            String token = loginService.login(wxResult.getOpenid(),null, StudentLoginTypeEnum.OPENID_LOGIN.getCode());
-//            tokenDTO.setToken(token);
-//            return Response.success(tokenDTO) ;
-//        }
-//        else{
-//            return Response.error(500,wxResult.getErrmsg());
-//        }
-//
-//    }
-
 
     /**
-     * 用户 jscode登录
+     * 用户 openid登录
      *
      */
-    @PostMapping("/login/jscode-test")
-    @ApiOperation("用户jscode登录(测试,固定openid)")
-    public Response<TokenDTO> getInfoTest(String jscode){
+    @PostMapping("/login/code")
+    @ApiOperation("用户授权码模式登录")
+    public Response<TokenDTO> loginByAuthorizationCode(String authorizationCode ){
+
+
+        WxResult wxResult = wxService.getWxToken(appid, appSecret, authorizationCode, "authorization_code");
+        // 生成令牌
+        String token = loginService.login(wxResult.getOpenid(),null, StudentLoginTypeEnum.OPENID_LOGIN.getCode());
         TokenDTO tokenDTO = new TokenDTO();
-            // 生成令牌
-        String token = loginService.login("oO7PJ5CPQJo62kZWA3uiUX2KG2s4",null, StudentLoginTypeEnum.OPENID_LOGIN.getCode());
         tokenDTO.setToken(token);
+        tokenDTO.setWxToken(wxResult.getAccess_token());
         return Response.success(tokenDTO) ;
 
 
+
     }
 
+//
+//    /**
+//     * 用户 jscode登录
+//     *
+//     */
+//    @PostMapping("/login/jscode-test")
+//    @ApiOperation("用户jscode登录(测试,固定openid)")
+//    public Response<TokenDTO> getInfoTest(String jscode){
+//        TokenDTO tokenDTO = new TokenDTO();
+//            // 生成令牌
+//        String token = loginService.login("oO7PJ5CPQJo62kZWA3uiUX2KG2s4",null, StudentLoginTypeEnum.OPENID_LOGIN.getCode());
+//        tokenDTO.setToken(token);
+//        return Response.success(tokenDTO) ;
+//
+//
+//    }
+
 
     /**
      * 获取用户信息

+ 5 - 0
jkt-admin/src/main/resources/application-dev.yml

@@ -78,6 +78,11 @@ spring:
                 max-wait: -1ms
 
 
+app:
+    appId: 123
+    appSecret: 345
+
+
 
 
 

+ 12 - 34
jkt-common/src/main/java/com/miaxis/common/core/domain/entity/UserInfo.java

@@ -30,30 +30,6 @@ public class UserInfo extends BaseBusinessEntity{
     @ApiModelProperty(value = "主键")
     private Long id;
 
-    /** 性别 1:男性 2:女性 */
-    @Excel(name = "性别 1:男性 2:女性")
-    @TableField("sex")
-    @ApiModelProperty(value = "性别 1:男性 2:女性")
-    private Integer sex;
-
-    /** 身份证明号码 1:身份证号,2:护照,3:军官证,4:其他 */
-    @Excel(name = "身份证明号码 1:身份证号,2:护照,3:军官证,4:其他")
-    @TableField("cardtype")
-    @ApiModelProperty(value = "身份证明号码 1:身份证号,2:护照,3:军官证,4:其他")
-    private Integer cardtype;
-
-    /** 身份证明号码 */
-    @Excel(name = "身份证明号码")
-    @TableField("idcard")
-    @ApiModelProperty(value = "身份证明号码")
-    private String idcard;
-
-    /** 出生日期 */
-    @JsonFormat(pattern = "yyyy-MM-dd")
-    @Excel(name = "出生日期", width = 30, dateFormat = "yyyy-MM-dd")
-    @TableField("birthday")
-    @ApiModelProperty(value = "出生日期")
-    private Date birthday;
 
     /** 手机号码 */
     @Excel(name = "手机号码")
@@ -87,25 +63,27 @@ public class UserInfo extends BaseBusinessEntity{
     @ApiModelProperty(value = "微信openid")
     private String openid;
 
-    /** 业务类型  0:初领 1:增领 9:其他 */
-    @Excel(name = "业务类型  0:初领 1:增领 9:其他")
-    @TableField("busitype")
-    @ApiModelProperty(value = "业务类型  0:初领 1:增领 9:其他")
-    private Integer busitype;
+
 
 
     /** 0 启用 1禁用 */
     @Excel(name = "0 启用 1禁用")
     @TableField("status")
     @ApiModelProperty(value = "0 启用 1禁用")
-    private String status;
+    private Integer status;
+
+    /** 0 否 1是 */
+    @Excel(name = "是否是vip 0 否 1")
+    @TableField("is_vip")
+    @ApiModelProperty(value = "是否是vip 0 否 1是")
+    private Integer isVip;
 
 
     /** 驾校班型Id */
-    @Excel(name = "公众平台用户Id")
-    @TableField("gzpt_user_id")
-    @ApiModelProperty(value = "公众平台用户Id")
-    private Integer gzptUserId;
+    @Excel(name = "联合id")
+    @TableField("union_id")
+    @ApiModelProperty(value = "联合id")
+    private String unionId;
 
 
 

+ 4 - 0
jkt-common/src/main/java/com/miaxis/common/core/domain/model/LoginUser.java

@@ -271,6 +271,10 @@ public class LoginUser implements UserDetails
         if (this.getStudent() != null){
             List<SimpleGrantedAuthority> roleList = new ArrayList<SimpleGrantedAuthority>();
             roleList.add(new SimpleGrantedAuthority("ROLE_STUDENT"));
+            //如果已激活,是vip的话
+            if (this.getStudent().getIsVip() == 1){
+                roleList.add(new SimpleGrantedAuthority("ROLE_VIP"));
+            }
             return roleList;
         }else {
             return null;

+ 3 - 3
jkt-framework/src/main/java/com/miaxis/framework/security/provider/OpenIdAuthenticationProvider.java

@@ -28,9 +28,9 @@ public class OpenIdAuthenticationProvider implements  AuthenticationProvider {
     @Override
     public Authentication authenticate(Authentication authentication) throws AuthenticationException {
         UserDetails userDetails = userDetailsService.loadUserByUsername((String) authentication.getPrincipal());
-        OpenIdAuthenticationToken moblieCodeAuthenticationToken = new OpenIdAuthenticationToken(userDetails,userDetails.getAuthorities());
-        moblieCodeAuthenticationToken.setDetails(moblieCodeAuthenticationToken);
-        return moblieCodeAuthenticationToken;
+        OpenIdAuthenticationToken openIdAuthenticationToken = new OpenIdAuthenticationToken(userDetails,userDetails.getAuthorities());
+        openIdAuthenticationToken.setDetails(openIdAuthenticationToken);
+        return openIdAuthenticationToken;
     }
 
     @Override

+ 2 - 2
jkt-framework/src/main/java/com/miaxis/framework/web/service/UserDetailsServiceImpl.java

@@ -69,8 +69,8 @@ public class UserDetailsServiceImpl implements UserDetailsService
                 UserInfo userInfo = userService.getStudentByOpenId(identification);
                 if (userInfo == null) {
                     userInfo = new UserInfo();
-                    userInfo.setHeadImage(configService.selectConfigByKey("xcx_user_image"));
-                    userInfo.setNickName("用户未授权_"+RandomNameUtils.generateName());
+//                    userInfo.setHeadImage(configService.selectConfigByKey("xcx_user_image"));
+//                    userInfo.setNickName("用户未授权_"+RandomNameUtils.generateName());
                     userInfo.setOpenid(identification);
                     userService.saveUserInfo(userInfo);
                 }

+ 15 - 0
jkt-service/src/main/java/com/miaxis/wx/dto/WxResult.java

@@ -0,0 +1,15 @@
+package com.miaxis.wx.dto;
+
+
+import lombok.Data;
+
+@Data
+public class WxResult {
+     String openid;
+     String access_token;
+     String refresh_token;
+     Integer expire_in;
+     String scope;
+     String unionid;
+
+}

+ 34 - 0
jkt-service/src/main/java/com/miaxis/wx/service/WxService.java

@@ -0,0 +1,34 @@
+package com.miaxis.wx.service;
+
+
+import com.miaxis.common.config.FeignConfig;
+import com.miaxis.wx.dto.WxResult;
+import org.springframework.cloud.openfeign.FeignClient;
+import org.springframework.stereotype.Component;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestParam;
+
+/**
+ *
+ * 微信接口
+ */
+@FeignClient(name="wxService",
+        url = "https://api.weixin.qq.com",configuration = FeignConfig.class)
+@Component
+public interface WxService {
+    /**
+     *  获取openid
+     * @param appid
+     * @param secret
+     * @param code
+     * @param grantType
+     * @return
+     */
+    @GetMapping(value = "/sns/oauth2/access_token")
+    WxResult getWxToken(
+            @RequestParam("appid") String appid,
+            @RequestParam("secret") String secret,
+            @RequestParam("code") String code,
+            @RequestParam("grant_type") String grantType);
+
+}

+ 2 - 0
jkt-system/src/main/java/com/miaxis/system/dto/system/TokenDTO.java

@@ -16,4 +16,6 @@ public class TokenDTO {
     private static final long serialVersionUID = 1L;
     @ApiModelProperty(value = "令牌")
     private String token;
+    @ApiModelProperty(value = "微信访问token")
+    private String wxToken;
 }