Browse Source

feature1.0.0:img服务打通swagger

master
chengkun 4 years ago
parent
commit
dafbb91991
  1. 17
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/RestTemplateConfiguration.java
  2. 29
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/Sm4Config.java
  3. 20
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java
  4. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BannerController.java
  5. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FeedBackController.java
  6. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java
  7. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  8. 6
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java
  9. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TypeController.java
  10. 24
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/feign/TiktokFeign.java
  11. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokCollectionServiceImpl.java
  12. 24
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java
  13. 2
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml

17
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/RestTemplateConfiguration.java

@ -0,0 +1,17 @@
package com.bnyer.img.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;
/**
* @author chengkun
* @date 2022/4/28 17:27
*/
@Configuration
public class RestTemplateConfiguration {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
}
}

29
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/Sm4Config.java

@ -0,0 +1,29 @@
package com.bnyer.img.config;
import com.bnyer.common.core.utils.Sm4Util;
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import javax.annotation.PostConstruct;
import java.util.Objects;
/**
* @author chengkun
* @date 2022/04/27 16:40
*/
@Configuration
@Getter
@Setter
public class Sm4Config {
@Value("${encryption.sm4.key}")
private String key ;
@PostConstruct
public void init(){
Objects.requireNonNull(key,"encryption.sm4.key is null");
Sm4Util.utilInit(key);
}
}

20
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java

@ -10,4 +10,24 @@ public class TiktokConstant {
* 抖音接口成功响应码
*/
public static final String SUCCESS = "0";
/**
* 成为艺术家未绑定手机号
*/
public static final Integer UN_BIND_PHONE = 105001;
/**
* 绑定手机号失败
*/
public static final Integer BIND_PHONE_ERROR = 105002;
/**
* 成为艺术家搜索码重复
*/
public static final Integer SCAN_CODE_REPEAT = 105003;
/**
* 调用抖音授权失败
*/
public static final Integer TIKTOK_AUTH_ERROR = 105004;
}

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BannerController.java

@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("img-banner-【后端】接口")
@Api(value = "img-banner-【后端】接口",tags = "img-banner-【后端】接口")
@RestController
@RequestMapping("/img/banner")
@Slf4j

4
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FeedBackController.java

@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("img-feedback-【后端】反馈接口")
@Api(value = "img-feedback-【后端】反馈接口",tags = "img-feedback-【后端】反馈接口")
@RestController
@RequestMapping("/img/feedback")
@Slf4j
@ -31,7 +31,7 @@ public class FeedBackController extends BaseController {
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询feedback分页")
@PostMapping("/page")
@GetMapping("/page")
public TableDataInfo listFeedBack(){
startPage();
List<Feedback> feedback = feedBackService.queryPage("0");

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java

@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("img-tiktokImg-【后端】抖音图片接口")
@Api(value = "img-tiktokImg-【后端】抖音图片接口",tags = "img-tiktokImg-【后端】抖音图片接口")
@RestController
@RequestMapping("/img/tiktokImg")
@Slf4j

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

@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("img-抖音平台-【小程序】接口")
@Api(value = "img-抖音平台-【小程序】接口",tags = "img-抖音平台-【小程序】接口")
@RestController
@RequestMapping("/img/mini/tiktok")
@Slf4j
@ -91,7 +91,7 @@ public class TiktokMiniController extends BaseController {
//@TokenCheck
@ApiOperation(value="删除TiktokImg")
@DeleteMapping(value = "/deleteTiktokImg/{ids}")
@GetMapping(value = "/deleteTiktokImg/{ids}")
public AjaxResult deleteTiktokImg(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("抖音小程序端删除TiktokImg参数为:{}", ids);
return AjaxResult.success(tiktokImgService.delete(ids));

6
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java

@ -20,7 +20,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("img-tiktokUser-【后端】抖音平台用户接口")
@Api(value = "img-tiktokUser-【后端】抖音平台用户接口",tags = "img-tiktokUser-【后端】抖音平台用户接口")
@RestController
@RequestMapping("/img/tiktokUser")
@Slf4j
@ -36,9 +36,11 @@ public class TiktokUserController extends BaseController {
startPage();
List<TiktokUser> tiktokUsers = tiktokUserService.queryPage(dto);
for (TiktokUser tiktokUser : tiktokUsers) {
if(tiktokUser != null){
tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone()));
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode()));
}
}
return getDataTable(tiktokUsers);
}
@ -71,8 +73,10 @@ public class TiktokUserController extends BaseController {
@GetMapping(value = "/details/{id}")
public AjaxResult detailsTiktokUser(@PathVariable @ApiParam("主键id") Long id){
TiktokUser tiktokUser = tiktokUserService.queryDetails(id);
if(tiktokUser != null){
tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone()));
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode()));
}
return AjaxResult.success(tiktokUser);
}
}

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TypeController.java

@ -18,7 +18,7 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api("img-type-【后端】图片类型接口")
@Api(value = "img-type-【后端】图片类型接口",tags = "img-type-【后端】图片类型接口")
@RestController
@RequestMapping("/img/type")
@Slf4j

24
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/feign/TiktokFeign.java

@ -1,24 +0,0 @@
package com.bnyer.img.feign;
import com.alibaba.fastjson.JSONObject;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.Map;
/**
* @author chengkun
* @date 2022/4/21 18:04
*/
@FeignClient(name = "tiktok-service", url = "${bnyer.img.tiktok.sessionInfoUrl}")
public interface TiktokFeign {
/**
* 获取抖音sessionInfo
* @param params 授权参数
* @return -
*/
@GetMapping("/cash_account/total")
JSONObject getSessionInfo(@RequestParam Map<String, String> params);
}

