From 41b9950b03bafeb5fa90770794faf9baeacade6b Mon Sep 17 00:00:00 2001 From: 无关风月 <443237572@qq.com> Date: 星期一, 11 十一月 2024 16:15:43 +0800 Subject: [PATCH] 代码提交 --- xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java | 2 xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java | 6 xinquan-auth/src/main/java/com/xinquan/auth/form/AppLoginBody.java | 2 xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/domain/AppUser.java | 3 xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java | 143 ++++++---- xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java | 2 xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java | 7 xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/domain/dto/AppUserDTO.java | 2 xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java | 554 ++++++++++++++++++++++++++++------------- xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppCaptchaBody.java | 2 xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java | 2 xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/inner/InnerAppUserController.java | 4 xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java | 9 xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java | 40 +- xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppWXLoginBody.java | 2 15 files changed, 510 insertions(+), 270 deletions(-) diff --git a/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/domain/AppUser.java b/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/domain/AppUser.java index 57117ff..a59d837 100644 --- a/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/domain/AppUser.java +++ b/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/domain/AppUser.java @@ -109,6 +109,9 @@ @ApiModelProperty(value = "微信名称") @TableField("wxName") private String wxName; + @ApiModelProperty(value = "设备码") + @TableField("device") + private String device; @ApiModelProperty(value = "会员到期时间") @TableField(value = "vip_expire_time",updateStrategy = FieldStrategy.IGNORED) diff --git a/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppCaptchaBody.java b/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppCaptchaBody.java index 43609fe..bdd7109 100644 --- a/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppCaptchaBody.java +++ b/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppCaptchaBody.java @@ -27,4 +27,6 @@ private String email; @ApiModelProperty(value = "姓名", required = false) private String name; + @ApiModelProperty(value = "设备码", required = false) + private String device; } diff --git a/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppWXLoginBody.java b/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppWXLoginBody.java index f58479d..5ae2720 100644 --- a/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppWXLoginBody.java +++ b/xinquan-api/xinquan-api-system/src/main/java/com/xinquan/system/api/model/AppWXLoginBody.java @@ -41,5 +41,7 @@ */ @ApiModelProperty(value = "用户性别 1男2女3保密") private Integer sex; + @ApiModelProperty(value = "设备码") + private String device; } diff --git a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/domain/dto/AppUserDTO.java b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/domain/dto/AppUserDTO.java index db5d2cf..6966d53 100644 --- a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/domain/dto/AppUserDTO.java +++ b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/domain/dto/AppUserDTO.java @@ -82,6 +82,8 @@ @ApiModelProperty(value = "冻结原因") private String freezingReason; + @ApiModelProperty(value = "设备码") + private String device; @ApiModelProperty(value = "冻结操作人") private String freezingOperator; diff --git a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java index dd470ad..c45d6cd 100644 --- a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java +++ b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/factory/RemoteAppUserFallbackFactory.java @@ -181,7 +181,7 @@ } @Override - public R<AppLoginUser> appleLogin(String appleId, String source) { + public R<AppLoginUser> appleLogin(String appleId, String device, String source) { return R.fail("APP用户苹果登录失败。"); } diff --git a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java index 11ba9de..ff98188 100644 --- a/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java +++ b/xinquan-api/xinquan-api-user/src/main/java/com/xinquan/user/api/feign/RemoteAppUserService.java @@ -147,7 +147,7 @@ * @return */ @PostMapping("/inner/app-user/appleLogin") - R<AppLoginUser> appleLogin(@RequestParam("appleId") String appleId, + R<AppLoginUser> appleLogin(@RequestParam("appleId") String appleId,@RequestParam("appleId") String device, @RequestHeader(SecurityConstants.FROM_SOURCE) String source); /** diff --git a/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java b/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java index 054a409..a33e4b7 100644 --- a/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java +++ b/xinquan-auth/src/main/java/com/xinquan/auth/controller/TokenController.java @@ -191,11 +191,14 @@ @PostMapping("/app/appleLogin") @ApiImplicitParams({ @ApiImplicitParam(name = "appleId", value = "苹果ID", required = true, dataType = "String", paramType = "query"), + @ApiImplicitParam(name = "device", value = "设备码", required = true, dataType = "String", paramType = "query"), } ) public R<AppLoginUser> appleLogin( - @RequestParam(value = "appleId", required = true) String appleId) { - AppLoginUser appLoginUser = sysLoginService.appleLogin(appleId); + @RequestParam(value = "appleId", required = true) String appleId, + @RequestParam(value = "device", required = true) String device + ) { + AppLoginUser appLoginUser = sysLoginService.appleLogin(appleId,device); return R.ok(tokenService.createToken4AppLoginUser(appLoginUser)); } diff --git a/xinquan-auth/src/main/java/com/xinquan/auth/form/AppLoginBody.java b/xinquan-auth/src/main/java/com/xinquan/auth/form/AppLoginBody.java index f0fd889..54725e9 100644 --- a/xinquan-auth/src/main/java/com/xinquan/auth/form/AppLoginBody.java +++ b/xinquan-auth/src/main/java/com/xinquan/auth/form/AppLoginBody.java @@ -30,5 +30,7 @@ @ApiModelProperty(value = "用户密码", required = true) @NotBlank(message = "密码不能为空") private String password; + @ApiModelProperty(value = "设备码", required = false) + private String device; } diff --git a/xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java b/xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java index 27d3e2a..6975618 100644 --- a/xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java +++ b/xinquan-auth/src/main/java/com/xinquan/auth/service/SysLoginService.java @@ -322,7 +322,7 @@ } // 查询用户信息 AppUser appUser = remoteAppUserService.getUserByCondition( - AppUserDTO.builder().cellPhone(body.getCellPhone()).build(), + AppUserDTO.builder().cellPhone(body.getCellPhone()).device(body.getDevice()).build(), SecurityConstants.INNER).getData(); if (StringUtils.isNull(appUser)) { recordLogService.recordLogininfor(body.getCellPhone(), Constants.LOGIN_FAIL, @@ -403,8 +403,8 @@ * @param appleId 苹果id * @return */ - public AppLoginUser appleLogin(String appleId) { - R<AppLoginUser> userResult = remoteAppUserService.appleLogin(appleId, + public AppLoginUser appleLogin(String appleId,String device) { + R<AppLoginUser> userResult = remoteAppUserService.appleLogin(appleId,device, SecurityConstants.INNER); if (R.FAIL == userResult.getCode()) { throw new ServiceException(userResult.getMsg()); diff --git a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java index b3f2b0d..17f2a46 100644 --- a/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java +++ b/xinquan-modules/xinquan-course/src/main/java/com/xinquan/course/controller/client/ClientCourseController.java @@ -45,6 +45,7 @@ import io.swagger.annotations.ApiOperation; import java.io.IOException; +import java.math.BigDecimal; import java.net.URLEncoder; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; @@ -737,8 +738,11 @@ List<AppUser> data3 = remoteAppUserService.getUserByCourseId(id).getData(); cours.setCount(data3.size()); } - clientCourseVO.setList2(courses); + clientCourseVO.setList2(courses); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } return R.ok(clientCourseVO); } /** @@ -802,6 +806,9 @@ cours.setCount(data1.size()); } clientCourseVO.setList2(courses); + if (byId.getChargeType() == 1){ + byId.setGeneralPrice(new BigDecimal("0")); + } return R.ok(clientCourseVO); } @@ -1043,20 +1050,24 @@ for (Long l : data1) { CourseChapter byId1 = courseChapterService.getById(l); Course byId = courseService.getById(byId1.getCourseId()); - CourseVO courseVO = new CourseVO(); - BeanUtils.copyProperties(byId, courseVO); - List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId1.getCourseId()).list(); - int a = 0; - int b = 0; - for (CourseChapter courseChapter : list1) { - a+= courseChapter.getVirtualLearnedNum(); - Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); - b+=data2; + if (byId!=null){ + CourseVO courseVO = new CourseVO(); + BeanUtils.copyProperties(byId, courseVO); + List<CourseChapter> list1 = courseChapterService.lambdaQuery().eq(CourseChapter::getCourseId, byId1.getCourseId()).list(); + int a = 0; + int b = 0; + for (CourseChapter courseChapter : list1) { + a+= courseChapter.getVirtualLearnedNum(); + Long data2 = remoteAppUserService.getCourseChapterHistoryCount(courseChapter.getId()).getData(); + b+=data2; + } + courseVO.setCount(a+b); + courseVO.setRealLearnedNum(a+b); + courseVO.setVirtualLearnedNum(0); + courseVO.setId(byId.getId()); + courseVO.setCoverUrl(byId.getCoverUrl()); + courseVOS.add(courseVO); } - courseVO.setCount(a+b); - courseVO.setRealLearnedNum(a+b); - courseVO.setVirtualLearnedNum(0); - courseVOS.add(courseVO); } studyPageVO.setCourseList(courseVOS); return R.ok(studyPageVO); @@ -1082,7 +1093,6 @@ studyPageVO.setFreeCourseList(courses); } studyPageVO.setCourseList(courseVOS); - return R.ok(studyPageVO); } diff --git a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java index 1a32c50..a9c22a3 100644 --- a/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java +++ b/xinquan-modules/xinquan-order/src/main/java/com/xinquan/order/controller/client/ClientOrderController.java @@ -179,11 +179,13 @@ if (order.getAppUserId().equals(userId) && order.getGiveUserId() == null){ OrderCourseVO orderCourseVO = new OrderCourseVO(); BeanUtils.copyProperties(order, orderCourseVO); + orderCourseVO.setBusinessId(order.getBusinessId()); res.add(orderCourseVO); } if (order.getGiveUserId()!=null&&order.getGiveUserId().equals(userId)){ OrderCourseVO orderCourseVO = new OrderCourseVO(); BeanUtils.copyProperties(order, orderCourseVO); + orderCourseVO.setBusinessId(order.getBusinessId()); res.add(orderCourseVO); } } @@ -203,6 +205,7 @@ break; case 2: OrderCourseVO data = remoteCourseService.getCourseByIdAny(orderCourseVO).getData(); + Course data4 = remoteCourseService.getCourseById(data.getBusinessId()).getData(); if (data==null)continue; BeanUtils.copyProperties(data, orderCourseVO); List<CourseChapter> data2 = remoteCourseService.getChapterByCourseId(orderCourseVO.getBusinessId() + "").getData(); @@ -212,6 +215,11 @@ } Integer data3 = remoteCourseService.getCountByCourseId(orderCourseVO.getBusinessId() + "").getData(); orderCourseVO.setCount(data3+temp); + if (data4!=null){ + orderCourseVO.setCourseTitle(data4.getCourseTitle()); + orderCourseVO.setCoverUrl(data4.getCoverUrl()); + orderCourseVO.setBusinessId(data4.getId()); + } break; } } @@ -726,6 +734,9 @@ .eq(OrderPaymentRecord::getPayOrderNo, string).ne(OrderPaymentRecord::getPaymentStatus, 2).one(); if (two!=null){ Order one = orderService.getById(two.getOrderId()); + if (one.getPaymentStatus()==2){ + return; + } one.setPaymentStatus(2); one.setPaymentTime(LocalDateTime.now()); OrderPaymentRecord one2 = orderPaymentRecordService.lambdaQuery().eq(OrderPaymentRecord::getOrderId, one.getId()) @@ -737,33 +748,45 @@ // 实际支付金额 BigDecimal realPayAmount = one.getRealPayAmount(); // 判断订单所属用户是否有上级 是否需要做分佣处理 - AppUser data3 = remoteAppUserService.getAppUserById(one.getAppUserId() + "").getData(); - if (data3.getInviteUserId()!=null){ - // 分佣给上级 先远程查询分佣比例 - CommissionRule data1 = sysUserClient.getCommission().getData(); - if (data1!=null){ - if (data1.getProportion()!=null){ - BigDecimal bigDecimal = realPayAmount.multiply(data1.getProportion()) - .setScale(2, BigDecimal.ROUND_HALF_DOWN); - // 上级获取的分佣金额 - AppUser appUserById = remoteAppUserService.getAppUserById(data3.getInviteUserId() + "").getData(); - // 更新用户余额 - remoteAppUserService.updateAppUser( - AppUserDTO.builder().balance( - appUserById.getBalance().add(bigDecimal)) - .build(), SecurityConstants.INNER); - // 新增分佣流水明细 - AppUserWalletRecord appUserWalletRecord = new AppUserWalletRecord(); - appUserWalletRecord.setAppUserId(data3.getInviteUserId()); - appUserWalletRecord.setChangeType(1); - appUserWalletRecord.setReason("分佣收益"); - appUserWalletRecord.setAmount(bigDecimal); - appUserWalletRecord.setChildAppUserId(one.getAppUserId()); - appUserWalletRecord.setOrderId(one.getId()); - remoteAppUserService.addBalanceRecord(appUserWalletRecord); - one.setCommissionAmount(bigDecimal); - one.setCommissionId(data3.getInviteUserId()); - orderService.updateById(one); + AppUser data9 = remoteAppUserService.getAppUserById(one.getAppUserId() + "").getData(); + if (one.getGiveUserId()!=null){ + remoteAppUserService.addNotice(one.getGiveUserId() + "", one.getBusinessId() + "", + one.getAppUserId() + "", one.getTotalAmount() + ""); + } + + if (data9.getInviteUserId()!=null) { + + if (one.getOrderFrom() == 1 || one.getOrderFrom() == 2 || one.getOrderFrom() == 3) { + // 查询实际支付价格 不包含余额抵扣价格 + OrderPaymentRecord one1 = orderPaymentRecordService.lambdaQuery().eq(OrderPaymentRecord::getOrderId, one.getId()) + .ne(OrderPaymentRecord::getPaymentType, 4).one(); + // 分佣给上级 先远程查询分佣比例 + CommissionRule data1 = sysUserClient.getCommission().getData(); + if (data1 != null) { + if (data1.getProportion() != null) { + + BigDecimal bigDecimal = one1.getPayAmount().multiply(data1.getProportion()).divide(new BigDecimal("100")) + .setScale(2, BigDecimal.ROUND_HALF_DOWN); + // 上级获取的分佣金额 + AppUser appUserById = remoteAppUserService.getAppUserById(data9.getInviteUserId() + "").getData(); + // 更新用户余额 +// remoteAppUserService.updateAppUser( +// AppUserDTO.builder().balance( +// appUserById.getBalance().add(bigDecimal)) +// .build(), SecurityConstants.INNER); + // 新增分佣流水明细 + AppUserWalletRecord appUserWalletRecord = new AppUserWalletRecord(); + appUserWalletRecord.setAppUserId(data9.getInviteUserId()); + appUserWalletRecord.setChangeType(1); + appUserWalletRecord.setReason("分佣收益"); + appUserWalletRecord.setAmount(bigDecimal); + appUserWalletRecord.setChildAppUserId(one.getAppUserId()); + appUserWalletRecord.setOrderId(one.getId()); + remoteAppUserService.addBalanceRecord(appUserWalletRecord); + one.setCommissionAmount(bigDecimal); + one.setCommissionId(data9.getInviteUserId()); + orderService.updateById(one); + } } } } @@ -772,7 +795,7 @@ OrderPaymentRecord one1 = orderPaymentRecordService.lambdaQuery().eq(OrderPaymentRecord::getOrderId, one.getId()) .eq(OrderPaymentRecord::getPaymentType, 4).one(); AppUserWalletRecord appUserWalletRecord = new AppUserWalletRecord(); - appUserWalletRecord.setAppUserId(data3.getInviteUserId()); + appUserWalletRecord.setAppUserId(data9.getInviteUserId()); String reason=null; switch (one.getOrderFrom()){ case 1: @@ -797,35 +820,6 @@ // 会员 reason = "购买【"+one.getBuyContent()+"】"; appUserWalletRecord.setChangeType(2); - if (data3.getInviteUserId()!=null){ - // 分佣给上级 先远程查询分佣比例 - CommissionRule data4 = sysUserClient.getCommission().getData(); - if (data4!=null){ - if (data4.getProportion()!=null){ - BigDecimal bigDecimal = realPayAmount.multiply(data4.getProportion()) - .divide(new BigDecimal(100),2, BigDecimal.ROUND_DOWN); - // 上级获取的分佣金额 - AppUser appUserById = remoteAppUserService.getAppUserById(data3.getInviteUserId() + "").getData(); - // 更新用户余额 - remoteAppUserService.updateAppUser( - AppUserDTO.builder().balance( - appUserById.getBalance().add(bigDecimal)) - .build(), SecurityConstants.INNER); - // 新增分佣流水明细 - AppUserWalletRecord appUserWalletRecord1 = new AppUserWalletRecord(); - appUserWalletRecord1.setAppUserId(data3.getInviteUserId()); - appUserWalletRecord1.setChangeType(1); - appUserWalletRecord1.setReason("分佣收益"); - appUserWalletRecord1.setAmount(bigDecimal); - appUserWalletRecord1.setChildAppUserId(one.getAppUserId()); - appUserWalletRecord1.setOrderId(one.getId()); - remoteAppUserService.addBalanceRecord(appUserWalletRecord1); - one.setCommissionAmount(bigDecimal); - one.setCommissionId(data3.getInviteUserId()); - orderService.updateById(one); - } - } - } break; case 4: // 充值 @@ -838,6 +832,41 @@ appUserWalletRecord.setChildAppUserId(one.getAppUserId()); appUserWalletRecord.setOrderId(one.getId()); remoteAppUserService.addBalanceRecord(appUserWalletRecord); + }else{ + switch (one.getOrderFrom()){ + case 2: + Course data2 = remoteCourseService.getCourseById(one.getBusinessId()).getData(); + // 增加用户与课程的关系表 + if (one.getGiveUserId()!=null){ + remoteAppUserService.addAppUserCourse(one.getBusinessId(),one.getGiveUserId(),one.getId(),1); + }else{ + // 自己购买 + remoteAppUserService.addAppUserCourse(one.getBusinessId(),one.getAppUserId(),one.getId(),2); + } + break; + case 3: + // 会员 + if (one.getBuyContent().contains("月")){ + + remoteAppUserService.addVipExpireTime(one.getAppUserId(),1); + }else if (one.getBuyContent().contains("季")){ + remoteAppUserService.addVipExpireTime(one.getAppUserId(),2); + }else if (one.getBuyContent().contains("年")){ + remoteAppUserService.addVipExpireTime(one.getAppUserId(),3); + } + break; + case 4: + remoteAppUserService.addBalance(one.getAppUserId(),one.getRealPayAmount()); + AppUserWalletRecord appUserWalletRecord = new AppUserWalletRecord(); + appUserWalletRecord.setAppUserId(one.getAppUserId()); + appUserWalletRecord.setChangeType(1); + appUserWalletRecord.setReason("充值"); + appUserWalletRecord.setAmount(one.getRealPayAmount()); + appUserWalletRecord.setChildAppUserId(one.getAppUserId()); + appUserWalletRecord.setOrderId(one.getId()); + remoteAppUserService.addBalanceRecord(appUserWalletRecord); + break; + } } PrintWriter out = response.getWriter(); out.write("succeeded"); diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java index e5f804e..a0c711e 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/client/ClientAppUserController.java @@ -1330,7 +1330,7 @@ consecutiveDays++; currentDate = currentDate.minusDays(1); } - appUserInfoVO.setToday(consecutiveDays); + appUserInfoVO.setContinuity(consecutiveDays); AppUserTree list1 = appUserTreeService.lambdaQuery().eq(AppUserTree::getAppUserId, userId) .eq(AppUserTree::getSowAgain,2) .one(); @@ -1408,7 +1408,6 @@ currentDate = currentDate.minusDays(1); } appUser.setContinuity(consecutiveDays); - appUser.setToday(consecutiveDays); // 根据等级查询疗愈名称和图标 UserLevelSetting data = remoteBannerService.getIconNameByLevel(level).getData(); appUser.setLevelName(data.getLevelName()); @@ -1610,11 +1609,7 @@ @PostMapping("/saveUserAnswers") @ApiOperation(value = "保存计划引导页用户的答案", tags = {"用户端-计划引导相关接口"}) public R<?> saveUserAnswers(@Validated @RequestBody UserAnswerDTO dto) { - LoginUser loginUser = tokenService.getLoginUser(); - if (loginUser==null){ - return R.tokenError("登录失效"); - } - Long userId = loginUser.getUserid(); + appUserService.saveUserAnswers(dto); return R.ok(); } diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/inner/InnerAppUserController.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/inner/InnerAppUserController.java index 55cd72b..20101be 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/inner/InnerAppUserController.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/controller/inner/InnerAppUserController.java @@ -75,8 +75,8 @@ */ @InnerAuth @PostMapping("/appleLogin") - R<AppLoginUser> appleLogin(@RequestParam("appleId") String appleId) { - return R.ok(appUserService.appleLogin(appleId)); + R<AppLoginUser> appleLogin(@RequestParam("appleId") String appleId,@RequestParam("device") String device) { + return R.ok(appUserService.appleLogin(appleId,device)); } /** diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java index dbff9fb..8504c4e 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/AppUserService.java @@ -56,7 +56,7 @@ * @param source * @return */ - AppLoginUser appleLogin(String appleId); + AppLoginUser appleLogin(String appleId,String device); /** * 验证码登录 diff --git a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java index dca7cd9..1f52b20 100644 --- a/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java +++ b/xinquan-modules/xinquan-user/src/main/java/com/xinquan/user/service/impl/AppUserServiceImpl.java @@ -2,8 +2,8 @@ import cn.hutool.core.util.IdUtil; import cn.hutool.crypto.SecureUtil; -import com.alibaba.nacos.common.utils.StringUtils; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xinquan.common.core.constant.Constants; @@ -44,6 +44,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.StringUtils; /** * <p> @@ -70,20 +71,37 @@ */ @Override public Optional<AppUser> getUserByCondition(AppUserDTO dto) { + String device = dto.getDevice(); + if (StringUtils.hasLength(dto.getDevice())) { + Optional<AppUser> one = this.lambdaQuery() + .eq(AppUser::getDevice, device) + .isNull(AppUser::getCellPhone).oneOpt(); + if (one.isPresent()) { + initUserTree(one.get().getId()); + this.updateById(one.get()); + return one; + } else { + + return this.lambdaQuery() + .eq(Objects.nonNull(dto.getId()), AppUser::getId, dto.getId()) + .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getAppleId()), AppUser::getAppleId, dto.getAppleId()) + .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getCellPhone()), AppUser::getCellPhone, + dto.getCellPhone()) + .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getWxOpenId()), AppUser::getWxOpenId, + dto.getWxOpenId()) + .ne(AppUser::getUserStatus, AppUserStatusEnum.LOGOUT.getCode()).oneOpt(); + } + } return this.lambdaQuery() .eq(Objects.nonNull(dto.getId()), AppUser::getId, dto.getId()) - .eq(StringUtils.isNotBlank(dto.getAppleId()), AppUser::getAppleId, dto.getAppleId()) - .eq(StringUtils.isNotBlank(dto.getCellPhone()), AppUser::getCellPhone, + .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getAppleId()), AppUser::getAppleId, dto.getAppleId()) + .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getCellPhone()), AppUser::getCellPhone, dto.getCellPhone()) - .eq(StringUtils.isNotBlank(dto.getWxOpenId()), AppUser::getWxOpenId, + .eq(com.alibaba.nacos.common.utils.StringUtils.isNotBlank(dto.getWxOpenId()), AppUser::getWxOpenId, dto.getWxOpenId()) .ne(AppUser::getUserStatus, AppUserStatusEnum.LOGOUT.getCode()).oneOpt(); } - public static void main(String[] args) { - String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); - System.err.println(randomCode); - } /** * app用户注册 * @param appUserDTO @@ -113,8 +131,8 @@ AppLoginUser appLoginUser = new AppLoginUser(); Optional<AppUser> optionalAppUser = this.getUserByCondition( AppUserDTO.builder().wxOpenId(body.getWxOpenId()).build()); - AppUser appUser; - SysUser sysUser; + AppUser appUser = new AppUser(); + SysUser sysUser = new SysUser(); // 存在账户,查询关联系统用户 if (optionalAppUser.isPresent()) { appUser = optionalAppUser.get(); @@ -129,44 +147,93 @@ appLoginUser.setCellPhone(appUser.getCellPhone()); } } else { - // 不存在账户,创建账户 - // 注册用户信息 - sysUser = new SysUser(); - sysUser.setNickName(body.getNickname()); - sysUser.setAvatar(body.getHeadImgUrl()); - sysUser.setUserName(body.getNickname()); - sysUser.setUserType("01"); // app用户 - R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, - SecurityConstants.INNER); - if (registerResult.getCode() == Constants.FAIL) { - throw new ServiceException(registerResult.getMsg()); + if (org.springframework.util.StringUtils.hasLength(body.getDevice())){ + AppUser one = this.getOne(new LambdaQueryWrapper<>(AppUser.class) + .eq(AppUser::getDevice, body.getDevice()) + .isNull(AppUser::getCellPhone)); + if (one!=null){ + initUserTree(appUser.getId()); + appUser = one; + }else{ + // 不存在账户,创建账户 + // 注册用户信息 + sysUser = new SysUser(); + sysUser.setNickName(body.getNickname()); + sysUser.setAvatar(body.getHeadImgUrl()); + sysUser.setUserName(body.getNickname()); + sysUser.setUserType("01"); // app用户 + R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, + SecurityConstants.INNER); + if (registerResult.getCode() == Constants.FAIL) { + throw new ServiceException(registerResult.getMsg()); + } + SysUser sysUserRes = registerResult.getData(); + appUser = new AppUser(); + appUser.setUserId(sysUserRes.getUserId()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String format = simpleDateFormat.format(new Date()); + // 生成四位随机数字 + String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); + appUser.setCode("YH"+format+randomCode); + appUser.setWxOpenId(body.getWxOpenId()); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); + appUser.setNickname(nickname); + appUser.setWxName(body.getNickname()); + appUser.setAvatar(body.getHeadImgUrl()); + appUser.setGender(3); + appUser.setBalance(BigDecimal.ZERO); + appUser.setSanskritFlag(DisabledEnum.NO.getCode()); + appUser.setBalance(BigDecimal.ZERO); + appUser.setIncome(BigDecimal.ZERO); + appUser.setTotalEnergyValue(0); + appUser.setRegisterTime(LocalDateTime.now()); + appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); + appLoginUser.setBindStatus(DisabledEnum.YES.getCode()); + this.save(appUser); + // 初始化用户树苗 + initUserTree(appUser.getId()); + } + }else{ + // 不存在账户,创建账户 + // 注册用户信息 + sysUser = new SysUser(); + sysUser.setNickName(body.getNickname()); + sysUser.setAvatar(body.getHeadImgUrl()); + sysUser.setUserName(body.getNickname()); + sysUser.setUserType("01"); // app用户 + R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, + SecurityConstants.INNER); + if (registerResult.getCode() == Constants.FAIL) { + throw new ServiceException(registerResult.getMsg()); + } + SysUser sysUserRes = registerResult.getData(); + appUser = new AppUser(); + appUser.setUserId(sysUserRes.getUserId()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String format = simpleDateFormat.format(new Date()); + // 生成四位随机数字 + String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); + appUser.setCode("YH"+format+randomCode); + appUser.setWxOpenId(body.getWxOpenId()); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); + appUser.setNickname(nickname); + appUser.setWxName(body.getNickname()); + appUser.setAvatar(body.getHeadImgUrl()); + appUser.setGender(3); + appUser.setBalance(BigDecimal.ZERO); + appUser.setSanskritFlag(DisabledEnum.NO.getCode()); + appUser.setBalance(BigDecimal.ZERO); + appUser.setIncome(BigDecimal.ZERO); + appUser.setTotalEnergyValue(0); + appUser.setRegisterTime(LocalDateTime.now()); + appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); + appLoginUser.setBindStatus(DisabledEnum.YES.getCode()); + this.save(appUser); + // 初始化用户树苗 + initUserTree(appUser.getId()); } - SysUser sysUserRes = registerResult.getData(); - appUser = new AppUser(); - appUser.setUserId(sysUserRes.getUserId()); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - String format = simpleDateFormat.format(new Date()); - // 生成四位随机数字 - String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); - appUser.setCode("YH"+format+randomCode); - appUser.setWxOpenId(body.getWxOpenId()); - String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); - sysUser.setNickName(nickname); - appUser.setNickname(nickname); - appUser.setWxName(body.getNickname()); - appUser.setAvatar(body.getHeadImgUrl()); - appUser.setGender(3); - appUser.setBalance(BigDecimal.ZERO); - appUser.setSanskritFlag(DisabledEnum.NO.getCode()); - appUser.setBalance(BigDecimal.ZERO); - appUser.setIncome(BigDecimal.ZERO); - appUser.setTotalEnergyValue(0); - appUser.setRegisterTime(LocalDateTime.now()); - appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); - appLoginUser.setBindStatus(DisabledEnum.YES.getCode()); - this.save(appUser); - // 初始化用户树苗 - initUserTree(appUser.getId()); } appLoginUser.setUserid(sysUser.getUserId()); appLoginUser.setUsername(appUser.getNickname()); @@ -180,12 +247,12 @@ } @Override - public AppLoginUser appleLogin(String appleId) { + public AppLoginUser appleLogin(String appleId,String device) { AppLoginUser appLoginUser = new AppLoginUser(); Optional<AppUser> optionalAppUser = this.getUserByCondition( AppUserDTO.builder().appleId(appleId).build()); - SysUser sysUser; - AppUser appUser; + SysUser sysUser = new SysUser(); + AppUser appUser = new AppUser(); // 存在账户,查询关联系统用户 if (optionalAppUser.isPresent()) { appUser = optionalAppUser.get(); @@ -193,120 +260,174 @@ throw new ServiceException("账号已被冻结"); } sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData(); - if (appUser.getCellPhone()!=null){ + if (appUser.getCellPhone() != null) { appLoginUser.setBindStatus(DisabledEnum.NO.getCode()); appLoginUser.setCellPhone(appUser.getCellPhone()); } } else { - // 不存在账户,创建账户 - // 注册用户信息 - sysUser = new SysUser(); - String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); - sysUser.setNickName(nickname); - sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); - sysUser.setUserName(nickname); - sysUser.setUserType("01"); // app用户 - R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, - SecurityConstants.INNER); - if (registerResult.getCode() == Constants.FAIL) { - throw new ServiceException(registerResult.getMsg()); + if (org.springframework.util.StringUtils.hasLength(device)) { + AppUser one = this.getOne(new LambdaQueryWrapper<>(AppUser.class) + .eq(AppUser::getDevice, device) + .isNull(AppUser::getCellPhone)); + if (one != null) { + initUserTree(one.getId()); + appUser.setAppleId(appleId); + appUser = one; + this.updateById(appUser); + } else { + // 不存在账户,创建账户 + // 注册用户信息 + sysUser = new SysUser(); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); + sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); + sysUser.setUserName(nickname); + sysUser.setUserType("01"); // app用户 + R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, + SecurityConstants.INNER); + if (registerResult.getCode() == Constants.FAIL) { + throw new ServiceException(registerResult.getMsg()); + } + SysUser sysUserRes = registerResult.getData(); + appUser = new AppUser(); + appUser.setAppleId(appleId); + appUser.setUserId(sysUserRes.getUserId()); + appUser.setNickname(nickname); + appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像 + appUser.setBalance(BigDecimal.ZERO); + appUser.setSanskritFlag(DisabledEnum.NO.getCode()); + appUser.setBalance(BigDecimal.ZERO); + appUser.setIncome(BigDecimal.ZERO); + appUser.setTotalEnergyValue(0); + appUser.setRegisterTime(LocalDateTime.now()); + appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String format = simpleDateFormat.format(new Date()); + // 生成四位随机数字 + String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); + appUser.setCode("YH" + format + randomCode); + this.save(appUser); + // 初始化用户树苗 + initUserTree(appUser.getId()); + } } - SysUser sysUserRes = registerResult.getData(); - appUser = new AppUser(); - appUser.setAppleId(appleId); - appUser.setUserId(sysUserRes.getUserId()); - appUser.setNickname(nickname); - appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像 - appUser.setBalance(BigDecimal.ZERO); - appUser.setSanskritFlag(DisabledEnum.NO.getCode()); - appUser.setBalance(BigDecimal.ZERO); - appUser.setIncome(BigDecimal.ZERO); - appUser.setTotalEnergyValue(0); - appUser.setRegisterTime(LocalDateTime.now()); - appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - String format = simpleDateFormat.format(new Date()); - // 生成四位随机数字 - String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); - appUser.setCode("YH"+format+randomCode); - this.save(appUser); - // 初始化用户树苗 - initUserTree(appUser.getId()); } - appLoginUser.setUserid(sysUser.getUserId()); - appLoginUser.setUsername(appUser.getNickname()); - appLoginUser.setAppUserId(appUser.getId()); - appLoginUser.setSysUser(sysUser); -// if (Objects.nonNull(sysUser.getUserName())) { -// appLoginUser.setBindStatus(DisabledEnum.YES.getCode()); -// appLoginUser.setCellPhone(appUser.getCellPhone()); -// } - return appLoginUser; - } + appLoginUser.setUserid(sysUser.getUserId()); + appLoginUser.setUsername(appUser.getNickname()); + appLoginUser.setAppUserId(appUser.getId()); + appLoginUser.setSysUser(sysUser); + return appLoginUser; + } - /** - * 验证码登录 - * - * @param body - * @return - */ - @Override - @Transactional(rollbackFor = Exception.class) - public AppLoginUser appCaptchaLogin(AppCaptchaBody body) { - AppLoginUser appLoginUser = new AppLoginUser(); - Optional<AppUser> optionalAppUser = this.getUserByCondition( - AppUserDTO.builder().cellPhone(body.getCellPhone()).build()); - AppUser appUser; - SysUser sysUser; - if (optionalAppUser.isPresent()) { - appUser = optionalAppUser.get(); - sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData(); - } else { - // 注册用户信息 - sysUser = new SysUser(); - String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); - sysUser.setNickName(nickname); - sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); - sysUser.setUserName(body.getCellPhone()); - sysUser.setUserType("01"); // app用户 - // 设置默认密码123456 - sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD)); + /** + * 验证码登录 + * + * @param body + * @return + */ + @Override + @Transactional(rollbackFor = Exception.class) + public AppLoginUser appCaptchaLogin (AppCaptchaBody body){ + AppLoginUser appLoginUser = new AppLoginUser(); + Optional<AppUser> optionalAppUser = this.getUserByCondition( + AppUserDTO.builder().cellPhone(body.getCellPhone()).build()); + AppUser appUser = new AppUser(); + SysUser sysUser = new SysUser(); + if (optionalAppUser.isPresent()) { + appUser = optionalAppUser.get(); + sysUser = sysUserClient.getSysUser(appUser.getUserId()).getData(); + } else { + if (org.springframework.util.StringUtils.hasLength(body.getDevice())) { + AppUser one = this.getOne(new LambdaQueryWrapper<>(AppUser.class) + .eq(AppUser::getDevice, body.getDevice()) + .isNull(AppUser::getCellPhone)); + if (one != null) { + initUserTree(appUser.getId()); + appUser = one; + } else { + // 注册用户信息 + sysUser = new SysUser(); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); + sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); + sysUser.setUserName(body.getCellPhone()); + sysUser.setUserType("01"); // app用户 + // 设置默认密码123456 + sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD)); - R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, - SecurityConstants.INNER); - if (registerResult.getCode() == Constants.FAIL) { - throw new ServiceException(registerResult.getMsg()); + R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, + SecurityConstants.INNER); + if (registerResult.getCode() == Constants.FAIL) { + throw new ServiceException(registerResult.getMsg()); + } + SysUser sysUserRes = registerResult.getData(); + appUser = new AppUser(); + appUser.setUserId(sysUserRes.getUserId()); + appUser.setNickname(nickname); + appUser.setCellPhone(body.getCellPhone()); + appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像 + appUser.setBalance(BigDecimal.ZERO); + appUser.setSanskritFlag(DisabledEnum.NO.getCode()); + appUser.setBalance(BigDecimal.ZERO); + appUser.setIncome(BigDecimal.ZERO); + appUser.setTotalEnergyValue(0); + appUser.setRegisterTime(LocalDateTime.now()); + appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String format = simpleDateFormat.format(new Date()); + // 生成四位随机数字 + String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); + appUser.setCode("YH" + format + randomCode); + this.save(appUser); + // 初始化用户树苗 + initUserTree(appUser.getId()); + } + } else { + // 注册用户信息 + sysUser = new SysUser(); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); + sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); + sysUser.setUserName(body.getCellPhone()); + sysUser.setUserType("01"); // app用户 + // 设置默认密码123456 + sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD)); + + R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, + SecurityConstants.INNER); + if (registerResult.getCode() == Constants.FAIL) { + throw new ServiceException(registerResult.getMsg()); + } + SysUser sysUserRes = registerResult.getData(); + appUser = new AppUser(); + appUser.setUserId(sysUserRes.getUserId()); + appUser.setNickname(nickname); + appUser.setCellPhone(body.getCellPhone()); + appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像 + appUser.setBalance(BigDecimal.ZERO); + appUser.setSanskritFlag(DisabledEnum.NO.getCode()); + appUser.setBalance(BigDecimal.ZERO); + appUser.setIncome(BigDecimal.ZERO); + appUser.setTotalEnergyValue(0); + appUser.setRegisterTime(LocalDateTime.now()); + appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String format = simpleDateFormat.format(new Date()); + // 生成四位随机数字 + String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); + appUser.setCode("YH" + format + randomCode); + this.save(appUser); + // 初始化用户树苗 + initUserTree(appUser.getId()); + } } - SysUser sysUserRes = registerResult.getData(); - appUser = new AppUser(); - appUser.setUserId(sysUserRes.getUserId()); - appUser.setNickname(nickname); - appUser.setCellPhone(body.getCellPhone()); - appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像 - appUser.setBalance(BigDecimal.ZERO); - appUser.setSanskritFlag(DisabledEnum.NO.getCode()); - appUser.setBalance(BigDecimal.ZERO); - appUser.setIncome(BigDecimal.ZERO); - appUser.setTotalEnergyValue(0); - appUser.setRegisterTime(LocalDateTime.now()); - appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); - SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); - String format = simpleDateFormat.format(new Date()); - // 生成四位随机数字 - String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); - appUser.setCode("YH"+format+randomCode); - this.save(appUser); - // 初始化用户树苗 - initUserTree(appUser.getId()); - + appLoginUser.setUserid(sysUser.getUserId()); + appLoginUser.setUsername(appUser.getNickname()); + appLoginUser.setAppUserId(appUser.getId()); + appLoginUser.setSysUser(sysUser); + appLoginUser.setCellPhone(appUser.getCellPhone()); + return appLoginUser; } - appLoginUser.setUserid(sysUser.getUserId()); - appLoginUser.setUsername(appUser.getNickname()); - appLoginUser.setAppUserId(appUser.getId()); - appLoginUser.setSysUser(sysUser); - appLoginUser.setCellPhone(appUser.getCellPhone()); - return appLoginUser; - } /** * 初始化用户树苗 @@ -434,37 +555,108 @@ */ @Override public void saveUserAnswers(UserAnswerDTO dto) { - // 获取当前登录用户 - Long userId = tokenService.getLoginUser().getUserid(); - AppUser appUser = this.getById(userId); - List<AppUserQuestion> appUserQuestionList = BeanUtils.copyList( - dto.getUserAnswerOneDTOList(), AppUserQuestion.class); - // 查询用户已填写的答案 - List<AppUserQuestion> baseAppUserQuestionList = appUserQuestionService.lambdaQuery() - .eq(AppUserQuestion::getAppUserId, appUser.getUserId()) - .list(); - if (CollUtils.isNotEmpty(baseAppUserQuestionList)) { - // 根据类型更新答案 - for (AppUserQuestion appUserQuestion : appUserQuestionList) { + if (tokenService.getLoginUser()==null){ + // 获取当前登录用户 + if (org.springframework.util.StringUtils.hasLength(dto.getDevice())){ + SysUser sysUser = new SysUser(); + AppUser appUser = new AppUser(); + // 注册用户信息 + sysUser = new SysUser(); + String nickname = "用户" + IdUtil.fastSimpleUUID().substring(0, 6); + sysUser.setNickName(nickname); + sysUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); + sysUser.setUserName(dto.getDevice()); + sysUser.setUserType("01"); // app用户 + // 设置默认密码123456 + sysUser.setPassword(SecurityUtils.encryptPassword(Constants.DEFAULT_PASSWORD)); - Optional<AppUserQuestion> baseAppUserQuestionOptional = baseAppUserQuestionList.stream() - .filter(baseAppUserQuestion -> baseAppUserQuestion.getType() - .equals(appUserQuestion.getType())).findFirst(); - baseAppUserQuestionOptional.ifPresent( - userQuestion -> appUserQuestion.setId(userQuestion.getId())); + R<SysUser> registerResult = remoteUserService.registerAppUserInfo(sysUser, + SecurityConstants.INNER); + if (registerResult.getCode() == Constants.FAIL) { + throw new ServiceException(registerResult.getMsg()); + } + SysUser sysUserRes = registerResult.getData(); + appUser = new AppUser(); + appUser.setUserId(sysUserRes.getUserId()); + appUser.setNickname(nickname); + appUser.setAvatar("https://xqgwzh.obs.cn-south-1.myhuaweicloud.com/Logo%E7%A1%AE%E8%AE%A4%E7%89%88%281%29.jpg"); // TODO 待完善默认头像 + appUser.setBalance(BigDecimal.ZERO); + appUser.setSanskritFlag(DisabledEnum.NO.getCode()); + appUser.setBalance(BigDecimal.ZERO); + appUser.setIncome(BigDecimal.ZERO); + appUser.setTotalEnergyValue(0); + appUser.setRegisterTime(LocalDateTime.now()); + appUser.setLevelSettingId(TreeLevelEnum.SEED.getCode()); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); + String format = simpleDateFormat.format(new Date()); + // 生成四位随机数字 + String randomCode = String.valueOf((int) ((Math.random() * 9 + 1) * 1000)); + appUser.setCode("YH"+format+randomCode); + this.save(appUser); + Long userId = appUser.getId(); + List<AppUserQuestion> appUserQuestionList = BeanUtils.copyList( + dto.getUserAnswerOneDTOList(), AppUserQuestion.class); + // 查询用户已填写的答案 + List<AppUserQuestion> baseAppUserQuestionList = appUserQuestionService.lambdaQuery() + .eq(AppUserQuestion::getAppUserId, appUser.getUserId()) + .list(); + if (CollUtils.isNotEmpty(baseAppUserQuestionList)) { + // 根据类型更新答案 + for (AppUserQuestion appUserQuestion : appUserQuestionList) { + + Optional<AppUserQuestion> baseAppUserQuestionOptional = baseAppUserQuestionList.stream() + .filter(baseAppUserQuestion -> baseAppUserQuestion.getType() + .equals(appUserQuestion.getType())).findFirst(); + baseAppUserQuestionOptional.ifPresent( + userQuestion -> appUserQuestion.setId(userQuestion.getId())); + appUserQuestion.setAppUserId(userId); + } + } + for (AppUserQuestion appUserQuestion : appUserQuestionList) { + appUserQuestion.setAppUserId(userId); + } + appUserQuestionService.saveOrUpdateBatch(appUserQuestionList); + // 筛选答案为是和偶尔有的问题,为用户设置对应的标签 + List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream() + .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1") + || appUserQuestion.getAnswer().equals("3")).collect(Collectors.toList()); + appUser.setTagId(dto.getTagIds()); + this.updateById(appUser); + } + }else{ + Long userId = tokenService.getLoginUser().getUserid(); + AppUser appUser = this.getById(userId); + List<AppUserQuestion> appUserQuestionList = BeanUtils.copyList( + dto.getUserAnswerOneDTOList(), AppUserQuestion.class); + // 查询用户已填写的答案 + List<AppUserQuestion> baseAppUserQuestionList = appUserQuestionService.lambdaQuery() + .eq(AppUserQuestion::getAppUserId, appUser.getUserId()) + .list(); + if (CollUtils.isNotEmpty(baseAppUserQuestionList)) { + // 根据类型更新答案 + for (AppUserQuestion appUserQuestion : appUserQuestionList) { + + Optional<AppUserQuestion> baseAppUserQuestionOptional = baseAppUserQuestionList.stream() + .filter(baseAppUserQuestion -> baseAppUserQuestion.getType() + .equals(appUserQuestion.getType())).findFirst(); + baseAppUserQuestionOptional.ifPresent( + userQuestion -> appUserQuestion.setId(userQuestion.getId())); + appUserQuestion.setAppUserId(userId); + } + } + for (AppUserQuestion appUserQuestion : appUserQuestionList) { appUserQuestion.setAppUserId(userId); } + appUserQuestionService.saveOrUpdateBatch(appUserQuestionList); + // 筛选答案为是和偶尔有的问题,为用户设置对应的标签 + List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream() + .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1") + || appUserQuestion.getAnswer().equals("3")).collect(Collectors.toList()); + appUser.setTagId(dto.getTagIds()); + this.updateById(appUser); } - for (AppUserQuestion appUserQuestion : appUserQuestionList) { - appUserQuestion.setAppUserId(userId); - } - appUserQuestionService.saveOrUpdateBatch(appUserQuestionList); - // 筛选答案为是和偶尔有的问题,为用户设置对应的标签 - List<AppUserQuestion> appUserQuestionYesList = appUserQuestionList.stream() - .filter(appUserQuestion -> appUserQuestion.getAnswer().equals("1") - || appUserQuestion.getAnswer().equals("3")).collect(Collectors.toList()); - appUser.setTagId(dto.getTagIds()); - this.updateById(appUser); + + } /** -- Gitblit v1.7.1