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. 14
      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 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; import java.util.List;
@Api("img-banner-【后端】接口") @Api(value = "img-banner-【后端】接口",tags = "img-banner-【后端】接口")
@RestController @RestController
@RequestMapping("/img/banner") @RequestMapping("/img/banner")
@Slf4j @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; import java.util.List;
@Api("img-feedback-【后端】反馈接口") @Api(value = "img-feedback-【后端】反馈接口",tags = "img-feedback-【后端】反馈接口")
@RestController @RestController
@RequestMapping("/img/feedback") @RequestMapping("/img/feedback")
@Slf4j @Slf4j
@ -31,7 +31,7 @@ public class FeedBackController extends BaseController {
//@RequiresPermissions("system:config:list") //@RequiresPermissions("system:config:list")
@ApiOperation(value="查询feedback分页") @ApiOperation(value="查询feedback分页")
@PostMapping("/page") @GetMapping("/page")
public TableDataInfo listFeedBack(){ public TableDataInfo listFeedBack(){
startPage(); startPage();
List<Feedback> feedback = feedBackService.queryPage("0"); 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; import java.util.List;
@Api("img-tiktokImg-【后端】抖音图片接口") @Api(value = "img-tiktokImg-【后端】抖音图片接口",tags = "img-tiktokImg-【后端】抖音图片接口")
@RestController @RestController
@RequestMapping("/img/tiktokImg") @RequestMapping("/img/tiktokImg")
@Slf4j @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; import java.util.List;
@Api("img-抖音平台-【小程序】接口") @Api(value = "img-抖音平台-【小程序】接口",tags = "img-抖音平台-【小程序】接口")
@RestController @RestController
@RequestMapping("/img/mini/tiktok") @RequestMapping("/img/mini/tiktok")
@Slf4j @Slf4j
@ -91,7 +91,7 @@ public class TiktokMiniController extends BaseController {
//@TokenCheck //@TokenCheck
@ApiOperation(value="删除TiktokImg") @ApiOperation(value="删除TiktokImg")
@DeleteMapping(value = "/deleteTiktokImg/{ids}") @GetMapping(value = "/deleteTiktokImg/{ids}")
public AjaxResult deleteTiktokImg(@PathVariable @ApiParam("主键ids") List<Long> ids){ public AjaxResult deleteTiktokImg(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("抖音小程序端删除TiktokImg参数为:{}", ids); log.debug("抖音小程序端删除TiktokImg参数为:{}", ids);
return AjaxResult.success(tiktokImgService.delete(ids)); return AjaxResult.success(tiktokImgService.delete(ids));

14
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; import java.util.List;
@Api("img-tiktokUser-【后端】抖音平台用户接口") @Api(value = "img-tiktokUser-【后端】抖音平台用户接口",tags = "img-tiktokUser-【后端】抖音平台用户接口")
@RestController @RestController
@RequestMapping("/img/tiktokUser") @RequestMapping("/img/tiktokUser")
@Slf4j @Slf4j
@ -36,8 +36,10 @@ public class TiktokUserController extends BaseController {
startPage(); startPage();
List<TiktokUser> tiktokUsers = tiktokUserService.queryPage(dto); List<TiktokUser> tiktokUsers = tiktokUserService.queryPage(dto);
for (TiktokUser tiktokUser : tiktokUsers) { for (TiktokUser tiktokUser : tiktokUsers) {
tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone())); if(tiktokUser != null){
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode())); tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone()));
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode()));
}
} }
return getDataTable(tiktokUsers); return getDataTable(tiktokUsers);
} }
@ -71,8 +73,10 @@ public class TiktokUserController extends BaseController {
@GetMapping(value = "/details/{id}") @GetMapping(value = "/details/{id}")
public AjaxResult detailsTiktokUser(@PathVariable @ApiParam("主键id") Long id){ public AjaxResult detailsTiktokUser(@PathVariable @ApiParam("主键id") Long id){
TiktokUser tiktokUser = tiktokUserService.queryDetails(id); TiktokUser tiktokUser = tiktokUserService.queryDetails(id);
tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone())); if(tiktokUser != null){
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode())); tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone()));
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode()));
}
return AjaxResult.success(tiktokUser); 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; import java.util.List;
@Api("img-type-【后端】图片类型接口") @Api(value = "img-type-【后端】图片类型接口",tags = "img-type-【后端】图片类型接口")
@RestController @RestController
@RequestMapping("/img/type") @RequestMapping("/img/type")
@Slf4j @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); wrapper.eq(TiktokCollection::getUserId,userId).eq(TiktokCollection::getImgId,imgId);
tiktokCollectionMapper.delete(wrapper); tiktokCollectionMapper.delete(wrapper);
redisService.hashIncr(imgCollectNumKey,String.valueOf(imgId), -1); 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); 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.TiktokCreaterDto;
import com.bnyer.img.dto.TiktokLoginDto; import com.bnyer.img.dto.TiktokLoginDto;
import com.bnyer.img.dto.TiktokUserPageDto; import com.bnyer.img.dto.TiktokUserPageDto;
import com.bnyer.img.feign.TiktokFeign;
import com.bnyer.img.mapper.TiktokImgMapper; import com.bnyer.img.mapper.TiktokImgMapper;
import com.bnyer.img.mapper.TiktokUserMapper; import com.bnyer.img.mapper.TiktokUserMapper;
import com.bnyer.img.service.TiktokUserService; import com.bnyer.img.service.TiktokUserService;
@ -28,6 +27,7 @@ import com.bnyer.img.vo.TiktokUserVo;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.crypto.Cipher; import javax.crypto.Cipher;
@ -53,7 +53,7 @@ public class TiktokUserServiceImpl implements TiktokUserService {
private TiktokConfig tiktokConfig; private TiktokConfig tiktokConfig;
@Autowired @Autowired
private TiktokFeign tiktokFeign; private RestTemplate restTemplate;
/** /**
* 检查搜索码是否重复 * 检查搜索码是否重复
@ -92,12 +92,12 @@ public class TiktokUserServiceImpl implements TiktokUserService {
//检查手机号是否存在 //检查手机号是否存在
boolean b1 = checkPhone(Sm4Util.sm4Encryption(dto.getPhone())); boolean b1 = checkPhone(Sm4Util.sm4Encryption(dto.getPhone()));
if(!b1){ if(!b1){
throw new ServiceException("用户尚未绑定手机号,请手动绑定!"); throw new ServiceException("用户尚未绑定手机号,请手动绑定!",TiktokConstant.UN_BIND_PHONE);
} }
//检查搜索码是否重复 //检查搜索码是否重复
boolean b = this.checkScanCode(dto.getScanCode()); boolean b = this.checkScanCode(dto.getScanCode());
if(b){ if(b){
throw new ServiceException("搜索码重复,请重新编辑!"); throw new ServiceException("搜索码重复,请重新编辑!",TiktokConstant.SCAN_CODE_REPEAT);
} }
TiktokUser user = new TiktokUser(); TiktokUser user = new TiktokUser();
user.setIntro(dto.getIntro()); user.setIntro(dto.getIntro());
@ -132,7 +132,9 @@ public class TiktokUserServiceImpl implements TiktokUserService {
public List<TiktokUser> queryPage(TiktokUserPageDto dto) { public List<TiktokUser> queryPage(TiktokUserPageDto dto) {
LambdaQueryWrapper<TiktokUser> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TiktokUser> wrapper = new LambdaQueryWrapper<>();
wrapper.like(StringUtils.isNotNull(dto.getUsername()), TiktokUser::getUsername, dto.getUsername()); 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.getTiktokNumber()), TiktokUser::getTiktokNumber, dto.getTiktokNumber());
wrapper.eq(StringUtils.isNotNull(dto.getScanCode()), TiktokUser::getScanCode, dto.getScanCode()); wrapper.eq(StringUtils.isNotNull(dto.getScanCode()), TiktokUser::getScanCode, dto.getScanCode());
wrapper.eq(StringUtils.isNotNull(dto.getInviteCode()), TiktokUser::getInviteCode, dto.getInviteCode()); wrapper.eq(StringUtils.isNotNull(dto.getInviteCode()), TiktokUser::getInviteCode, dto.getInviteCode());
@ -164,15 +166,11 @@ public class TiktokUserServiceImpl implements TiktokUserService {
* @return - * @return -
*/ */
private TiktokSessionInfoVo getSessionInfo(String code) { private TiktokSessionInfoVo getSessionInfo(String code) {
Map<String, String> params = new HashMap(8); String url = tiktokConfig.getSessionInfoUrl()+"?appid=" + tiktokConfig.getAppId() + "&secret=" + tiktokConfig.getSecret() + "&js_code=" + code + "&grant_type=authorization_code";
params.put("appid", tiktokConfig.getAppId()); JSONObject sessionInfo = JSONObject.parseObject(restTemplate.getForObject(url, String.class));
params.put("secret", tiktokConfig.getSecret());
params.put("code", code);
params.put("grant_type", "client_credential");
JSONObject sessionInfo = tiktokFeign.getSessionInfo(params);
if(!sessionInfo.getString("err_no").equals(TiktokConstant.SUCCESS)){ if(!sessionInfo.getString("err_no").equals(TiktokConstant.SUCCESS)){
log.error("抖音授权session接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",sessionInfo.getString("err_no"),sessionInfo.getString("err_tips")); 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"); JSONObject data = sessionInfo.getJSONObject("data");
@ -276,7 +274,7 @@ public class TiktokUserServiceImpl implements TiktokUserService {
log.info("获取用户【{}】手机号成功!",dto.getUserId()); log.info("获取用户【{}】手机号成功!",dto.getUserId());
}else{ }else{
log.error("获取用户【{}】手机号失败!",dto.getUserId()); 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 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' where iti.is_show = '1' and it.is_show = '1' and iti.status = '1' and itc.is_show = '1'
and itc.user_id = #{userId} and itc.user_id = #{userId}
order by sort desc order by itc.sort desc
</select> </select>
</mapper> </mapper>
Loading…
Cancel
Save