Browse Source

feature1.0.0-img:添加微信用户接口

master
chengkun 4 years ago
parent
commit
ee5d3c47b6
  1. 51
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java
  2. 27
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/PlatformConstant.java
  3. 35
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java
  4. 33
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  5. 18
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java
  6. 225
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java
  7. 84
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxUserController.java
  8. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/CreatorProfit.java
  9. 61
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/FhUser.java
  10. 11
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokCollection.java
  11. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokLike.java
  12. 61
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/WxUser.java
  13. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java
  14. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitPageDto.java
  15. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitUpdateDto.java
  16. 27
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FhLoginDto.java
  17. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FhUserPageDto.java
  18. 35
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WxUserDto.java
  19. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WxUserPageDto.java
  20. 18
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/FhUserMapper.java
  21. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokCollectionMapper.java
  22. 18
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/WxUserMapper.java
  23. 54
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FhUserService.java
  24. 12
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokCollectionService.java
  25. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokLikeService.java
  26. 54
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/WxUserService.java
  27. 1
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java
  28. 206
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java
  29. 90
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokCollectionServiceImpl.java
  30. 3
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java
  31. 195
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokLikeServiceImpl.java
  32. 153
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java
  33. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java
  34. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java
  35. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java
  36. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitVo.java
  37. 36
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/FhUserInfoVo.java
  38. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokCollectionVo.java
  39. 4
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/BannerMapper.xml
  40. 35
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/FhUserMapper.xml
  41. 13
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml
  42. 11
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokLikeMapper.xml
  43. 35
      bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/WxUserMapper.xml

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

@ -0,0 +1,51 @@
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;
/**
* @author chengkun
* @date 2022/4/21 17:43
*/
@Configuration
@ConfigurationProperties(prefix = "bnyer.img.wechat")
@Getter
@RefreshScope
public class WxConfig {
@Value("${bnyer.img.wechat.appId}")
private String appId;
@Value("${bnyer.img.wechat.secret}")
public String secret;
@Value("${bnyer.img.wechat.sessionInfoUrl}")
public String sessionInfoUrl;
@Value("${bnyer.img.wechat.tokenUrl}")
public String tokenUrl;
@Bean
public WxMaConfig wxMaConfig() {
WxMaDefaultConfigImpl config = new WxMaDefaultConfigImpl();
config.setAppid(appId);
config.setSecret(secret);
return config;
}
@Bean
public WxMaService wxMaService(WxMaConfig maConfig) {
WxMaService service = new WxMaServiceImpl();
service.setWxMaConfig(maConfig);
return service;
}
}

27
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/PlatformConstant.java

@ -0,0 +1,27 @@
package com.bnyer.img.constants;
/**
* 平台常量
* @author chengkun
* @date 2022/4/21 18:12
*/
public class PlatformConstant {
/**
* 抖音
*/
public static final String TIKTOK = "0";
/**
* 快手
*/
public static final String FAST_HAND = "1";
/**
* 微信
*/
public static final String WECHAT = "2";
}

35
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java

@ -13,16 +13,46 @@ public class RedisKeyConstant {
*/ */
public static final String TIKTOK_IMG_COLLECT_NUM_KEY = "bnyer.img.tiktok.collectNum"; public static final String TIKTOK_IMG_COLLECT_NUM_KEY = "bnyer.img.tiktok.collectNum";
/**
* 快手小程序图片收藏数量键
*/
public static final String FAST_HAND_IMG_COLLECT_NUM_KEY = "bnyer.img.fh.collectNum";
/**
* 微信小程序图片收藏数量键
*/
public static final String WECHAT_IMG_COLLECT_NUM_KEY = "bnyer.img.wx.collectNum";
/** /**
* 抖音小程序用户点赞图片键 * 抖音小程序用户点赞图片键
*/ */
public static final String TIKTOK_USER_LIKE_KEY = "bnyer.img.tiktok.like"; public static final String TIKTOK_USER_LIKE_KEY = "bnyer.img.tiktok.like";
/**
* 快手小程序用户点赞图片键
*/
public static final String FAST_HAND_USER_LIKE_KEY = "bnyer.img.fh.like";
/**
* 微信小程序用户点赞图片键
*/
public static final String WECHAT_USER_LIKE_KEY = "bnyer.img.wx.like";
/** /**
* 抖音小程序图片点赞数量键 * 抖音小程序图片点赞数量键
*/ */
public static final String TIKTOK_IMG_LIKE_NUM_KEY = "bnyer.img.tiktok.likeNum"; public static final String TIKTOK_IMG_LIKE_NUM_KEY = "bnyer.img.tiktok.likeNum";
/**
* 快手小程序图片点赞数量键
*/
public static final String FAST_HAND_IMG_LIKE_NUM_KEY = "bnyer.img.fh.likeNum";
/**
* 微信小程序图片点赞数量键
*/
public static final String WECHAT_IMG_LIKE_NUM_KEY = "bnyer.img.wx.likeNum";
/** /**
* 抖音小程序图片下载数量键 * 抖音小程序图片下载数量键
*/ */
@ -38,6 +68,11 @@ public class RedisKeyConstant {
*/ */
public static final String TIKTOK_USER_LOGIN_KEY = "bnyer.img.tiktok.user:"; public static final String TIKTOK_USER_LOGIN_KEY = "bnyer.img.tiktok.user:";
/**
* 抖音小程序用户登录键
*/
public static final String WECHAT_USER_LOGIN_KEY = "bnyer.img.wx.user:";
/** /**
* 微信小程序艺术家登录键 * 微信小程序艺术家登录键
*/ */

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

@ -116,8 +116,8 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="收藏") @ApiOperation(value="收藏")
@PostMapping(value = "/tiktokCollect") @PostMapping(value = "/tiktokCollect")
public AjaxResult tiktokCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){ public AjaxResult tiktokCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){
tiktokCollectionService.collect(dto.getUserId(),dto.getImgId()); tiktokCollectionService.collect(dto.getUserId(),dto.getImgId(),"0");
log.info("【抖音图文小程序】用户【{}】收藏了图片【{}】",dto.getUserId(),dto.getImgId()); log.debug("【抖音图文小程序】用户【{}】收藏了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success(); return AjaxResult.success();
} }
@ -125,8 +125,8 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="取消收藏") @ApiOperation(value="取消收藏")
@PostMapping(value = "/tiktokUnCollect") @PostMapping(value = "/tiktokUnCollect")
public AjaxResult tiktokUnCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){ public AjaxResult tiktokUnCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){
tiktokCollectionService.unCollect(dto.getUserId(),dto.getImgId()); tiktokCollectionService.unCollect(dto.getUserId(),dto.getImgId(),"0");
log.info("【抖音图文小程序】用户【{}】取消收藏了图片【{}】",dto.getUserId(),dto.getImgId()); log.debug("【抖音图文小程序】用户【{}】取消收藏了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success(); return AjaxResult.success();
} }
@ -134,24 +134,24 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="查询是否收藏过") @ApiOperation(value="查询是否收藏过")
@PostMapping(value = "/judgeTiktokCollect") @PostMapping(value = "/judgeTiktokCollect")
public AjaxResult judgeTiktokCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){ public AjaxResult judgeTiktokCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){
log.info("【抖音图文小程序】查询是否收藏过参数为:{}", JSON.toJSONString(dto)); log.debug("【抖音图文小程序】查询是否收藏过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(tiktokCollectionService.judgeCollect(dto.getUserId(),dto.getImgId())); return AjaxResult.success(tiktokCollectionService.judgeCollect(dto.getUserId(),dto.getImgId(),"0"));
} }
//@TokenCheck //@TokenCheck
@ApiOperation(value="查看用户收藏列表") @ApiOperation(value="查看用户收藏列表")
@PostMapping(value = "/listTiktokCollection") @PostMapping(value = "/listTiktokCollection")
public AjaxResult listTiktokCollection(@Validated @RequestBody @ApiParam("用户收藏对象") CollectionUserDto dto){ public AjaxResult listTiktokCollection(@Validated @RequestBody @ApiParam("用户收藏对象") CollectionUserDto dto){
log.info("【抖音图文小程序】查看用户【{}】收藏列表", dto.getUserId()); log.debug("【抖音图文小程序】查看用户【{}】收藏列表", dto.getUserId());
return AjaxResult.success(tiktokCollectionService.getCollectionByUserId(dto.getUserId())); return AjaxResult.success(tiktokCollectionService.getCollectionByUserId(dto.getUserId(),"0"));
} }
//@TokenCheck //@TokenCheck
@ApiOperation(value="点赞") @ApiOperation(value="点赞")
@PostMapping(value = "/tiktokLike") @PostMapping(value = "/tiktokLike")
public AjaxResult tiktokLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){ public AjaxResult tiktokLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){
tiktokLikeService.like(dto.getUserId(),dto.getImgId()); tiktokLikeService.like(dto.getUserId(),dto.getImgId(),"0");
log.info("【抖音图文小程序】用户【{}】点赞了图片【{}】",dto.getUserId(),dto.getImgId()); log.debug("【抖音图文小程序】用户【{}】点赞了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success(); return AjaxResult.success();
} }
@ -159,8 +159,8 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="取消点赞") @ApiOperation(value="取消点赞")
@PostMapping(value = "/tiktokUnLike") @PostMapping(value = "/tiktokUnLike")
public AjaxResult tiktokUnLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){ public AjaxResult tiktokUnLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){
tiktokLikeService.unLike(dto.getUserId(),dto.getImgId()); tiktokLikeService.unLike(dto.getUserId(),dto.getImgId(),"0");
log.info("【抖音图文小程序】用户【{}】取消点赞了图片【{}】",dto.getUserId(),dto.getImgId()); log.debug("【抖音图文小程序】用户【{}】取消点赞了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success(); return AjaxResult.success();
} }
@ -168,8 +168,8 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="查询是否点赞过") @ApiOperation(value="查询是否点赞过")
@PostMapping(value = "/judgeTiktokLike") @PostMapping(value = "/judgeTiktokLike")
public AjaxResult judgeTiktokLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){ public AjaxResult judgeTiktokLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){
log.info("【抖音图文小程序】查询是否点赞过参数为:{}", JSON.toJSONString(dto)); log.debug("【抖音图文小程序】查询是否点赞过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(tiktokLikeService.judgeLike(dto.getUserId(),dto.getImgId())); return AjaxResult.success(tiktokLikeService.judgeLike(dto.getUserId(),dto.getImgId(),"0"));
} }
@ApiOperation(value="用户登录") @ApiOperation(value="用户登录")
@ -192,7 +192,7 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="新增/更新艺术家即将入账广告收益") @ApiOperation(value="新增/更新艺术家即将入账广告收益")
@PostMapping(value = "/insertOrUpdatePreAdProfit") @PostMapping(value = "/insertOrUpdatePreAdProfit")
public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){
log.info("【抖音图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); log.debug("【抖音图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam()));
} }
@ -200,7 +200,7 @@ public class TiktokMiniController extends BaseController {
@ApiOperation(value="新增/更新艺术家即将入账邀请收益") @ApiOperation(value="新增/更新艺术家即将入账邀请收益")
@PostMapping(value = "/insertOrUpdatePreInviteProfit") @PostMapping(value = "/insertOrUpdatePreInviteProfit")
public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){
log.info("【抖音图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); log.debug("【抖音图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto));
creatorProfitService.insertInvitedProfit(dto.extractParam()); creatorProfitService.insertInvitedProfit(dto.extractParam());
return AjaxResult.success(); return AjaxResult.success();
} }
@ -222,6 +222,5 @@ public class TiktokMiniController extends BaseController {
}else{ }else{
return AjaxResult.error("该艺术家不存在!"); return AjaxResult.error("该艺术家不存在!");
} }
} }
} }

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

