Browse Source

hotfix:完善微信用户、快手用户id、密钥配置

feature-1.1
chengkun 3 years ago
parent
commit
5fb730474f
  1. 2
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/FhUser.java
  2. 14
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/FhConfig.java
  3. 23
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TiktokConfig.java
  4. 23
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java
  5. 8
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java
  6. 8
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  7. 8
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java
  8. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java
  9. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java
  10. 15
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java

2
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/domain/FhUser.java

@ -1,8 +1,6 @@
package com.bnyer.common.core.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

14
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/FhConfig.java

@ -17,11 +17,17 @@ import org.springframework.context.annotation.Configuration;
@RefreshScope
public class FhConfig {
@Value("${bnyer.img.fasthand.appId}")
public String appId;
@Value("${bnyer.img.fasthand.yjAppId}")
private String yjAppId;
@Value("${bnyer.img.fasthand.secret}")
public String secret;
@Value("${bnyer.img.fasthand.yjSecret}")
private String yjSecret;
@Value("${bnyer.img.fasthand.myAppId}")
private String myAppId;
@Value("${bnyer.img.fasthand.mySecret}")
private String mySecret;
@Value("${bnyer.img.fasthand.sessionInfoUrl}")
public String sessionInfoUrl;

23
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TiktokConfig.java

@ -1,16 +1,13 @@
package com.bnyer.img.config;
//import com.bnyer.img.handler.TokenCheckHandler;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
import javax.annotation.Resource;
/**
* 字节配置类
* @author chengkun
@ -37,22 +34,4 @@ public class TiktokConfig implements WebMvcConfigurer {
@Value("${bnyer.img.tiktok.sessionInfoUrl}")
private String sessionInfoUrl;
@Value("${bnyer.img.tiktok.tokenUrl}")
private String tokenUrl;
// @Resource
// private TokenCheckHandler tokenCheckHandler;
/** 不需要拦截地址 */
// public static final String[] excludeUrls = { "/mini/tiktok/loginTiktok", "/mini/tiktok/insertFeedback"};
//
// @Override
// public void addInterceptors(InterceptorRegistry registry) {
// // 注册Token拦截器
// registry.addInterceptor(tokenCheckHandler)
// .addPathPatterns("/**")
// .excludePathPatterns(excludeUrls)
// .order(-10);
//
// }
}

23
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java

