From 9d8cd5255cec12ba1caa1a1fbe6351f7699079fa Mon Sep 17 00:00:00 2001 From: goupan <goupan@chinapopin.com> Date: 星期四, 25 四月 2024 11:10:40 +0800 Subject: [PATCH] 代码提交 --- roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/impl/CustomerServiceImpl.java | 33 ++++++++++ rest/src/main/java/cn/stylefeng/rest/modular/user/service/CustomerLoginBizService.java | 8 ++ rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java | 51 +++++++---------- rest/src/main/java/cn/stylefeng/rest/modular/user/controller/UserCenterController.java | 63 ++++++++++----------- common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CustomerWxOpenIdLoginRequest.java | 9 +- roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/CustomerService.java | 5 + 6 files changed, 100 insertions(+), 69 deletions(-) diff --git a/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CustomerWxOpenIdLoginRequest.java b/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CustomerWxOpenIdLoginRequest.java index f895d9f..d2cce81 100644 --- a/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CustomerWxOpenIdLoginRequest.java +++ b/common-buiness/src/main/java/cn/stylefeng/guns/modular/business/dto/request/CustomerWxOpenIdLoginRequest.java @@ -1,20 +1,21 @@ package cn.stylefeng.guns.modular.business.dto.request; import cn.stylefeng.roses.kernel.rule.annotation.ChineseDescription; +import cn.stylefeng.roses.kernel.sms.modular.param.SysSmsVerifyParam; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data @ApiModel(value = "微信OpenId登录-请求参数") -public class CustomerWxOpenIdLoginRequest { +public class CustomerWxOpenIdLoginRequest extends SysSmsVerifyParam { @ApiModelProperty(value = "微信OpenId", required = true) @ChineseDescription("微信OpenId") private String wxOpenId; - @ApiModelProperty(value = "手机号") - @ChineseDescription("手机号") - private String phone; + @ApiModelProperty(value = "顾问工号") + @ChineseDescription("顾问工号") + private String workerNo; } 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 9b7bc72..e7ac952 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 @@ -46,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; @@ -150,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(); @@ -283,38 +284,15 @@ if (StrUtil.isNotBlank(req.getWorkerNo())) { // 获取绑定顾问岗位ID(这里做校验) customerService.getBindWorkerPostIds(req.getWorkerNo(), PostIdEnum.PO_11, PostIdEnum.PO_21); - - //绑定工号 - // 幸福顾问 - PostIdEnum post11Enum = PostIdEnum.PO_11; - // 咨询顾问 - PostIdEnum post21Enum = PostIdEnum.PO_21; - - // 获取绑定顾问岗位ID - String[] bindWorkerPostIds = customerService.getBindWorkerPostIds(req.getWorkerNo(), post11Enum, post21Enum); - Customer workerByNo = customerService.getOne( - Wrappers.<Customer>lambdaUpdate().eq(Customer::getWorkerNo, req.getWorkerNo()).last("LIMIT 1") - ); - - LambdaUpdateWrapper<Customer> wrapper = Wrappers.<Customer>lambdaUpdate().eq(Customer::getCustomerId, validCustomer.getCustomerId()); - for (String postId : bindWorkerPostIds) { - if (postId.equals(post11Enum.getCode().toString())) { - wrapper.set(Customer::getClassWorkerId, workerByNo.getCustomerId()); - } else if (postId.equals(post21Enum.getCode().toString())) { - wrapper.set(Customer::getConsultWorkerId, workerByNo.getCustomerId()); - } - } - - // 修改用户信息 - Boolean update = customerService.update(wrapper); } // 验证码通过 sysSmsInfoService.validateSmsInfo(req); - - - + if (StrUtil.isNotBlank(req.getWorkerNo())) { + // 绑定顾问岗位ID数据 + customerService.userBindClassConsultWorkerId(validCustomer.getCustomerId(), req.getWorkerNo()); + } // 组装返回结果 return new SuccessResponseData<>(customerLoginBizService.phoneLogin(req.getPhone(), CustomerUserTypeEnum.USER)); @@ -328,18 +306,37 @@ String phoneMd5 = MD5.create().digestHex(md5Salt + req.getPhone()); Assert.isTrue(phoneMd5.equals(req.getPhoneMd5()), "手机号验证失败"); - - - // 组装返回结果 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("获取帮助列表(分页)") diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/user/service/CustomerLoginBizService.java b/rest/src/main/java/cn/stylefeng/rest/modular/user/service/CustomerLoginBizService.java index bbce75a..c8a78b9 100644 --- a/rest/src/main/java/cn/stylefeng/rest/modular/user/service/CustomerLoginBizService.java +++ b/rest/src/main/java/cn/stylefeng/rest/modular/user/service/CustomerLoginBizService.java @@ -49,7 +49,7 @@ return loginResponse; } - public LoginResponse wxOpenIdLogin(String wxOpenId, String phone, CustomerUserTypeEnum userType) { + public LoginResponse wxOpenIdLogin(String wxOpenId, String phone, String workerNo, CustomerUserTypeEnum userType) { // 查询用户信息 Wrapper wrapper = Wrappers.<Customer>lambdaQuery() .eq(Customer::getUserType, userType.getCode()) @@ -63,6 +63,12 @@ // 可能已经注册的用户,再获取一次用户 customer = customerService.getOne(wrapper, false); } + + if (StrUtil.isNotBlank(workerNo)) { + // 绑定顾问岗位ID数据 + customerService.userBindClassConsultWorkerId(customer.getCustomerId(), workerNo); + } + // 用户登录信息 LoginResponse loginResponse = customerService.wrapperLoginResponse(customer, new LoginRequest()); return loginResponse; diff --git a/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java b/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java index a223554..265bdd8 100644 --- a/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java +++ b/rest/src/main/java/cn/stylefeng/rest/modular/worker/controller/WorkerController.java @@ -49,6 +49,7 @@ import cn.stylefeng.roses.kernel.system.api.pojo.user.SysUserDTO; import cn.stylefeng.roses.kernel.system.modular.user.entity.SysUser; import cn.stylefeng.roses.kernel.system.modular.user.service.SysUserService; +import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -178,8 +179,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(); @@ -278,33 +279,6 @@ // 验证码通过 sysSmsInfoService.validateSmsInfo(req); - -// //绑定工号 -// // 幸福顾问 -// PostIdEnum post11Enum = PostIdEnum.PO_11; -// // 咨询顾问 -// PostIdEnum post21Enum = PostIdEnum.PO_21; -// -// // 获取绑定顾问岗位ID -// String[] bindWorkerPostIds = customerService.getBindWorkerPostIds(req.getWorkerNo(), post11Enum, post21Enum); -// Customer workerByNo = customerService.getOne( -// Wrappers.<Customer>lambdaUpdate().eq(Customer::getWorkerNo, req.getWorkerNo()).last("LIMIT 1") -// ); -// -// LambdaUpdateWrapper<Customer> wrapper = Wrappers.<Customer>lambdaUpdate().eq(Customer::getCustomerId, validCustomer.getCustomerId()); -// for (String postId : bindWorkerPostIds) { -// if (postId.equals(post11Enum.getCode().toString())) { -// wrapper.set(Customer::getClassWorkerId, workerByNo.getCustomerId()); -// } else if (postId.equals(post21Enum.getCode().toString())) { -// wrapper.set(Customer::getConsultWorkerId, workerByNo.getCustomerId()); -// } -// } -// -// // 修改用户信息 -// Boolean update = customerService.update(wrapper); - - - // 组装返回结果 return new SuccessResponseData<>(customerLoginBizService.phoneLogin(req.getPhone(), CustomerUserTypeEnum.WORKER)); } @@ -329,11 +303,28 @@ return new SuccessResponseData<>(customerLoginBizService.phoneLogin(req.getPhone(), CustomerUserTypeEnum.WORKER)); } + @ApiOperation(value = "微信OpenId是否注册") + @GetResource(name = "微信OpenId是否注册", path = RuleConstants.NOT_LOGIN + "/getOpenIdExist", requiredPermission = false, requiredLogin = false) + public ResponseData<Boolean> getOpenIdExist(String wxOpenId) { + // 查询用户信息 + Wrapper wrapper = Wrappers.<Customer>lambdaQuery() + .eq(Customer::getUserType, CustomerUserTypeEnum.WORKER.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.getPhone())) { + // 验证码通过 + sysSmsInfoService.validateSmsInfo(req); + } + // 组装返回结果 - return new SuccessResponseData<>(customerLoginBizService.wxOpenIdLogin(req.getWxOpenId(), req.getPhone(), CustomerUserTypeEnum.WORKER)); + return new SuccessResponseData<>(customerLoginBizService.wxOpenIdLogin(req.getWxOpenId(), req.getPhone(), req.getWorkerNo(), CustomerUserTypeEnum.WORKER)); } @ApiOperation(value = "更换手机号") diff --git a/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/CustomerService.java b/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/CustomerService.java index f3c6edb..8bb8aa7 100644 --- a/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/CustomerService.java +++ b/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/CustomerService.java @@ -196,4 +196,9 @@ */ String[] getBindWorkerPostIds(String workerNo, PostIdEnum post11Enum, PostIdEnum post21Enum); + /** + * 绑定顾问岗位ID数据 + */ + Boolean userBindClassConsultWorkerId(Long customerId, String workerNo); + } \ No newline at end of file diff --git a/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/impl/CustomerServiceImpl.java b/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/impl/CustomerServiceImpl.java index c26fbff..c090c4c 100644 --- a/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/impl/CustomerServiceImpl.java +++ b/roses/kernel-s-customer/customer-business/src/main/java/cn/stylefeng/roses/kernel/customer/modular/service/impl/CustomerServiceImpl.java @@ -13,7 +13,6 @@ import cn.stylefeng.roses.kernel.auth.api.context.LoginContext; import cn.stylefeng.roses.kernel.auth.api.exception.AuthException; import cn.stylefeng.roses.kernel.auth.api.exception.enums.AuthExceptionEnum; -import cn.stylefeng.roses.kernel.auth.api.expander.AuthConfigExpander; import cn.stylefeng.roses.kernel.auth.api.password.PasswordStoredEncryptApi; import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginRequest; import cn.stylefeng.roses.kernel.auth.api.pojo.auth.LoginResponse; @@ -736,4 +735,36 @@ return postIds; } + + @Override + public Boolean userBindClassConsultWorkerId(Long customerId, String workerNo) { + // 幸福顾问 + PostIdEnum post11Enum = PostIdEnum.PO_11; + // 咨询顾问 + PostIdEnum post21Enum = PostIdEnum.PO_21; + + // 获取绑定顾问岗位ID + String[] bindWorkerPostIds = this.getBindWorkerPostIds(workerNo, post11Enum, post21Enum); + Customer workerByNo = this.getOne( + Wrappers.<Customer>lambdaUpdate().eq(Customer::getWorkerNo, workerNo).last("LIMIT 1") + ); + + Customer newCustomer = new Customer(); + newCustomer.setCustomerId(customerId); + for (String postId : bindWorkerPostIds) { + if (postId.equals(post11Enum.getCode().toString())) { + newCustomer.setClassWorkerId(workerByNo.getCustomerId()); + } else if (postId.equals(post21Enum.getCode().toString())) { + newCustomer.setConsultWorkerId(workerByNo.getCustomerId()); + } + } + + Boolean update = false; + if (customerId != null && (newCustomer.getClassWorkerId() != null || newCustomer.getConsultWorkerId() != null)) { + // 修改用户信息 + update = this.updateCustomerRemoveCache(newCustomer); + } + + return update; + } } -- Gitblit v1.7.1