Просмотр исходного кода

[微信第三方登录][修改]:账户保护

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
aa2229090b
8 измененных файлов: 79 добавлений и 12 удалений
  1. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java
  2. +14
    -1
      mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java
  3. +6
    -2
      mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java
  4. +9
    -1
      mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java
  5. +38
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumUserWechat.java
  6. +5
    -0
      mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java
  7. +3
    -7
      mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml
  8. +3
    -1
      mallinkWechatOpen/src/main/java/com/iformall/controller/HomeController.java

+ 1
- 0
mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java Просмотреть файл

@@ -9,6 +9,7 @@ import com.iformall.domain.po.*;
import com.iformall.domain.vo.MallUserInfoVo; import com.iformall.domain.vo.MallUserInfoVo;
import com.iformall.enums.EnumMallUserStatus; import com.iformall.enums.EnumMallUserStatus;
import com.iformall.enums.EnumMsgModel; import com.iformall.enums.EnumMsgModel;
import com.iformall.enums.EnumUserWechat;
import com.iformall.exception.MallinkException; import com.iformall.exception.MallinkException;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.shiro.UserSession; import com.iformall.shiro.UserSession;


+ 14
- 1
mallinkAdmin/src/main/java/com/iformall/controller/MallUserInfoController.java Просмотреть файл

@@ -9,6 +9,7 @@ import com.iformall.domain.vo.MallUserInfoVo;
import com.iformall.enums.EnumMallUserStatus; import com.iformall.enums.EnumMallUserStatus;
import com.iformall.enums.EnumUserAdmin; import com.iformall.enums.EnumUserAdmin;
import com.iformall.enums.EnumFlowPermissionType; import com.iformall.enums.EnumFlowPermissionType;
import com.iformall.enums.EnumUserWechat;
import com.iformall.service.*; import com.iformall.service.*;
import com.iformall.shiro.PasswordHelper; import com.iformall.shiro.PasswordHelper;
import com.iformall.shiro.UserSession; import com.iformall.shiro.UserSession;
@@ -25,6 +26,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.Assert; import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;


