diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/RestTemplateConfiguration.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/RestTemplateConfiguration.java new file mode 100644 index 0000000..0568a3f --- /dev/null +++ b/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(); + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/Sm4Config.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/Sm4Config.java new file mode 100644 index 0000000..5c42c5d --- /dev/null +++ b/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); + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java index fa3a452..1dca570 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java +++ b/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; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BannerController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BannerController.java index b76facb..157cc05 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BannerController.java +++ b/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 diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FeedBackController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FeedBackController.java index 780d10d..1ecad00 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FeedBackController.java +++ b/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 = feedBackService.queryPage("0"); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java index 691cf16..0d4a533 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java +++ b/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 diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java index 2acb5e1..9ac01ea 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java +++ b/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 ids){ log.debug("抖音小程序端删除TiktokImg参数为:{}", ids); return AjaxResult.success(tiktokImgService.delete(ids)); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java index 5006b0f..9d7a5fd 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java +++ b/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,8 +36,10 @@ public class TiktokUserController extends BaseController { startPage(); List tiktokUsers = tiktokUserService.queryPage(dto); for (TiktokUser tiktokUser : tiktokUsers) { - tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone())); - tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode())); + 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); - tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone())); - tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode())); + if(tiktokUser != null){ + tiktokUser.setPhone(Sm4Util.sm4Decrypt(tiktokUser.getPhone())); + tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode())); + } return AjaxResult.success(tiktokUser); } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TypeController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TypeController.java index 9f5e065..27db079 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TypeController.java +++ b/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 diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/feign/TiktokFeign.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/feign/TiktokFeign.java deleted file mode 100644 index d58a43c..0000000 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/feign/TiktokFeign.java +++ /dev/null @@ -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 params); -} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokCollectionServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokCollectionServiceImpl.java index de733a9..baf3eb5 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokCollectionServiceImpl.java +++ b/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); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java index d0f6ea8..fc66f30 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java +++ b/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 queryPage(TiktokUserPageDto dto) { LambdaQueryWrapper 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 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); } } diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml index 1316dd5..b143a0e 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml +++ b/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 \ No newline at end of file