Compare commits

...

23 Commits

Author SHA1 Message Date
‘‘ 133cd56564 feature-1.0-img: 新增艺术家注销接口 3 years ago
Penny c175874522 feature-img-1.0:添加修改标签功能 3 years ago
Penny b941ad440f feature-img-1.0:fixBug 3 years ago
Penny 3a8b1f39e4 feature-img-1.0:修改艺术家获取当日上传图片数量方法 3 years ago
Penny 34654e83f5 Merge branch 'master' into feature-1.0-img 3 years ago
penny 1ae110efb7 feature-1.0-img: 新增用户等级功能 4 years ago
penny 6bd84e9226 feature-1.0-img: 完善后台艺术家图片状态功能 4 years ago
penny 94bdb9282f feature-1.0-img: 修改关注艺术家列表功能 4 years ago
penny fefc9503a8 feature-1.0-img: 新增关注功能 4 years ago
penny d18fda470e Merge branch 'feature-1.0-img' of https://gitee.com/pennyJoly/bnyer-cloud into feature-1.0-img 4 years ago
chengkun 7e85281205 feature1.0.0-img:添加关注功能 4 years ago
penny b38da16520 feature-1.0-img: 新增商品接口 4 years ago
penny 959c0d137b Merge remote-tracking branch 'origin/feature-1.0-img' into feature-1.0-img 4 years ago
penny c0da69c21a feature-1.0-img: 新增云媒接口数据 4 years ago
chengkun a02db2e7c1 feature1.0.0-img:添加支付宝支付及回调功能 4 years ago
chengkun bf7a78b680 feature1.0.0-img:添加支付宝支付及用户vip功能 4 years ago
penny d2151461c7 feature-1.0-img: 新增会员vip 4 years ago
chengkun 86fbb507df feature1.0.0-img:抖音,微信,快手用户添加手机号,是否为vip字段 4 years ago
chengkun a803227125 feature1.0.0-img:优化用户模块 4 years ago
chengkun fb08179727 feature1.0.0-img:移除非必要的redisService方法 4 years ago
chengkun ba3758897d feature1.0.0-img:修复微信小程序,抖音小程序,快手小程序标签分页找不到数据的问题 4 years ago
chengkun a5b2154104 feature1.0.0-img:修复微信端用户登录问题 4 years ago
chengkun c4e7966ea0 feature1.0.0-img:修复快手端用户登录问题 4 years ago
  1. 4
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/domain/TiktokImg.java
  2. 2
      bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java
  3. 20
      bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/DateUtils.java
  4. 40
      bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java
  5. 2
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java
  6. 2
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java
  7. 41
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/MinioSysFileServiceImpl.java
  8. 6
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java
  9. 2
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java
  10. 2
      bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/TiktokImgVo.java
  11. 16
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/AlipayConfig.java
  12. 14
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/RestTemplateConfiguration.java
  13. 34
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/YunmeiConfig.java
  14. 25
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java
  15. 11
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/StatusImgConstant.java
  16. 29
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/UserVipOrderStatusConstant.java
  17. 24
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/UserVipTypeConstant.java
  18. 33
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/YunmeiConstant.java
  19. 37
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CommonController.java
  20. 62
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java
  21. 91
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java
  22. 7
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhUserController.java
  23. 81
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/LevelInfoController.java
  24. 80
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/ProductController.java
  25. 93
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java
  26. 7
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokUserController.java
  27. 80
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java
  28. 89
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java
  29. 7
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxUserController.java
  30. 74
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/YunmeiController.java
  31. 14
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Creator.java
  32. 16
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/FhUser.java
  33. 68
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/LevelInfo.java
  34. 104
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Product.java
  35. 128
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/ProductOrder.java
  36. 4
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokImg.java
  37. 14
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokUser.java
  38. 90
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/UserVip.java
  39. 93
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/UserVipRecord.java
  40. 14
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/WxUser.java
  41. 31
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/AlipayParamDto.java
  42. 27
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CardBuyOrderDto.java
  43. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorLogoutDto.java
  44. 31
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/DirectBuyOrderDto.java
  45. 3
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FhUserPageDto.java
  46. 24
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FollowDto.java
  47. 41
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/LevelInfoDto.java
  48. 21
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/LevelInfoPageDto.java
  49. 26
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ModifySignDto.java
  50. 20
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/OrderDetailsDto.java
  51. 44
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/OrderNotifyDto.java
  52. 33
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/PayUserVipDto.java
  53. 80
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProductDto.java
  54. 21
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProductPageDto.java
  55. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgDto.java
  56. 5
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgListMiniDto.java
  57. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgMiniDto.java
  58. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgPageDto.java
  59. 3
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokUserPageDto.java
  60. 20
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/UserIdDto.java
  61. 65
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/UserVipDto.java
  62. 22
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/UserVipPageDto.java
  63. 3
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WxUserPageDto.java
  64. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/YunmeiCallbackEnum.java
  65. 18
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/YunmeiEnum.java
  66. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorMapper.java
  67. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/LevelInfoMapper.java
  68. 25
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ProductMapper.java
  69. 7
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ProductOrderMapper.java
  70. 10
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java
  71. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java
  72. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipRecordMapper.java
  73. 26
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/AlipayService.java
  74. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java
  75. 6
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorService.java
  76. 52
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FollowService.java
  77. 52
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/LevelInfoService.java
  78. 66
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/ProductService.java
  79. 9
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/SignService.java
  80. 19
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java
  81. 3
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java
  82. 15
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipRecordService.java
  83. 59
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java
  84. 57
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/YunmeiService.java
  85. 95
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/AlipayServiceImpl.java
  86. 15
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java
  87. 30
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java
  88. 23
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java
  89. 120
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FollowServiceImpl.java
  90. 77
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/LevelInfoServiceImpl.java
  91. 88
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ProductServiceImpl.java
  92. 11
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/SignServiceImpl.java
  93. 25
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java
  94. 85
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java
  95. 98
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceRecordImpl.java
  96. 245
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/YunmeiServiceImpl.java
  97. 6
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorDetailsVo.java
  98. 41
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorFollowVo.java
  99. 6
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorVo.java
  100. 2
      bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/ImgSignVo.java

4
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/domain/TiktokImg.java

@ -58,9 +58,9 @@ public class TiktokImg implements Serializable {
private Integer collectionNum;
/**
* 状态(0->待审核;1->审核通过)
* 状态(0->待审核;2->审核拒绝;3->已上架;4->已下架)
*/
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;2->审核拒绝;3->已上架;4->已下架)")
private String status;
/**

2
bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java

@ -28,7 +28,7 @@ public class TiktokImgMiniDto implements Serializable {
@ApiModelProperty(value="分类id")
private Long typeId;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;2->审核拒绝;3->已上架;4->已下架)")
private String status;

20
bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/utils/DateUtils.java

@ -8,7 +8,9 @@ import java.time.LocalDateTime;
import java.time.LocalTime;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Calendar;
import java.util.Date;
import org.apache.commons.lang3.time.DateFormatUtils;
/**
@ -176,4 +178,22 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils
ZonedDateTime zdt = localDateTime.atZone(ZoneId.systemDefault());
return Date.from(zdt.toInstant());
}
/**
* 给指定日期添加指定添加的天数 返回添加后的天数
*
* @param d 指定的日期
* @param day 指定添加的天数
* @return 添加后的天数
*/
public static Date getDateAfter(Date d, int day) {
Calendar now = Calendar.getInstance();
now.setTime(d);
now.set(Calendar.DATE, now.get(Calendar.DATE) + day);
return now.getTime();
}
public static void main(String[] args) {
System.out.println(getDateAfter(new Date(), 365));
}
}

40
bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java