import javax.print.DocFlavor;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@@ -82,7 +84,12 @@ public class MallUserInfoController extends BaseController {
u.setRoleId(role.getId()); u.setRoleId(role.getId());
} }
} }
u.setPassword(null);//不返回密码
// 保密
u.setPassword(null);
u.setBopenId(null);
if(StringUtils.isNotBlank(u.getWebOpenId())) {
u.setWebOpenId("保密");
}
} }
return new ResultData(page); return new ResultData(page);
} }
@@ -92,6 +99,12 @@ public class MallUserInfoController extends BaseController {
public ResultData detail(Long id) { public ResultData detail(Long id) {
logger.debug("[" + getIpAddr() + "] MallUserInfoController::detail"); logger.debug("[" + getIpAddr() + "] MallUserInfoController::detail");
final MallUserInfo user = userInfoService.getById(id); final MallUserInfo user = userInfoService.getById(id);
user.setPassword(null);
user.setBopenId(null);
if(StringUtils.isNotBlank(user.getWebOpenId())) {
user.setWebOpenId("保密");
}

return new ResultData(user); return new ResultData(user);
} }




+ 6
- 2
mallinkAdmin/src/main/java/com/iformall/controller/WechatLoginController.java Просмотреть файл

@@ -103,7 +103,9 @@ public class WechatLoginController extends BaseController {
MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
info.setPassword("保密"); info.setPassword("保密");
info.setBopenId("保密"); info.setBopenId("保密");
info.setWebOpenId("保密");
if(StringUtils.isNotBlank(info.getWebOpenId())) {
info.setWebOpenId("保密");
}
String menus = mallUserRoleService.getPermissionsByUser(info); String menus = mallUserRoleService.getPermissionsByUser(info);
if(menus != null) { if(menus != null) {
info.setMenus(menus); info.setMenus(menus);
@@ -185,7 +187,9 @@ public class WechatLoginController extends BaseController {
MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
info.setPassword("保密"); info.setPassword("保密");
info.setBopenId("保密"); info.setBopenId("保密");
info.setWebOpenId("保密");
if(StringUtils.isNotBlank(info.getWebOpenId())) {
info.setWebOpenId("保密");
}
String menus = mallUserRoleService.getPermissionsByUser(info); String menus = mallUserRoleService.getPermissionsByUser(info);
if(menus != null) { if(menus != null) {
info.setMenus(menus); info.setMenus(menus);


+ 9
- 1
mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java Просмотреть файл

@@ -1,6 +1,8 @@
package com.iformall.domain.po; package com.iformall.domain.po;


import com.iformall.enums.EnumUserWechat;
import lombok.Data; import lombok.Data;
import org.apache.commons.lang3.StringUtils;


import javax.persistence.Id; import javax.persistence.Id;
import javax.persistence.Table; import javax.persistence.Table;
@@ -81,6 +83,7 @@ public class MallUserInfo implements Serializable {
private String webOpenId; private String webOpenId;


@io.swagger.annotations.ApiModelProperty(value="1 未绑定wechat,0 绑定微信",name="withWechat") @io.swagger.annotations.ApiModelProperty(value="1 未绑定wechat,0 绑定微信",name="withWechat")
@Transient
private Integer withWechat; private Integer withWechat;


@Transient @Transient
@@ -218,7 +221,12 @@ public class MallUserInfo implements Serializable {
} }


public Integer getWithWechat() { public Integer getWithWechat() {
return withWechat;
if(StringUtils.isNotBlank(this.webOpenId)) {
this.withWechat = EnumUserWechat.HAD.getCode();
} else {
this.withWechat = EnumUserWechat.NO.getCode();
}
return this.withWechat;
} }


public void setWithWechat(Integer withWechat) { public void setWithWechat(Integer withWechat) {


+ 38
- 0
mallinkService/src/main/java/com/iformall/enums/EnumUserWechat.java Просмотреть файл

@@ -0,0 +1,38 @@
package com.iformall.enums;

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumUserWechat {

// 微信第三方web登录 0-已绑定,1-未绑定

HAD(0, "已绑定"),
NO(1, "未绑定")
;

public static EnumUserWechat getEnum(Integer code) {
for (EnumUserWechat value : values()) {
if (value.getCode().equals(code)) {
return value;
}
}
return null;
}

private Integer code;
private String message;

EnumUserWechat(Integer code, String message) {
this.code = code;
this.message = message;
}

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 5
- 0
mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java Просмотреть файл

@@ -659,6 +659,11 @@ public class WxFlowServiceImpl implements WxFlowService {
List<String> userIdList = getTaskCandidateUserId(task.getId()); List<String> userIdList = getTaskCandidateUserId(task.getId());
for (String userId:userIdList) { for (String userId:userIdList) {
MallUserInfo mallUserInfo = this.mallUserInfoService.getById(Long.parseLong(userId)); MallUserInfo mallUserInfo = this.mallUserInfoService.getById(Long.parseLong(userId));
mallUserInfo.setPassword(null);
mallUserInfo.setBopenId(null);
if(StringUtils.isNotBlank(mallUserInfo.getWebOpenId())) {
mallUserInfo.setWebOpenId("保密");
}
result.add(mallUserInfo); result.add(mallUserInfo);
} }
} }


+ 3
- 7
mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml Просмотреть файл

@@ -15,18 +15,16 @@
<result column="phone" jdbcType="VARCHAR" property="phone"/> <result column="phone" jdbcType="VARCHAR" property="phone"/>
<result column="bopen_id" jdbcType="VARCHAR" property="bopenId"/> <result column="bopen_id" jdbcType="VARCHAR" property="bopenId"/>
<result column="web_open_id" jdbcType="VARCHAR" property="webOpenId"/> <result column="web_open_id" jdbcType="VARCHAR" property="webOpenId"/>
<result column="with_wechat" jdbcType="INTEGER" property="withWechat"/>
<result column="flow_permission" property="flowPermission"/> <result column="flow_permission" property="flowPermission"/>
</resultMap> </resultMap>


<sql id="allSafeColumns"> <sql id="allSafeColumns">
`id`,`tenant_id`,`username`,`name`,`password`,`create_time`,`last_login_time`,`status`,`is_admin`,`nick_name`,`phone`,`flow_permission`,
isnull(`web_open_id`) with_wechat
`id`,`tenant_id`,`username`,`name`,`password`,`create_time`,`last_login_time`,`status`,`is_admin`,`nick_name`,`phone`,`flow_permission`,`web_open_id`
</sql> </sql>


<sql id="allColumns"> <sql id="allColumns">
`id`,`tenant_id`,`username`,`name`,`password`,`create_time`,`last_login_time`,`status`,`is_admin`,`nick_name`,`phone`,`flow_permission`, `id`,`tenant_id`,`username`,`name`,`password`,`create_time`,`last_login_time`,`status`,`is_admin`,`nick_name`,`phone`,`flow_permission`,
`bopen_id`,`web_open_id`,isnull(`web_open_id`) with_wechat
`bopen_id`,`web_open_id`
</sql> </sql>


<sql id="dynamicWhereConditions"> <sql id="dynamicWhereConditions">
@@ -221,7 +219,6 @@
<result column="phone" jdbcType="VARCHAR" property="phone"/> <result column="phone" jdbcType="VARCHAR" property="phone"/>
<result column="bopen_id" jdbcType="VARCHAR" property="bopenId"/> <result column="bopen_id" jdbcType="VARCHAR" property="bopenId"/>
<result column="web_open_id" jdbcType="VARCHAR" property="webOpenId"/> <result column="web_open_id" jdbcType="VARCHAR" property="webOpenId"/>
<result column="with_wechat" jdbcType="INTEGER" property="withWechat"/>
<result column="flow_permission" property="flowPermission"/> <result column="flow_permission" property="flowPermission"/>


<result column="mall_name" jdbcType="VARCHAR" property="mallName"/> <result column="mall_name" jdbcType="VARCHAR" property="mallName"/>
@@ -232,13 +229,12 @@


<sql id="allSafeVColumns"> <sql id="allSafeVColumns">
u.`id`,u.`tenant_id`,u.`username`,u.`name`,u.`password`,u.`create_time`,u.`last_login_time`,u.`status`,u.`is_admin`,u.`nick_name`,u.`phone`,u.`flow_permission`, u.`id`,u.`tenant_id`,u.`username`,u.`name`,u.`password`,u.`create_time`,u.`last_login_time`,u.`status`,u.`is_admin`,u.`nick_name`,u.`phone`,u.`flow_permission`,
isnull(u.`web_open_id`) with_wechat,
m.`name` as mall_name, m.`group` as mall_group, m.`img_url`, m.`img_url_h` m.`name` as mall_name, m.`group` as mall_group, m.`img_url`, m.`img_url_h`
</sql> </sql>


<sql id="allVColumns"> <sql id="allVColumns">
u.`id`,u.`tenant_id`,u.`username`,u.`name`,u.`password`,u.`create_time`,u.`last_login_time`,u.`status`,u.`is_admin`,u.`nick_name`,u.`phone`,u.`flow_permission`, u.`id`,u.`tenant_id`,u.`username`,u.`name`,u.`password`,u.`create_time`,u.`last_login_time`,u.`status`,u.`is_admin`,u.`nick_name`,u.`phone`,u.`flow_permission`,
u.`bopen_id`,u.`web_open_id`,isnull(u.`web_open_id`) with_wechat
u.`bopen_id`,u.`web_open_id`,
m.`name` as mall_name, m.`group` as mall_group, m.`img_url`, m.`img_url_h` m.`name` as mall_name, m.`group` as mall_group, m.`img_url`, m.`img_url_h`
</sql> </sql>




+ 3
- 1
mallinkWechatOpen/src/main/java/com/iformall/controller/HomeController.java Просмотреть файл

@@ -95,7 +95,9 @@ public class HomeController extends BaseController {
MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
info.setPassword("保密"); info.setPassword("保密");
info.setBopenId("保密"); info.setBopenId("保密");
info.setWebOpenId("保密");
if(StringUtils.isNotBlank(info.getWebOpenId())) {
info.setWebOpenId("保密");
}
String menus = mallUserRoleService.getPermissionsByUser(info); String menus = mallUserRoleService.getPermissionsByUser(info);
if(menus != null) { if(menus != null) {
info.setMenus(menus); info.setMenus(menus);


Загрузка…
Отмена
Сохранить