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