@Override
    public Response login(String params) {
        try {
            JSONObject jsonObject = JSON.parseObject(params);
            // 解密手机号码
            AesNewUtil aes = new AesNewUtil();
            String decMobile = aes.decrypt(jsonObject.getString("mobile"));
            // 获取 openId
            String openId = jsonObject.getString("openId");
            if (StringUtils.isEmpty(openId)) {
                return Response.fail(RespCode.PARAM_NULL);
            }
            logger.info("openId : {}", openId);
            // 查询代客用户表
            ValetUser valetUser = selectUserByMobile(decMobile);
            // 用户是否存在于白名单中
            if (null == valetUser) {
                return Response.fail(RespCode.NO_GET_INFO);
            } else {
                String userId = valetUser.getUserId();
                // 判断用户信息是否存在
                ValetUserInfo valetUserInfo = valetUserInfoMapper.selectByPrimaryKey(userId);
                if (null == valetUserInfo) {
                    // 保存用户信息
                    valetUserInfo = new ValetUserInfo();
                    valetUserInfo.setUserId(userId);
                    valetUserInfo.setOpenId(openId);
                    valetUserInfo.setCreateTime(DateUtils.getNowDate());
                    valetUserInfo.setUpdateTime(DateUtils.getNowDate());
                    valetUserInfoMapper.insertSelective(valetUserInfo);
                }
                // 获取 token
                String token = TokenUtil.generateToken(userId, decMobile, "app");
                cacheOpt.getOpt(Constants.CACHE_STR).opsForValue().set(Constants.USER_AUTH_PRIFIX + userId, token, 7, TimeUnit.DAYS);
//                cacheOpt.getOpt(Constants.CACHE_STR).opsForValue().set(Constants.LOGIN_MOBILE_AUTH_PRIFIX + userId, decMobile, 7, TimeUnit.DAYS);
//                logger.info((String) cacheOpt.getOpt(Constants.CACHE_STR).opsForValue().get(Constants.USER_AUTH_PRIFIX + valetUser.getUserId()));
                Map<String, Object> result = new HashMap<>();
                // 用户类型:0 无效,1 网格,2 客户经理,3 泛渠道,4 其他
                String userType = String.valueOf(valetUser.getUserType());
                if ("0".equals(userType)) {
                    userType = "无效";
                } else if ("1".equals(userType)) {
                    userType = "网格";
                } else if ("2".equals(userType)) {
                    userType = "客户经理";
                } else if ("3".equals(userType)) {
                    userType = "泛渠道";
                } else {
                    userType = "其他";
                }
                result.put("mobile", valetUser.getMobile());
                result.put("userName", valetUser.getUserName());
                result.put("cusName", valetUser.getCusName());
                result.put("userType", userType);
                result.put("operId", valetUser.getOperId());
                result.put("orgId", valetUser.getOrgId());
                result.put("merchantNum", valetUser.getMerchantNum());
                result.put("token", token);
                // 更新用户表登录时间
                valetUserMapper.updateLoginTimeByUserId(DateUtils.getNowDate(), userId);
                logger.info("登录成功 {}", decMobile);
                return Response.success("登录成功", result);
            }
        } catch (ValetappException e) {
            logger.error("登录失败 : " + e.getMessage());
            return Response.fail(RespCode.FAIL);
        }
    }
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.