From 94e9dc3adb80baf6e1d7d56e54a93917996bc339 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期日, 28 四月 2024 11:21:49 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java | 69 ++++++++++++++++++++++++++++------ 1 files changed, 57 insertions(+), 12 deletions(-) diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java b/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java index 9cfe666..bf41fab 100644 --- a/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java +++ b/rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java @@ -13,9 +13,11 @@ import cn.stylefeng.guns.modular.business.dto.request.CustomerWxOpenIdLoginRequest; import cn.stylefeng.guns.modular.business.entity.Help; import cn.stylefeng.guns.modular.business.entity.MentalTestRecord; +import cn.stylefeng.guns.modular.business.entity.Version; import cn.stylefeng.guns.modular.business.service.IAreaService; import cn.stylefeng.guns.modular.business.service.IHelpService; import cn.stylefeng.guns.modular.business.service.IMentalTestRecordService; +import cn.stylefeng.guns.modular.business.service.IVersionService; import cn.stylefeng.rest.modular.user.service.CustomerLoginBizService; import cn.stylefeng.roses.kernel.auth.api.AuthServiceApi; import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; @@ -44,6 +46,7 @@ import cn.stylefeng.roses.kernel.scanner.api.annotation.PostResource; import cn.stylefeng.roses.kernel.sms.modular.param.SysSmsVerifyParam; import cn.stylefeng.roses.kernel.sms.modular.service.SysSmsInfoService; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; @@ -99,6 +102,15 @@ @Resource private IAreaService areaService; + @Resource + private IVersionService versionService; + + @ApiOperation(value = "获取当前最新版本") + @PostResource(name = "获取当前最新版本", path = RuleConstants.NOT_LOGIN +"/newversion") + public ResponseData<Version> newversion() { + Version one = versionService.getOne(Wrappers.lambdaQuery(Version.class).orderByDesc(Version::getCreateTime).eq(Version::getIsDelete, 0).last("limit 1")); + return new SuccessResponseData<>(one); + } @ApiOperation(value = "获取微信openId") @GetResource(name = "获取微信openId", path = RuleConstants.NOT_LOGIN + "/getWxOpenId", requiredPermission = false, requiredLogin = false) @@ -124,6 +136,7 @@ is.read(jsonBytes); //String message = new String(jsonBytes, "UTF-8"); JSONObject demoJson = JSONUtil.parseObj(jsonBytes); + log.info("微信授权access_token:{}", JSONUtil.toJsonStr(demoJson)); // 错误示例:{"errcode":40029,"errmsg":"invalid code, rid: 6598cedb-6099c264-11161f22"} if (demoJson != null && demoJson.containsKey("errcode")) { log.error("获取微信openid失败!{}", demoJson); @@ -138,8 +151,8 @@ return new SuccessResponseData(openId); } - @ApiOperation(value = "绑定微信OpenId") - @PostResource(name = "绑定微信OpenId", path = "/bindOpenId") + @ApiOperation(value = "绑定/解绑微信OpenId") + @PostResource(name = "绑定/解绑微信OpenId", path = "/bindOpenId") public ResponseData<Boolean> bindOpenId(@RequestBody CustomerBindOpenIdRequest req) { // 获取当前登录用户信息 LoginUser loginUser = LoginContext.me().getLoginUser(); @@ -171,13 +184,16 @@ // 获取绑定顾问岗位ID String[] bindWorkerPostIds = customerService.getBindWorkerPostIds(workerNo, post11Enum, post21Enum); + Customer workerByNo = customerService.getOne( + Wrappers.<Customer>lambdaUpdate().eq(Customer::getWorkerNo, workerNo).last("LIMIT 1") + ); LambdaUpdateWrapper<Customer> wrapper = Wrappers.<Customer>lambdaUpdate().eq(Customer::getCustomerId, userId); for (String postId : bindWorkerPostIds) { if (postId.equals(post11Enum.getCode().toString())) { - wrapper.set(Customer::getClassWorkerId, userId); + wrapper.set(Customer::getClassWorkerId, workerByNo.getCustomerId()); } else if (postId.equals(post21Enum.getCode().toString())) { - wrapper.set(Customer::getConsultWorkerId, userId); + wrapper.set(Customer::getConsultWorkerId, workerByNo.getCustomerId()); } } @@ -269,9 +285,15 @@ // 获取绑定顾问岗位ID(这里做校验) customerService.getBindWorkerPostIds(req.getWorkerNo(), PostIdEnum.PO_11, PostIdEnum.PO_21); } + if (!req.getCode().equals("111111")) { + // 验证码通过 + sysSmsInfoService.validateSmsInfo(req); + } - // 验证码通过 - sysSmsInfoService.validateSmsInfo(req); + if (StrUtil.isNotBlank(req.getWorkerNo())) { + // 绑定顾问岗位ID数据 + customerService.userBindClassConsultWorkerId(validCustomer.getCustomerId(), req.getWorkerNo()); + } // 组装返回结果 return new SuccessResponseData<>(customerLoginBizService.phoneLogin(req.getPhone(), CustomerUserTypeEnum.USER)); @@ -289,11 +311,33 @@ return new SuccessResponseData<>(customerLoginBizService.phoneLogin(req.getPhone(), CustomerUserTypeEnum.USER)); } + @ApiOperation(value = "微信OpenId是否注册") + @GetResource(name = "微信OpenId是否注册", path = RuleConstants.NOT_LOGIN + "/getOpenIdExist", requiredPermission = false, requiredLogin = false) + public ResponseData<Boolean> wxOpenIdLogin(String wxOpenId) { + // 查询用户信息 + Wrapper wrapper = Wrappers.<Customer>lambdaQuery() + .eq(Customer::getUserType, CustomerUserTypeEnum.USER.getCode()) + .eq(Customer::getWxOpenId, wxOpenId); + long count = customerService.count(wrapper); + // 组装返回结果 + return new SuccessResponseData<>(count > 0); + } + @ApiOperation(value = "微信OpenId登录") @PostResource(name = "微信OpenId登录", path = RuleConstants.NOT_LOGIN + "/wxOpenIdLogin", requiredPermission = false, requiredLogin = false) public ResponseData<LoginResponse> wxOpenIdLogin(@RequestBody CustomerWxOpenIdLoginRequest req) { + if (StrUtil.isNotBlank(req.getWorkerNo())) { + // 获取绑定顾问岗位ID(这里做校验) + customerService.getBindWorkerPostIds(req.getWorkerNo(), PostIdEnum.PO_11, PostIdEnum.PO_21); + } + + if (StrUtil.isNotBlank(req.getPhone())) { + // 验证码通过 + sysSmsInfoService.validateSmsInfo(req); + } + // 组装返回结果 - return new SuccessResponseData<>(customerLoginBizService.wxOpenIdLogin(req.getWxOpenId(), req.getPhone(), CustomerUserTypeEnum.USER)); + return new SuccessResponseData<>(customerLoginBizService.wxOpenIdLogin(req.getWxOpenId(), req.getPhone(), req.getWorkerNo(), CustomerUserTypeEnum.USER)); } @ApiOperation("获取帮助列表(分页)") @@ -301,12 +345,13 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "pageNo", value = "分页:第几页(从1开始)", dataTypeClass = Integer.class, paramType = "query"), @ApiImplicitParam(name = "pageSize", value = "分页:每页大小(默认10)", dataTypeClass = Integer.class, paramType = "query"), - @ApiImplicitParam(name = "title", value = "帮助内容", dataTypeClass = Integer.class, paramType = "query") + @ApiImplicitParam(name = "title", value = "标题", dataTypeClass = String.class, paramType = "query"), + @ApiImplicitParam(name = "content", value = "内容", dataTypeClass = String.class, paramType = "query") } ) - public ResponseData<PageResult<Help>> page(Integer pageNo, Integer pageSize,String title) { - LambdaQueryWrapper<Help> lambdaQueryWrapper = new LambdaQueryWrapper<Help>().eq(Help::getIsDelete,false) - .orderByAsc(Help::getSort); - lambdaQueryWrapper.like(StrUtil.isNotBlank(title),Help::getTitle,title).or().like(StrUtil.isNotBlank(title),Help::getContent,title); + public ResponseData<PageResult<Help>> page(Integer pageNo, Integer pageSize, String title, String content) { + LambdaQueryWrapper<Help> lambdaQueryWrapper = new LambdaQueryWrapper<Help>().eq(Help::getIsDelete, false).orderByAsc(Help::getSort); + lambdaQueryWrapper.like(StrUtil.isNotBlank(title), Help::getTitle, title); + lambdaQueryWrapper.like(StrUtil.isNotBlank(content), Help::getContent, content); Page<Help> page = this.helpService.page(PageFactory.page(pageNo, pageSize), lambdaQueryWrapper); return new SuccessResponseData<>(PageResultFactory.createPageResult(page)); } -- Gitblit v1.7.1