4
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokCollectionServiceImpl.java

@ -96,6 +96,10 @@ public class TiktokCollectionServiceImpl implements TiktokCollectionService {
wrapper.eq(TiktokCollection::getUserId,userId).eq(TiktokCollection::getImgId,imgId);
tiktokCollectionMapper.delete(wrapper);
redisService.hashIncr(imgCollectNumKey,String.valueOf(imgId), -1);
Integer collectValue = (Integer) redisService.getCacheMapValue(imgCollectNumKey, String.valueOf(imgId));
if(collectValue <= 0){
redisService.deleteHashKey(imgCollectNumKey,String.valueOf(imgId));
}
log.info("用户【{}】取消收藏了图片【{}】,收藏量减少1",userId,imgId);
}

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

@ -17,7 +17,6 @@ import com.bnyer.img.dto.TiktokBindPhoneDto;
import com.bnyer.img.dto.TiktokCreaterDto;
import com.bnyer.img.dto.TiktokLoginDto;
import com.bnyer.img.dto.TiktokUserPageDto;
import com.bnyer.img.feign.TiktokFeign;
import com.bnyer.img.mapper.TiktokImgMapper;
import com.bnyer.img.mapper.TiktokUserMapper;
import com.bnyer.img.service.TiktokUserService;
@ -28,6 +27,7 @@ import com.bnyer.img.vo.TiktokUserVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import javax.crypto.Cipher;
@ -53,7 +53,7 @@ public class TiktokUserServiceImpl implements TiktokUserService {
private TiktokConfig tiktokConfig;
@Autowired
private TiktokFeign tiktokFeign;
private RestTemplate restTemplate;
/**
* 检查搜索码是否重复
@ -92,12 +92,12 @@ public class TiktokUserServiceImpl implements TiktokUserService {
//检查手机号是否存在
boolean b1 = checkPhone(Sm4Util.sm4Encryption(dto.getPhone()));
if(!b1){
throw new ServiceException("用户尚未绑定手机号,请手动绑定!");
throw new ServiceException("用户尚未绑定手机号,请手动绑定!",TiktokConstant.UN_BIND_PHONE);
}
//检查搜索码是否重复
boolean b = this.checkScanCode(dto.getScanCode());
if(b){
throw new ServiceException("搜索码重复,请重新编辑!");
throw new ServiceException("搜索码重复,请重新编辑!",TiktokConstant.SCAN_CODE_REPEAT);
}
TiktokUser user = new TiktokUser();
user.setIntro(dto.getIntro());
@ -132,7 +132,9 @@ public class TiktokUserServiceImpl implements TiktokUserService {
public List<TiktokUser> queryPage(TiktokUserPageDto dto) {
LambdaQueryWrapper<TiktokUser> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotNull(dto.getUsername()), TiktokUser::getUsername, dto.getUsername());
wrapper.eq(StringUtils.isNotNull(dto.getPhone()),TiktokUser::getPhone, Sm4Util.sm4Encryption(dto.getPhone()));
if(StringUtils.isNotNull(dto.getPhone())){
wrapper.eq(TiktokUser::getPhone, Sm4Util.sm4Encryption(dto.getPhone()));
}
wrapper.eq(StringUtils.isNotNull(dto.getTiktokNumber()), TiktokUser::getTiktokNumber, dto.getTiktokNumber());
wrapper.eq(StringUtils.isNotNull(dto.getScanCode()), TiktokUser::getScanCode, dto.getScanCode());
wrapper.eq(StringUtils.isNotNull(dto.getInviteCode()), TiktokUser::getInviteCode, dto.getInviteCode());
@ -164,15 +166,11 @@ public class TiktokUserServiceImpl implements TiktokUserService {
* @return -
*/
private TiktokSessionInfoVo getSessionInfo(String code) {
Map<String, String> params = new HashMap(8);
params.put("appid", tiktokConfig.getAppId());
params.put("secret", tiktokConfig.getSecret());
params.put("code", code);
params.put("grant_type", "client_credential");
JSONObject sessionInfo = tiktokFeign.getSessionInfo(params);
String url = tiktokConfig.getSessionInfoUrl()+"?appid=" + tiktokConfig.getAppId() + "&secret=" + tiktokConfig.getSecret() + "&js_code=" + code + "&grant_type=authorization_code";
JSONObject sessionInfo = JSONObject.parseObject(restTemplate.getForObject(url, String.class));
if(!sessionInfo.getString("err_no").equals(TiktokConstant.SUCCESS)){
log.error("抖音授权session接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",sessionInfo.getString("err_no"),sessionInfo.getString("err_tips"));
throw new ServiceException("抖音授权session接口调用失败!");
throw new ServiceException("抖音授权session接口调用失败!",TiktokConstant.TIKTOK_AUTH_ERROR);
}
//调用成功,组装返回数据
JSONObject data = sessionInfo.getJSONObject("data");
@ -276,7 +274,7 @@ public class TiktokUserServiceImpl implements TiktokUserService {
log.info("获取用户【{}】手机号成功!",dto.getUserId());
}else{
log.error("获取用户【{}】手机号失败!",dto.getUserId());
throw new ServiceException("用户手机号绑定失败!");
throw new ServiceException("用户手机号绑定失败!",TiktokConstant.BIND_PHONE_ERROR);
}
}

2
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml

@ -28,6 +28,6 @@
join img_type it on iti.type_id = it.id
where iti.is_show = '1' and it.is_show = '1' and iti.status = '1' and itc.is_show = '1'
and itc.user_id = #{userId}
order by sort desc
order by itc.sort desc
</select>
</mapper>
Loading…
Cancel
Save