@ -3,7 +3,10 @@ package com.bnyer.common.redis.service;
import java.time.Duration;
import java.util.*;
import java.util.concurrent.TimeUnit;
import org.apache.poi.ss.formula.functions.T;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.redis.core.*;
import org.springframework.data.redis.core.script.DefaultRedisScript;
import org.springframework.data.redis.core.script.RedisScript;
@ -173,11 +176,28 @@ public class RedisService
* @param key
* @return
*/
public <T> Set<T> getCacheSet(final String key)
public <T> Set<Long> getCacheSet(final String key)
{
return redisTemplate.opsForSet().members(key);
}
/**
* 删除set中的值
* @param key
* @param value
*/
public void removeSet(final String key,final Long value){
redisTemplate.opsForSet().remove(key, value);
}
public boolean hasSet(final String key, final Long value){
Boolean member = redisTemplate.opsForSet().isMember(key, value);
if(member == null || !member){
return false;
}else{
return true;
}
}
/**
* 缓存Map
*
@ -310,24 +330,6 @@ public class RedisService
return redisTemplate.opsForHash().increment(key, hashKey,delta);
}
/**
* 加锁
**/
public Boolean lock(String key,String value,Long duration){
Boolean lockStatus = this.redisTemplate.opsForValue().setIfAbsent(key,value, Duration.ofSeconds(duration));
return lockStatus;
}
/**
* 释放锁
**/
public Long releaseLock(String key,String value){
String luaScript = "if redis.call('get', KEYS[1]) == ARGV[1] then return redis.call('del', KEYS[1]) else return 0 end";
RedisScript<Long> redisScript = new DefaultRedisScript<>(luaScript,Long.class);
Long releaseStatus = (Long)this.redisTemplate.execute(redisScript, Collections.singletonList(key),value);
return releaseStatus;
}
/**
* pv统计
* @param today 统计的日期

2
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java

@ -105,7 +105,7 @@ public class SysFileController {
}
}
@ApiOperation(value="批量上传到minio")
@PostMapping("/uploadBanner")
@PostMapping("/upload")
@ResponseBody
public R uploadBanner(@RequestParam("file") MultipartFile file) {
String url = null;

2
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java

@ -30,7 +30,7 @@ public class FileUploadDto {
@ApiModelProperty(value="分类id")
private Long typeId;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
@ApiModelProperty(value="要上传的图片")

41
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/MinioSysFileServiceImpl.java

@ -2,22 +2,18 @@ package com.bnyer.file.service;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.file.config.MinioConfig;
import com.bnyer.file.utils.FileUploadUtils;
import com.bnyer.file.utils.ImgUtil;
import io.minio.ObjectStat;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import lombok.extern.slf4j.Slf4j;
import net.coobird.thumbnailator.Thumbnails;
import org.apache.commons.compress.utils.IOUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import com.bnyer.file.utils.FileUploadUtils;
import io.minio.MinioClient;
import io.minio.PutObjectArgs;
import javax.servlet.http.HttpServletResponse;
import java.awt.image.BufferedImage;
import java.io.InputStream;
import java.net.URLEncoder;
/**
* Minio 文件存储
@ -26,8 +22,7 @@ import java.net.URLEncoder;
*/
@Service
@Slf4j
public class MinioSysFileServiceImpl implements MinioService
{
public class MinioSysFileServiceImpl implements MinioService {
@Autowired
private MinioConfig minioConfig;
@ -42,8 +37,7 @@ public class MinioSysFileServiceImpl implements MinioService
* @throws Exception
*/
@Override
public String uploadFile(MultipartFile file) throws Exception
{
public String uploadFile(MultipartFile file) throws Exception {
String fileName = FileUploadUtils.extractFilename(file);
PutObjectArgs args = PutObjectArgs.builder()
.bucket(minioConfig.getBucketName())
@ -57,21 +51,30 @@ public class MinioSysFileServiceImpl implements MinioService
@Override
public String uploadBanner(MultipartFile file) throws Exception {
String fileName = FileUploadUtils.extractFilename(file);
PutObjectArgs args = PutObjectArgs.builder()
.bucket("banner")
String fileName = file.getOriginalFilename();
String[] split = fileName.split("\\.");
if (split.length > 1) {
fileName = split[0] + "_" + System.currentTimeMillis() + "." + split[1];
} else {
fileName = fileName + System.currentTimeMillis();
}
InputStream in = null;
in = file.getInputStream();
client.putObject(PutObjectArgs.builder()
.bucket(minioConfig.getBucketName())
.object(fileName)
.stream(file.getInputStream(), file.getSize(), -1)
.stream(in, in.available(), -1)
.contentType(file.getContentType())
.build();
client.putObject(args);
return minioConfig.getUrl() + "/" + minioConfig.getBucketName() + "/" + fileName;
.build()
);
return minioConfig.getUrl()+ "/" + minioConfig.getBucketName() + "/" + fileName;
}
@Override
public String uploadFileByThumb(MultipartFile file) throws Exception {
boolean b = ImgUtil.isPicture(file.getOriginalFilename());
if(!b){
if (!b) {
throw new ServiceException("文件类型不是图片类型,上传失败!");
}
BufferedImage image = ImgUtil.toBufferedImage(file);

6
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java

@ -59,11 +59,11 @@ public class FileServiceImpl implements IFileService {
//抖音图片检测二次检测
// if (tikTokImage.checkImageContent(multipartFile)) {
//可以通过
chekFileVo.setStatus("1");
chekFileVo.setStatus("2");
chekFileVos.add(chekFileVo);
// }else {
// //不可以通过
// chekFileVo.setStatus("2");
// chekFileVo.setStatus("1");
// chekFileVos.add(chekFileVo);
// }
continue;
@ -76,7 +76,7 @@ public class FileServiceImpl implements IFileService {
}
if (checkMsg.equals("block")) {
//不可通过
chekFileVo.setStatus("2");
chekFileVo.setStatus("1");
chekFileVos.add(chekFileVo);
}
}

2
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java

@ -15,7 +15,7 @@ import org.springframework.web.multipart.MultipartFile;
@Setter
@ApiModel("图片检查响应类")
public class ChekFileVo {
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
@ApiModelProperty(value="文件名称")
private String fileName;

2
bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/TiktokImgVo.java

@ -34,7 +34,7 @@ public class TiktokImgVo implements Serializable {
@ApiModelProperty(value="收藏量")
private Integer collectionNum;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;2->审核拒绝;3->已上架;4->已下架)")
private String status;
@ApiModelProperty(value="是否热门(0->冷门;1->热门)")

16
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/AlipayConfig.java

@ -27,6 +27,9 @@ public class AlipayConfig{
@Value("${alipay.privateKey}")
private String privateKey;
@Value("${alipay.publicKey}")
private String publicKey;
@Value("${alipay.certPath}")
private String certPath;
@ -35,4 +38,17 @@ public class AlipayConfig{
@Value("${alipay.rootPath}")
private String rootPath;
@Value("${alipay.notifyUrl}")
private String notifyUrl;
@Value("${alipay.returnUrl}")
private String returnUrl;
@Value("${alipay.signType}")
private String signType;
@Value("${alipay.charset}")
private String charset;
}

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

@ -2,6 +2,8 @@ package com.bnyer.img.config;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.client.ClientHttpRequestFactory;
import org.springframework.http.client.SimpleClientHttpRequestFactory;
import org.springframework.web.client.RestTemplate;
/**
@ -11,7 +13,15 @@ import org.springframework.web.client.RestTemplate;
@Configuration
public class RestTemplateConfiguration {
@Bean
public RestTemplate restTemplate() {
return new RestTemplate();
public RestTemplate restTemplate(ClientHttpRequestFactory factory) {
return new RestTemplate(factory);
}
@Bean
public ClientHttpRequestFactory simpleClientHttpRequestFactory(){
SimpleClientHttpRequestFactory factory = new SimpleClientHttpRequestFactory();
factory.setConnectTimeout(15000);
factory.setReadTimeout(5000);
return factory;
}
}

34
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/YunmeiConfig.java

@ -0,0 +1,34 @@
package com.bnyer.img.config;
import lombok.Getter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.context.annotation.Configuration;
/**
* 云媒配置类
* @author chengkun
* @date 2022/4/21 17:43
*/
@Configuration
@ConfigurationProperties(prefix = "yunmei")
@Getter
@RefreshScope
public class YunmeiConfig {
@Value("${yunmei.appId}")
public String appId;
@Value("${yunmei.appSecret}")
public String appSecret;
@Value("${yunmei.url}")
public String url;
@Value("${yunmei.version}")
public String version;
@Value("${yunmei.notifyUrl}")
public String notifyUrl;
}

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

@ -101,4 +101,29 @@ public class RedisKeyConstant {
* 艺术家上传键
*/
public static final String CREATOR_UPLOAD_KEY="bnyer.img.creator.upload:";
/**
* 用户会员vip锁键
*/
public static final String PAY_USER_VIP_LOCK_KEY = "bnyer.img.userVip.lock:";
/**
* 抖音用户关注艺术家键
*/
public static final String TIKTOK_USER_FOLLOW_KEY = "bnyer.img.tiktok.follow:";
/**
* 微信用户关注艺术家键
*/
public static final String WECHAT_USER_FOLLOW_KEY = "bnyer.img.wechat.follow:";
/**
* 快手用户关注艺术家键
*/
public static final String FH_USER_FOLLOW_KEY = "bnyer.img.fh.follow:";
/**
* 艺术家粉丝数量键
*/
public static final String CREATOR_FANS_NUM_KEY = "bnyer.img.fans.num";
}

11
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/StatusImgConstant.java

@ -11,23 +11,18 @@ public class StatusImgConstant {
*/
public static final String UNCHECK = "0";
/**
* 审核通过
*/
public static final String PASS = "1";
/**
* 审核拒绝
*/
public static final String UNPASS = "2";
public static final String UNPASS = "1";
/**
* 已上架
*/
public static final String ONLINE = "3";
public static final String ONLINE = "2";
/**
* 已下架
*/
public static final String OFFLINE = "4";
public static final String OFFLINE = "3";
}

29
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/UserVipOrderStatusConstant.java

@ -0,0 +1,29 @@
package com.bnyer.img.constants;
/**
* 用户会员vip支付常量
* @author chengkun
* @date 2022/4/21 18:12
*/
public class UserVipOrderStatusConstant {
/**
* 待支付
*/
public static final String UN_PAY = "0";
/**
* 已支付
*/
public static final String PAYED = "1";
/**
* 支付失败
*/
public static final String PAY_FAIL = "2";
/**
* 支付失败
*/
public static final String PAY_EXCEPTION = "3";
}

24
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/UserVipTypeConstant.java

@ -0,0 +1,24 @@
package com.bnyer.img.constants;
/**
* 用户会员vip常量
* @author chengkun
* @date 2022/4/21 18:12
*/
public class UserVipTypeConstant {
/**
* 月卡
*/
public static final String MONTH_CARD = "0";
/**
* 季卡
*/
public static final String SEASON_CARD = "1";
/**
* 年卡
*/
public static final String YEAR_CARD = "2";
}

33
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/YunmeiConstant.java

@ -0,0 +1,33 @@
package com.bnyer.img.constants;
/**
* 云媒敞亮类
*/
public class YunmeiConstant {
/**
* 商品列表
*/
public static final String PRODUCT_LIST = "/api/goods/list";
/**
* 商品详情
*/
public static final String PRODUCT_DETAILS = "/api/goods/get";
/**
* 直充/卡密下单
*/
public static final String CREATE_ORDER = "/api/order/create";
/**
* 订单查询
*/
public static final String ORDER_DETAILS = "/api/order/get";
/**
* 余额查询
*/
public static final String AMOUNT = "/api/account/balance";
}

37
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CommonController.java

@ -0,0 +1,37 @@
package com.bnyer.img.controller;
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.img.service.AlipayService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
@Api(value = "【图文平台】公共接口",tags = "【图文平台】公共接口")
@RestController
@RequestMapping("/img/common")
@Slf4j
public class CommonController extends BaseController {
@Autowired
private AlipayService alipayService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value = "支付宝回调通知")
@PostMapping("/alipayCallback")
public AjaxResult alipayCallback(@RequestBody HttpServletRequest request) {
String result = alipayService.alipayCallBack(request);
if (StringUtils.isNotBlank(result)){
return AjaxResult.success(result);
}
return AjaxResult.error();
}
}

62
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java

@ -62,6 +62,9 @@ public class CreatorMiniController extends BaseController {
@Autowired
private BzDataService bzDataService;
@Autowired
private FollowService followService;
//@TokenCheck
@ApiOperation(value="检查手机号是否重复")
@PostMapping(value = "/checkPhone")
@ -118,11 +121,19 @@ public class CreatorMiniController extends BaseController {
}
//@TokenCheck
@ApiOperation(value="查询指定艺术家图片集合")
@ApiOperation(value="查询指定艺术家内部图片分页")
@PostMapping(value = "/listTiktokImgIn")
public AjaxResult listTiktokImgIn(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgListMiniDto dto){
log.info("【艺术家小程序】查询指定艺术家【{}】图片集合参数为:{}",dto.getCreatorId(), JSON.toJSONString(dto));
return AjaxResult.success(tiktokImgService.queryInList(dto.getCreatorId(),dto.getTypeId()));
public TableDataInfo listTiktokImgIn(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgListMiniDto dto){
log.info("【艺术家小程序】查询指定艺术家内部【{}】图片分页参数为:{}",dto.getCreatorId(), JSON.toJSONString(dto));
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
return getDataTable(tiktokImgService.queryInList(dto.getCreatorId(),dto.getTypeId(),dto.getStatus()));
}
//@TokenCheck
@ApiOperation(value="查询图片详情")
@GetMapping(value = "/detailsTiktokImg/{id}")
public AjaxResult detailsTiktokImg(@ApiParam("图片id") @PathVariable Long id){
return AjaxResult.success(tiktokImgService.queryCreatorImgDetails(String.valueOf(id)));
}
//@TokenCheck
@ -168,7 +179,7 @@ public class CreatorMiniController extends BaseController {
@ApiOperation(value="查询公告详情")
@GetMapping(value = "/getNoticeDetails/{id}")
public AjaxResult getNoticeDetails(@PathVariable @ApiParam("公告id") Long id){
log.info("【艺术家小程序】查询公告详情:",id);
log.info("【艺术家小程序】查询公告详情:{}",id);
return AjaxResult.success(noticeService.queryFrontDetails(id));
}
@ -285,7 +296,7 @@ public class CreatorMiniController extends BaseController {
}
//@TokenCheck
@ApiOperation(value="查询指定艺术家转入钱包收益详情")
@ApiOperation(value="查询指定艺术家转入钱包收益详情")
@GetMapping(value = "/queryFrontEndAmtDetails/{id}")
public AjaxResult queryFrontEndAmtDetails(@PathVariable @ApiParam("收益id") Long id){
return AjaxResult.success(creatorProfitService.queryFrontEndAmtDetails(id));
@ -307,6 +318,14 @@ public class CreatorMiniController extends BaseController {
return AjaxResult.success(creatorService.login(param));
}
//@TokenCheck
@PostMapping("/logout")
@ApiOperation("小程序艺术家登出")
public AjaxResult logout(@Validated @ApiParam("艺术家数据") @RequestBody CreatorLogoutDto param)
{
return AjaxResult.success(creatorService.logout(param.getPhone()));
}
//@TokenCheck
@ApiOperation(value="查询艺术家分类图片数量")
@GetMapping(value = "/queryCreatorTypeImgNum/{creatorId}")
@ -340,10 +359,31 @@ public class CreatorMiniController extends BaseController {
}
return AjaxResult.error();
}
@ApiOperation(value="检查某艺术家当日上传次数是否超标")
@PostMapping(value = "/checkCreatorCanUpload")
public AjaxResult checkCreatorCanUpload(@Validated @RequestBody @ApiParam("检查超标对象") CreatorUploadDto dto){
log.debug("【艺术家小程序】检查艺术家当日上传次数是否超标参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.checkCreatorCanUpload(dto.getCreatorId()));
@ApiOperation(value="检查某艺术家当日上传次数")
@PostMapping(value = "/getUploadNum")
public AjaxResult getUploadNum(@Validated @RequestBody @ApiParam("获取次数对象") CreatorUploadDto dto){
log.debug("【艺术家小程序】获取艺术家当日上传次数参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(creatorProfitService.getUploadNum(dto.getCreatorId()));
}
@ApiOperation(value="获取艺术家粉丝数量")
@PostMapping(value = "/getFansNum")
public AjaxResult getFansNum(@Validated @RequestBody @ApiParam("艺术家id对象") CreatorUploadDto dto){
log.debug("【艺术家小程序】获取艺术家粉丝数量参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(followService.queryFansNum(dto.getCreatorId()));
}
//@TokenCheck
@ApiOperation(value="置顶图片")
@GetMapping(value = "/topImg/{id}")
public AjaxResult topImg(@PathVariable @ApiParam("图片id") Long id){
return AjaxResult.success(tiktokImgService.topImg(id));
}
@ApiOperation(value="修改艺术家图片标签")
@PostMapping(value = "/modifySign")
public AjaxResult modifySign(@Validated @RequestBody @ApiParam("艺术家图片标签对象") ModifySignDto dto){
signService.modifySign(dto.getImgId(),dto.getTypeId(),dto.getSignList());
return AjaxResult.success();
}
}

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

@ -2,6 +2,7 @@ package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
@ -10,6 +11,7 @@ import com.bnyer.img.domain.Feedback;
import com.bnyer.img.dto.*;
import com.bnyer.img.service.*;
import com.bnyer.img.vo.CreatorDetailsVo;
import com.bnyer.img.vo.CreatorFollowVo;
import com.bnyer.img.vo.SignImgVo;
import com.bnyer.img.vo.TiktokImgVo;
import com.github.pagehelper.PageHelper;
@ -63,6 +65,18 @@ public class FhMiniController extends BaseController {
@Autowired
private BzDataService bzDataService;
@Autowired
private UserVipService userVipService;
@Autowired
private UserVipRecordService userVipRecordService;
@Autowired
private ProductService productService;
@Autowired
private FollowService followService;
//@TokenCheck
@ApiOperation(value="查询banner列表")
@GetMapping(value = "/listBanner")
@ -191,7 +205,7 @@ public class FhMiniController extends BaseController {
@ApiOperation(value="用户登录")
@PostMapping(value = "/loginFh")
public AjaxResult loginWx(@Validated @RequestBody @ApiParam("登录对象") FhLoginDto dto){
public AjaxResult loginFh(@Validated @RequestBody @ApiParam("登录对象") FhLoginDto dto){
log.info("【快手图文小程序】用户【{}】授权登录了", dto.getCode());
return AjaxResult.success(fhUserService.login(dto));
}
@ -259,7 +273,7 @@ public class FhMiniController extends BaseController {
}
//@TokenCheck
@ApiOperation(value="根据分类id和便签Id查询图片分页")
@ApiOperation(value="根据分类id和签Id查询图片分页")
@PostMapping(value = "/querySignImg")
public TableDataInfo querySignImg(@RequestBody @ApiParam("分页对象") SignImgPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
@ -273,6 +287,9 @@ public class FhMiniController extends BaseController {
public TableDataInfo querySignImgBySignName(@RequestBody @ApiParam("分页对象") SignImgNamePageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<TiktokImgVo> tiktokImgs = tiktokImgService.queryImgPageBySignName(dto.getSignName());
if(tiktokImgs.size() <= 0){
throw new ServiceException("该标签名称不存在!");
}
return getDataTable(tiktokImgs);
}
@ -286,4 +303,74 @@ public class FhMiniController extends BaseController {
}
return AjaxResult.error();
}
//@TokenCheck
@ApiOperation(value="获取用户会员vip列表")
@GetMapping(value = "/queryUserVipList")
public AjaxResult queryUserVipList(){
return AjaxResult.success(userVipService.queryFront());
}
//@TokenCheck
@ApiOperation(value="支付购买用户会员vip")
@PostMapping(value = "/payUserVip")
public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){
log.debug("【微信图文小程序】支付购买用户会员vip参数为:{}", JSON.toJSONString(dto));
boolean b = userVipRecordService.payUserVip(dto);
if(b){
return AjaxResult.success("购买支付成功!");
}else{
return AjaxResult.error("购买支付失败!");
}
}
//@TokenCheck
@ApiOperation(value="查询产品列表")
@GetMapping(value = "/listProduct")
public AjaxResult listProduct(){
return AjaxResult.success(productService.queryFrontList());
}
//@TokenCheck
@ApiOperation(value="查询产品详情")
@GetMapping(value = "/queryProductDetails/{id}")
public AjaxResult queryProductDetails(@ApiParam("主键id") @PathVariable("id") Long id){
return AjaxResult.success(productService.queryFrontDetails(id));
}
//@TokenCheck
@ApiOperation(value="关注")
@PostMapping(value = "/fhFollow")
public AjaxResult fhFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
followService.follow(dto.getUserId(),dto.getCreatorId(),"1");
log.debug("【快手图文小程序】用户【{}】关注了艺术家【{}】",dto.getUserId(),dto.getCreatorId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="取消关注")
@PostMapping(value = "/fhUnFollow")
public AjaxResult fhUnFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
followService.unFollow(dto.getUserId(),dto.getCreatorId(),"1");
log.debug("【快手图文小程序】用户【{}】取消关注了艺术家【{}】",dto.getUserId(),dto.getCreatorId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="查询是否关注过")
@PostMapping(value = "/judgeFhFollow")
public AjaxResult judgeFhFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
log.debug("【快手图文小程序】查询是否关注过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(followService.checkFollow(dto.getUserId(),dto.getCreatorId(),"1"));
}
//@TokenCheck
@ApiOperation(value="查询关注的艺术家分页")
@PostMapping(value = "/getFhFollowCreatorPage")
public TableDataInfo getFhFollowCreatorPage(@Validated @RequestBody @ApiParam("用户id对象") UserIdDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
log.debug("【快手图文小程序】查询关注的艺术家分页参数为:{}", JSON.toJSONString(dto));
List<CreatorFollowVo> creatorFollowVos = followService.queryFollowCreatorList(dto.getUserId(), "1");
return getDataTable(creatorFollowVos);
}
}

7
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhUserController.java

@ -37,13 +37,6 @@ public class FhUserController extends BaseController {
public TableDataInfo pageFhUser(@RequestBody @ApiParam("分页对象") FhUserPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<FhUser> fhUsers = fhUserService.queryPage(dto);
for (FhUser fhUser : fhUsers) {
if(fhUser != null){
if(StringUtils.isNotBlank(fhUser.getFhCode())){
fhUser.setFhCode(Sm4Util.sm4Decrypt(fhUser.getFhCode()));
}
}
}
return getDataTable(fhUsers);
}

81
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/LevelInfoController.java

@ -0,0 +1,81 @@
package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.bnyer.common.core.utils.DesensitizedUtils;
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.LevelInfo;
import com.bnyer.img.dto.LevelInfoDto;
import com.bnyer.img.dto.LevelInfoPageDto;
import com.bnyer.img.dto.StatusDto;
import com.bnyer.img.service.LevelInfoService;
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/levelInfo")
@Slf4j
public class LevelInfoController extends BaseController {
@Autowired
private LevelInfoService levelInfoService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询等级信息分页")
@PostMapping("/page")
public TableDataInfo pageLevelInfo(@RequestBody @ApiParam("分页对象") LevelInfoPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<LevelInfo> levelInfos = levelInfoService.queryList(dto);
return getDataTable(levelInfos);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="新增等级信息")
@PostMapping(value = "/insert")
public AjaxResult insertLevelInfo(@Validated @RequestBody @ApiParam("levelInfo对象") LevelInfoDto dto){
log.debug("【图文平台后台】新增等级信息参数为:{}", DesensitizedUtils.getJson(dto));
return AjaxResult.success(levelInfoService.insert(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="修改等级信息")
@PostMapping(value = "/update")
public AjaxResult updateLevelInfo(@Validated @RequestBody @ApiParam("levelInfo对象") LevelInfoDto dto){
log.debug("【图文平台后台】修改等级信息参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(levelInfoService.update(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="删除levelInfo")
@DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteLevelInfo(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除等级信息参数为:{}", JSON.toJSONString(ids));
return AjaxResult.success(levelInfoService.delete(ids));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询等级信息详情")
@GetMapping(value = "/details/{id}")
public AjaxResult detailsLevelInfo(@PathVariable @ApiParam("主键id") Long id){
log.debug("【图文平台后台】查询等级信息详情参数为:{}", id);
return AjaxResult.success(levelInfoService.queryDetails(id));
}
//@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(levelInfoService.changeStatus(dto.getId(),dto.getStatus()));
}
}

80
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/ProductController.java

@ -0,0 +1,80 @@
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.domain.Product;
import com.bnyer.img.dto.ProductDto;
import com.bnyer.img.dto.ProductPageDto;
import com.bnyer.img.dto.StatusDto;
import com.bnyer.img.service.ProductService;
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/product")
@Slf4j
public class ProductController extends BaseController {
@Autowired
private ProductService productService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询产品分页")
@PostMapping("/page")
public TableDataInfo pageProduct(@RequestBody @ApiParam("分页对象") ProductPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<Product> products = productService.queryPage(dto);
return getDataTable(products);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="新增产品")
@PostMapping(value = "/insert")
public AjaxResult insertProduct(@Validated @RequestBody @ApiParam("产品对象") ProductDto dto){
log.debug("【图文平台后台】新增产品参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(productService.insert(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="修改产品")
@PostMapping(value = "/update")
public AjaxResult updateProduct(@Validated @RequestBody @ApiParam("产品对象")ProductDto dto){
log.debug("【图文平台后台】修改产品参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(productService.update(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="删除产品")
@DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteProduct(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除产品参数为:{}", JSON.toJSONString(ids));
return AjaxResult.success(productService.delete(ids));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询产品详情")
@GetMapping(value = "/details/{id}")
public AjaxResult detailsProduct(@PathVariable @ApiParam("主键id") Long id){
log.debug("【图文平台后台】查询产品详情参数为:{}", id);
return AjaxResult.success(productService.details(id));
}
//@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(productService.changeStatus(dto.getId(),dto.getStatus()));
}
}

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

@ -2,6 +2,7 @@ package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
@ -9,10 +10,7 @@ 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.CreatorDetailsVo;
import com.bnyer.img.vo.CreatorVo;
import com.bnyer.img.vo.SignImgVo;
import com.bnyer.img.vo.TiktokImgVo;
import com.bnyer.img.vo.*;
import com.github.pagehelper.PageHelper;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -64,6 +62,18 @@ public class TiktokMiniController extends BaseController {
@Autowired
private BzDataService bzDataService;
@Autowired
private UserVipService userVipService;
@Autowired
private UserVipRecordService userVipRecordService;
@Autowired
private ProductService productService;
@Autowired
private FollowService followService;
//@TokenCheck
@ApiOperation(value="查询banner列表")
@GetMapping(value = "/listBanner")
@ -262,7 +272,7 @@ public class TiktokMiniController extends BaseController {
}
//@TokenCheck
@ApiOperation(value="根据分类id和便签Id查询图片分页")
@ApiOperation(value="根据分类id和签Id查询图片分页")
@PostMapping(value = "/querySignImg")
public TableDataInfo querySignImg(@RequestBody @ApiParam("分页对象") SignImgPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
@ -276,6 +286,9 @@ public class TiktokMiniController extends BaseController {
public TableDataInfo querySignImgBySignName(@RequestBody @ApiParam("分页对象") SignImgNamePageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<TiktokImgVo> tiktokImgs = tiktokImgService.queryImgPageBySignName(dto.getSignName());
if(tiktokImgs.size() <= 0){
throw new ServiceException("该标签名称不存在!");
}
return getDataTable(tiktokImgs);
}
@ -289,4 +302,74 @@ public class TiktokMiniController extends BaseController {
}
return AjaxResult.error();
}
//@TokenCheck
@ApiOperation(value="获取用户会员vip列表")
@GetMapping(value = "/queryUserVipList")
public AjaxResult queryUserVipList(){
return AjaxResult.success(userVipService.queryFront());
}
//@TokenCheck
@ApiOperation(value="支付购买用户会员vip")
@PostMapping(value = "/payUserVip")
public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){
log.debug("【微信图文小程序】支付购买用户会员vip参数为:{}", JSON.toJSONString(dto));
boolean b = userVipRecordService.payUserVip(dto);
if(b){
return AjaxResult.success("购买支付成功!");
}else{
return AjaxResult.error("购买支付失败!");
}
}
//@TokenCheck
@ApiOperation(value="查询产品列表")
@GetMapping(value = "/listProduct")
public AjaxResult listProduct(){
return AjaxResult.success(productService.queryFrontList());
}
//@TokenCheck
@ApiOperation(value="查询产品详情")
@GetMapping(value = "/queryProductDetails/{id}")
public AjaxResult queryProductDetails(@ApiParam("主键id") @PathVariable("id") Long id){
return AjaxResult.success(productService.queryFrontDetails(id));
}
//@TokenCheck
@ApiOperation(value="关注")
@PostMapping(value = "/tiktokFollow")
public AjaxResult tiktokFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
followService.follow(dto.getUserId(),dto.getCreatorId(),"0");
log.debug("【抖音图文小程序】用户【{}】关注了艺术家【{}】",dto.getUserId(),dto.getCreatorId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="取消关注")
@PostMapping(value = "/tiktokUnFollow")
public AjaxResult tiktokUnFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
followService.unFollow(dto.getUserId(),dto.getCreatorId(),"0");
log.debug("【抖音图文小程序】用户【{}】取消关注了艺术家【{}】",dto.getUserId(),dto.getCreatorId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="查询是否关注过")
@PostMapping(value = "/judgeTiktokFollow")
public AjaxResult judgeTiktokFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
log.debug("【抖音图文小程序】查询是否关注过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(followService.checkFollow(dto.getUserId(),dto.getCreatorId(),"0"));
}
//@TokenCheck
@ApiOperation(value="查询关注的艺术家分页")
@PostMapping(value = "/getTiktokFollowCreatorPage")
public TableDataInfo getTiktokFollowCreatorPage(@Validated @RequestBody @ApiParam("用户id对象") UserIdDto dto){
log.debug("【抖音图文小程序】查询关注的艺术家分页参数为:{}", JSON.toJSONString(dto));
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<CreatorFollowVo> creatorFollowVos = followService.queryFollowCreatorList(dto.getUserId(), "0");
return getDataTable(creatorFollowVos);
}
}

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

@ -37,13 +37,6 @@ public class TiktokUserController extends BaseController {
public TableDataInfo pageTiktokUser(@RequestBody @ApiParam("分页对象") TiktokUserPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<TiktokUser> tiktokUsers = tiktokUserService.queryPage(dto);
for (TiktokUser tiktokUser : tiktokUsers) {
if(tiktokUser != null){
if(StringUtils.isNotBlank(tiktokUser.getTiktokCode())){
tiktokUser.setTiktokCode(Sm4Util.sm4Decrypt(tiktokUser.getTiktokCode()));
}
}
}
return getDataTable(tiktokUsers);
}

80
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/UserVipController.java

@ -0,0 +1,80 @@
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.domain.UserVip;
import com.bnyer.img.dto.UserVipDto;
import com.bnyer.img.dto.UserVipPageDto;
import com.bnyer.img.dto.StatusDto;
import com.bnyer.img.service.UserVipService;
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 = "【图文平台】用户会员vip接口",tags = "【图文平台】用户会员vip接口")
@RestController
@RequestMapping("/img/userVip")
@Slf4j
public class UserVipController extends BaseController {
@Autowired
private UserVipService userVipService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询用户会员vip分页")
@PostMapping("/page")
public TableDataInfo pageUserVip(@RequestBody @ApiParam("分页对象") UserVipPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<UserVip> userVips = userVipService.queryPage(dto);
return getDataTable(userVips);
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="新增用户会员vip")
@PostMapping(value = "/insert")
public AjaxResult insertUserVip(@Validated @RequestBody @ApiParam("用户会员vip对象") UserVipDto dto){
log.debug("【图文平台后台】新增用户会员vip参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(userVipService.insert(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="修改用户会员vip")
@PostMapping(value = "/update")
public AjaxResult updateUserVip(@Validated @RequestBody @ApiParam("用户会员vip对象")UserVipDto dto){
log.debug("【图文平台后台】修改用户会员vip参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(userVipService.update(dto.extractParam()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="删除用户会员vip")
@DeleteMapping(value = "/delete/{ids}")
public AjaxResult deleteUserVip(@PathVariable @ApiParam("主键ids") List<Long> ids){
log.debug("【图文平台后台】删除用户会员vip参数为:{}", JSON.toJSONString(ids));
return AjaxResult.success(userVipService.delete(ids));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询用户会员vip详情")
@GetMapping(value = "/details/{id}")
public AjaxResult detailsUserVip(@PathVariable @ApiParam("主键id") Long id){
log.debug("【图文平台后台】查询用户会员vip详情参数为:{}", id);
return AjaxResult.success(userVipService.queryDetails(id));
}
//@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(userVipService.changeStatus(dto.getId(),dto.getStatus()));
}
}

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

@ -2,6 +2,7 @@ package com.bnyer.img.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.common.core.web.page.TableDataInfo;
@ -10,6 +11,7 @@ import com.bnyer.img.domain.Feedback;
import com.bnyer.img.dto.*;
import com.bnyer.img.service.*;
import com.bnyer.img.vo.CreatorDetailsVo;
import com.bnyer.img.vo.CreatorFollowVo;
import com.bnyer.img.vo.SignImgVo;
import com.bnyer.img.vo.TiktokImgVo;
import com.github.pagehelper.PageHelper;
@ -63,6 +65,18 @@ public class WxMiniController extends BaseController {
@Autowired
private BzDataService bzDataService;
@Autowired
private UserVipService userVipService;
@Autowired
private UserVipRecordService userVipRecordService;
@Autowired
private ProductService productService;
@Autowired
private FollowService followService;
//@TokenCheck
@ApiOperation(value="查询banner列表")
@GetMapping(value = "/listBanner")
@ -259,7 +273,7 @@ public class WxMiniController extends BaseController {
}
//@TokenCheck
@ApiOperation(value="根据分类id和便签Id查询图片分页")
@ApiOperation(value="根据分类id和签Id查询图片分页")
@PostMapping(value = "/querySignImg")
public TableDataInfo querySignImg(@RequestBody @ApiParam("分页对象") SignImgPageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
@ -273,6 +287,9 @@ public class WxMiniController extends BaseController {
public TableDataInfo querySignImgBySignName(@RequestBody @ApiParam("分页对象") SignImgNamePageDto dto){
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<TiktokImgVo> tiktokImgs = tiktokImgService.queryImgPageBySignName(dto.getSignName());
if(tiktokImgs.size() <= 0){
throw new ServiceException("该标签名称不存在!");
}
return getDataTable(tiktokImgs);
}
@ -286,4 +303,74 @@ public class WxMiniController extends BaseController {
}
return AjaxResult.error();
}
//@TokenCheck
@ApiOperation(value="获取用户会员vip列表")
@GetMapping(value = "/queryUserVipList")
public AjaxResult queryUserVipList(){
return AjaxResult.success(userVipService.queryFront());
}
//@TokenCheck
@ApiOperation(value="支付购买用户会员vip")
@PostMapping(value = "/payUserVip")
public AjaxResult payUserVip(@Validated @RequestBody @ApiParam("购买会员vip对象") PayUserVipDto dto){
log.debug("【微信图文小程序】支付购买用户会员vip参数为:{}", JSON.toJSONString(dto));
boolean b = userVipRecordService.payUserVip(dto);
if(b){
return AjaxResult.success("购买支付成功!");
}else{
return AjaxResult.error("购买支付失败!");
}
}
//@TokenCheck
@ApiOperation(value="查询产品列表")
@GetMapping(value = "/listProduct")
public AjaxResult listProduct(){
return AjaxResult.success(productService.queryFrontList());
}
//@TokenCheck
@ApiOperation(value="查询产品详情")
@GetMapping(value = "/queryProductDetails/{id}")
public AjaxResult queryProductDetails(@ApiParam("主键id") @PathVariable("id") Long id){
return AjaxResult.success(productService.queryFrontDetails(id));
}
//@TokenCheck
@ApiOperation(value="关注")
@PostMapping(value = "/wechatFollow")
public AjaxResult wechatFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
followService.follow(dto.getUserId(),dto.getCreatorId(),"2");
log.debug("【微信图文小程序】用户【{}】关注了艺术家【{}】",dto.getUserId(),dto.getCreatorId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="取消关注")
@PostMapping(value = "/wechatUnFollow")
public AjaxResult wechatUnFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
followService.unFollow(dto.getUserId(),dto.getCreatorId(),"2");
log.debug("【微信图文小程序】用户【{}】取消关注了艺术家【{}】",dto.getUserId(),dto.getCreatorId());
return AjaxResult.success();
}
//@TokenCheck
@ApiOperation(value="查询是否关注过")
@PostMapping(value = "/judgeWechatFollow")
public AjaxResult judgeWechatFollow(@Validated @RequestBody @ApiParam("关注对象") FollowDto dto){
log.debug("【微信图文小程序】查询是否关注过参数为:{}", JSON.toJSONString(dto));
return AjaxResult.success(followService.checkFollow(dto.getUserId(),dto.getCreatorId(),"2"));
}
//@TokenCheck
@ApiOperation(value="查询关注的艺术家分页")
@PostMapping(value = "/getWechatFollowCreatorPage")
public TableDataInfo getWechatFollowCreatorPage(@Validated @RequestBody @ApiParam("用户id对象") UserIdDto dto){
log.debug("【微信图文小程序】查询关注的艺术家分页参数为:{}", JSON.toJSONString(dto));
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
List<CreatorFollowVo> creatorFollowVos = followService.queryFollowCreatorList(dto.getUserId(), "2");
return getDataTable(creatorFollowVos);
}
}

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

@ -37,13 +37,6 @@ public class WxUserController extends BaseController {
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);
}

74
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/YunmeiController.java

@ -0,0 +1,74 @@
package com.bnyer.img.controller;
import com.bnyer.common.core.web.controller.BaseController;
import com.bnyer.common.core.web.domain.AjaxResult;
import com.bnyer.img.dto.CardBuyOrderDto;
import com.bnyer.img.dto.DirectBuyOrderDto;
import com.bnyer.img.dto.OrderDetailsDto;
import com.bnyer.img.dto.OrderNotifyDto;
import com.bnyer.img.service.YunmeiService;
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.web.bind.annotation.*;
@Api(value = "【图文平台】云媒影视接口",tags = "【图文平台】云媒影视接口")
@RestController
@RequestMapping("/img/yunmei")
@Slf4j
public class YunmeiController extends BaseController {
@Autowired
private YunmeiService yunmeiService;
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询云媒影视产品列表")
@PostMapping("/list")
public AjaxResult getProductList(){
return AjaxResult.success(yunmeiService.getProductList());
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询云媒影视产品详情")
@PostMapping("/details/{skuId}")
public AjaxResult getProductDetails(@ApiParam("商品id") @PathVariable("skuId") Long skuId){
return AjaxResult.success(yunmeiService.getProductDetails(skuId));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="直充下单")
@PostMapping("/directBuy")
public AjaxResult directBuy(@ApiParam("直充下单参数") @RequestBody DirectBuyOrderDto params){
return AjaxResult.success(yunmeiService.directBuyOrder(params));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="卡密下单")
@PostMapping("/cardBuy")
public AjaxResult cardBuy(@ApiParam("卡密下单参数") @RequestBody CardBuyOrderDto params){
return AjaxResult.success(yunmeiService.cardBuyOrder(params));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询订单详情")
@PostMapping("/order/details")
public AjaxResult getProductDetails(@ApiParam("订单id对象") @RequestBody OrderDetailsDto params){
return AjaxResult.success(yunmeiService.getOrderDetails(params.getOrderNo()));
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="查询商户余额")
@PostMapping("/balance")
public AjaxResult getBalance(){
return AjaxResult.success(yunmeiService.getBalance());
}
//@RequiresPermissions("system:config:list")
@ApiOperation(value="云媒订单回调")
@PostMapping("/notifyOrder")
public AjaxResult notifyOrder(@ApiParam("云媒回调参数") @RequestBody OrderNotifyDto params){
return AjaxResult.success(yunmeiService.orderNotify(params));
}
}

14
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Creator.java

@ -119,5 +119,19 @@ public class Creator extends BaseDomain {
@ApiModelProperty(value="最后登录时间")
private Date lastLoginTime;
/**
* 等级id
*/
@TableField(value = "level_id")
@ApiModelProperty(value="等级id")
private Long levelId;
/**
* 经验值
*/
@TableField(value = "exp")
@ApiModelProperty(value="经验值")
private Integer exp;
private static final long serialVersionUID = 1L;
}

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

@ -32,7 +32,7 @@ public class FhUser extends BaseDomain {
/**
* id
*/
@TableId(value = "id", type = IdType.INPUT)
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="id")
private Long id;
@ -50,6 +50,20 @@ public class FhUser extends BaseDomain {
@ApiModelProperty(value="快手id")
private String fhCode;
/**
* 手机号
*/
@TableField(value = "phone")
@ApiModelProperty(value="手机号")
private String phone;
/**
* 是否为vip(0->;1->)
*/
@TableField(value = "is_vip")
@ApiModelProperty(value="是否为vip(0->否;1->是)")
private String isVip;
/**
* 头像img地址
*/

68
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/LevelInfo.java

@ -0,0 +1,68 @@
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;
@ApiModel(value="com-bnyer-img-domain-LevelInfo")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_level_info")
public class LevelInfo extends BaseDomain {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键id")
private Long id;
/**
* 等级头衔名称
*/
@TableField(value = "title")
@ApiModelProperty(value="等级头衔名称")
private String title;
/**
* 头衔图标
*/
@TableField(value = "title_icon")
@ApiModelProperty(value="头衔图标")
private String titleIcon;
/**
* 最小经验值
*/
@TableField(value = "min_exp")
@ApiModelProperty(value="最小经验值")
private Integer minExp;
/**
* 最大经验值
*/
@TableField(value = "max_exp")
@ApiModelProperty(value="最大经验值")
private Integer maxExp;
/**
* 等级类型(0->用户;1->创作者)
*/
@TableField(value = "type")
@ApiModelProperty(value="等级类型(0->用户;1->创作者)")
private String type;
private static final long serialVersionUID = 1L;
}

104
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Product.java

@ -0,0 +1,104 @@
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.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(value="com-bnyer-img-domain-Product")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_product")
public class Product extends BaseDomain {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键id")
private Long id;
/**
* 商品名称
*/
@TableField(value = "product_name")
@ApiModelProperty(value="商品名称")
private String productName;
/**
* 商品原价
*/
@TableField(value = "product_origin_price")
@ApiModelProperty(value="商品原价")
private BigDecimal productOriginPrice;
/**
* 商品售价
*/
@TableField(value = "product_sale_price")
@ApiModelProperty(value="商品售价")
private BigDecimal productSalePrice;
/**
* 折扣
*/
@TableField(value = "product_discount")
@ApiModelProperty(value="折扣")
private String productDiscount;
/**
* 节省钱数
*/
@TableField(value = "product_saved_money")
@ApiModelProperty(value="节省钱数")
private String productSavedMoney;
/**
* 库存量
*/
@TableField(value = "product_num")
@ApiModelProperty(value="库存量")
private Integer productNum;
/**
* 商品描述
*/
@TableField(value = "product_desc")
@ApiModelProperty(value="商品描述")
private String productDesc;
/**
* 商品图片
*/
@TableField(value = "product_img")
@ApiModelProperty(value="商品图片")
private String productImg;
/**
* 商品类型(0->直充;1->卡密)
*/
@TableField(value = "product_type")
@ApiModelProperty(value="商品类型(0->直充;1->卡密)")
private String productType;
/**
* 商品使用说明
*/
@TableField(value = "product_use_desc")
@ApiModelProperty(value="商品使用说明")
private String productUseDesc;
private static final long serialVersionUID = 1L;
}

128
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/ProductOrder.java

@ -0,0 +1,128 @@
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 com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(value="com-bnyer-img-domain-ProductOrder")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_product_order")
public class ProductOrder implements Serializable {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键id")
private Long id;
/**
* 订单流水号
*/
@TableField(value = "order_id")
@ApiModelProperty(value="订单流水号")
private String orderId;
/**
* 平台用户唯一id
*/
@TableField(value = "user_code")
@ApiModelProperty(value="平台用户唯一id")
private String userCode;
/**
* 商品价格
*/
@TableField(value = "product_price")
@ApiModelProperty(value="商品价格")
private BigDecimal productPrice;
/**
* 支付价格
*/
@TableField(value = "pay_price")
@ApiModelProperty(value="支付价格")
private BigDecimal payPrice;
/**
* 充值账号
*/
@TableField(value = "account_num")
@ApiModelProperty(value="充值账号")
private String accountNum;
/**
* 订单类型(0->直充;1->卡密)
*/
@TableField(value = "order_type")
@ApiModelProperty(value="订单类型(0->直充;1->卡密)")
private String orderType;
/**
* 订单状态(0->待支付;1->支付中;2->已完成;3->已失效;4->支付失败)
*/
@TableField(value = "order_status")
@ApiModelProperty(value="订单状态(0->待支付;1->支付中;2->已完成;3->已失效;4->支付失败)")
private String orderStatus;
/**
* 账号类型(0->手机号;1->QQ号)
*/
@TableField(value = "account_type")
@ApiModelProperty(value="账号类型(0->手机号;1->QQ号)")
private String accountType;
/**
* 来源平台(0->抖音;1->快手;2->微信)
*/
@TableField(value = "platform")
@ApiModelProperty(value="来源平台(0->抖音;1->快手;2->微信)")
private String platform;
/**
* 支付方式(0->支付宝;1->微信支付)
*/
@TableField(value = "pay_type")
@ApiModelProperty(value="支付方式(0->支付宝;1->微信支付)")
private String payType;
/**
* 是否展示(0->;1->)
*/
@TableField(value = "is_show")
@ApiModelProperty(value="是否展示(0->否;1->是)")
private String isShow;
/**
* 创建时间
*/
@TableField(value = "create_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty(value="创建时间")
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone = "GMT+8")
@ApiModelProperty(value="更新时间")
private Date updateTime;
private static final long serialVersionUID = 1L;
}

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

@ -66,10 +66,10 @@ public class TiktokImg extends BaseDomain {
private Integer collectionNum;
/**
* 状态(0->待审核;1->审核通过)
* 状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)
*/
@TableField(value = "status")
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
/**

14
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/TiktokUser.java

@ -37,6 +37,20 @@ public class TiktokUser extends BaseDomain {
@ApiModelProperty(value="抖音id")
private String tiktokCode;
/**
* 手机号
*/
@TableField(value = "phone")
@ApiModelProperty(value="手机号")
private String phone;
/**
* 是否为vip(0->;1->)
*/
@TableField(value = "is_vip")
@ApiModelProperty(value="是否为vip(0->否;1->是)")
private String isVip;
/**
* 头像img地址
*/

90
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/UserVip.java

@ -0,0 +1,90 @@
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.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(value="com-bnyer-img-domain-UserVip")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_user_vip")
public class UserVip extends BaseDomain {
/**
* 主键Id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键Id")
private Long id;
/**
* vip名称
*/
@TableField(value = "vip_name")
@ApiModelProperty(value="vip名称")
private String vipName;
/**
* vip编码
*/
@TableField(value = "vip_code")
@ApiModelProperty(value="vip编码")
private String vipCode;
/**
* 原价
*/
@TableField(value = "origin_price")
@ApiModelProperty(value="原价")
private BigDecimal originPrice;
/**
* 售价
*/
@TableField(value = "price")
@ApiModelProperty(value="售价")
private BigDecimal price;
/**
* 描述
*/
@TableField(value = "description")
@ApiModelProperty(value="描述")
private String description;
/**
* 热门描述
*/
@TableField(value = "hot_sign_desc")
@ApiModelProperty(value="热门描述")
private String hotSignDesc;
/**
* 时长天数
*/
@TableField(value = "days")
@ApiModelProperty(value="时长天数")
private Integer days;
/**
* 是否到期自动续费(0>;1->)
*/
@TableField(value = "is_delay")
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
private static final long serialVersionUID = 1L;
}

93
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/UserVipRecord.java

@ -0,0 +1,93 @@
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 com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import lombok.ToString;
@ApiModel(value="com-bnyer-img-domain-UserVipRecord")
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@TableName(value = "img_user_vip_record")
public class UserVipRecord extends BaseDomain {
/**
* 主键id
*/
@TableId(value = "id", type = IdType.AUTO)
@ApiModelProperty(value="主键id")
private Long id;
/**
* 订单id
*/
@TableField(value = "order_id")
@ApiModelProperty(value="订单id")
private String orderId;
/**
* 用户手机号
*/
@TableField(value = "phone")
@ApiModelProperty(value="用户手机号")
private String phone;
/**
* 用户vip表id
*/
@TableField(value = "user_vip_id")
@ApiModelProperty(value="用户vip表id")
private Long userVipId;
/**
* 开始时间
*/
@TableField(value = "start_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="开始时间")
private Date startTime;
/**
* 到期时间
*/
@TableField(value = "end_time")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@ApiModelProperty(value="到期时间")
private Date endTime;
/**
* 支付金额
*/
@TableField(value = "price")
@ApiModelProperty(value="支付金额")
private BigDecimal price;
/**
* vip类型状态(0->月卡;1->季卡;2->年卡)
*/
@TableField(value = "type")
@ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")
private String type;
/**
* 支付状态(0->待支付;1->已支付;2->支付失败;3->支付异常)
*/
@TableField(value = "status")
@ApiModelProperty(value="支付状态(0->待支付;1->已支付;2->支付失败;3->支付异常)")
private String status;
private static final long serialVersionUID = 1L;
}

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

@ -50,6 +50,20 @@ public class WxUser extends BaseDomain {
@ApiModelProperty(value="微信id")
private String wxCode;
/**
* 手机号
*/
@TableField(value = "phone")
@ApiModelProperty(value="手机号")
private String phone;
/**
* 是否为vip(0->;1->)
*/
@TableField(value = "is_vip")
@ApiModelProperty(value="是否为vip(0->否;1->是)")
private String isVip;
/**
* 头像img地址
*/

31
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/AlipayParamDto.java

@ -0,0 +1,31 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;
import java.io.Serializable;
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("支付宝支付参数接收类")
public class AlipayParamDto implements Serializable {
@ApiModelProperty(value="商户订单号")
private String outTradeNo;
@ApiModelProperty(value="订单名称")
private String subject;
@ApiModelProperty(value="付款金额")
private String totalAmount;
@ApiModelProperty(value="备注")
private String body;
}

27
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CardBuyOrderDto.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.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("卡密下单接收类")
public class CardBuyOrderDto implements Serializable {
@NotNull(message = "商品id不能为空!")
@ApiModelProperty(value="商品id")
private Integer skuId;
@NotNull(message = "购买数量不能为空!")
@ApiModelProperty(value="购买数量")
private Integer buyQuantity;
}

19
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorLogoutDto.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;
import javax.validation.constraints.NotBlank;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("艺术家登出入参")
public class CreatorLogoutDto implements Serializable {
@NotBlank(message = "手机号不能为空!")
@ApiModelProperty(value = "手机号")
private String phone;
}

31
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/DirectBuyOrderDto.java

@ -0,0 +1,31 @@
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.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("直充下单接收类")
public class DirectBuyOrderDto implements Serializable {
@NotNull(message = "商品id不能为空!")
@ApiModelProperty(value="商品id")
private Integer skuId;
@NotNull(message = "直充账号类型不能为空!")
@ApiModelProperty(value="直充账号类型,10:手机号;20:QQ号,30:邮箱;40:用户ID")
private Integer chargeAccountType;
@NotBlank(message = "直充账号不能为空!")
@ApiModelProperty(value="直充账号")
private String chargeAccountNumber;
}

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

@ -14,6 +14,9 @@ public class FhUserPageDto extends BasePageDto {
@ApiModelProperty(value="用户昵称")
private String username;
@ApiModelProperty(value="是否是vip")
private String isVip;
@ApiModelProperty(value="是否展示")
private String isShow;
}

24
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/FollowDto.java

@ -0,0 +1,24 @@
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 FollowDto implements Serializable {
@NotNull(message = "用户id不能为空!")
@ApiModelProperty(value="用户id")
private Long userId;
@NotNull(message = "艺术家id不能为空!")
@ApiModelProperty(value="艺术家id")
private Long creatorId;
}

41
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/LevelInfoDto.java

@ -0,0 +1,41 @@
package com.bnyer.img.dto;
import com.bnyer.common.core.utils.bean.BeanUtils;
import com.bnyer.img.domain.LevelInfo;
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 LevelInfoDto implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@ApiModelProperty(value="等级头衔名称")
private String title;
@ApiModelProperty(value="头衔图标")
private String titleIcon;
@ApiModelProperty(value="最小经验值")
private Integer minExp;
@ApiModelProperty(value="最大经验值")
private Integer maxExp;
@ApiModelProperty(value="等级类型(0->用户;1->创作者)")
private String type;
public LevelInfo extractParam(){
LevelInfo levelInfo = new LevelInfo();
BeanUtils.copyProperties(this,levelInfo);
return levelInfo;
}
}

21
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/LevelInfoPageDto.java

@ -0,0 +1,21 @@
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 LevelInfoPageDto extends BasePageDto {
@ApiModelProperty(value="等级头衔名称")
private String title;
@ApiModelProperty(value="等级类型(0->用户;1->创作者)")
private String type;
@ApiModelProperty(value="是否显示")
private String isShow;
}

26
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ModifySignDto.java

@ -0,0 +1,26 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.util.List;
@Getter
@Setter
@ApiModel("修改sign接收类")
public class ModifySignDto implements Serializable {
@ApiModelProperty(value="图片id")
private Long imgId;
@ApiModelProperty(value="分类id")
private Long typeId;
@ApiModelProperty(value="标签列表")
private List<Long> signList;
}

20
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/OrderDetailsDto.java

@ -0,0 +1,20 @@
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.NotBlank;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("云媒订单详情接收类")
public class OrderDetailsDto implements Serializable {
@NotBlank(message = "订单id不能为空!")
@ApiModelProperty(value="订单id")
private String orderNo;
}

44
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/OrderNotifyDto.java

@ -0,0 +1,44 @@
package com.bnyer.img.dto;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("订单回调接收类")
public class OrderNotifyDto implements Serializable {
@NotBlank(message = "商户id不能为空!")
@ApiModelProperty(value="商户id")
private String app_id;
@NotNull(message = "时间戳不能为空!")
@ApiModelProperty(value="时间戳")
private long timestamp;
@NotBlank(message = "签名值不能为空!")
@ApiModelProperty(value="签名值")
private String sign;
@NotBlank(message = "商户侧订单号不能为空!")
@ApiModelProperty(value="商户侧订单号")
private String customer_order_no;
@NotBlank(message = "订单状态不能为空!")
@ApiModelProperty(value="订单状态(SUCCESS-成功;FAIL-失败)")
private String trade_state;
@NotBlank(message = "描述信息不能为空!")
@ApiModelProperty(value="描述信息")
private String description;
}

33
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/PayUserVipDto.java

@ -0,0 +1,33 @@
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.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
@Getter
@Setter
@ApiModel("用户会员vip支付接收类")
public class PayUserVipDto implements Serializable {
@NotBlank(message = "手机号不能为空!")
@ApiModelProperty(value="手机号")
private String phone;
@NotNull(message = "用户vipId不能为空!")
@ApiModelProperty(value="用户vip表id")
private Long userVipId;
@NotBlank(message = "vip类型状态不能为空!")
@ApiModelProperty(value="vip类型状态(0->月卡;1->季卡;2->年卡)")
private String type;
@NotBlank(message = "支付金额不能为空!")
@ApiModelProperty(value="支付金额")
private String price;
}

80
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProductDto.java

@ -0,0 +1,80 @@
package com.bnyer.img.dto;
import com.bnyer.img.domain.Product;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
@Getter
@Setter
@ApiModel("产品接收类")
public class ProductDto implements Serializable {
@ApiModelProperty(value="主键id")
private Long id;
@NotBlank(message = "商品名称不能为空!")
@ApiModelProperty(value="商品名称")
private String productName;
@NotBlank(message = "商品原价不能为空!")
@ApiModelProperty(value="商品原价")
private String productOriginPrice;
@NotBlank(message = "商品售价不能为空!")
@ApiModelProperty(value="商品售价")
private String productSalePrice;
@NotBlank(message = "折扣不能为空!")
@ApiModelProperty(value="折扣")
private String productDiscount;
@NotBlank(message = "节省钱数不能为空!")
@ApiModelProperty(value="节省钱数")
private String productSavedMoney;
@NotNull(message = "库存量不能为空!")
@ApiModelProperty(value="库存量")
private Integer productNum;
@NotBlank(message = "商品描述不能为空!")
@ApiModelProperty(value="商品描述")
private String productDesc;
@NotBlank(message = "商品图片不能为空!")
@ApiModelProperty(value="商品图片")
private String productImg;
@NotBlank(message = "商品类型不能为空!")
@ApiModelProperty(value="商品类型(0->直充;1->卡密)")
private String productType;
@NotBlank(message = "商品使用说明不能为空!")
@ApiModelProperty(value="商品使用说明")
private String productUseDesc;
public Product extractParam(){
Product product = new Product();
if(this.getId() != null){
product.setId(this.getId());
}
product.setProductName(this.getProductName());
product.setProductOriginPrice(new BigDecimal(this.getProductOriginPrice()));
product.setProductSalePrice(new BigDecimal(this.getProductSalePrice()));
product.setProductDiscount(this.getProductDiscount());
product.setProductSavedMoney(this.getProductSavedMoney());
product.setProductNum(this.getProductNum());
product.setProductDesc(this.getProductDesc());
product.setProductImg(this.getProductImg());
product.setProductType(this.getProductType());
product.setProductUseDesc(this.getProductUseDesc());
return product;
}
}

21
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProductPageDto.java

@ -0,0 +1,21 @@
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 ProductPageDto extends BasePageDto {
@ApiModelProperty(value="商品名称")
private String productName;
@ApiModelProperty(value="商品类型(0->直充;1->卡密)")
private String productType;
@ApiModelProperty(value="是否显示")
private String isShow;
}

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

@ -36,7 +36,7 @@ public class TiktokImgDto implements Serializable {
@ApiModelProperty(value="收藏量")
private Integer collectionNum;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
@ApiModelProperty(value="是否热门(0->冷门;1->热门)")

5
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgListMiniDto.java

@ -12,7 +12,7 @@ import java.io.Serializable;
@Getter
@Setter
@ApiModel("抖音图片小程序对内外接收类")
public class TiktokImgListMiniDto implements Serializable {
public class TiktokImgListMiniDto extends BasePageDto {
@NotNull(message = "艺术家id不能为空")
@ApiModelProperty(value="用户id")
@ -20,4 +20,7 @@ public class TiktokImgListMiniDto implements Serializable {
@ApiModelProperty(value="分类id")
private String typeId;
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
}

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

@ -29,7 +29,7 @@ public class TiktokImgMiniDto implements Serializable {
@ApiModelProperty(value="分类id")
private Long typeId;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
@ApiModelProperty(value="标签id列表")

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

@ -17,7 +17,7 @@ public class TiktokImgPageDto extends BasePageDto {
@ApiModelProperty(value="分类id")
private Long typeId;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
@ApiModelProperty(value="是否热门(0->冷门;1->热门)")

3
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokUserPageDto.java

@ -14,6 +14,9 @@ public class TiktokUserPageDto extends BasePageDto {
@ApiModelProperty(value="用户昵称")
private String username;
@ApiModelProperty(value="是否是vip")
private String isVip;
@ApiModelProperty(value="是否展示")
private String isShow;
}

20
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/UserIdDto.java

@ -0,0 +1,20 @@
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("关注用户id接收类")
public class UserIdDto extends BasePageDto {
@NotNull(message = "用户id不能为空!")
@ApiModelProperty(value="用户id")
private Long userId;
}

65
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/UserVipDto.java

@ -0,0 +1,65 @@
package com.bnyer.img.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.utils.bean.BeanUtils;
import com.bnyer.img.domain.Banner;
import com.bnyer.img.domain.UserVip;
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;
import java.math.BigDecimal;
@Getter
@Setter
@ApiModel("用户会员vip接收类")
public class UserVipDto implements Serializable {
@ApiModelProperty(value="主键Id")
private Long id;
@ApiModelProperty(value="vip名称")
private String vipName;
@ApiModelProperty(value="原价")
private String originPrice;
@ApiModelProperty(value="售价")
private String price;
@ApiModelProperty(value="描述")
private String description;
@ApiModelProperty(value="热门描述")
private String hotSignDesc;
@ApiModelProperty(value="时长天数")
private Integer days;
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
public UserVip extractParam(){
UserVip userVip = new UserVip();
if(this.getId() != null){
userVip.setId(this.getId());
}
userVip.setVipName(this.getVipName());
userVip.setOriginPrice(new BigDecimal(this.getOriginPrice()));
userVip.setPrice(new BigDecimal(this.getPrice()));
if(StringUtils.isNotBlank(this.getDescription())){
userVip.setDescription(this.getDescription());
}
if(StringUtils.isNotBlank(this.getHotSignDesc())){
userVip.setHotSignDesc(this.getHotSignDesc());
}
userVip.setDays(this.getDays());
userVip.setIsDelay(this.getIsDelay());
return userVip;
}
}

22
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/UserVipPageDto.java

@ -0,0 +1,22 @@
package com.bnyer.img.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
@ApiModel("会员vip分页接收类")
public class UserVipPageDto extends BasePageDto {
@ApiModelProperty(value="vip名称")
private String vipName;
@ApiModelProperty(value="vip编码")
private String vipCode;
@ApiModelProperty(value="是否到期自动续费(0>否;1->是)")
private String isDelay;
}

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

@ -14,6 +14,9 @@ public class WxUserPageDto extends BasePageDto {
@ApiModelProperty(value="用户昵称")
private String username;
@ApiModelProperty(value="是否是vip")
private String isVip;
@ApiModelProperty(value="是否展示")
private String isShow;
}

19
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/YunmeiCallbackEnum.java

@ -0,0 +1,19 @@
package com.bnyer.img.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author chengkun
* @date 2022/4/19 17:46
*/
@Getter
@AllArgsConstructor
public enum YunmeiCallbackEnum {
SUCCESS("SUCCESS","ok"),
FAIL("FAIL","fail");
private String value;
private String msg;
}

18
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/enums/YunmeiEnum.java

@ -0,0 +1,18 @@
package com.bnyer.img.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author chengkun
* @date 2022/4/19 17:46
*/
@Getter
@AllArgsConstructor
public enum YunmeiEnum {
SUCCESS(0,"接口调用成功");
private Integer code;
private String msg;
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorMapper.java

@ -7,7 +7,9 @@ import com.bnyer.img.vo.*;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
/**
* @author chengkun
@ -55,4 +57,11 @@ public interface CreatorMapper extends BaseMapper<Creator> {
* @return
*/
CreatorDetailsVo queryCreatorDetailsByScanCode(@Param("scanCode") String scanCode);
/**
* 根据id查询艺术家
* @param sets 艺术家ids
* @return -
*/
List<CreatorFollowVo> queryFollowCreator(@Param("idList") Set<Long> sets);
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/LevelInfoMapper.java

@ -0,0 +1,9 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.LevelInfo;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface LevelInfoMapper extends BaseMapper<LevelInfo> {
}

25
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ProductMapper.java

@ -0,0 +1,25 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.Product;
import com.bnyer.img.vo.ProductVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface ProductMapper extends BaseMapper<Product> {
/**
* 查询前端产品列表
* @return -
*/
List<ProductVo> queryFrontList();
/**
* 商品详情
* @param id 主键id
* @return -
*/
ProductVo queryFrontDetails(Long id);
}

7
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ProductOrderMapper.java

@ -0,0 +1,7 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.ProductOrder;
public interface ProductOrderMapper extends BaseMapper<ProductOrder> {
}

10
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java

@ -15,9 +15,10 @@ public interface TiktokImgMapper extends BaseMapper<TiktokImg> {
* 查询用户对内图片列表
* @param creatorId 艺术家id
* @param typeId 分类Id
* @param status 状态值
* @return -
*/
List<ImgSignVo> queryInList(@Param("creatorId")String creatorId, @Param("typeId") String typeId);
List<ImgSignVo> queryInList(@Param("creatorId")String creatorId, @Param("typeId") String typeId, @Param("status") String status);
/**
* 查询艺术家对外图片列表
@ -41,6 +42,13 @@ public interface TiktokImgMapper extends BaseMapper<TiktokImg> {
*/
TiktokImgVo queryDetails(@Param("imgId") String imgId);
/**
* 查询艺术家端图片详情
* @param imgId 图片id
* @return -
*/
TiktokImgVo queryCreatorImgDetails(@Param("imgId") String imgId);
/**
* 查询首页图片分页
* @return -

19
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipMapper.java

@ -0,0 +1,19 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.UserVip;
import com.bnyer.img.vo.UserVipVo;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserVipMapper extends BaseMapper<UserVip> {
/**
* 获取小程序端会员vip列表
* @return -
*/
List<UserVipVo> queryFront();
}

9
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/UserVipRecordMapper.java

@ -0,0 +1,9 @@
package com.bnyer.img.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.bnyer.img.domain.UserVipRecord;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UserVipRecordMapper extends BaseMapper<UserVipRecord> {
}

26
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/AlipayService.java

@ -0,0 +1,26 @@
package com.bnyer.img.service;
import com.bnyer.img.dto.AlipayParamDto;
import javax.servlet.http.HttpServletRequest;
/**
* @author chengkun
* @date 2022/8/30 16:42
*/
public interface AlipayService {
/**
* 支付宝支付
* @param params 支付参数
* @return -
*/
String aliPay(AlipayParamDto params);
/**
* 支付宝回调
* @param request 回调请求
* @return -
*/
String alipayCallBack(HttpServletRequest request);
}

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

@ -191,7 +191,7 @@ public interface CreatorProfitService {
* @param creatorId 艺术家id
* @return -
*/
boolean checkCreatorCanUpload(Long creatorId);
int getUploadNum(Long creatorId);
/**
* 批量删除昨日艺术家上传次数

6
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorService.java

@ -97,6 +97,12 @@ public interface CreatorService {
*/
Map<String,Object> login(CreatorLoginDto param);
/**
* 小程序艺术家登出
* @param phone 手机号
*/
boolean logout(String phone);
/**
* 查询所有审核通过的艺术家
* @return -

52
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FollowService.java

@ -0,0 +1,52 @@
package com.bnyer.img.service;
import com.bnyer.img.vo.CreatorFollowVo;
import java.util.List;
/**
* @author chengkun
* @date 2022/9/17 15:54
*/
public interface FollowService {
/**
* 关注艺术家
* @param userId 用户id
* @param creatorId 艺术家id
* @param platform 平台
*/
void follow(Long userId,Long creatorId,String platform);
/**
* 取消关注
* @param userId 用户id
* @param creatorId 艺术家id
* @param platform 平台
*/
void unFollow(Long userId,Long creatorId,String platform);
/**
* 检查用户是否关注
* @param userId 用户id
* @param creatorId 艺术家id
* @param platform 平台
* @return -
*/
boolean checkFollow(Long userId,Long creatorId,String platform);
/**
* 根据平台和用户id返回关注的艺术家列表
* @param userId 用户id
* @param platform 平台
* @return -
*/
List<CreatorFollowVo> queryFollowCreatorList(Long userId,String platform);
/**
* 艺术家获取粉丝数量
* @param creatorId 艺术家id
* @return -
*/
Integer queryFansNum(Long creatorId);
}

52
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/LevelInfoService.java

@ -0,0 +1,52 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.LevelInfo;
import com.bnyer.img.dto.LevelInfoPageDto;
import java.util.List;
public interface LevelInfoService {
/**
* 新增等级
* @param levelInfo 等级信息
* @return -
*/
int insert(LevelInfo levelInfo);
/**
* 修改等级
* @param levelInfo 等级信息
* @return -
*/
int update(LevelInfo levelInfo);
/**
* 批量删除等级信息
* @param ids 主键ids
* @return -
*/
int delete(List<Long> ids);
/**
* 查询等级列表分页
* @param params 分页参数
* @return -
*/
List<LevelInfo> queryList(LevelInfoPageDto params);
/**
* 查询等级详情
* @param id 主键Id
* @return -
*/
LevelInfo queryDetails(Long id);
/**
* 变更显示状态
* @param id 主键id
* @param status 状态
* @return -
*/
int changeStatus(Long id, String status);
}

66
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/ProductService.java

@ -0,0 +1,66 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.Product;
import com.bnyer.img.dto.ProductPageDto;
import com.bnyer.img.vo.ProductVo;
import java.util.List;
public interface ProductService {
/**
* 新增商品
* @param product 商品
* @return -
*/
int insert(Product product);
/**
* 编辑商品
* @param product 商品
* @return -
*/
int update(Product product);
/**
* 批量删除商品
* @param ids 商品ids
* @return -
*/
int delete(List<Long> ids);
/**
* 查询商品分页
* @param params 分页参数
* @return -
*/
List<Product> queryPage(ProductPageDto params);
/**
* 查询商品详情
* @param id 主键id
* @return -
*/
Product details(Long id);
/**
* 查询前端商品列表
* @return -
*/
List<ProductVo> queryFrontList();
/**
* 查询前端盖商品详情
* @param id 主键id
* @return -
*/
ProductVo queryFrontDetails(Long id);
/**
* 变更显示状态
* @param id 主键id
* @param status 状态
* @return -
*/
int changeStatus(Long id,String status);
}

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

@ -70,4 +70,13 @@ public interface SignService {
* @return -
*/
List<SignImgVo> queryFrontSignByTypeId(Long typeId);
/**
* 修改艺术家端标签
* @param imgId 图片id
* @param typeId 分类id
* @param signIds 标签列表
* @return -
*/
void modifySign(Long imgId,Long typeId,List<Long> signIds);
}

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

@ -47,12 +47,13 @@ public interface TiktokImgService {
TiktokImg queryDetails(Long id);
/**
* 查询指定艺术家对内的图片集合(待审核通过审核的,审核拒绝的)
* 查询指定艺术家对内的图片集合
* @param creatorId 艺术家id
* @param typeId 分类id
* @param status 状态
* @return -
*/
List<ImgSignVo> queryInList(String creatorId, String typeId);
List<ImgSignVo> queryInList(String creatorId, String typeId,String status);
/**
* 查询指定艺术家对外的图片集合(通过审核的)
@ -69,6 +70,13 @@ public interface TiktokImgService {
*/
TiktokImgVo queryImgDetails(String imgId);
/**
* 查询艺术家端图片详情
* @param imgId 图片id
* @return -
*/
TiktokImgVo queryCreatorImgDetails(String imgId);
/**
* 变更显示状态
* @param id 主键id
@ -147,4 +155,11 @@ public interface TiktokImgService {
* @return -
*/
List<TiktokImgVo> queryImgPageBySignName(String signName);
/**
* 置顶图片
* @param id 主键id
* @return -
*/
int topImg(Long id);
}

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

@ -1,7 +1,8 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.TiktokUser;
import com.bnyer.img.dto.*;
import com.bnyer.img.dto.TiktokLoginDto;
import com.bnyer.img.dto.TiktokUserPageDto;
import java.util.List;
import java.util.Map;

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

@ -0,0 +1,15 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.UserVipRecord;
import com.bnyer.img.dto.PayUserVipDto;
public interface UserVipRecordService {
/**
* 下单并支付会员vip
* @param param 用户vip参数对象
* @return -
*/
boolean payUserVip(PayUserVipDto param);
}

59
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/UserVipService.java

@ -0,0 +1,59 @@
package com.bnyer.img.service;
import com.bnyer.img.domain.UserVip;
import com.bnyer.img.dto.UserVipPageDto;
import com.bnyer.img.vo.UserVipVo;
import java.util.List;
public interface UserVipService {
/**
* 新增会员vip
* @param userVip vip
* @return -
*/
int insert(UserVip userVip);
/**
* 修改会员vip
* @param userVip vip
* @return -
*/
int update(UserVip userVip);
/**
* 删除会员vip
* @param ids vip列表
* @return -
*/
int delete(List<Long> ids);
/**
* 获取会员vip详情
* @param id 主键id
* @return -
*/
UserVip queryDetails(Long id);
/**
* 获取会员vip分页
* @param param 分页参数
* @return -
*/
List<UserVip> queryPage(UserVipPageDto param);
/**
* 变更显示状态
* @param id 主键id
* @param status 状态
* @return -
*/
int changeStatus(Long id,String status);
/**
* 获取小程序端会员vip列表
* @return -
*/
List<UserVipVo> queryFront();
}

57
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/YunmeiService.java

@ -0,0 +1,57 @@
package com.bnyer.img.service;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.img.dto.CardBuyOrderDto;
import com.bnyer.img.dto.DirectBuyOrderDto;
import com.bnyer.img.dto.OrderNotifyDto;
public interface YunmeiService {
/**
* 获取产品列表
* @return -
*/
JSONArray getProductList();
/**
* 根据商品id获取商品详情
* @param skuId 商品Id
* @return -
*/
JSONObject getProductDetails(Long skuId);
/**
* 直充下单
* @param params 下单参数
* @return -
*/
JSONObject directBuyOrder(DirectBuyOrderDto params);
/**
* 卡密下单
* @param params
* @return
*/
JSONObject cardBuyOrder(CardBuyOrderDto params);
/**
* 查询订单详情
* @param orderNo 订单id
* @return -
*/
JSONObject getOrderDetails(String orderNo);
/**
* 查询商户余额
* @return -
*/
JSONObject getBalance();
/**
* 订单通知回调
* @param params 回调参数
* @return -
*/
String orderNotify(OrderNotifyDto params);
}

95
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/AlipayServiceImpl.java

@ -0,0 +1,95 @@
package com.bnyer.img.service.impl;
import com.alibaba.fastjson.JSON;
import com.alipay.api.AlipayApiException;
import com.alipay.api.AlipayClient;
import com.alipay.api.DefaultAlipayClient;
import com.alipay.api.internal.util.AlipaySignature;
import com.alipay.api.request.AlipayTradePagePayRequest;
import com.bnyer.img.config.AlipayConfig;
import com.bnyer.img.dto.AlipayParamDto;
import com.bnyer.img.service.AlipayService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.servlet.http.HttpServletRequest;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
/**
* @author chengkun
* @date 2022/8/30 17:09
*/
@Service
@Slf4j
public class AlipayServiceImpl implements AlipayService {
@Autowired
private AlipayConfig alipayConfig;
@Override
public String aliPay(AlipayParamDto params) {
String result = null;
//1、获得初始化的AlipayClient
AlipayClient client = new DefaultAlipayClient(
alipayConfig.getGatewayUrl(),
alipayConfig.getAppId(),
alipayConfig.getPrivateKey(),
alipayConfig.getCharset(),
alipayConfig.getPublicKey(),
alipayConfig.getSignType());
//2、设置请求参数
AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
//页面跳转同步通知页面路径
request.setReturnUrl(alipayConfig.getReturnUrl());
// 服务器异步通知页面路径
request.setNotifyUrl(alipayConfig.getNotifyUrl());
//封装参数
request.setBizContent(JSON.toJSONString(client));
try {
//3、请求支付宝进行付款,并获取支付结果
result = client.pageExecute(request).getBody();
} catch (AlipayApiException e) {
log.error("支付宝支付失败!错误原因为:", e);
return null;
}
return result;
}
@Override
public String alipayCallBack(HttpServletRequest request) {
Map<String, String> result = new HashMap<>();
Map requestParams = request.getParameterMap();
for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext(); ) {
String name = (String) iter.next();
String[] values = (String[]) requestParams.get(name);
String valueStr = "";
for (int i = 0; i < values.length; i++) {
valueStr = (i == values.length - 1) ? valueStr + values[i]
: valueStr + values[i] + ",";
}
//乱码解决,这段代码在出现乱码时使用。
//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
result.put(name, valueStr);
}
String outTradeNo = result.get("out_trade_no");
String appId = result.get("app_id");
String sellerId = result.get("out_trade_no");
String totalAmount = result.get("total_amount");
log.info("outTradeNo=={},appId=={},sellerId=={},totalAmount=={}",outTradeNo,appId,sellerId,totalAmount);
try {
boolean flag = AlipaySignature.rsaCheckV1(result, alipayConfig.getPublicKey(), alipayConfig.getCharset(), alipayConfig.getSignType());
if (flag) {
return "success";
} else {
return "failure";
}
} catch (AlipayApiException e) {
e.printStackTrace();
return "failure";
}
}
}

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

@ -366,21 +366,16 @@ public class CreatorProfitServiceImpl implements CreatorProfitService {
}
@Override
public boolean checkCreatorCanUpload(Long creatorId) {
public int getUploadNum(Long creatorId) {
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(new Date());
String redisKey = RedisKeyConstant.CREATOR_UPLOAD_KEY + date;
if (redisService.hasHashKey(redisKey, creatorId.toString())) {
//存在键,判断次数,次数达标则不可下载
Integer downloadNum = redisService.getCacheMapValue(redisKey, creatorId.toString());
if (downloadNum >= 40) {
return true;
} else {
return false;
}
//存在键直接返回次数
return redisService.getCacheMapValue(redisKey, creatorId.toString());
}else{
//不存在上传
return false;
//不存在则上传次数为0
return 0;
}
}

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

@ -8,21 +8,25 @@ 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.config.WxConfig;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.constants.StatusImgConstant;
import com.bnyer.img.constants.TiktokConstant;
import com.bnyer.img.domain.Creator;
import com.bnyer.img.domain.InviteLog;
import com.bnyer.img.domain.TiktokImg;
import com.bnyer.img.domain.VerifyLog;
import com.bnyer.img.dto.*;
import com.bnyer.img.dto.CreatorDto;
import com.bnyer.img.dto.CreatorLoginDto;
import com.bnyer.img.dto.CreatorPageDto;
import com.bnyer.img.dto.VerifyCreatorDto;
import com.bnyer.img.mapper.CreatorMapper;
import com.bnyer.img.mapper.InviteLogMapper;
import com.bnyer.img.mapper.TiktokImgMapper;
import com.bnyer.img.mapper.VerifyLogMapper;
import com.bnyer.img.service.CreatorService;
import com.bnyer.img.vo.*;
import com.bnyer.img.vo.CreatorDetailsVo;
import com.bnyer.img.vo.CreatorHotVo;
import com.bnyer.img.vo.CreatorLoginVo;
import com.bnyer.img.vo.CreatorVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -60,9 +64,6 @@ public class CreatorServiceImpl implements CreatorService {
@Autowired
private RestTemplate restTemplate;
@Autowired
private WxConfig wxConfig;
@Override
public boolean checkPhone(String phone){
LambdaQueryWrapper<Creator> wrapper = new LambdaQueryWrapper<>();
@ -290,6 +291,21 @@ public class CreatorServiceImpl implements CreatorService {
return map;
}
@Override
public boolean logout(String phone) {
//存在则设置会话状态
String redisKey = RedisKeyConstant.WECHAT_CREATOR_LOGIN_KEY+phone;
if(redisService.hasKey(redisKey)){
redisService.deleteObject(redisKey);
log.info("艺术家【{}】注销成功!",phone);
return true;
}else{
log.error("艺术家【{}】注销失败!",phone);
return false;
}
}
@Override
public List<Creator> queryPassList() {
LambdaQueryWrapper<Creator> wrapper = new LambdaQueryWrapper<>();

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

@ -24,8 +24,12 @@ import com.bnyer.img.vo.FhSessionInfoVo;
import com.bnyer.img.vo.FhUserInfoVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpEntity;
import org.springframework.http.HttpHeaders;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap;
import org.springframework.web.client.RestTemplate;
import javax.crypto.Cipher;
@ -101,20 +105,22 @@ public class FhUserServiceImpl implements FhUserService {
* @return -
*/
private FhSessionInfoVo getSessionInfo(String code) {
Map<String,String> map = new HashMap<>();
map.put("appid",fhConfig.getAppId());
map.put("app_secret", fhConfig.getSecret());
map.put("js_code", code);
JSONObject sessionInfo = restTemplate.postForObject(fhConfig.getSessionInfoUrl(), map, JSONObject.class);
HttpHeaders headers = new HttpHeaders();
headers.add("Content-Type", "application/x-www-form-urlencoded");
MultiValueMap<String, Object> postParameters = new LinkedMultiValueMap<>();
postParameters.add("app_id", fhConfig.getAppId());
postParameters.add("app_secret", fhConfig.getSecret());
postParameters.add("js_code", code);
HttpEntity<MultiValueMap<String, Object>> httpEntity = new HttpEntity<>(postParameters, headers);
JSONObject sessionInfo = restTemplate.postForObject(fhConfig.getSessionInfoUrl(), httpEntity, JSONObject.class);
if(!sessionInfo.getString("result").equals(TiktokConstant.FH_SUCCESS)){
//log.error("快手授权session接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",sessionInfo.getString("result"),sessionInfo.getString("err_tips"));
throw new ServiceException("快手授权session接口调用失败!",TiktokConstant.FH_AUTH_ERROR);
}
//调用成功,组装返回数据
JSONObject data = sessionInfo.getJSONObject("data");
FhSessionInfoVo result = new FhSessionInfoVo();
result.setSessionKey(data.getString("session_key"));
result.setOpenId(data.getString("open_id"));
result.setSessionKey(sessionInfo.getString("session_key"));
result.setOpenId(sessionInfo.getString("open_id"));
return result;
}
@ -158,6 +164,7 @@ public class FhUserServiceImpl implements FhUserService {
fhUser.setFhCode(Sm4Util.sm4Encryption(openId));
fhUser.setCreateTime(new Date());
fhUser.setUpdateTime(new Date());
fhUser.setIsShow("1");
fhUserMapper.insert(fhUser);
log.info("快手用户【{}】创建成功!", openId);
return fhUser;

120
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FollowServiceImpl.java

@ -0,0 +1,120 @@
package com.bnyer.img.service.impl;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.PlatformConstant;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.domain.Creator;
import com.bnyer.img.mapper.CreatorMapper;
import com.bnyer.img.service.FollowService;
import com.bnyer.img.vo.CreatorFollowVo;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.*;
/**
* @author chengkun
* @date 2022/9/17 16:18
*/
@Service
@Slf4j
public class FollowServiceImpl implements FollowService {
@Autowired
private RedisService redisService;
@Autowired
private RedisTemplate redisTemplate;
@Autowired
private CreatorMapper creatorMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void follow(Long userId, Long creatorId, String platform) {
String redisKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_FOLLOW_KEY + userId;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FH_USER_FOLLOW_KEY + userId;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_FOLLOW_KEY + userId;
}
//添加粉丝关注艺术家
Set<Long> creatorSet = new HashSet<>();
creatorSet.add(creatorId);
redisService.setCacheSet(redisKey, creatorSet);
//添加艺术家粉丝数量
redisService.hashIncr(RedisKeyConstant.CREATOR_FANS_NUM_KEY, String.valueOf(creatorId),1);
log.debug("平台{}用户{}关注了艺术家{}",platform,userId,creatorId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public void unFollow(Long userId, Long creatorId, String platform) {
String redisKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_FOLLOW_KEY + userId;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FH_USER_FOLLOW_KEY + userId;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_FOLLOW_KEY + userId;
}
//取消粉丝关注艺术家
if(redisService.hasSet(redisKey,creatorId)){
redisService.removeSet(redisKey,creatorId);
//取消艺术家粉丝数量
redisService.hashIncr(RedisKeyConstant.CREATOR_FANS_NUM_KEY, String.valueOf(creatorId),-1);
log.debug("平台{}用户{}取消关注了艺术家{}",platform,userId,creatorId);
}
}
@Override
public boolean checkFollow(Long userId, Long creatorId, String platform) {
String redisKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_FOLLOW_KEY + userId;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FH_USER_FOLLOW_KEY + userId;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_FOLLOW_KEY + userId;
}
if(redisService.hasSet(redisKey,creatorId)){
return true;
}else{
return false;
}
}
@Override
public List<CreatorFollowVo> queryFollowCreatorList(Long userId, String platform) {
String redisKey = null;
if(platform.equals(PlatformConstant.TIKTOK)){
redisKey = RedisKeyConstant.TIKTOK_USER_FOLLOW_KEY + userId;
}else if(platform.equals(PlatformConstant.FAST_HAND)){
redisKey = RedisKeyConstant.FH_USER_FOLLOW_KEY + userId;
}else{
redisKey = RedisKeyConstant.WECHAT_USER_FOLLOW_KEY + userId;
}
if(redisService.hasKey(redisKey)){
Set<Long> cacheSet = redisService.getCacheSet(redisKey);
return creatorMapper.queryFollowCreator(cacheSet);
}else{
return new ArrayList<>();
}
}
@Override
public Integer queryFansNum(Long creatorId) {
String redisKey = RedisKeyConstant.CREATOR_FANS_NUM_KEY;
if(redisService.hasHashKey(redisKey,String.valueOf(creatorId))){
return redisService.getCacheMapValue(redisKey, String.valueOf(creatorId));
}else{
return 0;
}
}
}

77
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/LevelInfoServiceImpl.java

@ -0,0 +1,77 @@
package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.img.domain.LevelInfo;
import com.bnyer.img.domain.Notice;
import com.bnyer.img.dto.LevelInfoPageDto;
import com.bnyer.img.mapper.LevelInfoMapper;
import com.bnyer.img.service.LevelInfoService;
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.List;
@Service
public class LevelInfoServiceImpl implements LevelInfoService {
@Autowired
private LevelInfoMapper levelInfoMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public int insert(LevelInfo levelInfo) {
levelInfo.setCreateTime(new Date());
levelInfo.setUpdateTime(new Date());
levelInfo.setIsShow("1");
levelInfo.setSort(0);
return levelInfoMapper.insert(levelInfo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int update(LevelInfo levelInfo) {
levelInfo.setUpdateTime(new Date());
return levelInfoMapper.updateById(levelInfo);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int delete(List<Long> ids) {
return levelInfoMapper.deleteBatchIds(ids);
}
@Override
public List<LevelInfo> queryList(LevelInfoPageDto params) {
LambdaQueryWrapper<LevelInfo> wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(params.getTitle())){
wrapper.like(LevelInfo::getTitle, params.getTitle());
}
if(StringUtils.isNotBlank(params.getType())){
wrapper.eq(LevelInfo::getType, params.getType());
}
if(StringUtils.isNotBlank(params.getIsShow())){
wrapper.eq(LevelInfo::getIsShow, params.getIsShow());
}
wrapper.orderByDesc(LevelInfo::getSort);
return levelInfoMapper.selectList(wrapper);
}
@Override
public LevelInfo queryDetails(Long id) {
return levelInfoMapper.selectById(id);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int changeStatus(Long id, String status) {
LambdaUpdateWrapper<LevelInfo> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(LevelInfo::getId, id);
LevelInfo levelInfo = new LevelInfo();
levelInfo.setIsShow(status);
return levelInfoMapper.update(levelInfo,wrapper);
}
}

88
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/ProductServiceImpl.java

@ -0,0 +1,88 @@
package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.img.domain.Banner;
import com.bnyer.img.domain.Product;
import com.bnyer.img.dto.ProductPageDto;
import com.bnyer.img.mapper.ProductMapper;
import com.bnyer.img.service.ProductService;
import com.bnyer.img.vo.ProductVo;
import lombok.extern.slf4j.Slf4j;
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.List;
@Service
@Slf4j
public class ProductServiceImpl implements ProductService {
@Autowired
private ProductMapper productMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public int insert(Product product) {
product.setCreateTime(new Date());
product.setUpdateTime(new Date());
product.setIsShow("1");
return productMapper.insert(product);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int update(Product product) {
product.setUpdateTime(new Date());
return productMapper.updateById(product);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int delete(List<Long> ids) {
return productMapper.deleteBatchIds(ids);
}
@Override
public List<Product> queryPage(ProductPageDto params) {
LambdaQueryWrapper<Product> wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(params.getProductName())){
wrapper.like(Product::getProductName, params.getProductName());
}
if(StringUtils.isNotBlank(params.getProductType())){
wrapper.eq(Product::getProductType, params.getProductType());
}
if(StringUtils.isNotBlank(params.getIsShow())){
wrapper.eq(Product::getIsShow, params.getIsShow());
}
return productMapper.selectList(wrapper);
}
@Override
public Product details(Long id) {
return productMapper.selectById(id);
}
@Override
public List<ProductVo> queryFrontList() {
return productMapper.queryFrontList();
}
@Override
public ProductVo queryFrontDetails(Long id) {
return productMapper.queryFrontDetails(id);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int changeStatus(Long id, String status) {
LambdaUpdateWrapper<Product> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(Product::getId, id);
Product product = new Product();
product.setIsShow(status);
return productMapper.update(product,wrapper);
}
}

11
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/SignServiceImpl.java

@ -1,5 +1,6 @@
package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.exception.ServiceException;
@ -111,4 +112,14 @@ public class SignServiceImpl implements SignService {
public List<SignImgVo> queryFrontSignByTypeId(Long typeId) {
return signMapper.queryFrontSign(typeId);
}
@Override
public void modifySign(Long imgId, Long typeId, List<Long> signIds) {
//查询删除原有标签
LambdaQueryWrapper<ImgSignRelation> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(ImgSignRelation::getImgId, imgId);
imgSignRelationMapper.delete(wrapper);
//插入新标签到关系表
imgSignRelationMapper.batctInsert(imgId,typeId,signIds);
}
}

25
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.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.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.redis.service.RedisService;
import com.bnyer.img.constants.RedisKeyConstant;
@ -66,6 +67,11 @@ public class TiktokImgServiceImpl implements TiktokImgService {
imgSignRelationMapper.batctInsert(tiktokImg.getId(),dto.getTypeId(),dto.getSignList());
}
}
//保存当日艺术家上传图片数量
SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd");
String date = df.format(new Date());
String redisKey = RedisKeyConstant.CREATOR_UPLOAD_KEY + date;
redisService.hashIncr(redisKey, dto.getCreatorId().toString(), dto.getImgUrl().toArray().length);
}
@ -121,8 +127,8 @@ public class TiktokImgServiceImpl implements TiktokImgService {
}
@Override
public List<ImgSignVo> queryInList(String creatorId, String typeId) {
return tiktokImgMapper.queryInList(creatorId,typeId);
public List<ImgSignVo> queryInList(String creatorId, String typeId, String status) {
return tiktokImgMapper.queryInList(creatorId,typeId,status);
}
// @Override
@ -135,6 +141,11 @@ public class TiktokImgServiceImpl implements TiktokImgService {
return tiktokImgMapper.queryDetails(imgId);
}
@Override
public TiktokImgVo queryCreatorImgDetails(String imgId) {
return tiktokImgMapper.queryCreatorImgDetails(imgId);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int changeStatus(Long id, String status) {
@ -258,4 +269,14 @@ public class TiktokImgServiceImpl implements TiktokImgService {
return tiktokImgMapper.queryImgPageBySignName(signName);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int topImg(Long id) {
LambdaUpdateWrapper<TiktokImg> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(TiktokImg::getId, id);
TiktokImg img = new TiktokImg();
img.setSort(1);
return tiktokImgMapper.update(img, wrapper);
}
}

85
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceImpl.java

@ -0,0 +1,85 @@
package com.bnyer.img.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.img.domain.Banner;
import com.bnyer.img.domain.UserVip;
import com.bnyer.img.dto.UserVipPageDto;
import com.bnyer.img.mapper.UserVipMapper;
import com.bnyer.img.service.UserVipService;
import com.bnyer.img.vo.UserVipVo;
import lombok.extern.slf4j.Slf4j;
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.List;
@Service
@Slf4j
public class UserVipServiceImpl implements UserVipService {
@Autowired
private UserVipMapper userVipMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public int insert(UserVip userVip) {
userVip.setVipCode(IdUtils.fastSimpleUUID());
userVip.setCreateTime(new Date());
userVip.setUpdateTime(new Date());
userVip.setIsShow("1");
return userVipMapper.insert(userVip);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int update(UserVip userVip) {
userVip.setUpdateTime(new Date());
return userVipMapper.updateById(userVip);
}
@Override
@Transactional(rollbackFor = Exception.class)
public int delete(List<Long> ids) {
return userVipMapper.deleteBatchIds(ids);
}
@Override
public UserVip queryDetails(Long id) {
return userVipMapper.selectById(id);
}
@Override
public List<UserVip> queryPage(UserVipPageDto param) {
LambdaQueryWrapper<UserVip> wrapper = new LambdaQueryWrapper<>();
if(StringUtils.isNotBlank(param.getVipName())){
wrapper.like(UserVip::getVipName, param.getVipName());
}
if(StringUtils.isNotBlank(param.getVipCode())){
wrapper.eq(UserVip::getVipCode, param.getVipCode());
}
if(StringUtils.isNotBlank(param.getIsDelay())){
wrapper.eq(UserVip::getIsDelay, param.getIsDelay());
}
wrapper.orderByDesc(UserVip::getSort);
return userVipMapper.selectList(wrapper);
}
@Override
public int changeStatus(Long id, String status) {
LambdaUpdateWrapper<UserVip> wrapper = new LambdaUpdateWrapper<>();
wrapper.eq(UserVip::getId, id);
UserVip userVip = new UserVip();
userVip.setIsShow(status);
return userVipMapper.update(userVip,wrapper);
}
@Override
public List<UserVipVo> queryFront() {
return userVipMapper.queryFront();
}
}

98
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/UserVipServiceRecordImpl.java

@ -0,0 +1,98 @@
package com.bnyer.img.service.impl;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.IdUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.common.core.utils.DateUtils;
import com.bnyer.common.core.utils.StringUtils;
import com.bnyer.common.core.utils.uuid.IdUtils;
import com.bnyer.common.redis.service.RedissonService;
import com.bnyer.img.constants.RedisKeyConstant;
import com.bnyer.img.constants.UserVipOrderStatusConstant;
import com.bnyer.img.constants.UserVipTypeConstant;
import com.bnyer.img.domain.UserVip;
import com.bnyer.img.domain.UserVipRecord;
import com.bnyer.img.dto.PayUserVipDto;
import com.bnyer.img.dto.UserVipPageDto;
import com.bnyer.img.mapper.UserVipMapper;
import com.bnyer.img.mapper.UserVipRecordMapper;
import com.bnyer.img.service.UserVipRecordService;
import com.bnyer.img.service.UserVipService;
import com.bnyer.img.vo.UserVipVo;
import lombok.extern.slf4j.Slf4j;
import org.redisson.api.RLock;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;
import java.util.List;
import java.util.concurrent.TimeUnit;
@Service
@Slf4j
public class UserVipServiceRecordImpl implements UserVipRecordService {
@Autowired
private UserVipRecordMapper userVipRecordMapper;
@Autowired
private RedissonService redissonService;
@Override
public boolean payUserVip(PayUserVipDto param) {
UserVipRecord userVipRecord = new UserVipRecord();
//生成订单id
userVipRecord.setOrderId(IdUtil.getSnowflakeNextIdStr());
//获取分布式锁
RLock lock = redissonService.getRLock(RedisKeyConstant.PAY_USER_VIP_LOCK_KEY + userVipRecord.getOrderId());
try{
if(lock.tryLock(500, 10000, TimeUnit.MILLISECONDS)){
//调用支付
//保存订单
userVipRecord.setCreateTime(new Date());
userVipRecord.setUpdateTime(new Date());
userVipRecord.setPrice(new BigDecimal(param.getPrice()));
userVipRecord.setStatus(UserVipOrderStatusConstant.UN_PAY);
userVipRecord.setIsShow("1");
Date startTime = new Date();
userVipRecord.setStartTime(startTime);
if(userVipRecord.getType().equals(UserVipTypeConstant.MONTH_CARD)){
//计算月卡(30天)的结束时间
userVipRecord.setEndTime(DateUtils.getDateAfter(startTime, 30));
}else if(userVipRecord.getType().equals(UserVipTypeConstant.SEASON_CARD)){
//结算季卡(90天)的结束时间
userVipRecord.setEndTime(DateUtils.getDateAfter(startTime, 90));
}else{
//计算年卡(365天)的结束时间
userVipRecord.setEndTime(DateUtils.getDateAfter(startTime, 365));
}
}else{
userVipRecord.setStatus(UserVipOrderStatusConstant.PAY_EXCEPTION);
log.error("用户会员vip支付异常,锁被占用!");
throw new ServiceException("系统繁忙,请稍候重试!");
}
}catch (Exception e){
userVipRecord.setStatus(UserVipOrderStatusConstant.PAY_FAIL);
log.error("用户会员vip支付失败!错误原因为【{}】",e.getMessage());
throw new ServiceException("系统繁忙,请勿重复操作!");
}finally {
int insert = userVipRecordMapper.insert(userVipRecord);
if(insert > 0){
return true;
}
//释放锁
if(lock.isHeldByCurrentThread()){
lock.unlock();
log.info("用户会员vip支付操作执行完毕,释放锁成功!");
}
}
return false;
}
}

245
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/YunmeiServiceImpl.java

@ -0,0 +1,245 @@
package com.bnyer.img.service.impl;
import cn.hutool.core.util.IdUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.bnyer.common.core.exception.ServiceException;
import com.bnyer.img.config.YunmeiConfig;
import com.bnyer.img.constants.YunmeiConstant;
import com.bnyer.img.dto.CardBuyOrderDto;
import com.bnyer.img.dto.DirectBuyOrderDto;
import com.bnyer.img.dto.OrderNotifyDto;
import com.bnyer.img.enums.YunmeiCallbackEnum;
import com.bnyer.img.enums.YunmeiEnum;
import com.bnyer.img.service.YunmeiService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.client.RestTemplate;
import java.util.HashMap;
import java.util.Map;
@Service
@Slf4j
public class YunmeiServiceImpl implements YunmeiService {
@Autowired
private RestTemplate restTemplate;
@Autowired
private YunmeiConfig yunmeiConfig;
@Override
public JSONArray getProductList() {
long timeMillis = System.currentTimeMillis();
String signContent = "app_id="+yunmeiConfig.getAppId()+"&timestamp="+timeMillis
+"&version="+yunmeiConfig.getVersion()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
Map<String, Object> map = new HashMap<>();
map.put("app_id",yunmeiConfig.getAppId());
map.put("timestamp", timeMillis);
map.put("version", yunmeiConfig.getVersion());
map.put("biz_content", "");
map.put("sign", sign);
JSONObject result = restTemplate.postForObject(yunmeiConfig.getUrl() + YunmeiConstant.PRODUCT_LIST,map, JSONObject.class);
if(result != null && !result.getString("retcode").equals(YunmeiEnum.SUCCESS.getCode().toString())){
log.error("###获取云媒产品列表失败!错误码为:{},错误信息为:{}",result.getString("retcode"),result.getString("retmsg"));
throw new ServiceException(result.getString("retmsg"),Integer.parseInt(result.getString("retcode")));
}
return result.getJSONArray("data");
}
@Override
public JSONObject getProductDetails(Long skuId) {
long timeMillis = System.currentTimeMillis();
Map<String,Object> bizMap = new HashMap<>();
bizMap.put("sku_id",skuId);
String bizContent = JSON.toJSONString(bizMap);
String signContent = "app_id="+yunmeiConfig.getAppId()+"&biz_content="+ bizContent +"&timestamp="+timeMillis
+"&version="+yunmeiConfig.getVersion()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
Map<String, Object> map = new HashMap<>();
map.put("app_id",yunmeiConfig.getAppId());
map.put("timestamp", timeMillis);
map.put("version", yunmeiConfig.getVersion());
map.put("biz_content", bizContent);
map.put("sign",sign);
JSONObject result = restTemplate.postForObject(yunmeiConfig.getUrl() + YunmeiConstant.PRODUCT_DETAILS, map, JSONObject.class);
if(result != null){
if(!result.getString("retcode").equals(YunmeiEnum.SUCCESS.getCode().toString())){
log.error("###获取云媒产品【{}】详情失败!错误码为:{},错误信息为:{}",skuId,result.getString("retcode"),result.getString("retmsg"));
throw new ServiceException(result.getString("retmsg"),Integer.parseInt(result.getString("retcode")));
}
if(result.getJSONObject("data") != null){
return result.getJSONObject("data");
}else{
return null;
}
}
return null;
}
@Override
public JSONObject directBuyOrder(DirectBuyOrderDto params) {
long timeMillis = System.currentTimeMillis();
String orderId = IdUtil.getSnowflakeNextIdStr();
Map<String,Object> bizMap = new HashMap<>();
bizMap.put("customer_order_no", orderId);
bizMap.put("sku_id", params.getSkuId());
bizMap.put("order_type", 10);
bizMap.put("charge_acount_type", params.getChargeAccountType());
bizMap.put("charge_acount_number", params.getChargeAccountNumber());
String bizContent = JSON.toJSONString(bizMap);
String signContent = "app_id="+yunmeiConfig.getAppId()+"&biz_content="+ bizContent +"&notify_url="+yunmeiConfig.getNotifyUrl()
+"&timestamp="+timeMillis+"&version="+yunmeiConfig.getVersion()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
Map<String, Object> map = new HashMap<>();
map.put("app_id",yunmeiConfig.getAppId());
map.put("timestamp", timeMillis);
map.put("version", yunmeiConfig.getVersion());
map.put("notify_url", yunmeiConfig.getNotifyUrl());
map.put("biz_content", bizContent);
map.put("sign",sign);
JSONObject result = restTemplate.postForObject(yunmeiConfig.getUrl() + YunmeiConstant.CREATE_ORDER, map, JSONObject.class);
if(result != null){
if(!result.getString("retcode").equals(YunmeiEnum.SUCCESS.getCode().toString())){
log.error("###账号【{}】订单id【{}】直充下单产品【{}】失败!错误码为:{},错误信息为:{}",params.getChargeAccountNumber(),orderId,params.getSkuId(),result.getString("retcode"),result.getString("retmsg"));
throw new ServiceException(result.getString("retmsg"),Integer.parseInt(result.getString("retcode")));
}
if(result.getJSONObject("data") != null){
return result.getJSONObject("data");
}else{
return null;
}
}
return null;
}
@Override
public JSONObject cardBuyOrder(CardBuyOrderDto params) {
String orderId = IdUtil.getSnowflakeNextIdStr();
long timeMillis = System.currentTimeMillis();
Map<String,Object> bizMap = new HashMap<>();
bizMap.put("customer_order_no", orderId);
bizMap.put("sku_id", params.getSkuId());
bizMap.put("order_type", 20);
bizMap.put("buy_quantity", params.getBuyQuantity());
String bizContent = JSON.toJSONString(bizMap);
String signContent = "app_id="+yunmeiConfig.getAppId()+"&biz_content="+ bizContent +"&notify_url="+yunmeiConfig.getNotifyUrl()
+"&timestamp="+timeMillis+"&version="+yunmeiConfig.getVersion()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
Map<String, Object> map = new HashMap<>();
map.put("app_id",yunmeiConfig.getAppId());
map.put("timestamp", timeMillis);
map.put("version", yunmeiConfig.getVersion());
map.put("notify_url", yunmeiConfig.getNotifyUrl());
map.put("biz_content", bizContent);
map.put("sign",sign);
JSONObject result = restTemplate.postForObject(yunmeiConfig.getUrl() + YunmeiConstant.CREATE_ORDER, map, JSONObject.class);
if(result != null){
if(!result.getString("retcode").equals(YunmeiEnum.SUCCESS.getCode().toString())){
log.error("###订单id【{}】卡密下单产品【{}】失败!错误码为:{},错误信息为:{}",orderId,params.getSkuId(),result.getString("retcode"),result.getString("retmsg"));
throw new ServiceException(result.getString("retmsg"),Integer.parseInt(result.getString("retcode")));
}
if(result.getJSONObject("data") != null){
return result.getJSONObject("data");
}else{
return null;
}
}
return null;
}
@Override
public JSONObject getOrderDetails(String orderNo) {
long timeMillis = System.currentTimeMillis();
Map<String,Object> bizMap = new HashMap<>();
bizMap.put("customer_order_no",orderNo);
String bizContent = JSON.toJSONString(bizMap);
String signContent = "app_id="+yunmeiConfig.getAppId()+"&biz_content="+ bizContent +"&timestamp="+timeMillis
+"&version="+yunmeiConfig.getVersion()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
Map<String, Object> map = new HashMap<>();
map.put("app_id",yunmeiConfig.getAppId());
map.put("timestamp", timeMillis);
map.put("version", yunmeiConfig.getVersion());
map.put("biz_content", bizContent);
map.put("sign",sign);
JSONObject result = restTemplate.postForObject(yunmeiConfig.getUrl() + YunmeiConstant.ORDER_DETAILS, map, JSONObject.class);
if(result != null){
if(!result.getString("retcode").equals(YunmeiEnum.SUCCESS.getCode().toString())){
log.error("###订单id【{}】查询订单详情失败!错误码为:{},错误信息为:{}",orderNo,result.getString("retcode"),result.getString("retmsg"));
throw new ServiceException(result.getString("retmsg"),Integer.parseInt(result.getString("retcode")));
}
if(result.getJSONObject("data") != null){
return result.getJSONObject("data");
}else{
return null;
}
}
return null;
}
@Override
public JSONObject getBalance() {
long timeMillis = System.currentTimeMillis();
String signContent = "app_id="+yunmeiConfig.getAppId()+"&timestamp="+timeMillis
+"&version="+yunmeiConfig.getVersion()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
Map<String, Object> map = new HashMap<>();
map.put("app_id",yunmeiConfig.getAppId());
map.put("timestamp", timeMillis);
map.put("version", yunmeiConfig.getVersion());
map.put("biz_content", "");
map.put("sign", sign);
JSONObject result = restTemplate.postForObject(yunmeiConfig.getUrl() + YunmeiConstant.AMOUNT,map, JSONObject.class);
if(result != null){
if(!result.getString("retcode").equals(YunmeiEnum.SUCCESS.getCode().toString())){
log.error("###查询商户余额失败!错误码为:{},错误信息为:{}",result.getString("retcode"),result.getString("retmsg"));
throw new ServiceException(result.getString("retmsg"),Integer.parseInt(result.getString("retcode")));
}
if(result.getJSONObject("data") != null){
return result.getJSONObject("data");
}else{
return null;
}
}
return null;
}
@Override
public String orderNotify(OrderNotifyDto params) {
//验证商户id
if(!params.getApp_id().equals(yunmeiConfig.getAppId())){
log.error("###云媒订单【{}】回调失败!商户id【{}】不匹配!",params.getCustomer_order_no(),params.getApp_id());
return YunmeiCallbackEnum.FAIL.getValue();
}
//验证签名
String signContent = "app_id="+params.getApp_id()+"&customer_order_no="+params.getCustomer_order_no()
+"&description="+params.getDescription()+"&timestamp="+params.getTimestamp()
+"&trade_state="+params.getTrade_state()+"&app_secret="+yunmeiConfig.getAppSecret();
log.debug("签名明文为:{}",signContent);
String sign = DigestUtils.md5Hex(signContent).toUpperCase();
if(!sign.equals(params.getSign())){
log.error("###云媒订单【{}】回调失败!签名参数【{}】不匹配!",params.getCustomer_order_no(),JSON.toJSONString(params));
return YunmeiCallbackEnum.FAIL.getValue();
}
//验证订单状态
if(!params.getTrade_state().equals(YunmeiCallbackEnum.SUCCESS.getValue())){
log.error("###云媒回调订单【{}】失败!错误信息为【{}】",params.getCustomer_order_no(),params.getDescription());
return YunmeiCallbackEnum.FAIL.getValue();
}
//TODO 回调成功,修改订单状态
log.info("###云媒订单【{}】回调成功!",params.getCustomer_order_no());
return YunmeiCallbackEnum.SUCCESS.getValue();
}
}

6
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorDetailsVo.java

@ -26,6 +26,12 @@ public class CreatorDetailsVo implements Serializable {
@ApiModelProperty(value="头像img地址")
private String img;
@ApiModelProperty(value="等级名称")
private String levelName;
@ApiModelProperty(value="等级图标")
private String levelIcon;
@ApiModelProperty(value="序号")
private Integer sort;

41
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorFollowVo.java

@ -0,0 +1,41 @@
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 CreatorFollowVo implements Serializable {
@ApiModelProperty(value="id")
private Long id;
@ApiModelProperty(value="搜索码")
private String scanCode;
@ApiModelProperty(value="等级名称")
private String levelName;
@ApiModelProperty(value="等级图标")
private String levelIcon;
@ApiModelProperty(value="是否热门")
private String isHot;
@ApiModelProperty(value="头像img地址")
private String img;
@ApiModelProperty(value="序号")
private Integer sort;
@ApiModelProperty(value="简介")
private String intro;
private static final long serialVersionUID = 1L;
}

6
bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorVo.java

@ -41,6 +41,12 @@ public class CreatorVo implements Serializable {
@ApiModelProperty(value="图片喜欢数量")
private Integer imgLikeNum;
@ApiModelProperty(value="等级名称")
private String levelName;
@ApiModelProperty(value="等级图标")
private String levelIcon;
@ApiModelProperty(value="图片列表")
List<TiktokImgVo> imgList;

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

@ -35,7 +35,7 @@ public class ImgSignVo implements Serializable {
@ApiModelProperty(value="收藏量")
private Integer collectionNum;
@ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝;3->已上架;4->已下架))")
@ApiModelProperty(value="状态(0->待审核;1->审核拒绝;2->已上架;3->已下架)")
private String status;
@ApiModelProperty(value="是否热门(0->冷门;1->热门)")

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save