| @@ -112,7 +112,6 @@ public class HomeController extends BaseController { | |||||
| } else { | } else { | ||||
| info.setWithWechat(false); | info.setWithWechat(false); | ||||
| } | } | ||||
| // System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId()); | |||||
| String menus = mallUserRoleService.getPermissionsByUser(info); | String menus = mallUserRoleService.getPermissionsByUser(info); | ||||
| if(menus != null) { | if(menus != null) { | ||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| @@ -169,20 +168,16 @@ public class HomeController extends BaseController { | |||||
| Subject subject = SecurityUtils.getSubject(); | Subject subject = SecurityUtils.getSubject(); | ||||
| UseriFormallToken token = new UseriFormallToken(user.getUsername()); | UseriFormallToken token = new UseriFormallToken(user.getUsername()); | ||||
| subject.login(token); | subject.login(token); | ||||
| // List<MallRole> roleList = sysRoleService.findRoleByUserId(user.getId()); | |||||
| // if (null != roleList && roleList.size() > 0) { | |||||
| // List<MallPermission> permissionList = sysPermissionService | |||||
| // .findPermissionByRoleIds(roleList.stream().map(MallRole::getId).collect(Collectors.toList())); | |||||
| // user.setRole(roleList); | |||||
| // user.setPermission(permissionList); | |||||
| // } | |||||
| MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); | MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); | ||||
| info.setPassword("保密"); | info.setPassword("保密"); | ||||
| if(StringUtils.isNotBlank(info.getBopenId())) | if(StringUtils.isNotBlank(info.getBopenId())) | ||||
| info.setBopenId("保密"); | info.setBopenId("保密"); | ||||
| if(StringUtils.isNotBlank(info.getWebOpenId())) | |||||
| if(StringUtils.isNotBlank(info.getWebOpenId())) { | |||||
| info.setWebOpenId("保密"); | info.setWebOpenId("保密"); | ||||
| // System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId()); | |||||
| info.setWithWechat(true); | |||||
| } else { | |||||
| info.setWithWechat(false); | |||||
| } | |||||
| String menus = mallUserRoleService.getPermissionsByUser(info); | String menus = mallUserRoleService.getPermissionsByUser(info); | ||||
| if(menus != null) { | if(menus != null) { | ||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| @@ -247,9 +242,12 @@ public class HomeController extends BaseController { | |||||
| info.setPassword("保密"); | info.setPassword("保密"); | ||||
| if(StringUtils.isNotBlank(info.getBopenId())) | if(StringUtils.isNotBlank(info.getBopenId())) | ||||
| info.setBopenId("保密"); | info.setBopenId("保密"); | ||||
| if(StringUtils.isNotBlank(info.getWebOpenId())) | |||||
| if(StringUtils.isNotBlank(info.getWebOpenId())) { | |||||
| info.setWebOpenId("保密"); | info.setWebOpenId("保密"); | ||||
| // System.out.println("id:"+ SecurityUtils.getSubject().getSession().getId()); | |||||
| info.setWithWechat(true); | |||||
| } else { | |||||
| info.setWithWechat(false); | |||||
| } | |||||
| String menus = mallUserRoleService.getPermissionsByUser(info); | String menus = mallUserRoleService.getPermissionsByUser(info); | ||||
| if(menus != null) { | if(menus != null) { | ||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| @@ -306,8 +304,12 @@ public class HomeController extends BaseController { | |||||
| info.setPassword("保密"); | info.setPassword("保密"); | ||||
| if(StringUtils.isNotBlank(info.getBopenId())) | if(StringUtils.isNotBlank(info.getBopenId())) | ||||
| info.setBopenId("保密"); | info.setBopenId("保密"); | ||||
| if(StringUtils.isNotBlank(info.getWebOpenId())) | |||||
| if(StringUtils.isNotBlank(info.getWebOpenId())) { | |||||
| info.setWebOpenId("保密"); | info.setWebOpenId("保密"); | ||||
| info.setWithWechat(true); | |||||
| } else { | |||||
| info.setWithWechat(false); | |||||
| } | |||||
| String menus = mallUserRoleService.getPermissionsByUser(info); | String menus = mallUserRoleService.getPermissionsByUser(info); | ||||
| if(menus != null) { | if(menus != null) { | ||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| @@ -5,6 +5,7 @@ import com.iformall.common.ErrorCode; | |||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.po.*; | import com.iformall.domain.po.*; | ||||
| 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; | ||||
| @@ -392,4 +393,5 @@ public class MallUserInfoController extends BaseController { | |||||
| resultMap.put("billUserList",billUserList); | resultMap.put("billUserList",billUserList); | ||||
| return new ResultData(resultMap); | return new ResultData(resultMap); | ||||
| } | } | ||||
| } | } | ||||
| @@ -1,10 +1,14 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.iformall.common.ResultData; | |||||
| import com.iformall.domain.po.MallUserInfo; | import com.iformall.domain.po.MallUserInfo; | ||||
| import com.iformall.domain.vo.MallUserInfoVo; | |||||
| import com.iformall.service.MallUserInfoService; | import com.iformall.service.MallUserInfoService; | ||||
| import com.iformall.service.MallUserRoleService; | import com.iformall.service.MallUserRoleService; | ||||
| import com.iformall.shiro.UserSession; | import com.iformall.shiro.UserSession; | ||||
| import com.iformall.shiro.UseriFormallToken; | import com.iformall.shiro.UseriFormallToken; | ||||
| import io.swagger.annotations.ApiImplicitParam; | |||||
| import io.swagger.annotations.ApiImplicitParams; | |||||
| import io.swagger.annotations.ApiOperation; | import io.swagger.annotations.ApiOperation; | ||||
| import lombok.extern.slf4j.Slf4j; | import lombok.extern.slf4j.Slf4j; | ||||
| import me.chanjar.weixin.common.error.WxErrorException; | import me.chanjar.weixin.common.error.WxErrorException; | ||||
| @@ -73,6 +77,7 @@ public class WechatLoginController extends BaseController { | |||||
| info.setPassword("保密"); | info.setPassword("保密"); | ||||
| info.setBopenId("保密"); | info.setBopenId("保密"); | ||||
| info.setWebOpenId("保密"); | info.setWebOpenId("保密"); | ||||
| info.setWithWechat(true); | |||||
| String menus = mallUserRoleService.getPermissionsByUser(info); | String menus = mallUserRoleService.getPermissionsByUser(info); | ||||
| if(menus != null) { | if(menus != null) { | ||||
| info.setMenus(menus); | info.setMenus(menus); | ||||
| @@ -107,6 +112,50 @@ public class WechatLoginController extends BaseController { | |||||
| } | } | ||||
| } | } | ||||
| @ApiOperation(value = "微信登录用户信息列表") | |||||
| @GetMapping("getMallUserList") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "openId", value = "openId", dataType = "String", paramType = "query", required = true)}) | |||||
| public ResultData getMallUserList(String openId) { | |||||
| log.debug("[" + getIpAddr() + "] MallUserInfoController::getMallUserList"); | |||||
| List<MallUserInfoVo> users = mallUserInfoService.getUsersByWebOpenId(openId); | |||||
| // TODO 添加 加密串 | |||||
| return new ResultData(users); | |||||
| } | |||||
| @ApiOperation(value = "微信用户登录") | |||||
| @GetMapping("weChatUserLogin") | |||||
| @ApiImplicitParams({ | |||||
| @ApiImplicitParam(name = "openId", value = "openId", dataType = "String", paramType = "query", required = true), | |||||
| @ApiImplicitParam(name = "uname", value = "uname", dataType = "String", paramType = "query", required = true)}) | |||||
| public void weChatUserLogin(String uname, String openId, HttpServletRequest request, HttpServletResponse response) { | |||||
| log.debug("[" + getIpAddr() + "] MallUserInfoController::weChatUserLogin"); | |||||
| String host = request.getHeader("host"); | |||||
| MallUserInfo userInfo = mallUserInfoService.getByUsernameWebOpenId(uname, openId); | |||||
| try { | |||||
| Subject subject = SecurityUtils.getSubject(); | |||||
| UseriFormallToken token = new UseriFormallToken(userInfo.getUsername()); | |||||
| subject.login(token); | |||||
| MallUserInfo info = (MallUserInfo) SecurityUtils.getSubject().getSession().getAttribute(UserSession.userInfo); | |||||
| info.setPassword("保密"); | |||||
| info.setBopenId("保密"); | |||||
| info.setWebOpenId("保密"); | |||||
| info.setWithWechat(true); | |||||
| String menus = mallUserRoleService.getPermissionsByUser(info); | |||||
| if(menus != null) { | |||||
| info.setMenus(menus); | |||||
| } | |||||
| Cookie unameCookie = new Cookie("uname", info.getUsername()); | |||||
| unameCookie.setMaxAge(60); | |||||
| response.addCookie(unameCookie); | |||||
| log.debug("https://" + host + "/#/"); | |||||
| response.sendRedirect("https://" + host + "/#/layout"); | |||||
| } catch (Exception e) { | |||||
| log.error(e.getMessage()); | |||||
| } | |||||
| } | |||||
| @ApiOperation(value = "微信第三方登录绑定", notes = "请配置此callback到网页redirect_uri") | @ApiOperation(value = "微信第三方登录绑定", notes = "请配置此callback到网页redirect_uri") | ||||
| @GetMapping("bindWebOpenId") | @GetMapping("bindWebOpenId") | ||||
| public void userBindWebOpenId(String code, String state, HttpServletRequest request, HttpServletResponse response) { | public void userBindWebOpenId(String code, String state, HttpServletRequest request, HttpServletResponse response) { | ||||
| @@ -14,6 +14,8 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> { | |||||
| MallUserInfo selectByUserName(@Param("username") String username); | MallUserInfo selectByUserName(@Param("username") String username); | ||||
| MallUserInfo selectByUserNameWebOpen(@Param("username") String username, @Param("webOpenId") String webOpenId); | |||||
| MallUserInfo selectByBOpenId(@Param("bopenId") String bopenId, @Param("tenantId") String tenantId); | MallUserInfo selectByBOpenId(@Param("bopenId") String bopenId, @Param("tenantId") String tenantId); | ||||
| List<MallUserInfo> selectByWebOpenId(@Param("webOpenId") String webOpenId); | List<MallUserInfo> selectByWebOpenId(@Param("webOpenId") String webOpenId); | ||||
| @@ -27,4 +29,6 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> { | |||||
| List<MallUserInfoVo> selectUsersByPhone(@Param("phone") String phone); | List<MallUserInfoVo> selectUsersByPhone(@Param("phone") String phone); | ||||
| List<MallUserInfoVo> selectUsersByWebOpenId(@Param("webOpenId") String webOpenId); | |||||
| } | } | ||||
| @@ -113,10 +113,25 @@ public interface MallUserInfoService { | |||||
| /** | /** | ||||
| * 根据web端OpenId获得实体 | * 根据web端OpenId获得实体 | ||||
| * | * | ||||
| * @param openId | |||||
| * @param webOpenId | |||||
| * @return | |||||
| */ | |||||
| List<MallUserInfo> getByWebOpenId(String webOpenId); | |||||
| /** | |||||
| * 根据phone获得展示列表 | |||||
| * | |||||
| * @param webOpenId | |||||
| * @return | |||||
| */ | |||||
| List<MallUserInfoVo> getUsersByWebOpenId(String webOpenId); | |||||
| /** | |||||
| * 根据用户名webOpenId查询用户对象 | |||||
| * @param username | |||||
| * @return | * @return | ||||
| */ | */ | ||||
| List<MallUserInfo> getByWebOpenId(String openId); | |||||
| MallUserInfo getByUsernameWebOpenId(String username, String webOpenId); | |||||
| void updateWebOpenId(MallUserInfo user); | void updateWebOpenId(MallUserInfo user); | ||||
| @@ -81,8 +81,18 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { | |||||
| } | } | ||||
| @Override | @Override | ||||
| public List<MallUserInfo> getByWebOpenId(String openId) { | |||||
| return mallUserInfoMapper.selectByWebOpenId(openId); | |||||
| public List<MallUserInfo> getByWebOpenId(String webOpenId) { | |||||
| return mallUserInfoMapper.selectByWebOpenId(webOpenId); | |||||
| } | |||||
| @Override | |||||
| public List<MallUserInfoVo> getUsersByWebOpenId(String webOpenId) { | |||||
| return mallUserInfoMapper.selectUsersByWebOpenId(webOpenId); | |||||
| } | |||||
| @Override | |||||
| public MallUserInfo getByUsernameWebOpenId(String username, String webOpenId) { | |||||
| return mallUserInfoMapper.selectByUserNameWebOpen(username, webOpenId); | |||||
| } | } | ||||
| @Override | @Override | ||||
| @@ -21,6 +21,10 @@ | |||||
| <result column="flow_permission" property="flowPermission"/> | <result column="flow_permission" property="flowPermission"/> | ||||
| </resultMap> | </resultMap> | ||||
| <sql id="allSafeColumns"> | |||||
| `id`,`tenant_id`,`username`,`name`,`password`,`create_time`,`last_login_time`,`status`,`is_admin`,`nick_name`,`phone`,`flow_permission` | |||||
| </sql> | |||||
| <sql id="allColumns"> | <sql id="allColumns"> | ||||
| <<<<<<< 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`,`flow_permission` | ||||
| @@ -94,7 +98,7 @@ | |||||
| <select id="findList" parameterType="com.iformall.domain.po.MallUserInfo" resultMap="BaseResultMap"> | <select id="findList" parameterType="com.iformall.domain.po.MallUserInfo" resultMap="BaseResultMap"> | ||||
| select | select | ||||
| <include refid="allColumns"/> | |||||
| <include refid="allSafeColumns"/> | |||||
| from mall_user_info | from mall_user_info | ||||
| <include refid="dynamicWhereConditions"/> | <include refid="dynamicWhereConditions"/> | ||||
| </select> | </select> | ||||
| @@ -109,11 +113,24 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="selectByBOpenId" resultMap="BaseResultMap"> | |||||
| <select id="selectByUserNameWebOpen" resultMap="BaseResultMap"> | |||||
| select | select | ||||
| <include refid="allColumns"/> | <include refid="allColumns"/> | ||||
| from mall_user_info | from mall_user_info | ||||
| where 1=1 | where 1=1 | ||||
| <if test=" null != username "> | |||||
| and username=#{username} | |||||
| </if> | |||||
| <if test=" null != webOpenId "> | |||||
| and `web_open_id`=#{webOpenId} | |||||
| </if> | |||||
| </select> | |||||
| <select id="selectByBOpenId" resultMap="BaseResultMap"> | |||||
| select | |||||
| <include refid="allSafeColumns"/> | |||||
| from mall_user_info | |||||
| where 1=1 | |||||
| <if test=" null != tenantId "> | <if test=" null != tenantId "> | ||||
| and `tenant_id`=#{tenantId} | and `tenant_id`=#{tenantId} | ||||
| </if> | </if> | ||||
| @@ -191,15 +208,20 @@ | |||||
| <result column="img_url_h" jdbcType="VARCHAR" property="imgUrlH"/> | <result column="img_url_h" jdbcType="VARCHAR" property="imgUrlH"/> | ||||
| </resultMap> | </resultMap> | ||||
| <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`, | |||||
| m.`name` as mall_name, m.`group` as mall_group, m.`img_url`, m.`img_url_h` | |||||
| </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.`bopen_id`,u.`web_open_id`,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`, | |||||
| 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> | ||||
| <select id="selectUsersByPhone" resultMap="VBaseResultMap"> | <select id="selectUsersByPhone" resultMap="VBaseResultMap"> | ||||
| select | select | ||||
| <include refid="allVColumns"/> | |||||
| <include refid="allSafeVColumns"/> | |||||
| from mall_user_info u | from mall_user_info u | ||||
| left join wx_mall m where m.`tenant_id` = u.`tenant_id` | left join wx_mall m where m.`tenant_id` = u.`tenant_id` | ||||
| where 1=1 | where 1=1 | ||||
| @@ -208,4 +230,15 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <select id="selectUsersByWebOpenId" resultMap="VBaseResultMap"> | |||||
| select | |||||
| <include refid="allSafeVColumns"/> | |||||
| from mall_user_info u | |||||
| left join wx_mall m where m.`tenant_id` = u.`tenant_id` | |||||
| where 1=1 | |||||
| <if test=" null != webOpenId "> | |||||
| and u.`web_open_id` = #{webOpenId} | |||||
| </if> | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||