@ -32,7 +32,7 @@ public class TiktokUserController extends BaseController {
private TiktokUserService tiktokUserService; private TiktokUserService tiktokUserService;
//@RequiresPermissions("system:config:list") //@RequiresPermissions("system:config:list")
@ApiOperation(value="查询user分页") @ApiOperation(value="查询抖音用户分页")
@PostMapping("/page") @PostMapping("/page")
public TableDataInfo pageTiktokUser(@RequestBody @ApiParam("分页对象") TiktokUserPageDto dto){ public TableDataInfo pageTiktokUser(@RequestBody @ApiParam("分页对象") TiktokUserPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
@ -48,26 +48,30 @@ public class TiktokUserController extends BaseController {
} }
//@RequiresPermissions("system:config:list") //@RequiresPermissions("system:config:list")
@ApiOperation(value="修改user") @ApiOperation(value="修改抖音用户")
@PostMapping(value = "/update") @PostMapping(value = "/update")
public AjaxResult update(@RequestBody @ApiParam("user对象") TiktokUserDto dto){ public AjaxResult update(@RequestBody @ApiParam("user对象") TiktokUserDto dto){
log.debug("【图文平台后台】修改user参数为:{}", JSON.toJSONString(dto)); log.debug("【图文平台后台】修改抖音用户参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(tiktokUserService.update(dto.extractParam())); return AjaxResult.success(tiktokUserService.update(dto.extractParam()));
} }
//@RequiresPermissions("system:config:list") //@RequiresPermissions("system:config:list")
@ApiOperation(value="删除user") @ApiOperation(value="删除抖音用户")
@DeleteMapping(value = "/delete/{ids}") @DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteTiktokUser(@PathVariable @ApiParam("主键ids") List<Long> ids){ public AjaxResult deleteTiktokUser(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除user参数为:{}", ids); log.debug("【图文平台后台】删除抖音用户参数为:{}", ids);
return AjaxResult.success(tiktokUserService.delete(ids)); return AjaxResult.success(tiktokUserService.delete(ids));
} }
//@RequiresPermissions("system:config:list") //@RequiresPermissions("system:config:list")
@ApiOperation(value="查询user详情") @ApiOperation(value="查询抖音用户详情")
@GetMapping(value = "/details/{id}") @GetMapping(value = "/details/{id}")
public AjaxResult detailsTiktokUser(@PathVariable @ApiParam("主键id") Long id){ public AjaxResult detailsTiktokUser(@PathVariable @ApiParam("主键id") Long id){
return AjaxResult.success(tiktokUserService.queryDetails(id)); TiktokUser user = tiktokUserService.queryDetails(id);
if(StringUtils.isNotBlank(user.getTiktokCode())){
user.setTiktokCode(Sm4Util.sm4Decrypt(user.getTiktokCode()));
}
return AjaxResult.success(user);
} }
//@RequiresPermissions("system:config:list") //@RequiresPermissions("system:config:list")

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

@ -0,0 +1,225 @@
package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
import com.bnyer.img.constants.TiktokConstant;
import com.bnyer.img.domain.Feedback;
import com.bnyer.img.dto.*;
import com.bnyer.img.service.*;
import com.bnyer.img.vo.CreatorTypeImgsVo;
import com.bnyer.img.vo.TiktokImgVo;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;
@Api(value = "【微信小程序】接口",tags = "【微信小程序】接口")
@RestController
@RequestMapping("/img/mini/wx")
@Slf4j
public class WxMiniController extends BaseController {
@Autowired
private BannerService bannerService;
@Autowired
private FeedBackService feedBackService;
@Autowired
private TypeService typeService;
@Autowired
private TiktokImgService tiktokImgService;
@Autowired
private WxUserService wxUserService;
@Autowired
private CreatorService creatorService;
@Autowired
private TiktokCollectionService tiktokCollectionService;
@Autowired
private TiktokLikeService tiktokLikeService;
@Autowired
private CreatorProfitService creatorProfitService;
//@TokenCheck
@ApiOperation(value="查询banner列表")
@GetMapping(value = "/listBanner")
public AjaxResult listBanner(){
return AjaxResult.success(bannerService.queryList("3"));
}
@ApiOperation(value="新增feedback")
@PostMapping(value = "/insertFeedback")
public AjaxResult insertFeedback(@Validated @RequestBody @ApiParam("feedback对象") FeedBackDto dto){
log.info("【微信图文小程序】新增反馈参数为:{}", JSON.toJSONString(dto));
Feedback feedback = dto.extractParam();
feedback.setSource("2");
return AjaxResult.success(feedBackService.insert(feedback));
}
//@TokenCheck
@ApiOperation(value="查询type列表")
@GetMapping(value = "/listType")
public AjaxResult listType(){
return AjaxResult.success(typeService.queryList());
}
//@TokenCheck
@ApiOperation(value="查询指定艺术家图片集合")
@PostMapping(value = "/listTiktokImgOut")
public AjaxResult listTiktokImgOut(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgListMiniDto dto){
return AjaxResult.success(tiktokImgService.queryOutList(dto.getCreatorId(),dto.getTypeId()));
}
//@TokenCheck
@ApiOperation(value="查询图片详情")
@GetMapping(value = "/detailsTiktokImg/{id}")
public AjaxResult detailsTiktokImg(@ApiParam("图片id") @PathVariable Long id){
return AjaxResult.success(tiktokImgService.queryImgDetails(String.valueOf(id)));
}
//@TokenCheck
@ApiOperation(value="艺术家界面查询艺术家图片分页")
@PostMapping(value = "/creatorImgsPage")
public TableDataInfo creatorImgsPage(@RequestBody @ApiParam("分页对象") BasePageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
return getDataTable(creatorService.queryThreeImgCreatorList());
}
//@TokenCheck
@ApiOperation(value="根据搜索码查询艺术家图片列表")
@PostMapping(value = "/creatorImgsDetails")
public AjaxResult creatorImgsDetails(@Validated @RequestBody @ApiParam("搜索码对象") CreatorImgsDetailsDto params){
CreatorTypeImgsVo creatorVo = creatorService.queryCreatorImgListByScanCode(params.getScanCode());
if(creatorVo == null){
return AjaxResult.error(TiktokConstant.TIKTOK_CREATOR_NOT_EXIST,"该艺术家不存在!");
}
return AjaxResult.success(creatorVo);
}
//@TokenCheck
@ApiOperation(value="收藏")
@PostMapping(value = "/tiktokCollect")
public AjaxResult tiktokCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){
tiktokCollectionService.collect(dto.getUserId(),dto.getImgId(),"2");
log.debug("【微信图文小程序】用户【{}】收藏了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="取消收藏")
@PostMapping(value = "/tiktokUnCollect")
public AjaxResult tiktokUnCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){
tiktokCollectionService.unCollect(dto.getUserId(),dto.getImgId(),"2");
log.debug("【微信图文小程序】用户【{}】取消收藏了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="查询是否收藏过")
@PostMapping(value = "/judgeTiktokCollect")
public AjaxResult judgeTiktokCollect(@Validated @RequestBody @ApiParam("收藏对象") CollectionDto dto){
log.debug("【微信图文小程序】查询是否收藏过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(tiktokCollectionService.judgeCollect(dto.getUserId(),dto.getImgId(),"2"));
}
//@TokenCheck
@ApiOperation(value="查看用户收藏列表")
@PostMapping(value = "/listTiktokCollection")
public AjaxResult listTiktokCollection(@Validated @RequestBody @ApiParam("用户收藏对象") CollectionUserDto dto){
log.debug("【微信图文小程序】查看用户【{}】收藏列表", dto.getUserId());
return AjaxResult.success(tiktokCollectionService.getCollectionByUserId(dto.getUserId(),"2"));
}
//@TokenCheck
@ApiOperation(value="点赞")
@PostMapping(value = "/tiktokLike")
public AjaxResult tiktokLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){
tiktokLikeService.like(dto.getUserId(),dto.getImgId(),"2");
log.debug("【微信图文小程序】用户【{}】点赞了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="取消点赞")
@PostMapping(value = "/tiktokUnLike")
public AjaxResult tiktokUnLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){
tiktokLikeService.unLike(dto.getUserId(),dto.getImgId(),"2");
log.debug("【微信图文小程序】用户【{}】取消点赞了图片【{}】",dto.getUserId(),dto.getImgId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="查询是否点赞过")
@PostMapping(value = "/judgeTiktokLike")
public AjaxResult judgeTiktokLike(@Validated @RequestBody @ApiParam("点赞对象") CollectionDto dto){
log.debug("【微信图文小程序】查询是否点赞过参数为:{}", JSON.toJSONString(dto));
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));
}
//@TokenCheck
@ApiOperation(value="查询首页图片列表")
@PostMapping(value = "/imgLists")
public TableDataInfo imgLists(@RequestBody @ApiParam("分页对象") BasePageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<TiktokImgVo> tiktokImgVos = tiktokImgService.queryFrontPage();
return getDataTable(tiktokImgVos);
}
//@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账广告收益")
@PostMapping(value = "/insertOrUpdatePreAdProfit")
public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){
log.debug("【微信图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam()));
}
//@TokenCheck
@ApiOperation(value="新增/更新艺术家即将入账邀请收益")
@PostMapping(value = "/insertOrUpdatePreInviteProfit")
public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){
log.debug("【微信图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto));
creatorProfitService.insertInvitedProfit(dto.extractParam());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="查询热门艺术家列表")
@GetMapping(value = "/listHotCreator")
public AjaxResult listHotCreator(){
return AjaxResult.success(creatorService.queryHotCreatorList());
}
//@TokenCheck
@ApiOperation(value="根据艺术家id获取搜索码")
@GetMapping(value = "/queryCreatorScanCodeById/{id}")
public AjaxResult queryCreatorScanCodeById(@PathVariable @ApiParam("艺术家id") Long id){
Map<String, Object> result = creatorService.queryCreatorScanCodeById(id);
if(result != null){
return AjaxResult.success(result);
}else{
return AjaxResult.error("该艺术家不存在!");
}
}
}

84
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxUserController.java

@ -0,0 +1,84 @@
package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.bnyer.common.core.utils.Sm4Util;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
import com.bnyer.img.domain.WxUser;
import com.bnyer.img.dto.StatusDto;
import com.bnyer.img.dto.WxUserDto;
import com.bnyer.img.dto.WxUserPageDto;
import com.bnyer.img.service.WxUserService;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(value = "【图文平台】微信用户接口",tags = "【图文平台】微信用户接口")
@RestController
@RequestMapping("/img/wxUser")
@Slf4j
public class WxUserController extends BaseController {
@Autowired
private WxUserService wxUserService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询微信用户分页")
@PostMapping("/page")
public TableDataInfo pageWxUser(@RequestBody @ApiParam("分页对象") WxUserPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<WxUser> wxUsers = wxUserService.queryPage(dto);
for (WxUser wxUser : wxUsers) {
if(wxUser != null){
if(StringUtils.isNotBlank(wxUser.getWxCode())){
wxUser.setWxCode(Sm4Util.sm4Decrypt(wxUser.getWxCode()));
}
}
}
return getDataTable(wxUsers);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="修改微信用户")
@PostMapping(value = "/update")
public AjaxResult update(@RequestBody @ApiParam("user对象") WxUserDto dto){
log.debug("【图文平台后台】修改微信用户参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(wxUserService.update(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="删除微信用户")
@DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteWxUser(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除微信用户参数为:{}", ids);
return AjaxResult.success(wxUserService.delete(ids));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询微信用户详情")
@GetMapping(value = "/details/{id}")
public AjaxResult detailsWxUser(@PathVariable @ApiParam("主键id") Long id){
WxUser wxUser = wxUserService.queryDetails(id);
if(StringUtils.isNotBlank(wxUser.getWxCode())){
wxUser.setWxCode(Sm4Util.sm4Decrypt(wxUser.getWxCode()));
}
return AjaxResult.success(wxUser);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="变更type显示状态")
@PostMapping(value = "/changeStatus")
public AjaxResult changeStatus(@Validated @RequestBody @ApiParam("type状态对象") StatusDto dto){
log.debug("【图文平台后台】变更type参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(wxUserService.changeStatus(dto.getId(),dto.getStatus()));
}
}

4
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/CreatorProfit.java

@ -76,10 +76,10 @@ public class CreatorProfit extends BaseDomain {
private String platform; private String platform;
/** /**
* 应用类型(0->次元壁纸) * 应用类型(0->节点壁纸)
*/ */
@TableField(value = "app_type") @TableField(value = "app_type")
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
/** /**

61
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/FhUser.java

@ -0,0 +1,61 @@
package com.bnyer.img.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;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author chengkun
* @date 2022/7/4 13:58
*/
/**
* img快手平台用户表
*/
@ApiModel(value="com-bnyer-img-domain-FhUser")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_fh_user")
public class FhUser extends BaseDomain {
/**
* id
*/
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="id")
private Long id;
/**
* 用户昵称
*/
@TableField(value = "username")
@ApiModelProperty(value="用户昵称")
private String username;
/**
* 快手id
*/
@TableField(value = "fh_code")
@ApiModelProperty(value="快手id")
private String fhCode;
/**
* 头像img地址
*/
@TableField(value = "img")
@ApiModelProperty(value="头像img地址")
private String img;
private static final long serialVersionUID = 1L;
}

11
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokCollection.java

@ -14,7 +14,7 @@ import lombok.*;
@ToString @ToString
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@TableName(value = "img_tiktok_collection") @TableName(value = "img_collection")
public class TiktokCollection extends BaseDomain { public class TiktokCollection extends BaseDomain {
/** /**
* id * id
@ -37,5 +37,12 @@ public class TiktokCollection extends BaseDomain {
@ApiModelProperty(value="图片id") @ApiModelProperty(value="图片id")
private Long imgId; private Long imgId;
/**
* 平台(0->抖音;1->快手;2->微信)
*/
@TableField(value = "platform")
@ApiModelProperty(value="平台(0->抖音;1->快手;2->微信)")
private String platform;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

12
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokLike.java

@ -23,7 +23,7 @@ import java.io.Serializable;
@ToString @ToString
@AllArgsConstructor @AllArgsConstructor
@NoArgsConstructor @NoArgsConstructor
@TableName(value = "img_tiktok_like") @TableName(value = "img_like")
public class TiktokLike extends BaseDomain { public class TiktokLike extends BaseDomain {
/** /**
* 主键 * 主键
@ -47,11 +47,11 @@ public class TiktokLike extends BaseDomain {
private Long imgId; private Long imgId;
/** /**
* 是否显示 (0->隐藏1->显示) * 平台(0->抖音;1->快手;2->微信)
*/ */
@TableField(value = "is_show") @TableField(value = "platform")
@ApiModelProperty(value="是否显示 (0->隐藏;1->显示)") @ApiModelProperty(value="平台(0->抖音;1->快手;2->微信)")
private String isShow; private String platform;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

61
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/WxUser.java

@ -0,0 +1,61 @@
package com.bnyer.img.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;
import java.io.Serializable;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
/**
* @author chengkun
* @date 2022/7/4 13:58
*/
/**
* img微信平台用户表
*/
@ApiModel(value="com-bnyer-img-domain-WxUser")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_wx_user")
public class WxUser extends BaseDomain {
/**
* id
*/
@TableId(value = "id", type = IdType.INPUT)
@ApiModelProperty(value="id")
private Long id;
/**
* 用户昵称
*/
@TableField(value = "username")
@ApiModelProperty(value="用户昵称")
private String username;
/**
* 微信id
*/
@TableField(value = "wx_code")
@ApiModelProperty(value="微信id")
private String wxCode;
/**
* 头像img地址
*/
@TableField(value = "img")
@ApiModelProperty(value="头像img地址")
private String img;
private static final long serialVersionUID = 1L;
}

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java

@ -34,7 +34,7 @@ public class CreatorProfitAdInsertDto implements Serializable {
private String platform; private String platform;
@NotBlank(message = "应用类型不能为空!") @NotBlank(message = "应用类型不能为空!")
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
public CreatorProfit extractParam(){ public CreatorProfit extractParam(){

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitPageDto.java

@ -19,7 +19,7 @@ public class CreatorProfitPageDto extends BasePageDto {
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform; private String platform;
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitUpdateDto.java

@ -45,7 +45,7 @@ public class CreatorProfitUpdateDto implements Serializable {
private String platform; private String platform;
@NotBlank(message = "应用类型不能为空!") @NotBlank(message = "应用类型不能为空!")
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
@NotBlank(message = "收益类型不能为空!") @NotBlank(message = "收益类型不能为空!")

27
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FhLoginDto.java

@ -0,0 +1,27 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("快手登录入参")
public class FhLoginDto implements Serializable {
@NotNull(message = "code不能为空!")
@ApiModelProperty(value = "微信code")
private String code;
@NotNull(message = "加密数据不能为空!")
@ApiModelProperty(value = "加密数据")
private String encryptedData;
@NotNull(message = "加密算法向量不能为空!")
@ApiModelProperty(value = "加密算法向量")
private String iv;
}

19
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FhUserPageDto.java

@ -0,0 +1,19 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@ApiModel("快手用户分页接收类")
public class FhUserPageDto extends BasePageDto {
@ApiModelProperty(value="用户昵称")
private String username;
@ApiModelProperty(value="是否展示")
private String isShow;
}

35
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WxUserDto.java

@ -0,0 +1,35 @@
package com.bnyer.img.dto;
import com.bnyer.common.core.utils.bean.BeanUtils;
import com.bnyer.img.domain.WxUser;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("微信用户接收类")
public class WxUserDto implements Serializable {
@ApiModelProperty(value="id")
private Long id;
@ApiModelProperty(value="用户昵称")
private String username;
@ApiModelProperty(value="微信id")
private String wxCode;
@ApiModelProperty(value="头像img地址")
private String img;
public WxUser extractParam(){
WxUser wxUser = new WxUser();
BeanUtils.copyProperties(this, wxUser);
return wxUser;
}
}

19
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WxUserPageDto.java

@ -0,0 +1,19 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@ApiModel("微信用户分页接收类")
public class WxUserPageDto extends BasePageDto {
@ApiModelProperty(value="用户昵称")
private String username;
@ApiModelProperty(value="是否展示")
private String isShow;
}

18
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/FhUserMapper.java

@ -0,0 +1,18 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.FhUser;
import com.bnyer.img.dto.FhUserPageDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author chengkun
* @date 2022/7/4 13:58
*/
@Mapper
public interface FhUserMapper extends BaseMapper<FhUser> {
List<FhUser> queryPage(@Param("params") FhUserPageDto dto);
}

5
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokCollectionMapper.java

@ -14,7 +14,8 @@ public interface TiktokCollectionMapper extends BaseMapper<TiktokCollection> {
/** /**
* 查询用户收藏列表 * 查询用户收藏列表
* @param userId 用户Id * @param userId 用户Id
* @param platform 平台
* @return - * @return -
*/ */
List<TiktokCollectionVo> getCollectionByUserId(@Param("userId") Long userId); List<TiktokCollectionVo> getCollectionByUserId(@Param("userId") Long userId,@Param("platform") String platform);
} }

18
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/WxUserMapper.java

@ -0,0 +1,18 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.WxUser;
import com.bnyer.img.dto.WxUserPageDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author chengkun
* @date 2022/7/4 13:58
*/
@Mapper
public interface WxUserMapper extends BaseMapper<WxUser> {
List<WxUser> queryPage(@Param("params") WxUserPageDto dto);
}

54
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FhUserService.java

@ -0,0 +1,54 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.FhUser;
import com.bnyer.img.dto.FhLoginDto;
import com.bnyer.img.dto.FhUserPageDto;
import java.util.List;
import java.util.Map;
public interface FhUserService {
/**
* 修改快手用户
* @param fhUser 快手用户
* @return -
*/
int update(FhUser fhUser);
/**
* 批量删除快手用户
* @param ids 主键Ids
* @return -
*/
int delete(List<Long> ids);
/**
* 查询快手用户分页
* @param dto 分页条件对象
* @return -
*/
List<FhUser> queryPage(FhUserPageDto dto);
/**
* 根据id获取用户
* @param id 主键id
* @return -
*/
FhUser queryDetails(Long id);
/**
* 快手登录参数
* @param dto 登录参数
* @return -
*/
Map<String,Object> login(FhLoginDto dto);
/**
* 变更显示状态
* @param id 主键id
* @param status 状态
* @return -
*/
int changeStatus(Long id,String status);
}

12
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokCollectionService.java

@ -29,29 +29,33 @@ public interface TiktokCollectionService {
* 收藏 * 收藏
* @param userId 用户Id * @param userId 用户Id
* @param imgId 图片Id * @param imgId 图片Id
* @param platform 平台
*/ */
void collect(Long userId, Long imgId); void collect(Long userId, Long imgId,String platform);
/** /**
* 取消收藏 * 取消收藏
* @param userId 用户Id * @param userId 用户Id
* @param imgId 图片Id * @param imgId 图片Id
* @param platform 平台
*/ */
void unCollect(Long userId, Long imgId); void unCollect(Long userId, Long imgId,String platform);
/** /**
* 判断是否收藏 * 判断是否收藏
* @param userId 用户Id * @param userId 用户Id
* @param imgId 图片Id * @param imgId 图片Id
* @param platform 平台
* @return - * @return -
*/ */
boolean judgeCollect(Long userId, Long imgId); boolean judgeCollect(Long userId, Long imgId,String platform);
/** /**
* 查询用户收藏列表 * 查询用户收藏列表
* @param userId 用户Id * @param userId 用户Id
* @param platform 平台
* @return - * @return -
*/ */
List<TiktokCollectionVo> getCollectionByUserId(Long userId); List<TiktokCollectionVo> getCollectionByUserId(Long userId,String platform);
} }

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokLikeService.java

@ -26,21 +26,24 @@ public interface TiktokLikeService {
* 点赞 * 点赞
* @param userId 用户Id * @param userId 用户Id
* @param imgId 图片Id * @param imgId 图片Id
* @param platform 平台
*/ */
void like(Long userId, Long imgId); void like(Long userId, Long imgId,String platform);
/** /**
* 取消点赞 * 取消点赞
* @param userId 用户Id * @param userId 用户Id
* @param imgId 图片Id * @param imgId 图片Id
* @param platform 平台
*/ */
void unLike(Long userId, Long imgId); void unLike(Long userId, Long imgId,String platform);
/** /**
* 判断是否进行过点赞 * 判断是否进行过点赞
* @param userId 用户id * @param userId 用户id
* @param imgId 图片id * @param imgId 图片id
* @param platform 平台
* @return - * @return -
*/ */
boolean judgeLike(Long userId, Long imgId); boolean judgeLike(Long userId, Long imgId,String platform);
} }

54
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/WxUserService.java

@ -0,0 +1,54 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.WxUser;
import com.bnyer.img.dto.WxLoginDto;
import com.bnyer.img.dto.WxUserPageDto;
import java.util.List;
import java.util.Map;
public interface WxUserService {
/**
* 修改微信用户
* @param wxUser 微信用户
* @return -
*/
int update(WxUser wxUser);
/**
* 批量删除微信用户
* @param ids 主键Ids
* @return -
*/
int delete(List<Long> ids);
/**
* 查询微信用户分页
* @param dto 分页条件对象
* @return -
*/
List<WxUser> queryPage(WxUserPageDto dto);
/**
* 根据id获取用户
* @param id 主键id
* @return -
*/
WxUser queryDetails(Long id);
/**
* 微信登录参数
* @param param 登录参数
* @return -
*/
Map<String,Object> login(WxLoginDto param);
/**
* 变更显示状态
* @param id 主键id
* @param status 状态
* @return -
*/
int changeStatus(Long id,String status);
}

1
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java

@ -66,6 +66,7 @@ public class CreatorServiceImpl implements CreatorService {
@Autowired @Autowired
private RedisService redisService; private RedisService redisService;
@Autowired
private WxMaUserService wxMaUserService; private WxMaUserService wxMaUserService;
/** /**

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

@ -0,0 +1,206 @@
//package com.bnyer.img.service.impl;
//
//import cn.binarywang.wx.miniapp.api.WxMaUserService;
//import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
//import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
//import com.alibaba.fastjson.JSONObject;
//import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
//import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
//import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
//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.utils.uuid.IdUtils;
//import com.bnyer.common.redis.service.RedisService;
//import com.bnyer.img.constants.RedisKeyConstant;
//import com.bnyer.img.constants.TiktokConstant;
//import com.bnyer.img.domain.TiktokCollection;
//import com.bnyer.img.domain.TiktokLike;
//import com.bnyer.img.domain.FhUser;
//import com.bnyer.img.domain.TiktokUser;
//import com.bnyer.img.dto.FhLoginDto;
//import com.bnyer.img.dto.WxLoginDto;
//import com.bnyer.img.dto.FhUserPageDto;
//import com.bnyer.img.mapper.TiktokCollectionMapper;
//import com.bnyer.img.mapper.TiktokLikeMapper;
//import com.bnyer.img.mapper.FhUserMapper;
//import com.bnyer.img.service.FhUserService;
//import com.bnyer.img.vo.FhUserInfoVo;
//import com.bnyer.img.vo.TiktokSessionInfoVo;
//import com.bnyer.img.vo.TiktokUserInfoVo;
//import lombok.extern.slf4j.Slf4j;
//import me.chanjar.weixin.common.error.WxErrorException;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.stereotype.Service;
//import org.springframework.transaction.annotation.Transactional;
//
//import javax.crypto.Cipher;
//import javax.crypto.spec.IvParameterSpec;
//import javax.crypto.spec.SecretKeySpec;
//import java.util.*;
//import java.util.concurrent.TimeUnit;
//
//@Service
//@Slf4j
//public class FhUserServiceImpl implements FhUserService {
//
// @Autowired
// private FhUserMapper fhUserMapper;
//
// @Autowired
// private RedisService redisService;
//
// @Autowired
// private TiktokLikeMapper tiktokLikeMapper;
//
// @Autowired
// private TiktokCollectionMapper tiktokCollectionMapper;
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public int update(FhUser fhUser) {
// fhUser.setUpdateTime(new Date());
// if (StringUtils.isNotBlank(fhUser.getFhCode())) {
// fhUser.setFhCode(Sm4Util.sm4Encryption(fhUser.getFhCode()));
// }
// return fhUserMapper.updateById(fhUser);
// }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public int delete(List<Long> ids) {
// int delete = fhUserMapper.deleteBatchIds(ids);
// //删除对应用户收藏及点赞记录
// LambdaQueryWrapper<TiktokCollection> collectionWrapper = new LambdaQueryWrapper<>();
// LambdaQueryWrapper<TiktokLike> likeWrapper = new LambdaQueryWrapper<>();
// for (Long id : ids) {
// collectionWrapper.eq(TiktokCollection::getUserId, id)
// .eq(TiktokCollection::getPlatform, "1");
// tiktokCollectionMapper.delete(collectionWrapper);
// likeWrapper.eq(TiktokLike::getUserId, id)
// .eq(TiktokLike::getPlatform, "1");
// tiktokLikeMapper.delete(likeWrapper);
// }
// return delete;
// }
//
// @Override
// public List<FhUser> queryPage(FhUserPageDto dto) {
// return fhUserMapper.queryPage(dto);
// }
//
// @Override
// public FhUser queryDetails(Long id) {
// return fhUserMapper.selectById(id);
// }
//
// /**
// * 获取用户openId及sessionKey
// * @param code 登录凭证code
// * @return -
// */
// private TiktokSessionInfoVo getSessionInfo(String code) {
// Map<String,String> map = new HashMap<>();
// map.put("appid",tiktokConfig.getAppId());
// map.put("secret", tiktokConfig.getSecret());
// map.put("code", code);
// map.put("grant_type", "client_credential");
// JSONObject sessionInfo = restTemplate.postForObject(tiktokConfig.getSessionInfoUrl(), map, JSONObject.class);
// if(!sessionInfo.getString("err_no").equals(TiktokConstant.SUCCESS)){
// log.error("抖音授权session接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",sessionInfo.getString("err_no"),sessionInfo.getString("err_tips"));
// throw new ServiceException("抖音授权session接口调用失败!",TiktokConstant.TIKTOK_AUTH_ERROR);
// }
// //调用成功,组装返回数据
// JSONObject data = sessionInfo.getJSONObject("data");
// TiktokSessionInfoVo result = new TiktokSessionInfoVo();
// result.setSessionKey(data.getString("session_key"));
// result.setOpenId(data.getString("openid"));
// result.setUnionId(data.getString("unionid"));
// return result;
// }
//
// /**
// * 获取用户敏感信息
// * @param sessionKey -
// * @param encryptedData 敏感数据
// * @param iv 加密向量
// * @return -
// */
// private FhUserInfoVo getUserInfo(String sessionKey, String encryptedData, String iv){
// Base64.Decoder decoder = Base64.getDecoder();
// byte[] sessionKeyBytes = decoder.decode(sessionKey);
// byte[] ivBytes = decoder.decode(iv);
// byte[] encryptedBytes = decoder.decode(encryptedData);
//
// Cipher cipher = null;
// try {
// cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
// SecretKeySpec skeySpec = new SecretKeySpec(sessionKeyBytes, "AES");
// IvParameterSpec ivSpec = new IvParameterSpec(ivBytes);
// cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivSpec);
// byte[] ret = cipher.doFinal(encryptedBytes);
// if (null != ret && ret.length > 0) {
// String result = new String(ret, "UTF-8");
// return JSONObject.parseObject(result,FhUserInfoVo.class);
// }
// } catch (Exception e) {
// e.printStackTrace();
// }
// return null;
// }
//
// private FhUser saveOrUpdate(String openId, String sessionKey, String encryptedData, String iv) {
// //获取用户昵称和头像
// FhUserInfoVo userInfo = this.getUserInfo(sessionKey, encryptedData, iv);
// //创建用户
// FhUser fhUser = new FhUser();
// fhUser.setImg(userInfo.getAvatarUrl());
// fhUser.setUsername(userInfo.getNickName());
// fhUser.setFhCode(Sm4Util.sm4Encryption(openId));
// fhUser.setCreateTime(new Date());
// fhUser.setUpdateTime(new Date());
// fhUserMapper.insert(fhUser);
// log.info("快手用户【{}】创建成功!", openId);
// return fhUser;
// }
//
// @Override
// public Map<String, Object> login(FhLoginDto param) {
// TiktokSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode());
// //检查数据库中是否存在该openId,存在则直接设置会话状态登录;不存在则新增
// LambdaQueryWrapper<TiktokUser> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(sessionInfo.getOpenId() != null,TiktokUser::getTiktokCode,Sm4Util.sm4Encryption(sessionInfo.getOpenId()));
// TiktokUser tiktokUser = tiktokUserMapper.selectOne(wrapper);
// if(tiktokUser == null){
// //新用户,新增
// tiktokUser = this.saveUserInfo(sessionInfo.getOpenId(), sessionInfo.getSessionKey(), dto.getEncryptedData(), dto.getIv());
// }
// //设置会话状态
// String redisKey = RedisKeyConstant.TIKTOK_USER_LOGIN_KEY+Sm4Util.sm4Encryption(sessionInfo.getOpenId());
// //存在该登录态则删除刷新
// if(redisService.hasKey(redisKey)){
// redisService.deleteObject(redisKey);
// }
// StringBuffer sb = new StringBuffer();
// String randomId = IdUtils.fastSimpleUUID();
// sb.append(randomId).append("#").append(sessionInfo.getOpenId());
//
// Map<String, Object> map = new HashMap<>(2);
// map.put("token", sb.toString());
// map.put("sessionKey", sessionInfo.getSessionKey());
// map.put("userInfo",tiktokUser);
// //设置登录会话
// redisService.setCacheObject(redisKey,map,30L, TimeUnit.DAYS);
// return map;
// }
//
// @Override
// @Transactional(rollbackFor = Exception.class)
// public int changeStatus(Long id, String status) {
// LambdaUpdateWrapper<FhUser> wrapper = new LambdaUpdateWrapper<>();
// wrapper.eq(FhUser::getId, id);
// FhUser user = new FhUser();
// user.setIsShow(status);
// return fhUserMapper.update(user, wrapper);
// }
//}

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

@ -2,6 +2,7 @@ package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.PlatformConstant;
import com.bnyer.img.constants.RedisKeyConstant; import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.TiktokCollection; import com.bnyer.img.domain.TiktokCollection;
import com.bnyer.img.domain.TiktokImg; import com.bnyer.img.domain.TiktokImg;
@ -15,6 +16,7 @@ import org.springframework.data.redis.core.Cursor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -37,26 +39,37 @@ public class TiktokCollectionServiceImpl implements TiktokCollectionService {
public void insertNum() { public void insertNum() {
log.info("==============redis同步图片收藏数量到db数据开始!==============="); log.info("==============redis同步图片收藏数量到db数据开始!===============");
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
String imgCollectNumKey = RedisKeyConstant.TIKTOK_IMG_COLLECT_NUM_KEY; String tiktokCollectNumKey = RedisKeyConstant.TIKTOK_IMG_COLLECT_NUM_KEY;
Cursor<Map.Entry<Object, Object>> collectionNum = redisService.getHashScan(imgCollectNumKey); String fastHandCollectNumKey = RedisKeyConstant.FAST_HAND_IMG_COLLECT_NUM_KEY;
while (collectionNum.hasNext()){ String wechatCollectNumKey = RedisKeyConstant.WECHAT_IMG_COLLECT_NUM_KEY;
Map.Entry<Object, Object> next = collectionNum.next(); List<String> list = new ArrayList<>();
String imgId = (String) next.getKey(); list.add(tiktokCollectNumKey);
Long imgLongId = Long.parseLong(imgId); list.add(fastHandCollectNumKey);
Integer collectNum = (Integer) next.getValue(); list.add(wechatCollectNumKey);
TiktokImg img = tiktokImgMapper.selectById(imgLongId); for (String redisKey : list) {
if(img == null){ if(redisService.hasKey(redisKey)){
redisService.deleteHashKey(imgCollectNumKey, imgId); Cursor<Map.Entry<Object, Object>> collectionNum = redisService.getHashScan(redisKey);
continue; while (collectionNum.hasNext()){
Map.Entry<Object, Object> next = collectionNum.next();
String imgId = (String) next.getKey();
Long imgLongId = Long.parseLong(imgId);
Integer collectNum = (Integer) next.getValue();
TiktokImg img = tiktokImgMapper.selectById(imgLongId);
if(img == null){
redisService.deleteHashKey(redisKey, imgId);
continue;
}
TiktokImg tiktokImg = new TiktokImg();
tiktokImg.setId(imgLongId);
tiktokImg.setUpdateTime(new Date());
tiktokImg.setCollectionNum(collectNum+img.getCollectionNum());
tiktokImgMapper.updateById(tiktokImg);
//删除缓存
redisService.deleteHashKey(redisKey, imgId);
}
} }
TiktokImg tiktokImg = new TiktokImg();
tiktokImg.setId(imgLongId);
tiktokImg.setUpdateTime(new Date());
tiktokImg.setCollectionNum(collectNum+img.getCollectionNum());
tiktokImgMapper.updateById(tiktokImg);
//删除缓存
redisService.deleteHashKey(imgCollectNumKey, imgId);
} }
log.info("==============redis同步图片收藏数量到db数据完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime); log.info("==============redis同步图片收藏数量到db数据完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime);
} }
@ -77,37 +90,54 @@ public class TiktokCollectionServiceImpl implements TiktokCollectionService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void collect(Long userId, Long imgId) { public void collect(Long userId, Long imgId, String platform) {
String imgCollectNumKey = RedisKeyConstant.TIKTOK_IMG_COLLECT_NUM_KEY; String imgCollectNumKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
imgCollectNumKey = RedisKeyConstant.TIKTOK_IMG_COLLECT_NUM_KEY;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
imgCollectNumKey = RedisKeyConstant.FAST_HAND_IMG_COLLECT_NUM_KEY;
}else{
imgCollectNumKey = RedisKeyConstant.WECHAT_IMG_COLLECT_NUM_KEY;
}
TiktokCollection tiktokCollection = new TiktokCollection(); TiktokCollection tiktokCollection = new TiktokCollection();
tiktokCollection.setImgId(imgId); tiktokCollection.setImgId(imgId);
tiktokCollection.setUserId(userId); tiktokCollection.setUserId(userId);
tiktokCollection.setPlatform(platform);
tiktokCollection.setCreateTime(new Date()); tiktokCollection.setCreateTime(new Date());
tiktokCollection.setUpdateTime(new Date()); tiktokCollection.setUpdateTime(new Date());
tiktokCollectionMapper.insert(tiktokCollection); tiktokCollectionMapper.insert(tiktokCollection);
redisService.hashIncr(imgCollectNumKey,String.valueOf(imgId), 1); redisService.hashIncr(imgCollectNumKey,String.valueOf(imgId), 1);
log.info("用户【{}】收藏了图片【{}】,收藏量增加1",userId,imgId); log.debug("平台【{}】用户【{}】收藏了图片【{}】,收藏量增加1",platform,userId,imgId);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void unCollect(Long userId, Long imgId) { public void unCollect(Long userId, Long imgId, String platform) {
String imgCollectNumKey = RedisKeyConstant.TIKTOK_IMG_COLLECT_NUM_KEY; String imgCollectNumKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
imgCollectNumKey = RedisKeyConstant.TIKTOK_IMG_COLLECT_NUM_KEY;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
imgCollectNumKey = RedisKeyConstant.FAST_HAND_IMG_COLLECT_NUM_KEY;
}else{
imgCollectNumKey = RedisKeyConstant.WECHAT_IMG_COLLECT_NUM_KEY;
}
LambdaQueryWrapper<TiktokCollection> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TiktokCollection> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TiktokCollection::getUserId,userId).eq(TiktokCollection::getImgId,imgId); wrapper.eq(TiktokCollection::getUserId,userId).eq(TiktokCollection::getImgId,imgId)
.eq(TiktokCollection::getPlatform,platform);
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)); Integer collectValue = redisService.getCacheMapValue(imgCollectNumKey, String.valueOf(imgId));
if(collectValue <= 0){ if(collectValue <= 0){
redisService.deleteHashKey(imgCollectNumKey,String.valueOf(imgId)); redisService.deleteHashKey(imgCollectNumKey,String.valueOf(imgId));
} }
log.info("用户【{}】取消收藏了图片【{}】,收藏量减少1",userId,imgId); log.debug("平台【{}】用户【{}】取消收藏了图片【{}】,收藏量减少1",platform,userId,imgId);
} }
@Override @Override
public boolean judgeCollect(Long userId, Long imgId) { public boolean judgeCollect(Long userId, Long imgId,String platform) {
LambdaQueryWrapper<TiktokCollection> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TiktokCollection> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TiktokCollection::getUserId, userId).eq(TiktokCollection::getImgId, imgId); wrapper.eq(TiktokCollection::getUserId, userId).eq(TiktokCollection::getImgId, imgId)
.eq(TiktokCollection::getPlatform,platform);
TiktokCollection tiktokCollection = tiktokCollectionMapper.selectOne(wrapper); TiktokCollection tiktokCollection = tiktokCollectionMapper.selectOne(wrapper);
if(tiktokCollection != null){ if(tiktokCollection != null){
//存在则收藏过 //存在则收藏过
@ -118,7 +148,7 @@ public class TiktokCollectionServiceImpl implements TiktokCollectionService {
} }
} }
@Override @Override
public List<TiktokCollectionVo> getCollectionByUserId(Long userId) { public List<TiktokCollectionVo> getCollectionByUserId(Long userId, String platform) {
return tiktokCollectionMapper.getCollectionByUserId(userId); return tiktokCollectionMapper.getCollectionByUserId(userId,platform);
} }
} }

3
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java

@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.RedisKeyConstant; import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.Banner;
import com.bnyer.img.domain.TiktokCollection; import com.bnyer.img.domain.TiktokCollection;
import com.bnyer.img.domain.TiktokImg; import com.bnyer.img.domain.TiktokImg;
import com.bnyer.img.domain.TiktokLike; import com.bnyer.img.domain.TiktokLike;
@ -17,14 +16,12 @@ import com.bnyer.img.service.TiktokImgService;
import com.bnyer.img.vo.TiktokImgVo; import com.bnyer.img.vo.TiktokImgVo;
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.data.redis.core.Cursor;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map;
@Service @Service
@Slf4j @Slf4j

195
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokLikeServiceImpl.java

@ -2,6 +2,7 @@ package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.PlatformConstant;
import com.bnyer.img.constants.RedisKeyConstant; import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.TiktokImg; import com.bnyer.img.domain.TiktokImg;
import com.bnyer.img.domain.TiktokLike; import com.bnyer.img.domain.TiktokLike;
@ -33,8 +34,8 @@ public class TiktokLikeServiceImpl implements TiktokLikeService {
@Autowired @Autowired
private TiktokImgMapper tiktokImgMapper; private TiktokImgMapper tiktokImgMapper;
private String getHashKey(Long userId, Long imgId){ private String getHashKey(Long userId, Long imgId,String platform){
return userId+":"+imgId; return userId+":"+imgId+":"+platform;
} }
@Override @Override
@ -42,43 +43,55 @@ public class TiktokLikeServiceImpl implements TiktokLikeService {
public void insertRecord() { public void insertRecord() {
log.info("==============redis同步点赞记录到db数据开始!==============="); log.info("==============redis同步点赞记录到db数据开始!===============");
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
//拿缓存 //拿抖音缓存
String redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY; String tiktokKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY;
if(redisService.hasKey(redisKey)){ //拿快手缓存
Cursor<Map.Entry<Object, Object>> like = redisService.getHashScan(redisKey); String fastHandKey = RedisKeyConstant.FAST_HAND_USER_LIKE_KEY;
List<TiktokLike> list = new ArrayList<>(); //拿微信缓存
List<String> keyList = new ArrayList<>(); String wechatKey = RedisKeyConstant.WECHAT_USER_LIKE_KEY;
while (like.hasNext()){ List<String> redisKeylist= new ArrayList<>();
Map.Entry<Object, Object> next = like.next(); redisKeylist.add(tiktokKey);
String key = (String) next.getKey(); redisKeylist.add(fastHandKey);
//分离出 userId,imgId redisKeylist.add(wechatKey);
String[] split = key.split(":"); for (String redisKey : redisKeylist) {
String userId = split[0]; if(redisService.hasKey(redisKey)){
Long userLongId = Long.parseLong(userId); Cursor<Map.Entry<Object, Object>> like = redisService.getHashScan(redisKey);
String imgId = split[1]; List<TiktokLike> list = new ArrayList<>();
Long imgLongId = Long.parseLong(imgId); List<String> keyList = new ArrayList<>();
//判断图片是否存在 while (like.hasNext()){
TiktokImg img = tiktokImgMapper.selectById(imgLongId); Map.Entry<Object, Object> next = like.next();
if(img == null){ String key = (String) next.getKey();
//不存在则图片Id加入删除列表,遍历完删除 //分离出 userId,imgId,platform
String[] split = key.split(":");
String userId = split[0];
Long userLongId = Long.parseLong(userId);
String imgId = split[1];
Long imgLongId = Long.parseLong(imgId);
String platform = split[2];
//判断图片是否存在
TiktokImg img = tiktokImgMapper.selectById(imgLongId);
if(img == null){
//不存在则图片Id加入删除列表,遍历完删除
keyList.add(key);
continue;
}
TiktokLike tiktokLike = new TiktokLike();
tiktokLike.setUserId(userLongId);
tiktokLike.setImgId(imgLongId);
tiktokLike.setPlatform(platform);
tiktokLike.setIsShow("1");
tiktokLike.setSort(0);
tiktokLike.setCreateTime(new Date());
tiktokLike.setUpdateTime(new Date());
list.add(tiktokLike);
keyList.add(key); keyList.add(key);
continue;
} }
TiktokLike tiktokLike = new TiktokLike(); //数据插入数据库并删除缓存
tiktokLike.setUserId(userLongId); tiktokLikeMapper.insertBatch(list);
tiktokLike.setImgId(imgLongId); if(keyList.size() > 0){
tiktokLike.setIsShow("1"); for (String key : keyList) {
tiktokLike.setSort(0); redisService.deleteHashKey(redisKey, key);
tiktokLike.setCreateTime(new Date()); }
tiktokLike.setUpdateTime(new Date());
list.add(tiktokLike);
keyList.add(key);
}
//数据插入数据库并删除缓存
tiktokLikeMapper.insertBatch(list);
if(keyList.size() > 0){
for (String key : keyList) {
redisService.deleteHashKey(redisKey, key);
} }
} }
} }
@ -90,25 +103,35 @@ public class TiktokLikeServiceImpl implements TiktokLikeService {
public void insertNum() { public void insertNum() {
log.info("==============redis同步图片点赞数量到db数据开始!==============="); log.info("==============redis同步图片点赞数量到db数据开始!===============");
long startTime = System.currentTimeMillis(); long startTime = System.currentTimeMillis();
String imgLikeNumKey = RedisKeyConstant.TIKTOK_IMG_LIKE_NUM_KEY; String tiktokLikeNumKey = RedisKeyConstant.TIKTOK_IMG_LIKE_NUM_KEY;
Cursor<Map.Entry<Object, Object>> likeNum = redisService.getHashScan(imgLikeNumKey); String fastHandLikeNumKey = RedisKeyConstant.FAST_HAND_IMG_LIKE_NUM_KEY;
while (likeNum.hasNext()){ String wechatLikeNumKey = RedisKeyConstant.WECHAT_IMG_LIKE_NUM_KEY;
Map.Entry<Object, Object> next = likeNum.next(); List<String> list = new ArrayList<>();
String imgId = (String) next.getKey(); list.add(tiktokLikeNumKey);
Long imgLongId = Long.parseLong(imgId); list.add(fastHandLikeNumKey);
Integer greatNum = (Integer) next.getValue(); list.add(wechatLikeNumKey);
TiktokImg img = tiktokImgMapper.selectById(imgLongId); for (String redisNumKey : list) {
if(img == null){ if(redisService.hasKey(redisNumKey)){
redisService.deleteHashKey(imgLikeNumKey, imgId); Cursor<Map.Entry<Object, Object>> likeNum = redisService.getHashScan(redisNumKey);
continue; while (likeNum.hasNext()){
Map.Entry<Object, Object> next = likeNum.next();
String imgId = (String) next.getKey();
Long imgLongId = Long.parseLong(imgId);
Integer greatNum = (Integer) next.getValue();
TiktokImg img = tiktokImgMapper.selectById(imgLongId);
if(img == null){
redisService.deleteHashKey(redisNumKey, imgId);
continue;
}
TiktokImg tiktokImg = new TiktokImg();
tiktokImg.setId(imgLongId);
tiktokImg.setUpdateTime(new Date());
tiktokImg.setGreatNum(greatNum+img.getGreatNum());
tiktokImgMapper.updateById(tiktokImg);
//删除缓存
redisService.deleteHashKey(redisNumKey, imgId);
}
} }
TiktokImg tiktokImg = new TiktokImg();
tiktokImg.setId(imgLongId);
tiktokImg.setUpdateTime(new Date());
tiktokImg.setGreatNum(greatNum+img.getGreatNum());
tiktokImgMapper.updateById(tiktokImg);
//删除缓存
redisService.deleteHashKey(imgLikeNumKey, imgId);
} }
log.info("==============redis同步图片点赞数量到db数据完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime); log.info("==============redis同步图片点赞数量到db数据完成,耗时【{}】毫秒!===============",System.currentTimeMillis() - startTime);
} }
@ -121,33 +144,64 @@ public class TiktokLikeServiceImpl implements TiktokLikeService {
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void like(Long userId, Long imgId) { public void like(Long userId, Long imgId,String platform) {
String hashKey = getHashKey(userId,imgId); String hashKey = getHashKey(userId,imgId,platform);
String redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY; String redisKey = null;
String imgLikeNumKey = RedisKeyConstant.TIKTOK_IMG_LIKE_NUM_KEY; String imgLikeNumKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY;
imgLikeNumKey = RedisKeyConstant.TIKTOK_IMG_LIKE_NUM_KEY;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FAST_HAND_USER_LIKE_KEY;
imgLikeNumKey = RedisKeyConstant.FAST_HAND_IMG_LIKE_NUM_KEY;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_LIKE_KEY;
imgLikeNumKey = RedisKeyConstant.WECHAT_IMG_LIKE_NUM_KEY;
}
//插入redis,状态置为1,图片数量+1 //插入redis,状态置为1,图片数量+1
redisService.setCacheMapValue(redisKey,hashKey, TiktokLikeEnum.LIKE.getCode()); redisService.setCacheMapValue(redisKey,hashKey, TiktokLikeEnum.LIKE.getCode());
redisService.hashIncr(imgLikeNumKey,String.valueOf(imgId), 1); redisService.hashIncr(imgLikeNumKey,String.valueOf(imgId), 1);
log.info("用户【{}】点赞了图片【{}】,点赞量增加1",userId,imgId); log.debug("平台【{}】用户【{}】点赞了图片【{}】,点赞量增加1",platform,userId,imgId);
} }
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public void unLike(Long userId, Long imgId) { public void unLike(Long userId, Long imgId,String platform) {
String hashKey = getHashKey(userId,imgId); String hashKey = getHashKey(userId,imgId,platform);
String redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY; String redisKey = null;
String imgLikeNumKey = RedisKeyConstant.TIKTOK_IMG_LIKE_NUM_KEY; String imgLikeNumKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY;
imgLikeNumKey = RedisKeyConstant.TIKTOK_IMG_LIKE_NUM_KEY;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FAST_HAND_USER_LIKE_KEY;
imgLikeNumKey = RedisKeyConstant.FAST_HAND_IMG_LIKE_NUM_KEY;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_LIKE_KEY;
imgLikeNumKey = RedisKeyConstant.WECHAT_IMG_LIKE_NUM_KEY;
}
redisService.deleteHashKey(redisKey,hashKey); redisService.deleteHashKey(redisKey,hashKey);
redisService.hashIncr(imgLikeNumKey,String.valueOf(imgId), -1); redisService.hashIncr(imgLikeNumKey,String.valueOf(imgId), -1);
log.info("用户【{}】取消点赞了图片【{}】,点赞量减少1",userId,imgId); Integer likeValue = redisService.getCacheMapValue(imgLikeNumKey, String.valueOf(imgId));
if(likeValue <= 0){
redisService.deleteHashKey(imgLikeNumKey,String.valueOf(imgId));
}
log.debug("平台【{}】用户【{}】取消点赞了图片【{}】,点赞量减少1",platform,userId,imgId);
} }
@Override @Override
public boolean judgeLike(Long userId, Long imgId) { public boolean judgeLike(Long userId, Long imgId, String platform) {
//判断redis中是否存在点赞记录 //判断redis中是否存在点赞记录
String hashKey = getHashKey(userId,imgId); String hashKey = getHashKey(userId,imgId,platform);
String redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY; String redisKey = null;
Integer value = (Integer) redisService.getCacheMapValue(redisKey, hashKey); if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_LIKE_KEY;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FAST_HAND_USER_LIKE_KEY;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_LIKE_KEY;
}
Integer value = redisService.getCacheMapValue(redisKey, hashKey);
//缓存存在的情况下 //缓存存在的情况下
if(value != null){ if(value != null){
if(TiktokLikeEnum.LIKE.getCode().equals(value)){ if(TiktokLikeEnum.LIKE.getCode().equals(value)){
@ -160,7 +214,8 @@ public class TiktokLikeServiceImpl implements TiktokLikeService {
} }
//缓存不存在,同时解决重复点赞情况,此时查询数据库 //缓存不存在,同时解决重复点赞情况,此时查询数据库
LambdaQueryWrapper<TiktokLike> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TiktokLike> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(TiktokLike::getUserId, userId).eq(TiktokLike::getImgId, imgId); wrapper.eq(TiktokLike::getUserId, userId).eq(TiktokLike::getImgId, imgId)
.eq(TiktokLike::getPlatform,platform);
TiktokLike tiktokLike = tiktokLikeMapper.selectOne(wrapper); TiktokLike tiktokLike = tiktokLikeMapper.selectOne(wrapper);
if(tiktokLike != null){ if(tiktokLike != null){
//存在则点赞过 //存在则点赞过

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

@ -0,0 +1,153 @@
package com.bnyer.img.service.impl;
import cn.binarywang.wx.miniapp.api.WxMaUserService;
import cn.binarywang.wx.miniapp.bean.WxMaJscode2SessionResult;
import cn.binarywang.wx.miniapp.bean.WxMaUserInfo;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
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.utils.uuid.IdUtils;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.constants.TiktokConstant;
import com.bnyer.img.domain.TiktokCollection;
import com.bnyer.img.domain.TiktokLike;
import com.bnyer.img.domain.WxUser;
import com.bnyer.img.dto.WxLoginDto;
import com.bnyer.img.dto.WxUserPageDto;
import com.bnyer.img.mapper.TiktokCollectionMapper;
import com.bnyer.img.mapper.TiktokLikeMapper;
import com.bnyer.img.mapper.WxUserMapper;
import com.bnyer.img.service.WxUserService;
import lombok.extern.slf4j.Slf4j;
import me.chanjar.weixin.common.error.WxErrorException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;
@Service
@Slf4j
public class WxUserServiceImpl implements WxUserService {
@Autowired
private WxUserMapper wxUserMapper;
@Autowired
private RedisService redisService;
@Autowired
private TiktokLikeMapper tiktokLikeMapper;
@Autowired
private TiktokCollectionMapper tiktokCollectionMapper;
@Autowired
private WxMaUserService wxMaUserService;
@Override
@Transactional(rollbackFor = Exception.class)
public int update(WxUser wxUser) {
wxUser.setUpdateTime(new Date());
if (StringUtils.isNotBlank(wxUser.getWxCode())) {
wxUser.setWxCode(Sm4Util.sm4Encryption(wxUser.getWxCode()));
}
return wxUserMapper.updateById(wxUser);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int delete(List<Long> ids) {
int delete = wxUserMapper.deleteBatchIds(ids);
//删除对应用户收藏及点赞记录
LambdaQueryWrapper<TiktokCollection> collectionWrapper = new LambdaQueryWrapper<>();
LambdaQueryWrapper<TiktokLike> likeWrapper = new LambdaQueryWrapper<>();
for (Long id : ids) {
collectionWrapper.eq(TiktokCollection::getUserId, id)
.eq(TiktokCollection::getPlatform, "2");
tiktokCollectionMapper.delete(collectionWrapper);
likeWrapper.eq(TiktokLike::getUserId, id)
.eq(TiktokLike::getPlatform, "2");
tiktokLikeMapper.delete(likeWrapper);
}
return delete;
}
@Override
public List<WxUser> queryPage(WxUserPageDto dto) {
return wxUserMapper.queryPage(dto);
}
@Override
public WxUser queryDetails(Long id) {
return wxUserMapper.selectById(id);
}
private WxUser saveOrUpdate(String openId, String sessionKey, String encryptedData, String iv) {
//获取用户昵称和头像
WxMaUserInfo userInfo = wxMaUserService.getUserInfo(sessionKey, encryptedData, iv);
//创建用户
WxUser wxUser = new WxUser();
wxUser.setImg(userInfo.getAvatarUrl());
wxUser.setUsername(userInfo.getNickName());
wxUser.setWxCode(Sm4Util.sm4Encryption(openId));
wxUser.setCreateTime(new Date());
wxUser.setUpdateTime(new Date());
wxUserMapper.insert(wxUser);
log.info("微信用户【{}】创建成功!", openId);
return wxUser;
}
@Override
public Map<String, Object> login(WxLoginDto param) {
try {
//code换openId等相关信息
WxMaJscode2SessionResult sessionInfo = wxMaUserService.getSessionInfo(param.getCode());
//插入或更新艺术家到数据库
QueryWrapper<WxUser> qw = new QueryWrapper<>();
qw.eq("wx_code", Sm4Util.sm4Encryption(sessionInfo.getOpenid()));
WxUser wxUser = wxUserMapper.selectOne(qw);
if(wxUser == null){
//新用户,新增
wxUser = this.saveOrUpdate(sessionInfo.getOpenid(), sessionInfo.getSessionKey(), param.getEncryptedData(), param.getIv());
}
//设置会话状态
String redisKey = RedisKeyConstant.WECHAT_USER_LOGIN_KEY + Sm4Util.sm4Encryption(sessionInfo.getOpenid());
//存在该登录态则删除刷新
if (redisService.hasKey(redisKey)) {
redisService.deleteObject(redisKey);
}
//缓存到redis
StringBuffer sb = new StringBuffer();
String randomId = IdUtils.fastSimpleUUID();
sb.append(randomId).append("#").append(sessionInfo.getOpenid());
//设置登录会话
redisService.setCacheObject(redisKey, sb.toString(), 10L, TimeUnit.DAYS);
Map<String, Object> map = new HashMap<>(2);
map.put("token", sb.toString());
map.put("sessionKey", sessionInfo.getSessionKey());
map.put("userInfo", wxUser);
return map;
} catch (WxErrorException e) {
throw new ServiceException(e.getMessage(), TiktokConstant.CALL_WECHAT_FAIL);
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public int changeStatus(Long id, String status) {
LambdaUpdateWrapper<WxUser> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(WxUser::getId, id);
WxUser user = new WxUser();
user.setIsShow(status);
return wxUserMapper.update(user, wrapper);
}
}

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitEndAmtVo.java

@ -40,7 +40,7 @@ public class CreatorProfitEndAmtVo implements Serializable {
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform; private String platform;
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitInAmtVo.java

@ -40,7 +40,7 @@ public class CreatorProfitInAmtVo implements Serializable {
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform; private String platform;
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitPreVo.java

@ -33,7 +33,7 @@ public class CreatorProfitPreVo implements Serializable {
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform; private String platform;
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")

2
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorProfitVo.java

@ -36,7 +36,7 @@ public class CreatorProfitVo implements Serializable {
@ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)")
private String platform; private String platform;
@ApiModelProperty(value="应用类型(0->次元壁纸)") @ApiModelProperty(value="应用类型(0->节点壁纸)")
private String appType; private String appType;
@ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)") @ApiModelProperty(value="收益类型(0->广告浏览;1->邀请;2->会员)")

36
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/FhUserInfoVo.java

@ -0,0 +1,36 @@
package com.bnyer.img.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("快手平台用户响应类")
public class FhUserInfoVo implements Serializable {
@ApiModelProperty(value="用户昵称")
private String nickName;
@ApiModelProperty(value="用户头像网络地址")
private String avatarUrl;
@ApiModelProperty(value="用户性别,0: 未知;1:男性;2:女性")
private String gender;
@ApiModelProperty(value="用户所在城市")
private String city;
@ApiModelProperty(value="用户所在省份")
private String province;
@ApiModelProperty(value="用户所在国家")
private String country;
@ApiModelProperty(value="用户openId")
private String openId;
}

5
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokCollectionVo.java

@ -19,6 +19,9 @@ public class TiktokCollectionVo implements Serializable {
@ApiModelProperty(value="图片id") @ApiModelProperty(value="图片id")
private Long imgId; private Long imgId;
@ApiModelProperty(value="平台")
private String platform;
@ApiModelProperty(value="图片地址") @ApiModelProperty(value="图片地址")
private String imgUrl; private String imgUrl;
@ -41,4 +44,4 @@ public class TiktokCollectionVo implements Serializable {
private Integer collectionNum; private Integer collectionNum;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }

4
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/BannerMapper.xml

@ -16,7 +16,7 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, banner_name, banner_img, banner_url, `source`, is_show, create_time, update_time, id, banner_name, banner_img, banner_url, `source`, is_show, create_time, update_time,
sort sort
</sql> </sql>
<select id="queryList" resultType="com.bnyer.img.vo.BannerVo"> <select id="queryList" resultType="com.bnyer.img.vo.BannerVo">
@ -26,4 +26,4 @@
where source = #{source} where source = #{source}
order by sort desc order by sort desc
</select> </select>
</mapper> </mapper>

35
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/FhUserMapper.xml

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.img.mapper.FhUserMapper">
<resultMap id="BaseResultMap" type="com.bnyer.img.domain.FhUser">
<!--@mbg.generated-->
<!--@Table img_fh_user-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="fh_code" jdbcType="VARCHAR" property="fhCode" />
<result column="img" jdbcType="VARCHAR" property="img" />
<result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sort" jdbcType="INTEGER" property="sort" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, username, fh_code, img, is_show, create_time, update_time, sort
</sql>
<select id="queryPage" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from img_fh_user
<where>
<if test="params.username != null and params.username != ''">
username like concat('%',#{params.username},'%')
</if>
<if test="params.isShow != null and params.isShow != ''">
and is_show = #{params.isShow}
</if>
</where>
order by create_time desc
</select>
</mapper>

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

@ -3,10 +3,11 @@
<mapper namespace="com.bnyer.img.mapper.TiktokCollectionMapper"> <mapper namespace="com.bnyer.img.mapper.TiktokCollectionMapper">
<resultMap id="BaseResultMap" type="com.bnyer.img.domain.TiktokCollection"> <resultMap id="BaseResultMap" type="com.bnyer.img.domain.TiktokCollection">
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table img_tiktok_collection--> <!--@Table img_collection-->
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="user_id" jdbcType="BIGINT" property="userId" /> <result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="img_id" jdbcType="BIGINT" property="imgId" /> <result column="img_id" jdbcType="BIGINT" property="imgId" />
<result column="platform" jdbcType="CHAR" property="platform"/>
<result column="is_show" jdbcType="CHAR" property="isShow" /> <result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
@ -14,20 +15,20 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, user_id, img_id, is_show, create_time, update_time, sort id, user_id, img_id,platform, is_show, create_time, update_time, sort
</sql> </sql>
<select id="getCollectionByUserId" resultType="com.bnyer.img.vo.TiktokCollectionVo"> <select id="getCollectionByUserId" resultType="com.bnyer.img.vo.TiktokCollectionVo">
select select
itc.id as id,itc.img_id as imgId,itc.user_id as userId, itc.id as id,itc.img_id as imgId,itc.platform as platform,itc.user_id as userId,
iti.img_url as imgUrl,iti.type_id as typeId,iti.download_num as downloadNum, iti.img_url as imgUrl,iti.type_id as typeId,iti.download_num as downloadNum,
iti.great_num as greatNum,iti.collection_num as collectionNum, iti.great_num as greatNum,iti.collection_num as collectionNum,
it.type_name as typeName it.type_name as typeName
from img_tiktok_collection itc from img_collection itc
join img_tiktok_img iti on itc.img_id = iti.id join img_tiktok_img iti on itc.img_id = iti.id
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} and itc.platform = #{platform}
order by itc.sort desc order by itc.sort desc
</select> </select>
</mapper> </mapper>

11
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokLikeMapper.xml

@ -3,10 +3,11 @@
<mapper namespace="com.bnyer.img.mapper.TiktokLikeMapper"> <mapper namespace="com.bnyer.img.mapper.TiktokLikeMapper">
<resultMap id="BaseResultMap" type="com.bnyer.img.domain.TiktokLike"> <resultMap id="BaseResultMap" type="com.bnyer.img.domain.TiktokLike">
<!--@mbg.generated--> <!--@mbg.generated-->
<!--@Table img_tiktok_like--> <!--@Table img_like-->
<id column="id" jdbcType="BIGINT" property="id" /> <id column="id" jdbcType="BIGINT" property="id" />
<result column="user_id" jdbcType="BIGINT" property="userId" /> <result column="user_id" jdbcType="BIGINT" property="userId" />
<result column="img_id" jdbcType="BIGINT" property="imgId" /> <result column="img_id" jdbcType="BIGINT" property="imgId" />
<result column="platform" jdbcType="CHAR" property="platform"/>
<result column="is_show" jdbcType="CHAR" property="isShow" /> <result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" /> <result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" /> <result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
@ -14,15 +15,15 @@
</resultMap> </resultMap>
<sql id="Base_Column_List"> <sql id="Base_Column_List">
<!--@mbg.generated--> <!--@mbg.generated-->
id, user_id, img_id, is_show, create_time, update_time, sort id, user_id, img_id,platform, is_show, create_time, update_time, sort
</sql> </sql>
<insert id="insertBatch"> <insert id="insertBatch">
insert into img_tiktok_like insert into img_like
(user_id, img_id, is_show,create_time,update_time,sort) (user_id, img_id,platform, is_show,create_time,update_time,sort)
VALUES VALUES
<foreach collection ="list" item="item" separator =","> <foreach collection ="list" item="item" separator =",">
(#{item.userId}, #{item.imgId}, #{item.isShow}, #{item.createTime}, #{item.updateTime}, #{item.sort}) (#{item.userId}, #{item.imgId},#{item.platform}, #{item.isShow}, #{item.createTime}, #{item.updateTime}, #{item.sort})
</foreach> </foreach>
</insert> </insert>
</mapper> </mapper>

35
bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/WxUserMapper.xml

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.bnyer.img.mapper.WxUserMapper">
<resultMap id="BaseResultMap" type="com.bnyer.img.domain.WxUser">
<!--@mbg.generated-->
<!--@Table img_wx_user-->
<id column="id" jdbcType="BIGINT" property="id" />
<result column="username" jdbcType="VARCHAR" property="username" />
<result column="wx_code" jdbcType="VARCHAR" property="wxCode" />
<result column="img" jdbcType="VARCHAR" property="img" />
<result column="is_show" jdbcType="CHAR" property="isShow" />
<result column="create_time" jdbcType="TIMESTAMP" property="createTime" />
<result column="update_time" jdbcType="TIMESTAMP" property="updateTime" />
<result column="sort" jdbcType="INTEGER" property="sort" />
</resultMap>
<sql id="Base_Column_List">
<!--@mbg.generated-->
id, username, wx_code, img, is_show, create_time, update_time, sort
</sql>
<select id="queryPage" resultMap="BaseResultMap">
select
<include refid="Base_Column_List"/>
from img_wx_user
<where>
<if test="params.username != null and params.username != ''">
username like concat('%',#{params.username},'%')
</if>
<if test="params.isShow != null and params.isShow != ''">
and is_show = #{params.isShow}
</if>
</where>
order by create_time desc
</select>
</mapper>
Loading…
Cancel
Save