From e26ad10d4e132dfc6fec2fc31b29c43292cea6b0 Mon Sep 17 00:00:00 2001 From: jy_lwh <766309312@qq.com> Date: Thu, 7 Sep 2023 13:39:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../job/controller/DiffuseAppletController.java | 7 +-- .../job/controller/HouseAppletController.java | 16 ++++-- .../jeecg/job/controller/JobLoginController.java | 44 -------------- .../job/controller/JobOfficialController.java | 67 ++++++++++++++++++++++ ...YuanWxLoginBean.java => OfficialLoginBean.java} | 7 +-- .../org/jeecg/job/service/HouseAppletService.java | 9 +++ .../org/jeecg/job/service/JobLoginService.java | 20 ------- .../org/jeecg/job/service/JobOfficialService.java | 30 ++++++++++ .../job/service/impl/HouseAppletServiceImpl.java | 19 +++++- ...erviceImpl.java => JobOfficialServiceImpl.java} | 23 +++++--- .../common/login/impl/ApiLoginServiceImpl.java | 27 +++++++-- .../java/org/jeecg/config/shiro/ShiroConfig.java | 1 + 12 files changed, 178 insertions(+), 92 deletions(-) delete mode 100644 han-hai-job/src/main/java/org/jeecg/job/controller/JobLoginController.java create mode 100644 han-hai-job/src/main/java/org/jeecg/job/controller/JobOfficialController.java rename han-hai-job/src/main/java/org/jeecg/job/req/{BinYuanWxLoginBean.java => OfficialLoginBean.java} (92%) delete mode 100644 han-hai-job/src/main/java/org/jeecg/job/service/JobLoginService.java create mode 100644 han-hai-job/src/main/java/org/jeecg/job/service/JobOfficialService.java rename han-hai-job/src/main/java/org/jeecg/job/service/impl/{JobLoginServiceImpl.java => JobOfficialServiceImpl.java} (68%) diff --git a/han-hai-job/src/main/java/org/jeecg/job/controller/DiffuseAppletController.java b/han-hai-job/src/main/java/org/jeecg/job/controller/DiffuseAppletController.java index de9b88e..dae8f56 100644 --- a/han-hai-job/src/main/java/org/jeecg/job/controller/DiffuseAppletController.java +++ b/han-hai-job/src/main/java/org/jeecg/job/controller/DiffuseAppletController.java @@ -3,21 +3,20 @@ package org.jeecg.job.controller; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.jeecg.common.api.vo.Result; -import org.jeecg.job.service.JobLoginService; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; +/** + * 兼扩列小程序相关接口信息 + */ @Api(tags="兼兼街--交友扩列小程序对应接口") @RestController @RequestMapping("/diffuse/applet") public class DiffuseAppletController { - //获取登录接口调用 - @Resource - private JobLoginService loginService; @ApiOperation(value = "用户/微信小程序授权登录接口",notes = "用户/微信小程序授权登录接口") diff --git a/han-hai-job/src/main/java/org/jeecg/job/controller/HouseAppletController.java b/han-hai-job/src/main/java/org/jeecg/job/controller/HouseAppletController.java index bb4b6ed..6f3f0d8 100644 --- a/han-hai-job/src/main/java/org/jeecg/job/controller/HouseAppletController.java +++ b/han-hai-job/src/main/java/org/jeecg/job/controller/HouseAppletController.java @@ -10,12 +10,15 @@ import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +/** + * 租房小程序相关接口信息 + */ @Api(tags="兼兼街--租房小程序对应接口") @RestController @RequestMapping("/house/applet") public class HouseAppletController { - + //调用租房小程序相关接口信息 @Resource private HouseAppletService houseAppletService; @@ -31,12 +34,15 @@ public class HouseAppletController { return houseAppletService.wxHouseAppletLogin(bean); } - - + /** + * 微信小程序获取banner + * @param state + * @return + */ @ApiOperation(value = "用户/banner的接口",notes = "用户/banner的接口") @GetMapping("/banner") - public Result wxHouseBanner(){ - return null; + public Result wxHouseBanner(String state){ + return houseAppletService.wxHouseBanner(state); } diff --git a/han-hai-job/src/main/java/org/jeecg/job/controller/JobLoginController.java b/han-hai-job/src/main/java/org/jeecg/job/controller/JobLoginController.java deleted file mode 100644 index af6bc3c..0000000 --- a/han-hai-job/src/main/java/org/jeecg/job/controller/JobLoginController.java +++ /dev/null @@ -1,44 +0,0 @@ -package org.jeecg.job.controller; - -import io.swagger.annotations.Api; -import io.swagger.annotations.ApiOperation; -import org.jeecg.job.req.BinYuanAccountLoginBean; -import org.jeecg.job.req.BinYuanWxLoginBean; -import org.jeecg.job.service.JobLoginService; -import org.jeecg.common.api.vo.Result; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; - -import javax.annotation.Resource; - -@Api(tags="兼兼街--登录接口") -@RestController -@RequestMapping("/binYuan/login") -public class JobLoginController { - - - /** - * 登录实现类方法 - */ - @Resource - private JobLoginService loginService; - - /** - * 用户端/微信公众号授权登录 - * @param bean - * @return - */ - @ApiOperation(value = "用户/微信公众号授权登录",notes = "用户/微信公众号授权登录") - @PostMapping("/wxLogin") - public Result wxLogin(BinYuanWxLoginBean bean){ - return loginService.wxLogin(bean); - } - - - - - - -} diff --git a/han-hai-job/src/main/java/org/jeecg/job/controller/JobOfficialController.java b/han-hai-job/src/main/java/org/jeecg/job/controller/JobOfficialController.java new file mode 100644 index 0000000..44588a8 --- /dev/null +++ b/han-hai-job/src/main/java/org/jeecg/job/controller/JobOfficialController.java @@ -0,0 +1,67 @@ +package org.jeecg.job.controller; + +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.jeecg.common.api.vo.Result; +import org.jeecg.job.req.OfficialLoginBean; +import org.jeecg.job.service.JobOfficialService; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * 兼职公众号相关接口信息 + */ +@Api(tags="兼兼街--兼职信息公众号接口") +@RestController +@RequestMapping("/job/official") +public class JobOfficialController { + + //兼职公众号相关接口信息 + @Resource + private JobOfficialService officialService; + + /** + * 用户端/微信公众号授权登录 + * @param bean + * @return + */ + @ApiOperation(value = "用户/微信公众号授权登录",notes = "用户/微信公众号授权登录") + @PostMapping("/wxLogin") + public Result wxLogin(OfficialLoginBean bean){ + return officialService.wxOfficialLogin(bean); + } + + + /** + * 查看用户协议与隐私政策 + * @param state 0 兼职公众号 1租房小程序 2扩列小程序 + * @return + */ + @ApiOperation(value="查看用户协议与隐私政策", notes="查看用户协议与隐私政策") + @GetMapping(value = "/findAgree") + public Result findAgree(String state){ + return officialService.findAgree(state); + } + + + /** + * 查询平台banner + * @param state 0 兼职公众号主banner ,1兼职公众号附banner ,2租房小程序banner ,3租房小程序附banner + * @return + */ + @ApiOperation(value="查询平台banner", notes="查询平台banner") + @GetMapping(value = "/bannerList") + public Result bannerList(String state){ + return officialService.bannerList(state); + } + + + + + + +} diff --git a/han-hai-job/src/main/java/org/jeecg/job/req/BinYuanWxLoginBean.java b/han-hai-job/src/main/java/org/jeecg/job/req/OfficialLoginBean.java similarity index 92% rename from han-hai-job/src/main/java/org/jeecg/job/req/BinYuanWxLoginBean.java rename to han-hai-job/src/main/java/org/jeecg/job/req/OfficialLoginBean.java index efd82f7..60e5dd9 100644 --- a/han-hai-job/src/main/java/org/jeecg/job/req/BinYuanWxLoginBean.java +++ b/han-hai-job/src/main/java/org/jeecg/job/req/OfficialLoginBean.java @@ -3,12 +3,8 @@ package org.jeecg.job.req; import io.swagger.annotations.ApiModelProperty; import lombok.Data; -/** - * @Author lzx - * @Date 2022-10-07 16:17 - **/ @Data -public class BinYuanWxLoginBean { +public class OfficialLoginBean { /** @@ -55,4 +51,5 @@ public class BinYuanWxLoginBean { */ @ApiModelProperty(value = "解密") private String encryptedData; + } diff --git a/han-hai-job/src/main/java/org/jeecg/job/service/HouseAppletService.java b/han-hai-job/src/main/java/org/jeecg/job/service/HouseAppletService.java index 39d34f4..107d94a 100644 --- a/han-hai-job/src/main/java/org/jeecg/job/service/HouseAppletService.java +++ b/han-hai-job/src/main/java/org/jeecg/job/service/HouseAppletService.java @@ -16,5 +16,14 @@ public interface HouseAppletService { */ Result wxHouseAppletLogin(HouseAppletLoginBean bean); + /** + * 微信小程序获取banner + * @param state + * @return + */ + Result wxHouseBanner(String state); + + + } diff --git a/han-hai-job/src/main/java/org/jeecg/job/service/JobLoginService.java b/han-hai-job/src/main/java/org/jeecg/job/service/JobLoginService.java deleted file mode 100644 index 2118b31..0000000 --- a/han-hai-job/src/main/java/org/jeecg/job/service/JobLoginService.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.jeecg.job.service; - -import org.jeecg.job.req.BinYuanAccountLoginBean; -import org.jeecg.job.req.BinYuanWxLoginBean; -import org.jeecg.common.api.vo.Result; - -/** - * @Author lzx - * @Date 2022-10-07 16:14 - **/ -public interface JobLoginService { - - /** - * 微信授权登录 - * @param bean - * @return - */ - Result wxLogin(BinYuanWxLoginBean bean); - -} diff --git a/han-hai-job/src/main/java/org/jeecg/job/service/JobOfficialService.java b/han-hai-job/src/main/java/org/jeecg/job/service/JobOfficialService.java new file mode 100644 index 0000000..de0ad2e --- /dev/null +++ b/han-hai-job/src/main/java/org/jeecg/job/service/JobOfficialService.java @@ -0,0 +1,30 @@ +package org.jeecg.job.service; + +import org.jeecg.common.api.vo.Result; +import org.jeecg.job.req.OfficialLoginBean; + +public interface JobOfficialService { + + + /** + * 微信公众号授权登录 + * @param bean + * @return + */ + Result wxOfficialLogin(OfficialLoginBean bean); + + + /** + * 查看用户协议与隐私政策 + * @param state 0 兼职公众号 1租房小程序 2扩列小程序 + * @return + */ + Result findAgree(String state); + + + + Result bannerList(String state); + + + +} diff --git a/han-hai-job/src/main/java/org/jeecg/job/service/impl/HouseAppletServiceImpl.java b/han-hai-job/src/main/java/org/jeecg/job/service/impl/HouseAppletServiceImpl.java index 2c050fd..ef7d0a8 100644 --- a/han-hai-job/src/main/java/org/jeecg/job/service/impl/HouseAppletServiceImpl.java +++ b/han-hai-job/src/main/java/org/jeecg/job/service/impl/HouseAppletServiceImpl.java @@ -1,6 +1,7 @@ package org.jeecg.job.service.impl; import com.alibaba.fastjson.JSONObject; +import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; @@ -17,9 +18,11 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; +import java.util.Date; import java.util.HashMap; import java.util.Map; +@Slf4j @Service public class HouseAppletServiceImpl implements HouseAppletService { @@ -67,6 +70,7 @@ public class HouseAppletServiceImpl implements HouseAppletService { String loginUrl = "https://api.weixin.qq.com/sns/jscode2session?appid=" + mpAppId + "&secret=" + mpAppSecret+ "&js_code=" + bean.getCode() + "&grant_type=authorization_code"; //使用工具类 JSONObject json_test = httpConf.getJSONObject(loginUrl); + String wxUnionId = json_test.getString("unionid"); String wxOpenid = json_test.getString("openid"); String sessionKey = json_test.getString("session_key"); if (StringUtils.isBlank(wxOpenid)) { @@ -82,6 +86,8 @@ public class HouseAppletServiceImpl implements HouseAppletService { member.setAppletOpenid(wxOpenid); member.setNickName(bean.getNickName()); member.setHeadImage(bean.getHeadimgurl()); + member.setWxUnionid(wxUnionId); + member.setCreateTime(new Date()); //上级邀请人 HanHaiMember pid = memberService.lambdaQuery().eq(HanHaiMember::getShareId, bean.getShareId()).one(); if(pid != null){ @@ -94,7 +100,7 @@ public class HouseAppletServiceImpl implements HouseAppletService { member.setToken(token); // 设置超时时间 redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 100); - + memberService.saveOrUpdate(member); } else { // 生成token返回给小程序端 token = JwtUtil.sign(member.getAppletOpenid(), wxOpenid); @@ -103,6 +109,7 @@ public class HouseAppletServiceImpl implements HouseAppletService { redisUtil.expire(CommonConstant.PREFIX_USER_TOKEN + token, JwtUtil.EXPIRE_TIME / 100); member.setNickName(bean.getNickName()); member.setHeadImage(bean.getHeadimgurl()); + member.setWxUnionid(wxUnionId); member.setToken(token); memberService.saveOrUpdate(member); } @@ -115,4 +122,14 @@ public class HouseAppletServiceImpl implements HouseAppletService { } + /** + * 微信小程序获取banner + * @param state + * @return + */ + @Override + public Result wxHouseBanner(String state){ + return null; + } + } diff --git a/han-hai-job/src/main/java/org/jeecg/job/service/impl/JobLoginServiceImpl.java b/han-hai-job/src/main/java/org/jeecg/job/service/impl/JobOfficialServiceImpl.java similarity index 68% rename from han-hai-job/src/main/java/org/jeecg/job/service/impl/JobLoginServiceImpl.java rename to han-hai-job/src/main/java/org/jeecg/job/service/impl/JobOfficialServiceImpl.java index da082df..f4cc829 100644 --- a/han-hai-job/src/main/java/org/jeecg/job/service/impl/JobLoginServiceImpl.java +++ b/han-hai-job/src/main/java/org/jeecg/job/service/impl/JobOfficialServiceImpl.java @@ -1,20 +1,18 @@ package org.jeecg.job.service.impl; -import org.jeecg.job.req.BinYuanWxLoginBean; -import org.jeecg.job.service.JobLoginService; import org.jeecg.common.api.vo.Result; +import org.jeecg.job.req.OfficialLoginBean; +import org.jeecg.job.service.JobOfficialService; import org.jeecg.modules.common.login.ApiLoginService; import org.jeecg.modules.common.login.LoginReq; import org.springframework.stereotype.Service; import javax.annotation.Resource; -/** - * @Author lzx - * @Date 2022-10-07 16:15 - **/ + @Service -public class JobLoginServiceImpl implements JobLoginService { +public class JobOfficialServiceImpl implements JobOfficialService { + /** * 公共用户表数据 */ @@ -27,7 +25,7 @@ public class JobLoginServiceImpl implements JobLoginService { * @return */ @Override - public Result wxLogin(BinYuanWxLoginBean bean){ + public Result wxOfficialLogin(OfficialLoginBean bean){ LoginReq req = new LoginReq(); req.setCode(bean.getCode()); req.setHeadimgurl(bean.getHeadimgurl()); @@ -39,9 +37,16 @@ public class JobLoginServiceImpl implements JobLoginService { - public Result wxAppletLogin(){ + /** + * 用户协议、隐私政策 + * @param state + * @return + */ + @Override + public Result findAgree(String state){ return null; } + } diff --git a/han-hai-module-common/src/main/java/org/jeecg/modules/common/login/impl/ApiLoginServiceImpl.java b/han-hai-module-common/src/main/java/org/jeecg/modules/common/login/impl/ApiLoginServiceImpl.java index 142ced6..b85b164 100644 --- a/han-hai-module-common/src/main/java/org/jeecg/modules/common/login/impl/ApiLoginServiceImpl.java +++ b/han-hai-module-common/src/main/java/org/jeecg/modules/common/login/impl/ApiLoginServiceImpl.java @@ -67,17 +67,35 @@ public class ApiLoginServiceImpl implements ApiLoginService { JSONObject json_test = httpConf.getJSONObject(loginUrl); log.info("{} {} -- {}", mpAppId, mpAppSecret, json_test); String wxOpenid = json_test.getString("openid"); + String wxUnionId = json_test.getString("unionid"); String access_token = json_test.getString("access_token"); if (StringUtils.isBlank(wxOpenid)) { throw new JeecgBootException("未获取到openid"); } HanHaiMember member = hanHaiMemberService.lambdaQuery().eq(HanHaiMember::getOfficialOpenid,wxOpenid).one(); if(member!=null){ - if (StringUtils.isBlank(member.getVid())){ - member.setVid(loginReq.getVid()); - member.setVtime(new Date()); - hanHaiMemberService.updateById(member); +// if (StringUtils.isBlank(member.getVid())){ +// member.setVid(loginReq.getVid()); +// member.setVtime(new Date()); +// hanHaiMemberService.updateById(member); +// } + //开始获取用户信息 + String memberUrl = "https://api.weixin.qq.com/sns/userinfo?access_token="+access_token+"&openid="+wxOpenid+"&lang=zh_CN"; + //使用工具类 + JSONObject json_member = httpConf.getJSONObject(memberUrl); + String nickname = json_member.getString("nickname"); + String headimgurl = json_member.getString("headimgurl"); + try { + nickname = new String(nickname.getBytes("ISO-8859-1"),"UTF-8"); + } catch (UnsupportedEncodingException e) { + e.printStackTrace(); } + member.setNickName(nickname); + member.setHeadImage(headimgurl); + member.setWxUnionid(wxUnionId); + hanHaiMemberService.updateById(member); + + // 生成token返回 String token = JwtUtil.sign(member.getAccount(), member.getAccount()); redisUtil.set(CommonConstant.PREFIX_USER_TOKEN + token, token); @@ -104,6 +122,7 @@ public class ApiLoginServiceImpl implements ApiLoginService { save.setVtime(new Date()); save.setNickName(nickname); save.setHeadImage(headimgurl); + save.setWxUnionid(wxUnionId); //销售邀请者标识 save.setShareId(loginReq.getShareId()); diff --git a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java index b757989..0dcc1de 100644 --- a/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java +++ b/jeecg-boot-base/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java @@ -73,6 +73,7 @@ public class ShiroConfig { } + filterChainDefinitionMap.put("/house/applet/**", "anon"); filterChainDefinitionMap.put("/job/index/**", "anon"); filterChainDefinitionMap.put("/job/pay/notify", "anon");