From ddee28676ae16b682651eea38f0c1071cf1565b8 Mon Sep 17 00:00:00 2001 From: hjl <1657978663@qq.com> Date: 星期三, 22 五月 2024 15:33:43 +0800 Subject: [PATCH] feat: 接口返回VO类;接口调试修改BUG --- ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 484 ++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 331 insertions(+), 153 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 8fd56b1..72e3f0d 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 @@ -3,8 +3,8 @@ import com.alipay.api.AlipayApiException; 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.utils.JwtUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.redis.service.RedisService; @@ -12,34 +12,30 @@ import com.ruoyi.common.security.service.TokenService; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.management.api.feignClient.ManagementClient; -import com.ruoyi.management.api.model.TFeedback; -import com.ruoyi.management.api.model.TPage; -import com.ruoyi.management.api.model.TUseGuide; -import com.ruoyi.management.api.model.TVipSet; +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.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.utils.PayMoneyUtil; import com.ruoyi.study.utils.UUIDUtil; import com.ruoyi.study.vo.*; -import com.ruoyi.system.api.domain.SysRole; -import com.ruoyi.system.api.domain.SysUser; -import com.ruoyi.system.api.model.LoginUser; import com.ruoyi.system.api.model.LoginUserParent; -import io.jsonwebtoken.Claims; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; -import org.apache.poi.ss.formula.functions.T; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.util.CollectionUtils; import org.springframework.util.StringUtils; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.PrintWriter; @@ -66,12 +62,16 @@ private ManagementClient managementClient; @Autowired private TokenService tokenService; + @Resource + private RedisService redisService; + @Resource + private ITUserShareService userShareService; @PostMapping("/vipInfo") @ApiOperation(value = "会员中心-获取会员说明、当前登录用户是否为会员、会员购买规格", tags = {"家长端-个人中心"}) public AjaxResult<List<VipInfoVO>> vipInfo() { - if (tokenService.getLoginUser1() == null){ - return AjaxResult.tokenError("登录失效",new Object()); + if (tokenService.getLoginUser1() == null) { + return AjaxResult.tokenError("登录失效", new Object()); } List<VipInfoVO> vipInfoVOS = new ArrayList<>(); List<TVipSet> data = managementClient.getVipSet1().getData(); @@ -82,21 +82,23 @@ Integer userid = tokenService.getLoginUser1().getUserid(); TUser byId = userService.getById(userid); // 先判断vipEndTime - if (byId.getVipEndTime() == null){ + if (byId.getVipEndTime() == null) { vipInfoVO.setIsVip(0); - }else{ + } else { // 判断会员到期时间是否大于当前时间 - if (byId.getVipEndTime().getTime() > new Date().getTime()){ + if (byId.getVipEndTime().getTime() > new Date().getTime()) { vipInfoVO.setIsVip(1); - }else{ + } else { vipInfoVO.setIsVip(0); } } vipInfoVO.setTime(datum.getTime()); vipInfoVO.setAmount(datum.getAmount()); + vipInfoVOS.add(vipInfoVO); } return AjaxResult.ok(vipInfoVOS); } + @Autowired private PayMoneyUtil payMoneyUtil; @@ -107,16 +109,16 @@ @ApiImplicitParam(name = "payType", value = "支付类型 1=微信 2=支付宝", 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()); + 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){ + if (datum.getId() == id) { tVipOrder.setMoney(datum.getAmount()); time = datum.getTime(); } @@ -125,11 +127,11 @@ tVipOrder.setUserId(userid); tVipOrder.setPayType(payType); tVipOrder.setCount(time); - switch (payType){ + switch (payType) { case 1: return payMoneyUtil.weixinpay ("购买会员", "", - id+"_"+tVipOrder.getId() + "_"+ + id + "_" + tVipOrder.getId() + "_" + UUIDUtil.getRandomCode(8), tVipOrder.getMoney().toString(), "/base/wxPayBuyVip", "APP", ""); @@ -138,13 +140,14 @@ ("购买会员", "购买会员下单支付", "", - id+"_"+tVipOrder.getId()+"_"+ + id + "_" + tVipOrder.getId() + "_" + UUIDUtil.getRandomCode(8), tVipOrder.getMoney().toString(), "/base/aliPayBuyVip"); } return AjaxResult.success(); } + @ResponseBody @PostMapping("/base/aliPayBuyVip") public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response) { @@ -156,9 +159,9 @@ // 会员规格id String s = out_trade_no.split("_")[0]; Integer integer = Integer.valueOf(s); - Integer time = 0; + Integer time = 0; for (TVipSet datum : managementClient.getVipSet1().getData()) { - if (datum.getId() == integer){ + if (datum.getId() == integer) { time = datum.getTime(); } } @@ -173,7 +176,7 @@ TUser byId1 = userService.getById(byId.getUserId()); - if (byId1.getVipPayTime() == null){ + if (byId1.getVipPayTime() == null) { // 是否是首次充值会员 byId1.setVipPayTime(new Date()); Calendar calendar = Calendar.getInstance(); @@ -182,16 +185,16 @@ Date dateAfterOneMonth = calendar.getTime(); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); - }else{ + } else { // 不是首次 判断vipEndTime 是否到期 如果没有 加指定月份时间 如果到期了 将会员到期时间从当前增加指定月份 - if (byId1.getVipEndTime().getTime() < new Date().getTime()){ + if (byId1.getVipEndTime().getTime() < new Date().getTime()) { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); - }else{ + } else { Calendar calendar = Calendar.getInstance(); calendar.setTime(byId1.getVipEndTime()); calendar.add(Calendar.MONTH, time); @@ -215,6 +218,7 @@ e.printStackTrace(); } } + @ResponseBody @PostMapping("/base/wxPayBuyVip") public void wxPayBuyPackage(HttpServletRequest request, HttpServletResponse response) { @@ -229,9 +233,9 @@ // 会员规格id String s = out_trade_no.split("_")[0]; Integer integer = Integer.valueOf(s); - Integer time = 0; + Integer time = 0; for (TVipSet datum : managementClient.getVipSet1().getData()) { - if (datum.getId() == integer){ + if (datum.getId() == integer) { time = datum.getTime(); } } @@ -246,7 +250,7 @@ TUser byId1 = userService.getById(byId.getUserId()); - if (byId1.getVipPayTime() == null){ + if (byId1.getVipPayTime() == null) { // 是否是首次充值会员 byId1.setVipPayTime(new Date()); Calendar calendar = Calendar.getInstance(); @@ -255,16 +259,16 @@ Date dateAfterOneMonth = calendar.getTime(); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); - }else{ + } else { // 不是首次 判断vipEndTime 是否到期 如果没有 加指定月份时间 如果到期了 将会员到期时间从当前增加指定月份 - if (byId1.getVipEndTime().getTime() < new Date().getTime()){ + if (byId1.getVipEndTime().getTime() < new Date().getTime()) { Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); calendar.add(Calendar.MONTH, time); Date dateAfterOneMonth = calendar.getTime(); byId.setTime(dateAfterOneMonth); byId1.setVipEndTime(dateAfterOneMonth); - }else{ + } else { Calendar calendar = Calendar.getInstance(); calendar.setTime(byId1.getVipEndTime()); calendar.add(Calendar.MONTH, time); @@ -286,60 +290,102 @@ e.printStackTrace(); } } + @PostMapping("/getPage") @ApiOperation(value = "获取注意事项", tags = {"家长端-注意事项"}) public AjaxResult<String> getPage() { List<TPage> data = managementClient.getPage1().getData(); for (TPage datum : data) { - if (datum.getType() == 4){ + if (datum.getType() == 4) { return AjaxResult.success(datum.getImg()); } } return AjaxResult.success(); } + + @PostMapping("/parentPage") + @ApiOperation(value = "平板", tags = {"家长端-启动页"}) + public AjaxResult<String> parentPage() { + List<TPage> data = managementClient.getPage1().getData(); + for (TPage datum : data) { + if (datum.getType() == 3) { + return AjaxResult.success(datum.getImg()); + } + } + return AjaxResult.success(); + } + + @PostMapping("/parentPage1") + @ApiOperation(value = "手机", tags = {"家长端-启动页"}) + public AjaxResult<String> parentPage1() { + List<TPage> data = managementClient.getPage1().getData(); + for (TPage datum : data) { + if (datum.getType() == 2) { + return AjaxResult.success(datum.getImg()); + } + } + return AjaxResult.success(); + } + + @PostMapping("/getProtocol") + @ApiOperation(value = "获取协议", tags = {"家长端-协议"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "类型 1用户 2隐私 3注销", name = "type", dataType = "string", required = true), + }) + public AjaxResult<String> getProtocol(Integer type) { + String data = managementClient.agreement1(type).getData(); + return AjaxResult.success(data); + } + @PostMapping("/useGuide") @ApiOperation(value = "使用指南", tags = {"家长端-使用指南"}) public AjaxResult<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) { PageInfo<TUseGuide> data = managementClient.useGuide1(query).getData(); return AjaxResult.success(data); } + @PostMapping("/feedBack") @ApiOperation(value = "反馈", tags = {"家长端-意见反馈"}) public AjaxResult feedBack(@RequestBody TFeedback dto) { - if (tokenService.getLoginUser1() == null){ - return AjaxResult.tokenError("登录失效",new Object()); + if (tokenService.getLoginUser1() == null) { + return AjaxResult.tokenError("登录失效", new Object()); } LoginUserParent loginUser1 = tokenService.getLoginUser1(); dto.setUserId(loginUser1.getUserid()); managementClient.addFeedBack(dto); return AjaxResult.success("反馈成功"); } + @PostMapping("/parentLogin") @ApiOperation(value = "登录", tags = {"家长端-登录"}) @ApiImplicitParams({ @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true), @ApiImplicitParam(value = "验证码", name = "phoneCode", dataType = "string", required = true) }) - public AjaxResult login(String phone, String phoneCode) - { + public AjaxResult 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){ + .eq("phone", phone)); + if (tUser1 != null) { + if (tUser1.getState() == 2) { return AjaxResult.error("登录失败,您的账号已被冻结!"); } - }else{ - // todo 验证码校验 - tUser1 = new TUser(); - // 注册 - tUser1.setName(phone); - tUser1.setAccount(phone); - tUser1.setState(1); - tUser1.setInsertTime(new Date()); - tUser1.setCreateTime(new Date()); - tUser1.setPhone(phone); - userService.save(tUser1); + } 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("登录失败,手机验证码输入有误!"); + } else { + tUser1 = getUser(phone); + userService.save(tUser1); + } + } } LoginUserParent loginUserParent = new LoginUserParent(); loginUserParent.setName(tUser1.getName()); @@ -347,11 +393,119 @@ loginUserParent.setPhone(tUser1.getPhone()); loginUserParent.setLoginTime(new Date().getTime()); HashMap<String, Object> map = new HashMap<>(); - map.put("token",tokenService.createToken1(loginUserParent)); + map.put("token", tokenService.createToken1(loginUserParent)); // 获取登录token return AjaxResult.success(map); } + /** + * 学生端登录 + * + * @param phoneRequest 手机号及手机验证码 + */ + @PostMapping("/studyLogin") + @ApiOperation(value = "学习端-登录", tags = {"学习端-登录"}) + public AjaxResult studyLogin(@RequestBody @Validated RegisterPhoneRequest phoneRequest) { + String phone = phoneRequest.getPhone(); + String phoneCode = phoneRequest.getPhoneCode(); + TUser user = userService.getOne(new QueryWrapper<TUser>() + .ne("state", 3) + .eq("phone", phone)); + if (user != null) { + if (user.getState() == 2) { + return AjaxResult.error("登录失败,您的账号已被冻结!"); + } + } 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("登录失败,手机验证码输入有误!"); + } else { + user = getUser(phone); + userService.save(user); + } + } + } + // 生成登录用户信息 + LoginUserParent loginUserParent = new LoginUserParent(); + loginUserParent.setName(user.getName()); + loginUserParent.setUserid(user.getId()); + loginUserParent.setPhone(user.getPhone()); + loginUserParent.setLoginTime(System.currentTimeMillis()); + HashMap<String, Object> map = new HashMap<>(); + map.put("token", tokenService.createTokenStudy(loginUserParent)); + // 获取登录token + return AjaxResult.success(map); + } + + private TUser getUser(String phone) { + TUser user = new TUser(); + // 注册 + user.setName(phone); + user.setAccount(phone); + user.setState(1); + user.setInsertTime(new Date()); + user.setCreateTime(new Date()); + user.setPhone(phone); + return user; + } + + /** + * 家长端 学习端都可用 + * + * @param phone 手机号 + */ + @GetMapping("/sendPhoneCode") + @ApiOperation(value = "发送手机验证码", tags = {"家长端/学习端-发送手机验证码"}) + @ApiImplicitParams({ + @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true), + }) + public AjaxResult sendPhoneCode(@RequestParam String phone) { + return userService.phoneCode(phone) ? AjaxResult.success() : AjaxResult.error(); + } + + /** + * 分享图片、标题及可获积分数 + */ + @GetMapping("/shareInfo") + @ApiOperation(value = "微信分享信息", tags = {"微信分享信息"}) + public AjaxResult shareInfo() { + // 分享信息 + TSysSet data = managementClient.shareInfo().getData(); + Integer userid = tokenService.getLoginUserStudy().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 AjaxResult.success(); + } + + /** + * 获取用户信息 + * + * @return 用户信息 + */ + @GetMapping("/userInfo") + @ApiOperation(value = "用户详情", tags = {"用户详情"}) + public R<TUser> userInfo() { + return R.ok(userService.lambdaQuery().eq(TUser::getId,tokenService.getLoginUserStudy().getUserid()).one()); + } @PostMapping("/deleteUser") @ApiOperation(value = "注销当前帐号", tags = {"家长端-个人中心"}) @@ -359,8 +513,8 @@ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), }) public AjaxResult deleteUser() { - if (tokenService.getLoginUser1() == null){ - return AjaxResult.tokenError("登录失效"); + if (tokenService.getLoginUser1() == null) { + return AjaxResult.tokenError("登录失效"); } Integer userid = tokenService.getLoginUser1().getUserid(); TUser tUser = userService.getById(userid); @@ -371,24 +525,25 @@ userService.removeById(tUser); return AjaxResult.success("注销成功"); } + @PostMapping("/logout") @ApiOperation(value = "退出登录", tags = {"家长端-个人中心"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), }) public AjaxResult logout(HttpServletRequest request) { - if (tokenService.getLoginUser1() == null){ + if (tokenService.getLoginUser1() == null) { return AjaxResult.tokenError("登录失效"); } String token = SecurityUtils.getToken(request); - if (com.ruoyi.common.core.utils.StringUtils.isNotEmpty(token)) - { + if (com.ruoyi.common.core.utils.StringUtils.isNotEmpty(token)) { // 删除用户缓存记录 AuthUtil.logoutByToken1(token); } // todo 清除token return AjaxResult.success("退出登录成功"); } + @PostMapping("/updateUserInfo") @ApiOperation(value = "修改个人资料", tags = {"家长端-个人中心"}) @ApiImplicitParams({ @@ -397,40 +552,83 @@ @ApiImplicitParam(name = "phone", value = "电话 改什么就只传什么"), @ApiImplicitParam(name = "headImg", value = "头像 改什么就只传什么"), }) - public AjaxResult updateUserInfo(String name, String phone,String headImg) { - if (tokenService.getLoginUser1() == null){ - return AjaxResult.tokenError("登录失效",new Object()); - } + public AjaxResult updateUserInfo(String name, String phone, String headImg) { // todo 获取用户id Integer userid = tokenService.getLoginUser1().getUserid(); TUser byId = userService.getById(userid); - if (StringUtils.hasLength(name)){ + if (StringUtils.hasLength(name)) { byId.setName(name); } - if (StringUtils.hasLength(phone)){ + if (StringUtils.hasLength(phone)) { // 先判断手机号是否和当前用户手机号一致 // if (byId == null){ // return AjaxResult.tokenError("登录失效"); // } - if (phone.equals(byId.getPhone())){ + if (phone.equals(byId.getPhone())) { return AjaxResult.error("更换的手机号不能和原手机号相同"); } List<TUser> list = userService.list(new QueryWrapper<TUser>() .eq("phone", phone) .ne("state", 3)); - if (list.size() > 0){ - return AjaxResult.error("更换的手机号已被使用",new Object()); + if (list.size() > 0) { + return AjaxResult.error("更换的手机号已被使用", new Object()); } byId.setPhone(phone); } - if (StringUtils.hasLength(headImg)){ + if (StringUtils.hasLength(headImg)) { byId.setHeadImg(headImg); } - userService.updateById(byId); + userService.saveOrUpdate(byId); return AjaxResult.success("修改成功"); } + + @ResponseBody + @PostMapping("/base/wxRefund") + public void cancelMySiteCallback(HttpServletRequest request, HttpServletResponse response) { + try { + Map<String, String> map = payMoneyUtil.wxRefundCallback(request); + if (null != map) { + String code = map.get("out_refund_no"); + String refund_id = map.get("refund_id"); + String result = map.get("result"); + TVipOrder one = vipOrderService.getOne(new QueryWrapper<TVipOrder>() + .eq("outTradeNo", code) + .eq("payState", 3)); + one.setBackTime(new Date()); + vipOrderService.updateById(one); + Integer userId = one.getUserId(); + TUser byId1 = userService.getById(userId); + // 判断用户是不是第一次充值 + List<TVipOrder> list = vipOrderService.list(new QueryWrapper<TVipOrder>() + .eq("userId", userId) + .eq("payState", 2) + .orderByDesc("createTime")); + int size = list.size(); + if (size == 0) { + // 证明这是用户第一次充值会员 将首次充值会员时间和会员到期时间清空 + byId1.setVipEndTime(null); + byId1.setVipPayTime(null); + userService.updateById(byId1); + } else { + // 最近的一次充值会员时间 + TVipOrder tVipOrder = list.get(0); + // 将会员到期时间回退到上一次 + byId1.setVipEndTime(tVipOrder.getTime()); + userService.updateById(byId1); + } + + PrintWriter out = response.getWriter(); + out.write(result); + out.flush(); + out.close(); + } + } catch (Exception e) { + e.printStackTrace(); + } + } + @PostMapping("/vipBack/{id}") @ApiOperation(value = "会员退款", tags = {"管理后台-会员退款"}) public R vipBack(@PathVariable("id") Integer id) throws AlipayApiException { @@ -439,95 +637,74 @@ String transactionId = byId.getTransactionId(); // 内部订单号 String outTradeNo = byId.getOutTradeNo(); - switch (byId.getPayType()){ + switch (byId.getPayType()) { case 1: - // 微信退款 + // 微信退款 Map<String, String> stringStringMap = payMoneyUtil.wxRefund(transactionId, outTradeNo, byId.getMoney().toString(), byId.getMoney().toString(), "/base/wxRefund"); - if (stringStringMap.get("code").equals("SUCCESS")){ - byId.setPayState(3); - byId.setBackTime(new Date()); - vipOrderService.updateById(byId); - // 用户的vip剩余时间减少 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - calendar.add(Calendar.MONTH, -byId.getCount()); - Date dateAfterOneMonth = calendar.getTime(); - Integer userId = byId.getUserId(); - TUser byId1 = userService.getById(userId); - // 判断用户是不是第一次充值 - List<TVipOrder> list = vipOrderService.list(new QueryWrapper<TVipOrder>() - .eq("userId", userId) - .eq("payState", 2) - .orderByDesc("createTime")); - int size = list.size(); - if (size == 0){ - // 证明这是用户第一次充值会员 将首次充值会员时间和会员到期时间清空 - byId1.setVipEndTime(null); - byId1.setVipPayTime(null); - userService.updateById(byId1); - }else{ - // 最近的一次充值会员时间 - TVipOrder tVipOrder = list.get(0); - // 将会员到期时间回退到上一次 - byId1.setVipEndTime(tVipOrder.getTime()); - userService.updateById(byId1); - } - - return R.ok(); - }else{ - return R.fail(stringStringMap.get("msg")); + if (null == stringStringMap) { + return R.fail("取消退款异常"); } + String result_code = stringStringMap.get("result_code"); + if (!"SUCCESS".equals(result_code)) { + return R.fail(stringStringMap.get("return_msg")); + } + byId.setPayState(3); + vipOrderService.updateById(byId); case 2: // 支付宝退款 - Map<String, String> stringStringMap1 = payMoneyUtil.aliRefund(transactionId,byId.getMoney().toString()); - if (stringStringMap1.get("code").equals("10000")){ - byId.setPayState(3); - byId.setBackTime(new Date()); - vipOrderService.updateById(byId); - // 用户的vip剩余时间减少 - Calendar calendar = Calendar.getInstance(); - calendar.setTime(new Date()); - calendar.add(Calendar.MONTH, -byId.getCount()); - Date dateAfterOneMonth = calendar.getTime(); - Integer userId = byId.getUserId(); - TUser byId1 = userService.getById(userId); - // 判断用户是不是第一次充值 - List<TVipOrder> list = vipOrderService.list(new QueryWrapper<TVipOrder>() - .eq("userId", userId) - .eq("payState", 2) - .orderByDesc("createTime")); - int size = list.size(); - if (size == 0){ - // 证明这是用户第一次充值会员 将首次充值会员时间和会员到期时间清空 - byId1.setVipEndTime(null); - byId1.setVipPayTime(null); - userService.updateById(byId1); - }else{ - // 最近的一次充值会员时间 - TVipOrder tVipOrder = list.get(0); - // 将会员到期时间回退到上一次 - byId1.setVipEndTime(tVipOrder.getTime()); - userService.updateById(byId1); - } - return R.ok(); - }else{ - return R.fail(stringStringMap1.get("msg")); + Map<String, String> stringStringMap1 = payMoneyUtil.aliRefund(transactionId, byId.getMoney().toString()); + if (null == stringStringMap1) { + return R.fail("取消退款异常"); } + String code = stringStringMap1.get("code"); + if (!"10000".equals(code)) { + return R.fail(stringStringMap1.get("return_msg")); + } + byId.setPayState(3); + byId.setBackTime(new Date()); + vipOrderService.updateById(byId); + // 用户的vip剩余时间减少 + Calendar calendar = Calendar.getInstance(); + calendar.setTime(new Date()); + calendar.add(Calendar.MONTH, -byId.getCount()); + Date dateAfterOneMonth = calendar.getTime(); + Integer userId = byId.getUserId(); + TUser byId1 = userService.getById(userId); + // 判断用户是不是第一次充值 + List<TVipOrder> list = vipOrderService.list(new QueryWrapper<TVipOrder>() + .eq("userId", userId) + .eq("payState", 2) + .orderByDesc("createTime")); + int size = list.size(); + if (size == 0) { + // 证明这是用户第一次充值会员 将首次充值会员时间和会员到期时间清空 + byId1.setVipEndTime(null); + byId1.setVipPayTime(null); + userService.updateById(byId1); + } else { + // 最近的一次充值会员时间 + TVipOrder tVipOrder = list.get(0); + // 将会员到期时间回退到上一次 + byId1.setVipEndTime(tVipOrder.getTime()); + userService.updateById(byId1); + } + return R.ok(); } return R.ok(); } + @PostMapping("/userList") @ApiOperation(value = "用户列表", tags = {"管理后台-用户管理"}) public R<PageInfo<AppUserVO>> couponReceive(@RequestBody AppUserQuery query) { PageInfo<AppUserVO> res = new PageInfo<>(query.getPageNumber(), query.getPageSize()); - List<AppUserVO> list = userService.listAll(query); + List<AppUserVO> list = userService.listAll(query); for (AppUserVO appUserVO : list) { - if (appUserVO.getVipEndTime() == null){ + if (appUserVO.getVipEndTime() == null) { appUserVO.setIsVip(0); - }else{ - if (appUserVO.getVipEndTime().getTime() > System.currentTimeMillis()){ + } else { + if (appUserVO.getVipEndTime().getTime() > System.currentTimeMillis()) { appUserVO.setIsVip(1); - }else{ + } else { appUserVO.setIsVip(0); } } @@ -551,16 +728,16 @@ Date insertTime = byId.getInsertTime(); Date vipPayTime = byId.getVipPayTime(); Date vipEndTime = byId.getVipEndTime(); - if (vipEndTime == null){ + if (vipEndTime == null) { res.setIsVip(0); - }else{ - if (vipEndTime.getTime() > System.currentTimeMillis()){ + } else { + if (vipEndTime.getTime() > System.currentTimeMillis()) { res.setIsVip(1); - }else{ + } else { res.setIsVip(0); } } - if (vipPayTime!=null){ + if (vipPayTime != null) { res.setVipPayTime(format.format(vipPayTime)); } res.setState(byId.getState()); @@ -582,15 +759,16 @@ res.setGameRecords(list); return R.ok(res); } + @PostMapping("/freeze/{id}") @ApiOperation(value = "冻结/解冻", tags = {"管理后台-用户管理"}) - public R freeze(@PathVariable("id") Integer id) { + public R freeze(@PathVariable("id") Integer id) { TUser byId = userService.getById(id); if (byId.getState() == 1) { byId.setState(2); userService.updateById(byId); return R.ok("冻结成功"); - }else { + } else { byId.setState(1); userService.updateById(byId); return R.ok("解冻成功"); @@ -602,7 +780,7 @@ @ApiOperation(value = "列表查询", tags = {"管理后台-会员管理"}) public R<PageInfo<VipOrderVO>> vipOrderList(@RequestBody AppUserQuery query) { PageInfo<VipOrderVO> res = new PageInfo<>(query.getPageNumber(), query.getPageSize()); - List<VipOrderVO> list = vipOrderService.listAll(query); + List<VipOrderVO> list = vipOrderService.listAll(query); res.setRecords(list); res.setTotal(list.size()); return R.ok(res); -- Gitblit v1.7.1