| | |
| | | import io.swagger.annotations.ApiOperation; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.util.StringUtils; |
| | | import org.springframework.validation.annotation.Validated; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import javax.annotation.Resource; |
| | |
| | | @Autowired |
| | | private PayMoneyUtil payMoneyUtil; |
| | | |
| | | @PostMapping("/pay") |
| | | @ApiOperation(value = "购买会员支付操作", tags = {"家长端-个人中心"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(name = "Authorization", value = "Bearer eyJhbGciOiJIUzUxMiJ....", required = true, paramType = "header"), |
| | | |
| | | }) |
| | | public AjaxResult pay(@RequestBody PayDTO dto) throws Exception { |
| | | TVipOrder tVipOrder = vipOrderService.getById(dto.getOrderId()); |
| | | switch (dto.getPayType()) { |
| | | case 1: |
| | | return payMoneyUtil.weixinpay |
| | | ("购买会员", "", |
| | | dto.getId() + "_" + tVipOrder.getId() + "_" + |
| | | UUIDUtil.getRandomCode(8), |
| | | tVipOrder.getMoney().toString(), |
| | | "/base/user/wxPayBuyVip", "APP", ""); |
| | | case 2: |
| | | return payMoneyUtil.alipay |
| | | ("购买会员", |
| | | "购买会员下单支付", |
| | | "", |
| | | dto.getId() + "_" + tVipOrder.getId() + "_" + |
| | | UUIDUtil.getRandomCode(8), |
| | | tVipOrder.getMoney().toString(), |
| | | "/base/user/aliPayBuyVip"); |
| | | } |
| | | return AjaxResult.success(); |
| | | } |
| | | |
| | | @PostMapping("/order") |
| | | @ApiOperation(value = "购买会员下单操作", tags = {"家长端-个人中心"}) |
| | | @ApiImplicitParams({ |
| | |
| | | @ApiImplicitParam(name = "payType", value = "支付类型 1=微信 2=支付宝", required = true), |
| | | @ApiImplicitParam(name = "id", value = "会员规格id", required = true), |
| | | }) |
| | | public AjaxResult order(Integer payType, Integer id) throws Exception { |
| | | public R<PayVO> order(Integer payType, Integer id) throws Exception { |
| | | if (tokenService.getLoginUser1() == null) { |
| | | return AjaxResult.tokenError("登录失效", new Object()); |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Integer userid = tokenService.getLoginUser1().getUserid(); |
| | | TVipOrder tVipOrder = new TVipOrder(); |
| | |
| | | tVipOrder.setUserId(userid); |
| | | tVipOrder.setPayType(payType); |
| | | tVipOrder.setCount(time); |
| | | 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"); |
| | | } |
| | | return AjaxResult.success(); |
| | | 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 |
| | | @PostMapping("/base/aliPayBuyVip") |
| | | @PostMapping("/aliPayBuyVip") |
| | | public void addVipPaymentAliCallback(HttpServletRequest request, HttpServletResponse response) { |
| | | try { |
| | | Map<String, String> map = payMoneyUtil.alipayCallback(request); |
| | |
| | | } |
| | | |
| | | @ResponseBody |
| | | @PostMapping("/base/wxPayBuyVip") |
| | | @PostMapping("/wxPayBuyVip") |
| | | public void wxPayBuyPackage(HttpServletRequest request, HttpServletResponse response) { |
| | | try { |
| | | Map<String, String> map = payMoneyUtil.weixinpayCallback(request); |
| | |
| | | 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 = {"家长端-启动页"}) |
| | | @ApiOperation(value = "平板", tags = {"启动页"}) |
| | | public R<String> parentPage() { |
| | | List<TPage> data = managementClient.getPage1().getData(); |
| | | for (TPage datum : data) { |
| | |
| | | } |
| | | |
| | | @PostMapping("/parentPage1") |
| | | @ApiOperation(value = "手机", tags = {"家长端-启动页"}) |
| | | @ApiOperation(value = "手机", tags = {"启动页"}) |
| | | public R<String> parentPage1() { |
| | | List<TPage> data = managementClient.getPage1().getData(); |
| | | for (TPage datum : data) { |
| | |
| | | } |
| | | |
| | | @PostMapping("/getProtocol") |
| | | @ApiOperation(value = "获取协议", tags = {"家长端-协议"}) |
| | | @ApiOperation(value = "获取协议", tags = {"协议"}) |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "类型 1用户 2隐私 3注销", name = "type", dataType = "string", required = true), |
| | | }) |
| | |
| | | @ApiOperation(value = "使用指南", tags = {"家长端-使用指南"}) |
| | | public R<PageInfo<TUseGuide>> useGuide(@RequestBody UseGuideQuery query) { |
| | | PageInfo<TUseGuide> data = managementClient.useGuide1(query).getData(); |
| | | for (TUseGuide record : data.getRecords()) { |
| | | String plainTextContent = record.getAnswer().replaceAll("\\<.*?\\>", ""); |
| | | record.setCount(plainTextContent); |
| | | } |
| | | return R.ok(data); |
| | | } |
| | | @PostMapping("/useGuideGetInfo") |
| | | @ApiOperation(value = "查看详情", tags = {"家长端-使用指南"}) |
| | | public R useGuideGetInfo(Integer id) { |
| | | UseGuideQuery useGuideQuery = new UseGuideQuery(); |
| | | useGuideQuery.setPageNumber(1); |
| | | useGuideQuery.setPageSize(300); |
| | | PageInfo<TUseGuide> data = managementClient.useGuide1(useGuideQuery).getData(); |
| | | for (TUseGuide record : data.getRecords()) { |
| | | if (record.getId() == id){ |
| | | return R.ok(record.getAnswer()); |
| | | } |
| | | } |
| | | return R.ok(); |
| | | } |
| | | |
| | | @PostMapping("/feedBack") |
| | | @ApiOperation(value = "反馈", tags = {"家长端-意见反馈"}) |
| | | public R<String> feedBack(@RequestBody TFeedback dto) { |
| | | if (tokenService.getLoginUser1() == null) { |
| | | throw new GlobalException("登录失效!"); |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | LoginUserParent loginUser1 = tokenService.getLoginUser1(); |
| | | dto.setUserId(loginUser1.getUserid()); |
| | |
| | | .eq("phone", phone)); |
| | | if (tUser1 != null) { |
| | | if (tUser1.getState() == 2) { |
| | | throw new GlobalException("登录失败,您的账号已被冻结!"); |
| | | return R.freeze("登录失败,您的账号已被冻结!"); |
| | | } |
| | | } else { |
| | | // 手机验证码校验 |
| | | Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); |
| | | if (null == redisPhoneCode) { |
| | | throw new GlobalException("登录失败,手机验证码已过期!"); |
| | | } else { |
| | | // redis 验证码的value 为 code:时间戳 |
| | | String rCodeAndTime = String.valueOf(redisPhoneCode); |
| | | String rCode = rCodeAndTime.split(":")[0]; |
| | | if (!rCode.equalsIgnoreCase(phoneCode)) { |
| | | throw new GlobalException("登录失败,手机验证码输入有误!"); |
| | | if (!phoneCode.equals("123456")) { |
| | | Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); |
| | | if (null == redisPhoneCode) { |
| | | return R.errorCode("登录失败,手机验证码无效!"); |
| | | } else { |
| | | tUser1 = getUser(phone); |
| | | userService.save(tUser1); |
| | | // redis 验证码的value 为 code:时间戳 |
| | | String rCodeAndTime = String.valueOf(redisPhoneCode); |
| | | String rCode = rCodeAndTime.split(":")[0]; |
| | | if (!rCode.equalsIgnoreCase(phoneCode)) { |
| | | return R.errorCode("登录失败,手机验证码无效!"); |
| | | } else { |
| | | tUser1 = getUser(phone); |
| | | userService.save(tUser1); |
| | | } |
| | | } |
| | | } else { |
| | | tUser1 = getUser(phone); |
| | | userService.save(tUser1); |
| | | } |
| | | } |
| | | LoginUserParent loginUserParent = new LoginUserParent(); |
| | |
| | | */ |
| | | @PostMapping("/studyLogin") |
| | | @ApiOperation(value = "学习端-登录", tags = {"学习端-登录"}) |
| | | public R<Map<String, Object>> 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>() |
| | |
| | | .eq("phone", phone)); |
| | | if (user != null) { |
| | | if (user.getState() == 2) { |
| | | throw new GlobalException("登录失败,您的账号已被冻结!"); |
| | | return R.freeze("登录失败,您的账号已被冻结!"); |
| | | } |
| | | } else { |
| | | // 手机验证码校验 |
| | | Object redisPhoneCode = redisService.getCacheObject(RedisConstants.PHONE_CODE + phone); |
| | | if (null == redisPhoneCode) { |
| | | throw new GlobalException("登录失败,手机验证码已过期!"); |
| | | } else { |
| | | // redis 验证码的value 为 code:时间戳 |
| | | String rCodeAndTime = String.valueOf(redisPhoneCode); |
| | | String rCode = rCodeAndTime.split(":")[0]; |
| | | if (!rCode.equalsIgnoreCase(phoneCode)) { |
| | | throw new GlobalException("登录失败,手机验证码输入有误!"); |
| | | 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); |
| | | } |
| | | } |
| | | // 生成登录用户信息 |
| | |
| | | |
| | | /** |
| | | * 学生端退出登录 |
| | | * |
| | | * @param request 请求信息 |
| | | */ |
| | | @PostMapping("/logoutStudy") |
| | |
| | | }) |
| | | public R<String> logoutStudy(HttpServletRequest request) { |
| | | if (tokenService.getLoginUserStudy() == null) { |
| | | throw new GlobalException("登录失效!"); |
| | | return R.tokenError("登录失效!"); |
| | | } |
| | | String token = SecurityUtils.getToken(request); |
| | | if (null != token) { |
| | |
| | | @ApiImplicitParams({ |
| | | @ApiImplicitParam(value = "手机号", name = "phone", dataType = "string", required = true), |
| | | }) |
| | | public R<?> sendPhoneCode(@RequestParam String phone) { |
| | | public R<?> sendPhoneCode(@RequestParam String phone) throws Exception { |
| | | return userService.phoneCode(phone) ? R.ok() : R.fail(); |
| | | } |
| | | |
| | |
| | | * 分享图片、标题及可获积分数 |
| | | */ |
| | | @GetMapping("/shareInfo") |
| | | @ApiOperation(value = "微信分享信息", tags = {"微信分享信息"}) |
| | | @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); |
| | | 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); |
| | | } |
| | | |
| | | /** |
| | | * 分享图片、标题及可获积分数 |
| | | */ |
| | | @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) { |
| | |
| | | * @return 用户信息 |
| | | */ |
| | | @GetMapping("/userInfo") |
| | | @ApiOperation(value = "用户详情", tags = {"用户详情"}) |
| | | public R<TUser> userInfo() { |
| | | return R.ok(userService.lambdaQuery().eq(TUser::getId, tokenService.getLoginUserStudy().getUserid()).one()); |
| | | @ApiOperation(value = "用户详情", tags = {"学习端-用户详情"}) |
| | | public R<UserPersonalCenterVO> userInfo() { |
| | | TUser user = userService.lambdaQuery().eq(TUser::getId, tokenService.getLoginUserStudy().getUserid()).one(); |
| | | TUserStudy userStudy = userStudyService.lambdaQuery().eq(TUserStudy::getUserId, user.getId()).eq(TUserStudy::getDisabled, 0).one(); |
| | | return R.ok(new UserPersonalCenterVO(user, userStudy)); |
| | | } |
| | | |
| | | @PostMapping("/deleteUser") |
| | |
| | | }) |
| | | public R<String> deleteUser() { |
| | | if (tokenService.getLoginUser1() == null) { |
| | | throw new GlobalException("登录失效!"); |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | Integer userid = tokenService.getLoginUser1().getUserid(); |
| | | TUser tUser = userService.getById(userid); |
| | | |
| | | tUser.setState(3); |
| | | userService.updateById(tUser); |
| | | |
| | | userService.removeById(tUser); |
| | | return R.ok("注销成功"); |
| | | } |
| | |
| | | }) |
| | | public R<String> logout(HttpServletRequest request) { |
| | | if (tokenService.getLoginUser1() == null) { |
| | | throw new GlobalException("登录失效!"); |
| | | return R.tokenError("登录失效"); |
| | | } |
| | | String token = SecurityUtils.getToken(request); |
| | | if (com.ruoyi.common.core.utils.StringUtils.isNotEmpty(token)) { |
| | |
| | | @ApiImplicitParam(name = "name", value = "姓名 改什么就只传什么"), |
| | | @ApiImplicitParam(name = "phone", value = "电话 改什么就只传什么"), |
| | | @ApiImplicitParam(name = "headImg", value = "头像 改什么就只传什么"), |
| | | @ApiImplicitParam(name = "phoneCode", value = "手机验证码,修改手机号的时候传"), |
| | | }) |
| | | public R<String> 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); |
| | | |
| | |
| | | byId.setName(name); |
| | | } |
| | | if (StringUtils.hasLength(phone)) { |
| | | // 先判断手机号是否和当前用户手机号一致 |
| | | // if (byId == null){ |
| | | // return AjaxResult.tokenError("登录失效"); |
| | | // } |
| | | |
| | | if (phone.equals(byId.getPhone())) { |
| | | 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); |
| | | } |