@ -1,14 +1,9 @@
package com.bnyer.img.config;
import cn.binarywang.wx.miniapp.api.WxMaService;
import cn.binarywang.wx.miniapp.api.impl.WxMaServiceImpl;
import cn.binarywang.wx.miniapp.config.WxMaConfig;
import cn.binarywang.wx.miniapp.config.impl.WxMaDefaultConfigImpl;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
/**
@ -22,16 +17,18 @@ import org.springframework.context.annotation.Configuration;
@RefreshScope
public class WxConfig {
@Value("${bnyer.img.wechat.appId}")
private String appId;
@Value("${bnyer.img.wechat.yjAppId}")
private String yjAppId;
@Value("${bnyer.img.wechat.secret}")
private String secret;
@Value("${bnyer.img.wechat.yjSecret}")
private String yjSecret;
@Value("${bnyer.img.wechat.sessionInfoUrl}")
private String sessionInfoUrl;
@Value("${bnyer.img.wechat.myAppId}")
private String myAppId;
@Value("${bnyer.img.wechat.tokenUrl}")
private String tokenUrl;
@Value("${bnyer.img.wechat.mySecret}")
private String mySecret;
@Value("${bnyer.img.wechat.sessionInfoUrl}")
private String sessionInfoUrl;
}

8
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java

@ -208,14 +208,6 @@ public class FhMiniController extends BaseController {
log.debug("【快手图文小程序】查询是否点赞过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(tiktokLikeService.judgeLike(dto.getUserId(),dto.getImgId(),"1"));
}
//
// @ApiOperation(value="用户登录")
// @PostMapping(value = "/loginFh")
// public R<Map<String,Object>> loginFh(@Validated @RequestBody @ApiParam("登录对象") FhLoginDto dto){
// log.info("【快手图文小程序】用户【{}】授权登录了", dto.getCode());
// return R.ok(fhUserService.login(dto));
// }
@ApiOperation(value="获取快手小程序用户")
@PostMapping(value = "/getFhUserInfo")

8
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java

@ -217,20 +217,12 @@ public class TiktokMiniController extends BaseController {
return AjaxResult.success(tiktokLikeService.judgeLike(dto.getUserId(),dto.getImgId(),"0"));
}
// @ApiOperation(value="用户登录")
// @PostMapping(value = "/loginTiktok")
// public AjaxResult loginTiktok(@Validated @RequestBody @ApiParam("登录对象") TiktokLoginDto dto){
// log.info("【抖音图文小程序】用户【{}】授权登录了", dto.getCode());
// return AjaxResult.success(tiktokUserService.login(dto));
// }
@ApiOperation(value="获取抖音小程序用户")
@PostMapping(value = "/getTiktokUserInfo")
public R<LoginTiktokUser> getTiktokLoginUserByLoginParam(@Validated @RequestBody @ApiParam("登录对象") TiktokLoginDto dto){
return tiktokUserService.getTiktokLoginUserByLoginParam(dto);
}
@ApiOperation(value="查询首页图片列表")
@PostMapping(value = "/imgLists")
public TableDataInfo imgLists(@RequestBody @ApiParam("分页对象") BasePageDto dto){

8
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java

@ -223,20 +223,12 @@ public class WxMiniController extends BaseController {
return AjaxResult.success(tiktokLikeService.judgeLike(dto.getUserId(),dto.getImgId(),"2"));
}
// @ApiOperation(value="用户登录")
// @PostMapping(value = "/loginWx")
// public AjaxResult loginWx(@Validated @RequestBody @ApiParam("登录对象") WxLoginDto dto){
// log.info("【微信图文小程序】用户【{}】授权登录了", dto.getCode());
// return AjaxResult.success(wxUserService.login(dto));
// }
@ApiOperation(value="获取微信小程序用户")
@PostMapping(value = "/getWechatUserInfo")
public R<LoginWechatUser> getWxLoginUserByLoginParam(@Validated @RequestBody @ApiParam("登录对象") WxLoginDto dto){
return wxUserService.getWxLoginUserByLoginParam(dto);
}
@ApiOperation(value="查询首页图片列表")
@PostMapping(value = "/imgLists")
public TableDataInfo imgLists(@RequestBody @ApiParam("分页对象") BasePageDto dto){

19
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java

@ -7,8 +7,10 @@ import com.bnyer.common.core.constant.TiktokConstant;
import com.bnyer.common.core.domain.FhUser;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.dto.FhLoginDto;
import com.bnyer.common.core.enums.EnumAppType;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.Sm4Util;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.vo.FhUserLoginVo;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.api.model.LoginFhUser;
@ -54,14 +56,20 @@ public class FhUserServiceImpl implements FhUserService {
/**
* 获取用户openId及sessionKey
* @param code 登录凭证code
* @param appType 应用类型(0->次元意境;1->妙鸭壁纸)
* @return -
*/
private FhSessionInfoVo getSessionInfo(String code) {
private FhSessionInfoVo getSessionInfo(String code,String appType) {
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/x-www-form-urlencoded");
MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
postParameters.add("app_id", fhConfig.getAppId());
postParameters.add("app_secret", fhConfig.getSecret());
if(appType.equals(EnumAppType.YJ_APP.getCode())){
postParameters.add("app_id", fhConfig.getYjAppId());
postParameters.add("app_secret", fhConfig.getYjSecret());
}else if (appType.equals(EnumAppType.MY_APP.getCode())){
postParameters.add("app_id", fhConfig.getMyAppId());
postParameters.add("app_secret", fhConfig.getMySecret());
}
postParameters.add("js_code", code);
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(postParameters, headers);
JSONObject sessionInfo = restTemplate.postForObject(fhConfig.getSessionInfoUrl(), httpEntity, JSONObject.class);
@ -108,7 +116,7 @@ public class FhUserServiceImpl implements FhUserService {
/**
* 保存用户
* @param openId 微信id
* @param openId 快手id
* @param sessionKey -
* @param encryptedData 敏感信息数据
* @param iv 加密向量
@ -187,10 +195,11 @@ public class FhUserServiceImpl implements FhUserService {
@Override
public R<LoginFhUser> getFhLoginUserByLoginParam(FhLoginDto dto) {
FhSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode());
FhSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode(),dto.getAppType());
//检查数据库中是否存在该openId,存在则直接返回结果;不存在则新增
LambdaQueryWrapper<FhUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(sessionInfo.getOpenId() != null,FhUser::getFhCode,Sm4Util.sm4Encryption(sessionInfo.getOpenId()));
wrapper.eq(StringUtils.isNotBlank(dto.getAppType()), FhUser::getAppType, dto.getAppType());
FhUser fhUser = fhUserMapper.selectOne(wrapper);
if(fhUser == null){
//新用户,新增

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java

@ -10,6 +10,7 @@ import com.bnyer.common.core.dto.TiktokLoginDto;
import com.bnyer.common.core.enums.EnumAppType;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.Sm4Util;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.vo.TiktokUserLoginVo;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.api.model.LoginTiktokUser;
@ -197,6 +198,7 @@ public class TiktokUserServiceImpl implements TiktokUserService {
//检查数据库中是否存在该openId,存在则直接返回结果;不存在则新增
LambdaQueryWrapper<TiktokUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(sessionInfo.getOpenId() != null,TiktokUser::getTiktokCode,Sm4Util.sm4Encryption(sessionInfo.getOpenId()));
wrapper.eq(StringUtils.isNotEmpty(dto.getAppType()), TiktokUser::getAppType, dto.getAppType());
TiktokUser tiktokUser = tiktokUserMapper.selectOne(wrapper);
if(tiktokUser == null){
//新用户,新增

15
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java

@ -7,6 +7,7 @@ import com.bnyer.common.core.constant.TiktokConstant;
import com.bnyer.common.core.domain.R;
import com.bnyer.common.core.domain.WxUser;
import com.bnyer.common.core.dto.WxLoginDto;
import com.bnyer.common.core.enums.EnumAppType;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.Sm4Util;
import com.bnyer.common.core.utils.StringUtils;
@ -51,10 +52,17 @@ public class WxUserServiceImpl implements WxUserService {
/**
* 获取用户openId及sessionKey
* @param code 登录凭证code
* @param appType 应用类型(0->次元意境;1->妙鸭壁纸)
* @return -
*/
private WxSessionInfoVo getSessionInfo(String code) {
String url = wxConfig.getSessionInfoUrl() + "?appid=" + wxConfig.getAppId() + "&secret=" + wxConfig.getSecret() + "&js_code=" + code + "&grant_type=authorization_code";
private WxSessionInfoVo getSessionInfo(String code,String appType) {
String sessionInfoUrl = wxConfig.getSessionInfoUrl();
String url = "";
if(appType.equals(EnumAppType.YJ_APP.getCode())){
url = sessionInfoUrl + "?appid=" + wxConfig.getYjAppId() + "&secret=" + wxConfig.getYjSecret() + "&js_code=" + code + "&grant_type=authorization_code";
}else if (appType.equals(EnumAppType.MY_APP.getCode())){
url = sessionInfoUrl + "?appid=" + wxConfig.getMyAppId() + "&secret=" + wxConfig.getMySecret() + "&js_code=" + code + "&grant_type=authorization_code";
}
String forObject = restTemplate.getForObject(url, String.class);
JSONObject sessionInfo = JSONObject.parseObject(forObject);
if (StringUtils.isNotBlank(sessionInfo.getString("errcode"))) {
@ -180,10 +188,11 @@ public class WxUserServiceImpl implements WxUserService {
@Override
public R<LoginWechatUser> getWxLoginUserByLoginParam(WxLoginDto dto) {
WxSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode());
WxSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode(),dto.getAppType());
//检查数据库中是否存在该openId,存在则直接返回结果;不存在则新增
LambdaQueryWrapper<WxUser> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(sessionInfo.getOpenId() != null, WxUser::getWxCode, Sm4Util.sm4Encryption(sessionInfo.getOpenId()));
wrapper.eq(StringUtils.isNotBlank(dto.getAppType()), WxUser::getAppType, dto.getAppType());
WxUser wxUser = wxUserMapper.selectOne(wrapper);
if (wxUser == null) {
//新用户,新增

Loading…
Cancel
Save