Browse Source

Merge branch 'huangyuan-user' of lift-manager/lift-server into develop

huangyuan 5 years ago
parent
commit
79f7fe5707

+ 11 - 3
lift-common/src/main/java/cn.com.ty.lift.common/model/PushMessage.java

@@ -26,7 +26,7 @@ public class PushMessage implements Serializable {
 
     private String title;
     private String content;
-    private Hashtable<Long,Integer> users = new Hashtable<>();
+    private Hashtable<Long, Integer> users = new Hashtable<>();
     private List<String> toList = new ArrayList<>();
     //the count of try again. Increase 1 for each failure, maximum times 100
     private int tryCount = 0;
@@ -614,18 +614,26 @@ public class PushMessage implements Serializable {
 
     /**
      * 将用户id和设备类型传到消息中间件中,方便消息中心功能来保存
+     *
      * @param pushUserInfos 用户信息列表
      */
     private void resetUsers(List<PushUserInfo> pushUserInfos) {
         users.clear();
-        pushUserInfos.forEach(pushUserInfo -> users.put(pushUserInfo.getUserId(),pushUserInfo.getDeviceModel()));
+        pushUserInfos.forEach(pushUserInfo -> {
+                    if (pushUserInfo.getDeviceModel() != null) {
+                        users.put(pushUserInfo.getUserId(), pushUserInfo.getDeviceModel());
+                    }
+                }
+        );
     }
+
     /**
      * 将用户id和设备类型传到消息中间件中,方便消息中心功能来保存
+     *
      * @param pushUserInfo 用户信息列表
      */
     private void resetUsers(PushUserInfo pushUserInfo) {
         users.clear();
-        users.put(pushUserInfo.getUserId(),pushUserInfo.getDeviceModel());
+        users.put(pushUserInfo.getUserId(), pushUserInfo.getDeviceModel());
     }
 }

+ 4 - 3
lift-system-service/src/main/java/cn/com/ty/lift/system/user/controller/LoginController.java

@@ -77,11 +77,12 @@ public class LoginController {
      * @date 2020/5/7 10:43 上午
      */
     @PostMapping("/appBindMobile")
-    public RestResponse appBindMobile(HttpServletRequest request, @RequestBody UserRequest userRequest) {
+    @ResponseBody
+    public RestResponse appBindMobile(@RequestBody UserRequest userRequest) {
         RestResponse restResponse = judgeAuthCode(userRequest, WxConstants.APP_LOGIN);
         if (restResponse == null) {
             //校验通过,用户绑定手机号
-            return loginService.appBindMobile(request, userRequest);
+            return loginService.appBindMobile(userRequest);
         }
         return restResponse;
     }
@@ -158,7 +159,7 @@ public class LoginController {
         RestResponse restResponse = judgeAuthCode(userRequest, WxConstants.APPLET_LOGIN);
         if (restResponse == null) {
             Map<String, String> openIdMap = new HashMap<>();
-            openIdMap.put("appletOpenId", userRequest.getAccount());
+            openIdMap.put("appletOpenId", userRequest.getWeChatOpenId());
             return RestResponse.success(openIdMap, ApiConstants.RESULT_SUCCESS, "获取openId成功");
         }
         return restResponse;

+ 2 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/dao/mapper/RoleMapper.java

@@ -14,7 +14,8 @@ import java.util.List;
 @MyBatisMapper
 public interface RoleMapper extends BaseMapper<Role> {
 
-    @Select("select r.id, r.code, r.name from role r left join user_role ur " +
+    @Select("select r.id, r.code, r.name, r.company_id as companyId " +
+            "from role r left join user_role ur " +
             "on r.id = ur.role_id " +
             "where ur.user_id = #{userId} " +
             "and r.code = #{roleCode}")

+ 1 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/ILoginService.java

@@ -88,5 +88,5 @@ public interface ILoginService {
      * @description app 卫星登录绑定用户手机号
      * @date 2020/5/7 10:43 上午
      */
-    RestResponse appBindMobile(HttpServletRequest request, UserRequest userRequest);
+    RestResponse appBindMobile(UserRequest userRequest);
 }

+ 20 - 19
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/LoginService.java

@@ -16,6 +16,7 @@ import cn.com.ty.lift.system.utils.PasswordUtils;
 import cn.com.xwy.boot.web.dto.RestResponse;
 import cn.hutool.json.JSONUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.data.redis.core.RedisTemplate;
 import org.springframework.session.data.redis.RedisOperationsSessionRepository;
@@ -205,7 +206,7 @@ public class LoginService implements ILoginService {
                 .eq("wechat_open_id", openId)
         );
         if (userAccount == null) {
-            return RestResponse.fail(ApiConstants.RESULT_NO_DATA, "微信号尚未绑定用户信息");
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "未绑定微信号,请登录绑定微信号");
         }
         //用户存在,关联登录成功
         //登录成功初始化登录信息
@@ -260,29 +261,29 @@ public class LoginService implements ILoginService {
     }
 
     @Override
-    public RestResponse appBindMobile(HttpServletRequest request, UserRequest userRequest) {
-        //校验手机号和短信验证码
-        if (StringUtils.isBlank(userRequest.getMobile())) {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "手机号为空无法绑定");
+    public RestResponse appBindMobile(UserRequest userRequest) {
+        //通过授权码获取用户openId
+        String openId = userRequest.getWeChatOpenId();
+        UserAccount oldBindUser = userAccountService.getOne(new QueryWrapper<UserAccount>().eq(
+                "wechat_open_id", openId
+        ));
+        if (oldBindUser != null) {
+            //解除上一个手机的绑定信息
+            if (!userAccountService.update(Wrappers.<UserAccount>update().set("wechat_open_id", null))) {
+                return RestResponse.fail(ApiConstants.RESULT_ERROR, "解除原来绑定失败");
+            }
         }
-        UserAccount userAccount = userAccountService.getByMobile(userRequest.getMobile());
+        //获取当前用户id
+        UserAccount userAccount = userAccountService.getByUserId(userRequest.getUserId());
         if (userAccount == null) {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "当前手机号尚未注册,请先注册再绑定");
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "用户不存在无法绑定");
         }
-        //通过授权码获取用户openId
-        String openId = userRequest.getWeChatOpenId();
         userAccount.setWechatOpenId(openId);
-        if (!userAccountService.save(userAccount)) {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "绑定手机号失败");
-        }
-        userRequest.setUserId(userAccount.getUserId());
-        UserResponse userResponse = initLoginInfo(request, userRequest);
-        userLoginService.saveLoginInfo(request, userAccount.getUserId());
-        //用户登录成功,更新用户设备信息
-        if (appLoginSaveDeviceInfo(userRequest, userRequest.getMobileType(), userAccount)) {
-            return RestResponse.fail(ApiConstants.RESULT_ERROR, "更新设备类型失败");
+        if (!userAccountService.updateById(userAccount)) {
+            TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
+            return RestResponse.fail(ApiConstants.RESULT_ERROR, "绑定微信失败");
         }
-        return RestResponse.success(userResponse, ApiConstants.RESULT_SUCCESS, "绑定手机号成功");
+        return RestResponse.success(null, ApiConstants.RESULT_SUCCESS, "绑定微信成功");
     }
 
     private RestResponse checkMobileAndSmsCode(UserRequest userRequest) {

+ 1 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleMenuService.java

@@ -43,7 +43,7 @@ public class RoleMenuService extends ServiceImpl<RoleMenuMapper, RoleMenu> imple
         if (needSaveRoleMenuList.size() > 0) {
             return this.saveBatch(needSaveRoleMenuList);
         }
-        return false;
+        return true;
     }
 
     @Override

+ 1 - 1
lift-system-service/src/main/java/cn/com/ty/lift/system/user/service/impl/RoleService.java

@@ -83,7 +83,7 @@ public class RoleService extends ServiceImpl<RoleMapper, Role> implements IRoleS
             return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
         }
         //保存角色菜单关联关系
-        if (roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds())) {
+        if (!roleMenuService.saveRoleMenu(role.getId(), roleRequest.getMenuIds())) {
             TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
             return RestResponse.fail(ApiConstants.RESULT_ERROR, "保存角色信息失败");
         }

+ 0 - 3
lift-system-service/src/main/java/cn/com/ty/lift/system/wechat/utils/WxUtil.java

@@ -4,14 +4,12 @@ import cn.com.ty.lift.system.wechat.constants.WxConstants;
 import cn.hutool.http.HttpUtil;
 import cn.hutool.json.JSONObject;
 import cn.hutool.json.JSONUtil;
-import lombok.extern.slf4j.Slf4j;
 
 /**
  * @author huangyuan
  * @date 2019-12-30
  * @description
  */
-@Slf4j
 public class WxUtil {
 
     /**
@@ -50,7 +48,6 @@ public class WxUtil {
                 .replace("SECRET", appSecret)
                 .replace("CODE", authCode);
         JSONObject result = JSONUtil.parseObj(HttpUtil.get(url));
-        log.error(result.toString());
         if (result.containsKey("openid")) {
             return result.getStr("openid");
         }