| @@ -21,6 +21,7 @@ import me.chanjar.weixin.common.error.WxErrorException; | |||||
| import me.chanjar.weixin.mp.api.WxMpService; | import me.chanjar.weixin.mp.api.WxMpService; | ||||
| import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; | import me.chanjar.weixin.mp.bean.result.WxMpOAuth2AccessToken; | ||||
| import me.chanjar.weixin.mp.bean.result.WxMpUser; | import me.chanjar.weixin.mp.bean.result.WxMpUser; | ||||
| import org.apache.commons.lang3.StringUtils; | |||||
| import org.apache.shiro.SecurityUtils; | import org.apache.shiro.SecurityUtils; | ||||
| import org.apache.shiro.subject.Subject; | import org.apache.shiro.subject.Subject; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| @@ -231,4 +232,22 @@ public class WechatLoginController extends BaseController { | |||||
| log.error(e.getMessage()); | log.error(e.getMessage()); | ||||
| } | } | ||||
| } | } | ||||
| @ApiOperation(value = "微信第三方登录解绑", notes = "请配置此callback到网页redirect_uri") | |||||
| @GetMapping("cleanWebOpenId") | |||||
| public ResultData cleanWebOpenId(@ModelAttribute MallUserInfo userInfo) { | |||||
| log.debug("[" + getIpAddr() + "] WechatLoginController::cleanWebOpenId"); | |||||
| MallUserInfo user = getUser(); | |||||
| if(userInfo == null) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| if(StringUtils.isBlank(userInfo.getTenantId())) { | |||||
| userInfo.setTenantId(user.getTenantId()); | |||||
| } | |||||
| if(userInfo.getId() == null && userInfo.getUsername() == null) { | |||||
| return new ResultData(ErrorCode.SYS_PARAMETER_NOT_NULL); | |||||
| } | |||||
| mallUserInfoService.cleanWebOpenId(userInfo); | |||||
| return new ResultData(); | |||||
| } | |||||
| } | } | ||||
| @@ -20,6 +20,8 @@ public interface MallUserInfoMapper extends CommonMapper<MallUserInfo, String> { | |||||
| List<MallUserInfo> selectByWebOpenId(@Param("webOpenId") String webOpenId); | List<MallUserInfo> selectByWebOpenId(@Param("webOpenId") String webOpenId); | ||||
| void removeWebOpenId(MallUserInfo mallUserInfo); | |||||
| MallUserInfo selectByPhone(@Param("phone") String phone, @Param("tenantId") String tenantId); | MallUserInfo selectByPhone(@Param("phone") String phone, @Param("tenantId") String tenantId); | ||||
| Integer hasButtonPermission(@Param("userId") Long userId, @Param("permission") String permission); | Integer hasButtonPermission(@Param("userId") Long userId, @Param("permission") String permission); | ||||
| @@ -135,6 +135,8 @@ public interface MallUserInfoService { | |||||
| void updateWebOpenId(MallUserInfo user); | void updateWebOpenId(MallUserInfo user); | ||||
| void cleanWebOpenId(MallUserInfo user); | |||||
| /** | /** | ||||
| * 根据条件用户列表 | * 根据条件用户列表 | ||||
| * @return | * @return | ||||
| @@ -103,6 +103,15 @@ public class MallUserInfoServiceImpl implements MallUserInfoService { | |||||
| mallUserInfoMapper.updateByPrimaryKeySelective(user); | mallUserInfoMapper.updateByPrimaryKeySelective(user); | ||||
| } | } | ||||
| @Override | |||||
| public void cleanWebOpenId(MallUserInfo user) { | |||||
| MallUserInfo updateUser = new MallUserInfo(); | |||||
| updateUser.setId(user.getId()); | |||||
| updateUser.setTenantId(user.getTenantId()); | |||||
| updateUser.setUsername(user.getUsername()); | |||||
| mallUserInfoMapper.removeWebOpenId(updateUser); | |||||
| } | |||||
| @Override | @Override | ||||
| public void saveOrUpdate(MallUserInfo record) { | public void saveOrUpdate(MallUserInfo record) { | ||||
| if (record.getId() == null) { | if (record.getId() == null) { | ||||
| @@ -149,6 +149,21 @@ | |||||
| </if> | </if> | ||||
| </select> | </select> | ||||
| <update id="removeWebOpenId" > | |||||
| update mall_user_info | |||||
| set `web_open_id` = #{webOpenId} | |||||
| where 1=1 | |||||
| <if test=" null != tenantId "> | |||||
| and `tenant_id`=#{tenantId} | |||||
| </if> | |||||
| <if test=" null != username "> | |||||
| and username=#{username} | |||||
| </if> | |||||
| <if test=" null != id "> | |||||
| and `id` != #{id} | |||||
| </if> | |||||
| </update> | |||||
| <select id="selectByPhone" resultMap="BaseResultMap"> | <select id="selectByPhone" resultMap="BaseResultMap"> | ||||
| select | select | ||||
| <include refid="allColumns"/> | <include refid="allColumns"/> | ||||