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

[移动塔台登录][修改]:移动塔台登录修改

release_toaliyun_real
Stormeye Wu 7 лет назад
Родитель
Сommit
ff3e6739f1
14 измененных файлов: 239 добавлений и 98 удалений
  1. +1
    -0
      mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java
  2. +14
    -43
      mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java
  3. +4
    -29
      mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java
  4. +23
    -10
      mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java
  5. +34
    -0
      mallinkService/src/main/java/com/iformall/enums/EnumMenuType.java
  6. +3
    -1
      mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java
  7. +12
    -2
      mallinkService/src/main/java/com/iformall/service/MallRolePermissionService.java
  8. +10
    -2
      mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java
  9. +25
    -2
      mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java
  10. +7
    -2
      mallinkService/src/main/java/com/iformall/service/impl/MallRolePermissionServiceImpl.java
  11. +7
    -2
      mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java
  12. +65
    -0
      mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java
  13. +27
    -5
      mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml
  14. +7
    -0
      pom.xml

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

@@ -19,6 +19,7 @@ import javax.servlet.http.HttpServletRequest;

@RestController
public class BaseController {

@InitBinder
public void InitBinder(WebDataBinder dataBinder) {
dataBinder.registerCustomEditor(Date.class, new PropertyEditorSupport() {


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

@@ -9,6 +9,8 @@ import com.iformall.domain.po.MallRolePermission;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.MallUserRole;
import com.iformall.domain.po.WxAppinfo;
import com.iformall.enums.EnumMenuType;
import com.iformall.enums.EnumUserAdmin;
import com.iformall.exception.MallinkException;
import com.iformall.service.MallRolePermissionService;
import com.iformall.service.MallUserInfoService;
@@ -36,6 +38,7 @@ import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.IOException;
import java.util.List;


@RestController
@@ -112,8 +115,10 @@ public class HomeController extends BaseController {
// }
MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
info.setPassword("保密");
info.setBopenId("保密");
info.setWebOpenId("保密");
// System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId());
String menus = getPermissionsByRole(info);
String menus = mallUserRoleService.getPermissionsByUser(info);
if(menus != null) {
info.setMenus(menus);
}
@@ -124,46 +129,10 @@ public class HomeController extends BaseController {
return data;
}

private String getPermissionsByRole(MallUserInfo info) {
MallUserRole ur = new MallUserRole();
ur.setUid(info.getId());
PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1);
if (page.getSize() > 0) {
Long roleId = page.getList().get(0).getRoleId();
MallRolePermission p = new MallRolePermission();
p.setRoleId(roleId);
p.setTenantId(info.getTenantId());
PageInfo<MallRolePermission> listAsPage = mallRolePermissionService.listAsPage(p, 1, 100);
String menus = "";
for (MallRolePermission rp : listAsPage.getList()) {
menus += rp.getPermissionId() + ",";
}
if (menus.length() > 0) {
menus = menus.substring(0, menus.length() - 1);
}
return menus;
}
return null;
}

private boolean isInMobileAdmin(MallUserInfo user) {
// 检查用户是否有 移动端数据塔台 权限
boolean isInMobile = false;
MallUserRole ur = new MallUserRole();
ur.setUid(user.getId());
PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1);
if (page.getSize() > 0) {
Long roleId = page.getList().get(0).getRoleId();
MallRolePermission p = new MallRolePermission();
p.setRoleId(roleId);
p.setTenantId(user.getTenantId());
PageInfo<MallRolePermission> listAsPage = mallRolePermissionService.listAsPage(p, 1, 100);
for (MallRolePermission rp : listAsPage.getList()) {
if (rp.getPermissionId().equals(8L)) { /// 移动端数据塔台
isInMobile = true;
}
}
}
isInMobile = mallUserRoleService.checkIsMobileAdmin(user);
return isInMobile;
}

@@ -186,13 +155,13 @@ public class HomeController extends BaseController {
// 领导登录
user = mallUserInfoService.getByPhone(user.getPhone(), appinfo.getTenantId());
if(user == null || !isInMobileAdmin(user)) {
return new ResultData(ErrorCode.USER_NOT_ADMIN);
return new ResultData(ErrorCode.USER_NO_PERMISSION);
}
} else if(StringUtils.isNotBlank(user.getOpenId())) {
} else if(StringUtils.isNotBlank(user.getBopenId())) {
// 领导登录
user = mallUserInfoService.getByOpenId(user.getOpenId(), appinfo.getTenantId());
user = mallUserInfoService.getByBOpenId(user.getBopenId(), appinfo.getTenantId());
if(user == null || !isInMobileAdmin(user)) {
return new ResultData(ErrorCode.USER_NOT_ADMIN);
return new ResultData(ErrorCode.USER_NO_PERMISSION);
}
} else {
if (StringUtils.isEmpty(user.getUsername()) || StringUtils.isEmpty(user.getPassword())) {
@@ -214,8 +183,10 @@ public class HomeController extends BaseController {
// }
MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo);
info.setPassword("保密");
info.setBopenId("保密");
info.setWebOpenId("保密");
// System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId());
String menus = getPermissionsByRole(info);
String menus = mallUserRoleService.getPermissionsByUser(info);
if(menus != null) {
info.setMenus(menus);
}


+ 4
- 29
mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java Просмотреть файл

@@ -91,12 +91,12 @@ public class WxInfoController extends BaseController {
try {
Map<String, String> retMap = getOpenIdInfo(appId, code);
String openId = retMap.get("openId");
MallUserInfo user = mallUserInfoService.getByOpenId(openId, wxAppinfo.getTenantId());
MallUserInfo user = mallUserInfoService.getByBOpenId(openId, wxAppinfo.getTenantId());
if(user == null) {
return new ResultData(ErrorCode.USER_NO_PERMISSION, retMap);
}

if(!isInMobileAdmin(user)) {
if(!mallUserRoleService.checkIsMobileAdmin(user)) {
return new ResultData(ErrorCode.USER_NO_PERMISSION, retMap);
}

@@ -109,31 +109,6 @@ public class WxInfoController extends BaseController {
}
}

private boolean isInMobileAdmin(MallUserInfo user) {
// 检查用户是否有 移动端数据塔台 权限
boolean isInMobile = false;
if(EnumUserAdmin.ADMIN.getCode().equals(user.getIsAdmin())) { // 超管
isInMobile = true;
return isInMobile;
}
MallUserRole ur = new MallUserRole();
ur.setUid(user.getId());
PageInfo<MallUserRole> page = mallUserRoleService.listAsPage(ur, 1, 1);
if (page.getSize() > 0) {
Long roleId = page.getList().get(0).getRoleId();
MallRolePermission p = new MallRolePermission();
p.setRoleId(roleId);
p.setTenantId(user.getTenantId());
PageInfo<MallRolePermission> listAsPage = mallRolePermissionService.listAsPage(p, 1, 100);
for (MallRolePermission rp : listAsPage.getList()) {
if (rp.getPermissionId().equals(8L)) { /// 移动端数据塔台
isInMobile = true;
}
}
}
return isInMobile;
}

private Map<String,String> getOpenIdInfo(String appId, String code) {
WxAppinfo wxAppinfo = getAppInfo(appId);
WxMaService wxMaService = getWeappServiceByAppInfo(wxAppinfo);
@@ -234,11 +209,11 @@ public class WxInfoController extends BaseController {
if(user == null) {
return new ResultData(ErrorCode.USER_NO_PERMISSION, resultMap);
}
if (isInMobileAdmin(user)) {
if (mallUserRoleService.checkIsMobileAdmin(user)) {
resultMap.put("phone", user.getPhone());
resultMap.put("admin", "1");

user.setOpenId(openId);
user.setBopenId(openId);
mallUserInfoService.saveOrUpdate(user);

return new ResultData(resultMap);


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

@@ -74,8 +74,12 @@ public class MallUserInfo implements Serializable {
@io.swagger.annotations.ApiModelProperty(value="手机",name="phone")
private String phone;
/** B端用户微信openid,领导看数据塔台用 */
@io.swagger.annotations.ApiModelProperty(value="openId",name="openId")
private String openId;
@io.swagger.annotations.ApiModelProperty(value="bopenId",name="bopenId")
private String bopenId;

/** B端用户微信openid,领导看数据塔台用 */
@io.swagger.annotations.ApiModelProperty(value="webOpenId",name="webOpenId")
private String webOpenId;

@Transient
private Long roleId;
@@ -219,15 +223,23 @@ public class MallUserInfo implements Serializable {
this.phone = phone;
}

public String getOpenId() {
return openId;
}
public String getBopenId() {
return bopenId;
}

public void setOpenId(String openId) {
this.openId = openId;
}
public void setBopenId(String bopenId) {
this.bopenId = bopenId;
}

public String getWebOpenId() {
return webOpenId;
}

public void setWebOpenId(String webOpenId) {
this.webOpenId = webOpenId;
}

public static enum Field
public static enum Field
{
Id_ASC("`id` ASC"),Id_DESC("`id` DESC")
,TenantId_ASC("`tenant_id` ASC"),TenantId_DESC("`tenant_id` DESC")
@@ -240,7 +252,8 @@ public class MallUserInfo implements Serializable {
,IsAdmin_ASC("`is_admin` ASC"),IsAdmin_DESC("`is_admin` DESC")
,NickName_ASC("`nick_name` ASC"),NickName_DESC("`nick_name` DESC")
,Phone_ASC("`phone` ASC"),Phone_DESC("`phone` DESC")
,OpenId_ASC("`open_id` ASC"),OpenId_DESC("`open_id` DESC")
,BOpenId_ASC("`bopen_id` ASC"),BOpenId_DESC("`bopen_id` DESC")
,WebOpenId_ASC("`web_open_id` ASC"),WebOpenId_DESC("`web_open_id` DESC")
;
private String value;
Field(String value){


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

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

/**
* Created by Stormeye on 2018/08/09.
*/
public enum EnumMenuType {
MOBILE_ADMIN(8, "移动端数据塔台")
;

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

private Integer code;
private String message;

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

public Integer getCode() {
return code;
}

public String getMessage() {
return message;
}
}

+ 3
- 1
mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java Просмотреть файл

@@ -13,7 +13,9 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> {

MallUserInfo selectByUserName(@Param("username") String username);

MallUserInfo selectByOpenId(@Param("openId") String openId, @Param("tenantId") String tenantId);
MallUserInfo selectByBOpenId(@Param("bopenId") String bopenId, @Param("tenantId") String tenantId);

MallUserInfo selectByWebOpenId(@Param("webOpenId") String webOpenId);

MallUserInfo selectByPhone(@Param("phone") String phone, @Param("tenantId") String tenantId);


+ 12
- 2
mallinkService/src/main/java/com/iformall/service/MallRolePermissionService.java Просмотреть файл

@@ -3,17 +3,27 @@ package com.iformall.service;
import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.MallRolePermission;

import java.util.List;

public interface MallRolePermissionService {

/**
* 根据实体查询分页列表
*
* @param record
* @param offset
* @param limit
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<MallRolePermission> listAsPage(MallRolePermission record, Integer pageIndex, Integer pageSize);

/**
* 根据实体查询列表
*
* @param record
* @return
*/
List<MallRolePermission> getList(MallRolePermission record);
/**
* 根据Id获得实体


+ 10
- 2
mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java Просмотреть файл

@@ -90,12 +90,20 @@ public interface MallUserInfoService {
*/
MallUserInfo getByPhone(String phone, String tenantId);
/**
* 根据OpenId获得实体
* 根据B端OpenId获得实体
*
* @param openId
* @return
*/
MallUserInfo getByOpenId(String openId, String tenantId);
MallUserInfo getByBOpenId(String openId, String tenantId);

/**
* 根据web端OpenId获得实体
*
* @param openId
* @return
*/
MallUserInfo getByWebOpenId(String openId);

/**
* 根据条件用户列表


+ 25
- 2
mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java Просмотреть файл

@@ -1,6 +1,7 @@
package com.iformall.service;

import com.github.pagehelper.PageInfo;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.MallUserRole;

import java.util.List;
@@ -11,11 +12,19 @@ public interface MallUserRoleService {
* 根据实体查询分页列表
*
* @param record
* @param offset
* @param limit
* @param pageIndex
* @param pageSize
* @return
*/
PageInfo<MallUserRole> listAsPage(MallUserRole record, Integer pageIndex, Integer pageSize);

/**
* 根据实体查询列表
*
* @param record
* @return
*/
List<MallUserRole> getList(MallUserRole record);
/**
* 根据Id获得实体
@@ -50,6 +59,20 @@ public interface MallUserRoleService {


void deleteByUserId(Long uid);

/**
* 检查用户是否有移动塔台权限
* @param userInfo
* @return
*/
boolean checkIsMobileAdmin(MallUserInfo userInfo);

/**
* 获取用户menu权限
* @param userInfo
* @return
*/
String getPermissionsByUser(MallUserInfo userInfo);


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

@@ -11,6 +11,8 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class MallRolePermissionServiceImpl implements MallRolePermissionService {

@@ -18,8 +20,6 @@ public class MallRolePermissionServiceImpl implements MallRolePermissionService
@Autowired
MallRolePermissionMapper mallUserRolePermissionMapper;

@Override
@@ -27,6 +27,11 @@ public class MallRolePermissionServiceImpl implements MallRolePermissionService
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallUserRolePermissionMapper.findList(record));
}

@Override
public List<MallRolePermission> getList(MallRolePermission record) {
return mallUserRolePermissionMapper.findList(record);
}

@Override
public MallRolePermission getById(Long id) {
return mallUserRolePermissionMapper.selectByPrimaryKey(id);


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

@@ -58,8 +58,8 @@ public class MallUserInfoServiceImpl implements MallUserInfoService {
}

@Override
public MallUserInfo getByOpenId(String openId, String tenantId) {
return mallUserInfoMapper.selectByOpenId(openId, tenantId);
public MallUserInfo getByBOpenId(String openId, String tenantId) {
return mallUserInfoMapper.selectByBOpenId(openId, tenantId);
}

@Override
@@ -67,6 +67,11 @@ public class MallUserInfoServiceImpl implements MallUserInfoService {
return mallUserInfoMapper.selectByPhone(phone, tenantId);
}

@Override
public MallUserInfo getByWebOpenId(String openId) {
return null;
}

@Override
public void saveOrUpdate(MallUserInfo record) {
if (record.getId() == null) {


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

@@ -3,7 +3,13 @@ package com.iformall.service.impl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.iformall.common.IdWorker;
import com.iformall.domain.po.MallRolePermission;
import com.iformall.domain.po.MallUserInfo;
import com.iformall.domain.po.MallUserRole;
import com.iformall.enums.EnumMenuType;
import com.iformall.enums.EnumUserAdmin;
import com.iformall.mapper.MallPermissionMapper;
import com.iformall.mapper.MallRolePermissionMapper;
import com.iformall.mapper.MallUserRoleMapper;
import com.iformall.service.MallUserRoleService;
import org.slf4j.Logger;
@@ -20,12 +26,20 @@ public class MallUserRoleServiceImpl implements MallUserRoleService {
@Autowired
MallUserRoleMapper mallUserRoleMapper;

@Autowired
MallRolePermissionMapper mallRolePermissionMapper;


@Override
public PageInfo<MallUserRole> listAsPage(MallUserRole record, Integer pageIndex, Integer pageSize) {
return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallUserRoleMapper.findList(record));
}

@Override
public List<MallUserRole> getList(MallUserRole record) {
return mallUserRoleMapper.findList(record);
}

@Override
public MallUserRole getById(Long id) {
return mallUserRoleMapper.selectByPrimaryKey(id);
@@ -64,6 +78,57 @@ public class MallUserRoleServiceImpl implements MallUserRoleService {
mallUserRoleMapper.deleteByUserId(uid);
}

@Override
public boolean checkIsMobileAdmin(MallUserInfo userInfo) {
boolean isInMobile = false;
if(EnumUserAdmin.ADMIN.getCode().equals(userInfo.getIsAdmin())) { // 超管
isInMobile = true;
return isInMobile;
}
MallUserRole ur = new MallUserRole();
ur.setUid(userInfo.getId());
List<MallUserRole> userRoles = mallUserRoleMapper.findList(ur);
if (userRoles.size() > 0) {
MallUserRole userRole = userRoles.get(0);
Long roleId = userRole.getRoleId();
MallRolePermission p = new MallRolePermission();
p.setRoleId(roleId);
p.setTenantId(userInfo.getTenantId());
List<MallRolePermission> rolePermissions = mallRolePermissionMapper.findList(p);
for (MallRolePermission rp : rolePermissions) {
if (rp.getPermissionId().equals(EnumMenuType.MOBILE_ADMIN.getCode())) { /// 移动端数据塔台
isInMobile = true;
return isInMobile;
}
}
}
return isInMobile;
}

@Override
public String getPermissionsByUser(MallUserInfo userInfo) {
MallUserRole ur = new MallUserRole();
ur.setUid(userInfo.getId());
List<MallUserRole> userRoleList = mallUserRoleMapper.findList(ur);
if (userRoleList.size() > 0) {
MallUserRole userRole = userRoleList.get(0);
Long roleId = userRole.getRoleId();
MallRolePermission p = new MallRolePermission();
p.setRoleId(roleId);
p.setTenantId(userInfo.getTenantId());
List<MallRolePermission> rolePermissionList = mallRolePermissionMapper.findList(p);
String menus = "";
for (MallRolePermission rp : rolePermissionList) {
menus += rp.getPermissionId() + ",";
}
if (menus.length() > 0) {
menus = menus.substring(0, menus.length() - 1);
}
return menus;
}
return null;
}


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

@@ -13,11 +13,20 @@
<result column="is_admin" jdbcType="INTEGER" property="isAdmin"/>
<result column="nick_name" jdbcType="VARCHAR" property="nickName"/>
<result column="phone" jdbcType="VARCHAR" property="phone"/>
<<<<<<< HEAD
=======
<result column="bopen_id" jdbcType="VARCHAR" property="bopenId"/>
<result column="web_open_id" jdbcType="VARCHAR" property="webOpenId"/>
>>>>>>> [移动塔台登录][修改]:移动塔台登录修改
<result column="flow_permission" property="flowPermission"/>
</resultMap>

<sql id="allColumns">
<<<<<<< HEAD
`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`,`bopen_id`,`web_open_id`,`flow_permission`
>>>>>>> [移动塔台登录][修改]:移动塔台登录修改
</sql>

<sql id="dynamicWhereConditions">
@@ -64,8 +73,11 @@
<if test=" null != phone ">
and `phone` = #{phone}
</if>
<if test=" null != openId ">
and `open_id` = #{openId}
<if test=" null != bopenId ">
and `bopen_id` = #{bopenId}
</if>
<if test=" null != webOpenId ">
and `web_open_id` = #{webOpenId}
</if>
<if test=" null != flowPermission ">
and JSON_CONTAINS(flow_permission->'$[*]', #{flowPermission}, '$')
@@ -97,7 +109,7 @@
</if>
</select>

<select id="selectByOpenId" resultMap="BaseResultMap">
<select id="selectByBOpenId" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from mall_user_info
@@ -105,8 +117,18 @@
<if test=" null != tenantId ">
and `tenant_id`=#{tenantId}
</if>
<if test=" null != openId ">
and `open_id`=#{openId}
<if test=" null != bopenId ">
and `bopen_id`=#{bopenId}
</if>
</select>

<select id="selectByWebOpenId" resultMap="BaseResultMap">
select
<include refid="allColumns"/>
from mall_user_info
where 1=1
<if test=" null != webOpenId ">
and `web_open_id`=#{webOpenId}
</if>
</select>



+ 7
- 0
pom.xml Просмотреть файл

@@ -29,6 +29,7 @@

<properties>
<weixin-java-common.version>3.3.0</weixin-java-common.version>
<weixin-java-mp.version>3.3.0</weixin-java-mp.version>
<weixin-java-miniapp.version>3.3.0</weixin-java-miniapp.version>
<weixin-java-pay.version>3.3.0</weixin-java-pay.version>
<quartz.version>2.3.0</quartz.version>
@@ -314,6 +315,12 @@
<version>${weixin-java-miniapp.version}</version>
</dependency>

<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-mp</artifactId>
<version>${weixin-java-mp.version}</version>
</dependency>

<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>


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