V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  night98  ›  全部回复第 24 页 / 共 68 页
回复总数  1356
1 ... 20  21  22  23  24  25  26  27  28  29 ... 68  
淘宝渠道全挂了,下不了单
简单问问,出几个应用场景的上机题,看看真实水平
槽点太多,哈哈

@Override
public Response login(String params) { // 入参改成 VO
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<>(); //返回改成 dto
// 用户类型:0 无效,1 网格,2 客户经理,3 泛渠道,4 其他
String userType = String.valueOf(valetUser.getUserType()); // 这里改成枚举+find 方法
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()); // 这里用 beanutil 或者 mapstruct 优化,一行完事
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);
}
}



改完差不多这样
@Override
public Response login(@Valid UserVO user) {
logger.info("openId : {}", openId);
String decMobile = AesNewUtil.decrypt(user.getMobile());
String userId = valetUser.getUserId();
ValetUser valetUser = selectUserByMobile(decMobile);
// 判断用户信息是否存在
ValetUserInfo valetUserInfo = valetUserInfoMapper.selectByPrimaryKey(userId);
if (Objects.isNull(valetUserInfo)) {
// 保存用户信息
valetUserInfo = ValetUserInfoMapper.convert(user);
valetUserInfoMapper.insertSelective(valetUserInfo);
}
String token = TokenUtil.generateToken(userId, decMobile, "app");
cacheOpt.getOpt(Constants.CACHE_STR).opsForValue().set(Constants.USER_AUTH_PRIFIX + userId, token, 7, TimeUnit.DAYS);

String userType = UserType.find(valetUser.getUserType());
TokenInfo token = tokenmapper.convert(valetUser,userType);
valetUserMapper.updateLoginTimeByUserId(DateUtils.getNowDate(), userId);
logger.info("登录成功 {}", decMobile);
return Response.success("登录成功", token);
}
2022-03-14 16:39:49 +08:00
回复了 rick2c 创建的主题 职场话题 最近是不是找工作的少了?
@fml87 同感,在职的时候招聘来的都是些什么人,离职面试了连面试机会都没有,哈哈
刚好之前做过这一块。简单说一下,电子合同是电子签章技术的应用,电子签章技术是电子签名的一种应用,电子签名其本身依赖于可信的第三方 CA 机构(类似 https 证书)提供的证书,仅持有人持有此证书来保证 4 楼的第一,二条,由 CA 机构提供的证书对 PDF 或其他类型文件进行签名,保证第三,四条,至于是手写还是电子印章,实际上不影响第三和第四条,签章完成后点击签章区域会弹出 CA 和证书信息,以及签名信息。这样就确保了文件的抗抵赖性。现在主流的签章方案还会再加一个时间戳证书,用于证明此次签章的具体时间。
2022-03-11 01:37:36 +08:00
回复了 Kontinue 创建的主题 程序员 读 rocketmq 文档有感
rocketmq 包括对应的 java sdk ,阅读源码问题也挺多的,基本上没注释,还得根据上下文推测,其他稍微用心做的开源都没这毛病,比如 hutool
2022-03-08 18:20:47 +08:00
回复了 dandelion911 创建的主题 职场话题 今年金三银四工作好找吗
目前两面试,应该都挂了,感觉都不是诚心要人
2022-03-08 00:09:13 +08:00
回复了 RedBeanIce 创建的主题 问与答 [求解] io 到底是什么
一个输入,一个输出,
啥意思,输入就是从某个地方拿进内存,输出就是从内存拿到别的地方去,你大致就这么理解就行了,什么网络 io 文件 io 基本上都是这个套路,键盘和显示器差不多也是这么个套路
2022-03-08 00:07:02 +08:00
回复了 heyjude321 创建的主题 Java 项目运行后,线程越来越多
@registerrr 看的很迷惑,看起来应该是腾讯的对象存储,这种不都是声明成 spring 单例的么,居然还会 new 一个出来,new 就算了还不关闭。。。
2022-03-05 20:18:53 +08:00
回复了 LxnChan 创建的主题 程序员 求推荐 Git 代码托管平台
云效,稳如老狗
2022-03-03 00:58:31 +08:00
回复了 JRay 创建的主题 汽车 5W 左右的二手 SUV 有推荐吗?
瑞虎 3X 便宜耐造
2022-03-03 00:44:23 +08:00
回复了 kekeabab 创建的主题 程序员 初中学历的 00 后程序员,未来怎么办?
建议,先跑外卖赚钱,跑外卖门槛低,手里存个 5000 再说。
边跑外卖边晚上学点前端或者 java ,看你个人兴趣,看不懂就直接 b 站找教程,快的话半个月到两月就基本上能出活了
然后花半个月简单过一下面试题,找个小公司,0-50 人左右的那种,要个 7-10k 应该没啥问题,多投多面,总能遇到愿意接你的团队。
然后仔细琢磨下公司的架构,搞明白人家的设计意图,再对比下你自己写的东西,不断进步就好。
2022-03-01 22:54:28 +08:00
回复了 summerlv 创建的主题 问与答 Java1.8 换版本为 openjdk17 后 springboot 程序跑不起来,求助~~~
maven xml 编译目标修改为 jdk17 ,然后 idea - maven 设置里面也是一样,跑起来应该没啥问题,估计会有点 bug 啥的
2022-02-23 18:39:32 +08:00
回复了 wr516516 创建的主题 随想 杭州拜拜👋杭州-郑州
羡慕老哥
2022-02-21 22:50:41 +08:00
回复了 moxiaowei 创建的主题 Java 逻辑大量的写在 sql 语句里
给楼主提个建议,要么跑,要么当 leader 禁止此类写法,否则都是打工的,没必要提这个,有心思写好代码的同事,你不说他也会改,没心思的你说了反而得罪人家,要么赶紧跑路
2022-02-21 22:46:46 +08:00
回复了 moxiaowei 创建的主题 Java 逻辑大量的写在 sql 语句里
@ikas 权限表这玩意完全没必要关联查。
1.数据量小,稍微有点要求的开发都会直接加载到内存
2.关联性弱,除了 user 和 role 的关联表数据量较大需要放到数据库查,其他的都可以直接走缓存查

综上所述你和楼主贴出来的 sql 都一般般
2022-02-14 14:14:54 +08:00
回复了 tomsun28 创建的主题 程序员 裸辞做了一款监控告警服务, v 友们有兴趣来试用一波
我说 SA-Token 咋突然不更了,哈哈,原来跑来搞这个了,有空试用下
2022-02-13 21:23:26 +08:00
回复了 pandaaa 创建的主题 汽车 2022 年初 20 万买什么车?
建议宋 plus dmi 四驱顶配,相比秦多了座椅加热通风,这个功能很实用!!
不过看楼主好像不喜欢 suv ,建议多去试驾,借朋友车开试试,我现在开的轿车,感觉还是 suv 坐起来舒服点。
其他的可以看看星瑞,然后年后奇瑞可能要出轿车,可以观望一下,或者上星途揽月
1 ... 20  21  22  23  24  25  26  27  28  29 ... 68  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2667 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 09:38 · PVG 17:38 · LAX 01:38 · JFK 04:38
Developed with CodeLauncher
♥ Do have faith in what you're doing.