diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java b/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java index b49bb0d26..53b6369fd 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/BaseController.java +++ b/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() { diff --git a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java b/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java index 6c3ac985e..eead4204e 100644 --- a/mallinkAdmin/src/main/java/com/iformall/controller/HomeController.java +++ b/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 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 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 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 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); } diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java index 49f92f9c9..1036b433e 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxInfoController.java @@ -91,12 +91,12 @@ public class WxInfoController extends BaseController { try { Map 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 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 listAsPage = mallRolePermissionService.listAsPage(p, 1, 100); - for (MallRolePermission rp : listAsPage.getList()) { - if (rp.getPermissionId().equals(8L)) { /// 移动端数据塔台 - isInMobile = true; - } - } - } - return isInMobile; - } - private Map 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); diff --git a/mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java b/mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java index 8163e212a..1f0a3edb0 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/MallUserInfo.java +++ b/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){ diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumMenuType.java b/mallinkService/src/main/java/com/iformall/enums/EnumMenuType.java new file mode 100644 index 000000000..ef2973bc3 --- /dev/null +++ b/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; + } +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java b/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java index f8d4cc018..1d1072f56 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/MallUserInfoMapper.java @@ -13,7 +13,9 @@ public interface MallUserInfoMapper extends CommonMapper { 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); diff --git a/mallinkService/src/main/java/com/iformall/service/MallRolePermissionService.java b/mallinkService/src/main/java/com/iformall/service/MallRolePermissionService.java index 689f69392..669c62c33 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallRolePermissionService.java +++ b/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 listAsPage(MallRolePermission record, Integer pageIndex, Integer pageSize); + + /** + * 根据实体查询列表 + * + * @param record + * @return + */ + List getList(MallRolePermission record); /** * 根据Id获得实体 diff --git a/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java b/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java index 7de909a28..ddffc2e9f 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallUserInfoService.java +++ b/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); /** * 根据条件用户列表 diff --git a/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java b/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java index 9844f5857..3b42ddf60 100644 --- a/mallinkService/src/main/java/com/iformall/service/MallUserRoleService.java +++ b/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 listAsPage(MallUserRole record, Integer pageIndex, Integer pageSize); + + /** + * 根据实体查询列表 + * + * @param record + * @return + */ + List 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); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallRolePermissionServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallRolePermissionServiceImpl.java index a4f370b0c..11bbf3c94 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallRolePermissionServiceImpl.java +++ b/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 getList(MallRolePermission record) { + return mallUserRolePermissionMapper.findList(record); + } + @Override public MallRolePermission getById(Long id) { return mallUserRolePermissionMapper.selectByPrimaryKey(id); diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java index c18abe12a..0facc23ed 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallUserInfoServiceImpl.java +++ b/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) { diff --git a/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java index 44f96e911..6c27f7662 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/MallUserRoleServiceImpl.java +++ b/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 listAsPage(MallUserRole record, Integer pageIndex, Integer pageSize) { return PageHelper.startPage(pageIndex, pageSize).doSelectPageInfo(() -> mallUserRoleMapper.findList(record)); } + @Override + public List 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 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 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 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 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; + } diff --git a/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml b/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml index bc99bbd03..5ebbc58d4 100644 --- a/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml +++ b/mallinkService/src/main/resources/mapper/MallUserInfoMapper.xml @@ -13,11 +13,20 @@ +<<<<<<< HEAD +======= + + +>>>>>>> [移动塔台登录][修改]:移动塔台登录修改 +<<<<<<< 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` +>>>>>>> [移动塔台登录][修改]:移动塔台登录修改 @@ -64,8 +73,11 @@ and `phone` = #{phone} - - and `open_id` = #{openId} + + and `bopen_id` = #{bopenId} + + + and `web_open_id` = #{webOpenId} and JSON_CONTAINS(flow_permission->'$[*]', #{flowPermission}, '$') @@ -97,7 +109,7 @@ - select from mall_user_info @@ -105,8 +117,18 @@ and `tenant_id`=#{tenantId} - - and `open_id`=#{openId} + + and `bopen_id`=#{bopenId} + + + + diff --git a/pom.xml b/pom.xml index 0bd9efe42..157916c55 100644 --- a/pom.xml +++ b/pom.xml @@ -29,6 +29,7 @@ 3.3.0 + 3.3.0 3.3.0 3.3.0 2.3.0 @@ -314,6 +315,12 @@ ${weixin-java-miniapp.version} + + com.github.binarywang + weixin-java-mp + ${weixin-java-mp.version} + + com.github.binarywang weixin-java-pay