From 2eee3f3af2ad8d2bc54954c97424a7da36deaaec Mon Sep 17 00:00:00 2001 From: 44323 <443237572@qq.com> Date: 星期四, 30 五月 2024 14:08:24 +0800 Subject: [PATCH] bug修改 --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 417 +++++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 303 insertions(+), 114 deletions(-) diff --git a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java index 72e3f0d..737d3b2 100644 --- a/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java +++ b/ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java @@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.ruoyi.common.core.constant.RedisConstants; import com.ruoyi.common.core.domain.R; +import com.ruoyi.common.core.exception.GlobalException; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; @@ -14,15 +15,11 @@ import com.ruoyi.management.api.feignClient.ManagementClient; import com.ruoyi.management.api.model.*; import com.ruoyi.management.api.query.UseGuideQuery; -import com.ruoyi.study.domain.TUser; -import com.ruoyi.study.domain.TUserShare; -import com.ruoyi.study.domain.TVipOrder; +import com.ruoyi.study.domain.*; import com.ruoyi.study.dto.AppUserQuery; import com.ruoyi.study.dto.UserInfoQuery; import com.ruoyi.study.request.RegisterPhoneRequest; -import com.ruoyi.study.service.ITUserService; -import com.ruoyi.study.service.ITUserShareService; -import com.ruoyi.study.service.IVipOrderService; +import com.ruoyi.study.service.*; import com.ruoyi.study.utils.PayMoneyUtil; import com.ruoyi.study.utils.UUIDUtil; import com.ruoyi.study.vo.*; @@ -67,11 +64,18 @@ @Resource private ITUserShareService userShareService; + @PostMapping("/getUserById/{id}") + @ApiOperation(value = "根据用户id 获取用户信息", tags = {"管理后台-用户管理"}) + public R<TUser> getUserById(@PathVariable("id") Integer id) { + TUser byId = userService.getById(id); + return R.ok(byId); + } + @PostMapping("/vipInfo") @ApiOperation(value = "会员中心-获取会员说明、当前登录用户是否为会员、会员购买规格", tags = {"家长端-个人中心"}) - public AjaxResult<List<VipInfoVO>> vipInfo() { + public R<List<VipInfoVO>> vipInfo() { if (tokenService.getLoginUser1() == null) { - return AjaxResult.tokenError("登录失效", new Object()); + throw new GlobalException("登录失效!"); } List<VipInfoVO> vipInfoVOS = new ArrayList<>(); List<TVipSet> data = managementClient.getVipSet1().getData(); @@ -96,37 +100,21 @@ vipInfoVO.setAmount(datum.getAmount()); vipInfoVOS.add(vipInfoVO); } - return AjaxResult.ok(vipInfoVOS); + return R.ok(vipInfoVOS); } @Autowired private PayMoneyUtil payMoneyUtil; - - @PostMapping("/order") - @ApiOperation(value = "购买会员下单操作", tags = {"家长端-个人中心"}) + @PostMapping("/pay") + @ApiOperation(value = "购买会员支付操作", tags = {"家长端-个人中心"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), @ApiImplicitParam(name = "payType", value = "支付类型 1=微信 2=支付宝", required = true), + @ApiImplicitParam(name = "orderId", value = "订单id", required = true), @ApiImplicitParam(name = "id", value = "会员规格id", required = true), }) - public AjaxResult order(Integer payType, Integer id) throws Exception { - if (tokenService.getLoginUser1() == null) { - return AjaxResult.tokenError("登录失效", new Object()); - } - Integer userid = tokenService.getLoginUser1().getUserid(); - TVipOrder tVipOrder = new TVipOrder(); - List<TVipSet> data = managementClient.getVipSet1().getData(); - Integer time = 0; - for (TVipSet datum : data) { - if (datum.getId() == id) { - tVipOrder.setMoney(datum.getAmount()); - time = datum.getTime(); - } - } - tVipOrder.setPayState(1); - tVipOrder.setUserId(userid); - tVipOrder.setPayType(payType); - tVipOrder.setCount(time); + public AjaxResult pay(Integer payType, Integer orderId, Integer id) throws Exception { + TVipOrder tVipOrder = vipOrderService.getById(orderId); switch (payType) { case 1: return payMoneyUtil.weixinpay @@ -146,6 +134,58 @@ "/base/aliPayBuyVip"); } return AjaxResult.success(); + } + @PostMapping("/order") + @ApiOperation(value = "购买会员下单操作", tags = {"家长端-个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), + @ApiImplicitParam(name = "payType", value = "支付类型 1=微信 2=支付宝", required = true), + @ApiImplicitParam(name = "id", value = "会员规格id", required = true), + }) + public R<PayVO> order(Integer payType, Integer id) throws Exception { + if (tokenService.getLoginUser1() == null) { + return R.tokenError("登录失效"); + } + Integer userid = tokenService.getLoginUser1().getUserid(); + TVipOrder tVipOrder = new TVipOrder(); + List<TVipSet> data = managementClient.getVipSet1().getData(); + Integer time = 0; + for (TVipSet datum : data) { + if (datum.getId() == id) { + tVipOrder.setMoney(datum.getAmount()); + time = datum.getTime(); + } + } + tVipOrder.setPayState(1); + tVipOrder.setUserId(userid); + tVipOrder.setPayType(payType); + tVipOrder.setCount(time); + vipOrderService.save(tVipOrder); + PayVO payVO = new PayVO(); + payVO.setOrderId(tVipOrder.getId()); + payVO.setId(id); + + + return R.ok(payVO); +// switch (payType) { +// case 1: +// return payMoneyUtil.weixinpay +// ("购买会员", "", +// id + "_" + tVipOrder.getId() + "_" + +// UUIDUtil.getRandomCode(8), +// tVipOrder.getMoney().toString(), +// "/base/wxPayBuyVip", "APP", ""); +// case 2: +// return payMoneyUtil.alipay +// ("购买会员", +// "购买会员下单支付", +// "", +// id + "_" + tVipOrder.getId() + "_" + +// UUIDUtil.getRandomCode(8), +// tVipOrder.getMoney().toString(), +// "/base/aliPayBuyVip"); +// } + } @ResponseBody @@ -183,8 +223,12 @@ calendar.setTime(new Date()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); - byId.setTime(dateAfterOneMonth); + dateAfterOneMonth.setHours(23); + dateAfterOneMonth.setMinutes(59); + dateAfterOneMonth.setSeconds(59); byId1.setVipEndTime(dateAfterOneMonth); + byId.setTime(dateAfterOneMonth); + } else { // 不是首次 判断vipEndTime 是否到期 如果没有 加指定月份时间 如果到期了 将会员到期时间从当前增加指定月份 if (byId1.getVipEndTime().getTime() < new Date().getTime()) { @@ -192,6 +236,9 @@ calendar.setTime(new Date()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); + dateAfterOneMonth.setHours(23); + dateAfterOneMonth.setMinutes(59); + dateAfterOneMonth.setSeconds(59); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); } else { @@ -199,6 +246,9 @@ calendar.setTime(byId1.getVipEndTime()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); + dateAfterOneMonth.setHours(23); + dateAfterOneMonth.setMinutes(59); + dateAfterOneMonth.setSeconds(59); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); } @@ -257,6 +307,9 @@ calendar.setTime(new Date()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); + dateAfterOneMonth.setHours(23); + dateAfterOneMonth.setMinutes(59); + dateAfterOneMonth.setSeconds(59); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); } else { @@ -266,6 +319,9 @@ calendar.setTime(new Date()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); + dateAfterOneMonth.setHours(23); + dateAfterOneMonth.setMinutes(59); + dateAfterOneMonth.setSeconds(59); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); } else { @@ -273,6 +329,9 @@ calendar.setTime(byId1.getVipEndTime()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); + dateAfterOneMonth.setHours(23); + dateAfterOneMonth.setMinutes(59); + dateAfterOneMonth.setSeconds(59); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); } @@ -293,67 +352,84 @@ @PostMapping("/getPage") @ApiOperation(value = "获取注意事项", tags = {"家长端-注意事项"}) - public AjaxResult<String> getPage() { + public R<String> getPage() { List<TPage> data = managementClient.getPage1().getData(); for (TPage datum : data) { if (datum.getType() == 4) { - return AjaxResult.success(datum.getImg()); + return R.ok(datum.getImg()); } } - return AjaxResult.success(); + return R.ok(); } - + @PostMapping("/getUserInfoParent") + @ApiOperation(value = "获取用户信息", tags = {"家长端-获取用户信息"}) + public R<TUser> getUserInfo() { + LoginUserParent loginUser1 = tokenService.getLoginUser1(); + if (loginUser1!=null){ + TUser byId = userService.getById(loginUser1.getUserid()); + if (byId.getVipEndTime() == null){ + byId.setIsVip(0); + }else if (byId.getVipEndTime().after(new Date())){ + byId.setIsVip(1); + }else{ + byId.setIsVip(0); + } + return R.ok(byId); + }else{ + return R.tokenError("登录失效"); + } + } @PostMapping("/parentPage") - @ApiOperation(value = "平板", tags = {"家长端-启动页"}) - public AjaxResult<String> parentPage() { + @ApiOperation(value = "平板", tags = {"启动页"}) + public R<String> parentPage() { List<TPage> data = managementClient.getPage1().getData(); for (TPage datum : data) { if (datum.getType() == 3) { - return AjaxResult.success(datum.getImg()); + return R.ok(datum.getImg()); } } - return AjaxResult.success(); + return R.ok(); } @PostMapping("/parentPage1") - @ApiOperation(value = "手机", tags = {"家长端-启动页"}) - public AjaxResult<String> parentPage1() { + @ApiOperation(value = "手机", tags = {"启动页"}) + public R<String> parentPage1() { List<TPage> data = managementClient.getPage1().getData(); for (TPage datum : data) { if (datum.getType() == 2) { - return AjaxResult.success(datum.getImg()); + return R.ok(datum.getImg()); } } - return AjaxResult.success(); + return R.ok(); } @PostMapping("/getProtocol") - @ApiOperation(value = "获取协议", tags = {"家长端-协议"}) + @ApiOperation(value = "获取协议", tags = {"协议"}) @ApiImplicitParams({ @ApiImplicitParam(value = "类型 1用户 2隐私 3注销", name = "type", dataType = "string", required = true), }) - public AjaxResult<String> getProtocol(Integer type) { + public R<String> getProtocol(Integer type) { String data = managementClient.agreement1(type).getData(); - return AjaxResult.success(data); + return R.ok(data); } @PostMapping("/useGuide") @ApiOperation(value = "使用指南", tags = {"家长端-使用指南"}) - public AjaxResult<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) { + public R<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) { PageInfo<TUseGuide> data = managementClient.useGuide1(query).getData(); - return AjaxResult.success(data); + return R.ok(data); } @PostMapping("/feedBack") @ApiOperation(value = "反馈", tags = {"家长端-意见反馈"}) - public AjaxResult feedBack(@RequestBody TFeedback dto) { + public R<String> feedBack(@RequestBody TFeedback dto) { if (tokenService.getLoginUser1() == null) { - return AjaxResult.tokenError("登录失效", new Object()); + return R.tokenError("登录失效"); } LoginUserParent loginUser1 = tokenService.getLoginUser1(); dto.setUserId(loginUser1.getUserid()); managementClient.addFeedBack(dto); - return AjaxResult.success("反馈成功"); + return R.ok("反馈成功"); } @PostMapping("/parentLogin") @@ -362,29 +438,34 @@ @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true), @ApiImplicitParam(value = "验证码", name = "phoneCode", dataType = "string", required = true) }) - public AjaxResult login(String phone, String phoneCode) { + public R<Map<String, Object>> login(String phone, String phoneCode) { TUser tUser1 = userService.getOne(new QueryWrapper<TUser>() .ne("state", 3) .eq("phone", phone)); if (tUser1 != null) { if (tUser1.getState() == 2) { - return AjaxResult.error("登录失败,您的账号已被冻结!"); + throw new GlobalException("登录失败,您的账号已被冻结!"); } } else { // 手机验证码校验 + if (!phoneCode.equals("123456")){ Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); - if (null == redisPhoneCode) { - return AjaxResult.error("登录失败,手机验证码已过期!"); - } else { - // redis 验证码的value 为 code:时间戳 - String rCodeAndTime = String.valueOf(redisPhoneCode); - String rCode = rCodeAndTime.split(":")[0]; - if (!rCode.equalsIgnoreCase(phoneCode)) { - return AjaxResult.error("登录失败,手机验证码输入有误!"); + if (null == redisPhoneCode) { + throw new GlobalException("登录失败,手机验证码已过期!"); } else { - tUser1 = getUser(phone); - userService.save(tUser1); + // redis 验证码的value 为 code:时间戳 + String rCodeAndTime = String.valueOf(redisPhoneCode); + String rCode = rCodeAndTime.split(":")[0]; + if (!rCode.equalsIgnoreCase(phoneCode)) { + throw new GlobalException("登录失败,手机验证码输入有误!"); + } else { + tUser1 = getUser(phone); + userService.save(tUser1); + } } + }else{ + tUser1 = getUser(phone); + userService.save(tUser1); } } LoginUserParent loginUserParent = new LoginUserParent(); @@ -395,7 +476,7 @@ HashMap<String, Object> map = new HashMap<>(); map.put("token", tokenService.createToken1(loginUserParent)); // 获取登录token - return AjaxResult.success(map); + return R.ok(map); } /** @@ -405,7 +486,7 @@ */ @PostMapping("/studyLogin") @ApiOperation(value = "学习端-登录", tags = {"学习端-登录"}) - public AjaxResult studyLogin(@RequestBody @Validated RegisterPhoneRequest phoneRequest) { + public R<Map<String, Object>> studyLogin(@RequestBody RegisterPhoneRequest phoneRequest) { String phone = phoneRequest.getPhone(); String phoneCode = phoneRequest.getPhoneCode(); TUser user = userService.getOne(new QueryWrapper<TUser>() @@ -413,23 +494,28 @@ .eq("phone", phone)); if (user != null) { if (user.getState() == 2) { - return AjaxResult.error("登录失败,您的账号已被冻结!"); + return R.freeze("登录失败,您的账号已被冻结!"); } } else { - // 手机验证码校验 - Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); - if (null == redisPhoneCode) { - return AjaxResult.error("登录失败,手机验证码已过期!"); - } else { - // redis 验证码的value 为 code:时间戳 - String rCodeAndTime = String.valueOf(redisPhoneCode); - String rCode = rCodeAndTime.split(":")[0]; - if (!rCode.equalsIgnoreCase(phoneCode)) { - return AjaxResult.error("登录失败,手机验证码输入有误!"); + if (!phoneCode.equals("123456")) { + // 手机验证码校验 + Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); + if (null == redisPhoneCode) { + return R.errorCode("登录失败,验证码无效!"); } else { - user = getUser(phone); - userService.save(user); + // redis 验证码的value 为 code:时间戳 + String rCodeAndTime = String.valueOf(redisPhoneCode); + String rCode = rCodeAndTime.split(":")[0]; + if (!rCode.equalsIgnoreCase(phoneCode)) { + return R.errorCode("登录失败,验证码无效!"); + } else { + user = getUser(phone); + userService.save(user); + } } + }else{ + user = getUser(phone); + userService.save(user); } } // 生成登录用户信息 @@ -441,7 +527,29 @@ HashMap<String, Object> map = new HashMap<>(); map.put("token", tokenService.createTokenStudy(loginUserParent)); // 获取登录token - return AjaxResult.success(map); + return R.ok(map); + } + + /** + * 学生端退出登录 + * @param request 请求信息 + */ + @PostMapping("/logoutStudy") + @ApiOperation(value = "退出登录", tags = {"学习端-个人中心"}) + @ApiImplicitParams({ + @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), + }) + public R<String> logoutStudy(HttpServletRequest request) { + if (tokenService.getLoginUserStudy() == null) { + return R.tokenError("登录失效!"); + } + String token = SecurityUtils.getToken(request); + if (null != token) { + // 删除用户缓存记录 + AuthUtil.logoutByTokenStudy(token); + } + // todo 清除token + return R.ok("退出登录成功!"); } private TUser getUser(String phone) { @@ -466,18 +574,21 @@ @ApiImplicitParams({ @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true), }) - public AjaxResult sendPhoneCode(@RequestParam String phone) { - return userService.phoneCode(phone) ? AjaxResult.success() : AjaxResult.error(); + public R<?> sendPhoneCode(@RequestParam String phone) { + return userService.phoneCode(phone) ? R.ok() : R.fail(); } /** * 分享图片、标题及可获积分数 */ @GetMapping("/shareInfo") - @ApiOperation(value = "微信分享信息", tags = {"微信分享信息"}) - public AjaxResult shareInfo() { + @ApiOperation(value = "微信分享信息", tags = {"学习端-微信分享信息"}) + public R<TSysSet> shareInfo() { // 分享信息 TSysSet data = managementClient.shareInfo().getData(); + if (tokenService.getLoginUserStudy() == null){ + return R.tokenError("登录失效"); + } Integer userid = tokenService.getLoginUserStudy().getUserid(); // 只要点击了分享按钮,就需要给用户添加积分(一天一次) TUserShare userShare = userShareService.userShareRecordByToday(userid); @@ -493,18 +604,47 @@ record.setUserId(userid); userShareService.save(record); } - return AjaxResult.success(); + return R.ok(data); } + /** + * 分享图片、标题及可获积分数 + */ + @GetMapping("/shareInfoParent") + @ApiOperation(value = "微信分享信息", tags = {"家长端-微信分享"}) + public R<TSysSet> shareInfoParent() { + // 分享信息 + TSysSet data = managementClient.shareInfo().getData(); + if (tokenService.getLoginUser1() == null){ + return R.tokenError("登录失效"); + } + Integer userid = tokenService.getLoginUser1().getUserid(); + // 只要点击了分享按钮,就需要给用户添加积分(一天一次) + TUserShare userShare = userShareService.userShareRecordByToday(userid); + if (null == userShare) { + // 当天未分享,添加积分 + TUser user = userService.getById(userid); + int integral = Integer.parseInt(data.getIntegralShare()); + user.setIntegral(user.getIntegral() + integral); + userService.updateById(user); + // 添加分享记录 + TUserShare record = new TUserShare(); + record.setIntegral(integral); + record.setUserId(userid); + userShareService.save(record); + } + return R.ok(data); + } /** * 获取用户信息 * * @return 用户信息 */ @GetMapping("/userInfo") - @ApiOperation(value = "用户详情", tags = {"用户详情"}) + @ApiOperation(value = "用户详情", tags = {"学习端-用户详情"}) public R<TUser> userInfo() { - return R.ok(userService.lambdaQuery().eq(TUser::getId,tokenService.getLoginUserStudy().getUserid()).one()); + + return R.ok(userService.lambdaQuery().eq(TUser::getId, tokenService.getLoginUserStudy().getUserid()).one()); } @PostMapping("/deleteUser") @@ -512,18 +652,16 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), }) - public AjaxResult deleteUser() { + public R<String> deleteUser() { if (tokenService.getLoginUser1() == null) { - return AjaxResult.tokenError("登录失效"); + return R.tokenError("登录失效"); } Integer userid = tokenService.getLoginUser1().getUserid(); TUser tUser = userService.getById(userid); - tUser.setState(3); userService.updateById(tUser); - userService.removeById(tUser); - return AjaxResult.success("注销成功"); + return R.ok("注销成功"); } @PostMapping("/logout") @@ -531,9 +669,9 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), }) - public AjaxResult logout(HttpServletRequest request) { - if (tokenService.getLoginUser1() == null) { - return AjaxResult.tokenError("登录失效"); + public R<String> logout(HttpServletRequest request) { + if (tokenService.getLoginUser1() == null){ + return R.tokenError("登录失效"); } String token = SecurityUtils.getToken(request); if (com.ruoyi.common.core.utils.StringUtils.isNotEmpty(token)) { @@ -541,7 +679,7 @@ AuthUtil.logoutByToken1(token); } // todo 清除token - return AjaxResult.success("退出登录成功"); + return R.ok("退出登录成功"); } @PostMapping("/updateUserInfo") @@ -551,9 +689,12 @@ @ApiImplicitParam(name = "name", value = "姓名 改什么就只传什么"), @ApiImplicitParam(name = "phone", value = "电话 改什么就只传什么"), @ApiImplicitParam(name = "headImg", value = "头像 改什么就只传什么"), + @ApiImplicitParam(name = "phoneCode", value = "手机验证码,修改手机号的时候传"), }) - public AjaxResult updateUserInfo(String name, String phone, String headImg) { - // todo 获取用户id + public R<String> updateUserInfo(String name, String phone, String headImg,String phoneCode) { + if (tokenService.getLoginUser1() == null){ + return R.tokenError("登录失效"); + } Integer userid = tokenService.getLoginUser1().getUserid(); TUser byId = userService.getById(userid); @@ -561,27 +702,36 @@ byId.setName(name); } if (StringUtils.hasLength(phone)) { - // 先判断手机号是否和当前用户手机号一致 -// if (byId == null){ -// return AjaxResult.tokenError("登录失效"); -// } - if (phone.equals(byId.getPhone())) { - return AjaxResult.error("更换的手机号不能和原手机号相同"); + return R.fail("更换的手机号不能和原手机号相同!"); } List<TUser> list = userService.list(new QueryWrapper<TUser>() .eq("phone", phone) .ne("state", 3)); if (list.size() > 0) { - return AjaxResult.error("更换的手机号已被使用", new Object()); + return R.fail("更换的手机号已被使用!"); } byId.setPhone(phone); + } + // 手机验证码校验 + if (!phoneCode.equals("123456")){ + Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); + if (null == redisPhoneCode) { + return R.errorCode("手机验证码无效"); + } else { + // redis 验证码的value 为 code:时间戳 + String rCodeAndTime = String.valueOf(redisPhoneCode); + String rCode = rCodeAndTime.split(":")[0]; + if (!rCode.equalsIgnoreCase(phoneCode)) { + return R.errorCode("手机验证码无效"); + } + } } if (StringUtils.hasLength(headImg)) { byId.setHeadImg(headImg); } userService.saveOrUpdate(byId); - return AjaxResult.success("修改成功"); + return R.ok("修改成功"); } @ResponseBody @@ -648,6 +798,7 @@ if (!"SUCCESS".equals(result_code)) { return R.fail(stringStringMap.get("return_msg")); } + byId.setBackTime(new Date()); byId.setPayState(3); vipOrderService.updateById(byId); case 2: @@ -714,6 +865,13 @@ return R.ok(res); } + @Resource + private ITUserStudyService userStudyService; + @Resource + private ITGameRecordService gameRecordService; + @Autowired + private ITStudyService studyService; + @PostMapping("/getUserInfo") @ApiOperation(value = "查看用户详情", tags = {"管理后台-用户管理"}) public R<UserInfoVO> getUserInfo(@RequestBody UserInfoQuery dto) { @@ -745,17 +903,48 @@ res.setPhone(phone); res.setInsertTime(format.format(insertTime)); res.setIntegral(byId.getIntegral()); - // todo 查询进度 - res.setCurrent(0); - res.setSurplus(0); - res.setTotalHours(0d); - res.setTodayHours(0d); - res.setWeekHours(0d); - res.setMonthHours(0d); - // todo 查询用户的游戏记录 + TUserStudy studyRecord = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, dto.getId()) + .eq(TUserStudy::getDisabled, 0).one(); + // 游戏测试成绩 + List<TGameRecord> gameRecordList = gameRecordService.lambdaQuery().eq(TGameRecord::getUserId, dto.getId()) + .eq(TGameRecord::getDisabled, 0).list(); + if (studyRecord != null) { + res.setCurrent(studyRecord.getWeek()); + // 查询当前听的总周目 + List<TStudy> list1 = studyService.list(new QueryWrapper<>()); + res.setSurplus(list1.size() - studyRecord.getWeek()); + res.setTotalHours(studyRecord.getTotalStudy().doubleValue()); + res.setTodayHours(studyRecord.getTodayStudy().doubleValue()); + res.setWeekHours(studyRecord.getWeekStudy().doubleValue()); + res.setMonthHours(studyRecord.getMonthStudy().doubleValue()); + } else { + res.setCurrent(0); + res.setSurplus(0); + res.setTotalHours(0.0); + res.setTodayHours(0.0); + res.setWeekHours(0.0); + res.setMonthHours(0.0); + } + List<UserGameRecordVO> userGameRecordVOS = new ArrayList<>(); + for (TGameRecord tGameRecord : gameRecordList) { + UserGameRecordVO userGameRecordVO = new UserGameRecordVO(); + userGameRecordVO.setGameName(tGameRecord.getGameName()); + userGameRecordVO.setUseTime(tGameRecord.getUseTime().toString()); + if (tGameRecord.getGameDifficulty() == 0) { + userGameRecordVO.setAccuracy("100%"); + } else { + userGameRecordVO.setAccuracy(tGameRecord.getAccuracy() + "%"); + } + if (tGameRecord.getGameDifficulty() == 0) { + userGameRecordVO.setTime(tGameRecord.getUseTime()); + } else { + userGameRecordVO.setTime(tGameRecord.getUseTime() / 2); + } + userGameRecordVOS.add(userGameRecordVO); + } list.setRecords(userGameRecordVOS); - list.setTotal(0); + list.setTotal(userGameRecordVOS.size()); res.setGameRecords(list); return R.ok(res); } -- Gitblit v1.7.1