From ab7045d70310f4c5b150090b7c9fa18dea7ea1e7 Mon Sep 17 00:00:00 2001
From: 44323 <443237572@qq.com>
Date: 星期三, 22 五月 2024 15:50:57 +0800
Subject: [PATCH] 代码提交
---
ruoyi-service/ruoyi-study/src/main/java/com/ruoyi/study/controller/TUserController.java | 280 +++++++++++++++++++++++++++++++++++++++++---------------
1 files changed, 205 insertions(+), 75 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 5f1a93d..7b3c642 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
@@ -12,17 +12,16 @@
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;
@@ -65,6 +64,8 @@
private TokenService tokenService;
@Resource
private RedisService redisService;
+ @Resource
+ private ITUserShareService userShareService;
@PostMapping("/vipInfo")
@ApiOperation(value = "会员中心-获取会员说明、当前登录用户是否为会员、会员购买规格", tags = {"家长端-个人中心"})
@@ -93,6 +94,7 @@
}
vipInfoVO.setTime(datum.getTime());
vipInfoVO.setAmount(datum.getAmount());
+ vipInfoVOS.add(vipInfoVO);
}
return AjaxResult.ok(vipInfoVOS);
}
@@ -181,8 +183,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()) {
@@ -190,6 +196,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 {
@@ -197,6 +206,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);
}
@@ -255,6 +267,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 {
@@ -264,6 +279,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 {
@@ -271,6 +289,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);
}
@@ -295,10 +316,44 @@
List<TPage> data = managementClient.getPage1().getData();
for (TPage datum : data) {
if (datum.getType() == 4) {
- return AjaxResult.success(datum);
+ 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")
@@ -335,9 +390,21 @@
return AjaxResult.error("登录失败,您的账号已被冻结!");
}
} else {
- // todo 验证码校验
- tUser1 = getUser(phone);
- userService.save(tUser1);
+ // 手机验证码校验
+ 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());
@@ -415,8 +482,48 @@
*/
@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")
@@ -492,8 +599,53 @@
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}")
@@ -508,76 +660,54 @@
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"));
+ 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();
}
--
Gitblit v1.7.1