diff --git a/bnyer-api/bnyer-api-img/pom.xml b/bnyer-api/bnyer-api-img/pom.xml new file mode 100644 index 0000000..8266a8f --- /dev/null +++ b/bnyer-api/bnyer-api-img/pom.xml @@ -0,0 +1,26 @@ + + + + com.dimensionalnode + bnyer-api + 1.0.0 + + 4.0.0 + + bnyer-api-img + + + bnyer-api-img图文服务接口模块 + + + + + + com.dimensionalnode + bnyer-common-core + + + + diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/RemoteImgService.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/RemoteImgService.java new file mode 100644 index 0000000..7db8a5d --- /dev/null +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/RemoteImgService.java @@ -0,0 +1,29 @@ +package com.bnyer.img.api; + +import com.bnyer.common.core.constant.ServiceNameConstants; +import com.bnyer.common.core.domain.R; +import com.bnyer.img.api.dto.TiktokImgMiniDto; +import com.bnyer.img.api.factory.RemoteImgFallbackFactory; +import io.swagger.annotations.ApiParam; +import org.springframework.cloud.openfeign.FeignClient; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; + +/** + * 图文服务 + * + * @author chengkun + * @date 2022/7/8 11:03 + */ +@FeignClient(contextId = "remoteImgService", value = ServiceNameConstants.IMG_SERVICE, fallbackFactory = RemoteImgFallbackFactory.class) +public interface RemoteImgService { + + /** + * 保存图片 + * @param dto 图片接收类 + * @return - + */ + @PostMapping(value = "/img/mini/creator/insertTiktokImg") + public R insertTiktokImg(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgMiniDto dto); +} diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/domain/TiktokImg.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/domain/TiktokImg.java new file mode 100644 index 0000000..11e8365 --- /dev/null +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/domain/TiktokImg.java @@ -0,0 +1,87 @@ +package com.bnyer.img.api.domain; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +import java.io.Serializable; +import java.util.Date; + +@ApiModel("抖音图片小程序api端实体类") +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +public class TiktokImg implements Serializable { + /** + * id + */ + @ApiModelProperty(value="id") + private Long id; + + /** + * 图片地址 + */ + @ApiModelProperty(value="图片地址") + private String imgUrl; + + /** + * 艺术家id + */ + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + /** + * 分类id + */ + @ApiModelProperty(value="分类id") + private Long typeId; + + /** + * 下载量 + */ + @ApiModelProperty(value="下载量") + private Integer downloadNum; + + /** + * 点赞量 + */ + @ApiModelProperty(value="点赞量") + private Integer greatNum; + + /** + * 收藏量 + */ + @ApiModelProperty(value="收藏量") + private Integer collectionNum; + + /** + * 状态(0->待审核;1->审核通过) + */ + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + /** + * 是否热门(0->冷门;1->热门) + */ + @ApiModelProperty(value="是否热门(0->冷门;1->热门)") + private String isHot; + + @ApiModelProperty(value="是否显示 (0->隐藏;1->显示)") + private String isShow; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="创建时间") + private Date createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="更新时间") + private Date updateTime; + + @ApiModelProperty(value="排序") + private Integer sort; + + private static final long serialVersionUID = 1L; +} diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java new file mode 100644 index 0000000..06bcc35 --- /dev/null +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/dto/TiktokImgMiniDto.java @@ -0,0 +1,39 @@ +package com.bnyer.img.api.dto; + +import com.bnyer.common.core.utils.bean.BeanUtils; +import com.bnyer.img.api.domain.TiktokImg; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + + +@Getter +@Setter +@ApiModel("抖音图片小程序api端接收类") +public class TiktokImgMiniDto implements Serializable { + + @ApiModelProperty(value="id") + private Long id; + + @ApiModelProperty(value="图片地址") + private String imgUrl; + + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + @ApiModelProperty(value="分类id") + private Long typeId; + + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + + public TiktokImg extractParam(){ + TiktokImg tiktokImg = new TiktokImg(); + BeanUtils.copyProperties(this,tiktokImg); + return tiktokImg; + } +} diff --git a/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteImgFallbackFactory.java b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteImgFallbackFactory.java new file mode 100644 index 0000000..d03a044 --- /dev/null +++ b/bnyer-api/bnyer-api-img/src/main/java/com/bnyer/img/api/factory/RemoteImgFallbackFactory.java @@ -0,0 +1,33 @@ +package com.bnyer.img.api.factory; + +import com.bnyer.common.core.domain.R; +import com.bnyer.img.api.RemoteImgService; +import com.bnyer.img.api.dto.TiktokImgMiniDto; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.cloud.openfeign.FallbackFactory; +import org.springframework.stereotype.Component; + +/** + * 图文服务降级处理 + * + * @author penny + */ +@Component +public class RemoteImgFallbackFactory implements FallbackFactory +{ + private static final Logger log = LoggerFactory.getLogger(RemoteImgFallbackFactory.class); + + + @Override + public RemoteImgService create(Throwable throwable) { + log.error("api图文服务调用失败:{}", throwable.getMessage()); + return new RemoteImgService() + { + @Override + public R insertTiktokImg(TiktokImgMiniDto dto) { + return R.fail("图片保存失败:" + throwable.getMessage()); + } + }; + } +} diff --git a/bnyer-api/bnyer-api-img/src/main/resources/META-INF/spring.factories b/bnyer-api/bnyer-api-img/src/main/resources/META-INF/spring.factories new file mode 100644 index 0000000..d9e7a5e --- /dev/null +++ b/bnyer-api/bnyer-api-img/src/main/resources/META-INF/spring.factories @@ -0,0 +1,2 @@ +org.springframework.boot.autoconfigure.EnableAutoConfiguration = com.bnyer.img.api.factory.RemoteImgFallbackFactory + diff --git a/bnyer-api/pom.xml b/bnyer-api/pom.xml index a7e4f62..78c3b28 100644 --- a/bnyer-api/pom.xml +++ b/bnyer-api/pom.xml @@ -10,6 +10,7 @@ bnyer-api-system + bnyer-api-img bnyer-api diff --git a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/ServiceNameConstants.java b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/ServiceNameConstants.java index cd85ab4..dd160bb 100644 --- a/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/ServiceNameConstants.java +++ b/bnyer-common/bnyer-common-core/src/main/java/com/bnyer/common/core/constant/ServiceNameConstants.java @@ -2,7 +2,7 @@ package com.bnyer.common.core.constant; /** * 服务名称 - * + * * @author ruoyi */ public class ServiceNameConstants @@ -21,4 +21,9 @@ public class ServiceNameConstants * 文件服务的serviceid */ public static final String FILE_SERVICE = "bnyer-file"; + + /** + * 图文服务的serviceid + */ + public static final String IMG_SERVICE = "bnyer-img"; } diff --git a/bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java b/bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java index 46e3515..5540dc1 100644 --- a/bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java +++ b/bnyer-common/bnyer-common-redis/src/main/java/com/bnyer/common/redis/service/RedisService.java @@ -327,4 +327,28 @@ public class RedisService Long releaseStatus = (Long)this.redisTemplate.execute(redisScript, Collections.singletonList(key),value); return releaseStatus; } + + /** + * pv统计 + * @param today 统计的日期 + * @param page 统计的页面 + * @return pv + */ + public Long pvStatistics(String today,String page){ + //访问次数pv + return redisTemplate.opsForValue().increment(today +page+"PV", 1); + + } + /** + * uv统计 + * @param today 统计的日期 + * @param page 统计的页面 + * @param ip 进入页面的ip + * @return uv + */ + public Long uvStatistics(String today,String page,String ip){ + //访问次数uv + return redisTemplate.opsForHyperLogLog().add(today + page+"UV", ip); + + } } diff --git a/bnyer-services/bnyer-file/pom.xml b/bnyer-services/bnyer-file/pom.xml index 4ee76a5..6b8458d 100644 --- a/bnyer-services/bnyer-file/pom.xml +++ b/bnyer-services/bnyer-file/pom.xml @@ -93,7 +93,20 @@ spring-mock 2.0.8 - + + com.dimensionalnode + bnyer-api-img + 1.0.0 + + + com.dimensionalnode + bnyer-common-security + + + org.springframework.boot + spring-boot-configuration-processor + true + diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java index ef57633..b162e1b 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/BnyerFileApplication.java @@ -1,9 +1,13 @@ package com.bnyer.file; +import com.bnyer.common.security.annotation.EnableRyFeignClients; import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.EnableAutoConfiguration; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration; import com.bnyer.common.swagger.annotation.EnableCustomSwagger2; +import org.springframework.cloud.openfeign.EnableFeignClients; +import org.springframework.scheduling.annotation.EnableAsync; /** * 文件服务 @@ -11,6 +15,8 @@ import com.bnyer.common.swagger.annotation.EnableCustomSwagger2; * @author ruoyi */ @EnableCustomSwagger2 +@EnableRyFeignClients +@EnableAsync @SpringBootApplication(exclude = {DataSourceAutoConfiguration.class }) public class BnyerFileApplication { diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java new file mode 100644 index 0000000..cfb5c7f --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/config/ExecutorConfig.java @@ -0,0 +1,33 @@ +package com.bnyer.file.config; + +import org.springframework.boot.context.properties.ConfigurationProperties; +import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; +import org.springframework.scheduling.annotation.EnableAsync; +import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor; + +import java.util.concurrent.Executor; +import java.util.concurrent.ThreadPoolExecutor; + +/** + * @Author qyh + * @Date 2022/7/10 15:31 + * @Description + */ +@Configuration +@EnableAsync +public class ExecutorConfig { + + + @Bean + public Executor mySimpleAsync() { + ThreadPoolTaskExecutor executor = new ThreadPoolTaskExecutor(); + executor.setCorePoolSize(10); + executor.setMaxPoolSize(50); + executor.setQueueCapacity(10); + executor.setThreadNamePrefix("fileUpload"); + executor.setRejectedExecutionHandler(new ThreadPoolExecutor.CallerRunsPolicy()); + executor.initialize(); + return executor; + } +} \ No newline at end of file diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/constants/RedisKeyConstant.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/constants/RedisKeyConstant.java new file mode 100644 index 0000000..14ea436 --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/constants/RedisKeyConstant.java @@ -0,0 +1,104 @@ +package com.bnyer.file.constants; + +public class RedisKeyConstant { + + + /** + * 抖音小程序用户收藏图片键 + */ + public static final String TIKTOK_USER_COLLECT_KEY = "bnyer.img.tiktok.collect:"; + + /** + * 抖音小程序图片收藏数量键 + */ + public static final String TIKTOK_IMG_COLLECT_NUM_KEY = "bnyer.img.tiktok.collectNum"; + + /** + * 快手小程序图片收藏数量键 + */ + public static final String FAST_HAND_IMG_COLLECT_NUM_KEY = "bnyer.img.fh.collectNum"; + + /** + * 微信小程序图片收藏数量键 + */ + public static final String WECHAT_IMG_COLLECT_NUM_KEY = "bnyer.img.wx.collectNum"; + + /** + * 抖音小程序用户点赞图片键 + */ + public static final String TIKTOK_USER_LIKE_KEY = "bnyer.img.tiktok.like"; + + /** + * 快手小程序用户点赞图片键 + */ + public static final String FAST_HAND_USER_LIKE_KEY = "bnyer.img.fh.like"; + + /** + * 微信小程序用户点赞图片键 + */ + public static final String WECHAT_USER_LIKE_KEY = "bnyer.img.wx.like"; + + /** + * 抖音小程序图片点赞数量键 + */ + public static final String TIKTOK_IMG_LIKE_NUM_KEY = "bnyer.img.tiktok.likeNum"; + + /** + * 快手小程序图片点赞数量键 + */ + public static final String FAST_HAND_IMG_LIKE_NUM_KEY = "bnyer.img.fh.likeNum"; + + /** + * 微信小程序图片点赞数量键 + */ + public static final String WECHAT_IMG_LIKE_NUM_KEY = "bnyer.img.wx.likeNum"; + + /** + * 抖音小程序图片下载数量键 + */ + public static final String TIKTOK_IMG_DOWNLOAD_NUM_KEY = "bnyer.img.creator.downloadNum:"; + + /** + * 抖音小程序图片下载总数量键 + */ + public static final String TIKTOK_IMG_TOTAL_DOWNLOAD_NUM_KEY = "bnyer.img.date.downloadTotalNum:"; + + /** + * 抖音小程序用户登录键 + */ + public static final String TIKTOK_USER_LOGIN_KEY = "bnyer.img.tiktok.user:"; + + /** + * 快手小程序用户登录键 + */ + public static final String FH_USER_LOGIN_KEY = "bnyer.img.fh.user:"; + + /** + * 微信小程序用户登录键 + */ + public static final String WECHAT_USER_LOGIN_KEY = "bnyer.img.wx.user:"; + + /** + * 微信小程序艺术家登录键 + */ + public static final String WECHAT_CREATOR_LOGIN_KEY = "bnyer.img.wechat.creator:"; + + /** + * 微信小程序艺术家邀请键 + */ + public static final String WECHAT_CREATOR_INVITE_KEY = "bnyer.img.invite.creator:"; + + /** + * 审核收益锁键 + */ + public static final String VERIFY_PROFIT_LOCK_KEY = "bnyer.img.profit.lock:"; + + /** + * 平台用户下载键 + */ + public static final String PLATFORM_USER_DOWNLOAD_KEY = "bnyer.img.user.download:"; + /** + * 艺术家上传键 + */ + public static final String CREATOR_UPLOAD_KEY="bnyer.img.createor.upload"; +} diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java index f15f167..9415d12 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/controller/SysFileController.java @@ -2,6 +2,9 @@ package com.bnyer.file.controller; import com.bnyer.common.core.domain.R; import com.bnyer.file.config.ImgConfig; +import com.bnyer.file.dto.FileDto; +import com.bnyer.file.dto.FileUploadDto; +import com.bnyer.file.dto.FileUrlDto; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; import com.bnyer.file.service.MinioService; @@ -9,12 +12,11 @@ import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.vo.ChekFileVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.util.IOUtils; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.io.IOException; @@ -39,6 +41,7 @@ public class SysFileController { @Autowired private ImgConfig imgConfig; + /** * 批量上传图片 */ @@ -67,7 +70,7 @@ public class SysFileController { */ @ApiOperation(value="批量压缩上传到七牛云") @PostMapping("/uploadBatchCompImg") - public R> compression(MultipartFile[] files) throws IOException { + public R> compression(@RequestParam MultipartFile[] files) throws IOException { List list = new ArrayList<>(); for (MultipartFile file : files) { MultipartFile file1 = ImgUtil.commpressPicCycle(Long.parseLong(imgConfig.getFileSize()), Double.parseDouble(imgConfig.getAccuracy()), file); @@ -78,13 +81,20 @@ public class SysFileController { // 上传并返回访问地址 return R.ok(list); } + @ApiOperation(value="文件删除") + @PostMapping("/deleteFile") + public R deleteFile(@RequestBody @ApiParam("上传url对象") FileUrlDto params) throws IOException { + String res = qiniuService.deleteFile(params.getUrl()); + // 上传并返回访问地址 + return R.ok(res); + } /** * 批量审核 */ @ApiOperation(value="批量图片审核") @PostMapping("/checkBatch") - public R> checkBatch(ArrayList files) { + public R> checkBatch(@RequestParam ArrayList files) { try { ArrayList list = fileService.checkImg(files); // 上传并返回访问地址 @@ -107,5 +117,33 @@ public class SysFileController { } return R.ok(url); } + public static final String UPLOAD_PREFIX_PATH = "/opt/uploading"; + @ApiOperation(value="图片批量检测上传保存") + @PostMapping("/checkUploadSave") + @ResponseBody + public R checkUploadSave(@RequestParam Long creatorId, @RequestParam Long typeId, @RequestParam ArrayList files) { + try { + ArrayList fileDtos = new ArrayList<>(); + for (MultipartFile file : files) { + FileDto fileDto = new FileDto(); + byte[] bytes = IOUtils.toByteArray(file.getInputStream()); + fileDto.setBytes(bytes); + fileDto.setName(file.getName()); + fileDto.setOriginalFilename(file.getOriginalFilename()); + fileDtos.add(fileDto); + } + // 生成临时文件 + + FileUploadDto fileUploadDto = new FileUploadDto(); + fileUploadDto.setFiles(fileDtos); + fileUploadDto.setCreatorId(creatorId); + fileUploadDto.setTypeId(typeId); + fileService.checkUploadSave(fileUploadDto); + } catch (Exception e) { + log.error("文件上传失败,原因为:【{}】", e.getMessage()); + return R.fail("banner上传失败!"); + } + return R.ok(); + } } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java new file mode 100644 index 0000000..245240f --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileDto.java @@ -0,0 +1,19 @@ +package com.bnyer.file.dto; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.Setter; + +/** + * @Author qyh + * @Date 2022/7/10 16:37 + * @Description + */ +@Getter +@Setter +@ApiModel("文件信息") +public class FileDto { + private byte[] bytes; + private String originalFilename; + private String name; +} diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java new file mode 100644 index 0000000..e2a8757 --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUploadDto.java @@ -0,0 +1,38 @@ +package com.bnyer.file.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; +import org.springframework.web.multipart.MultipartFile; + +import java.util.ArrayList; + +/** + * @Author qyh + * @Date 2022/7/9 18:24 + * @Description + */ +@Getter +@Setter +@ApiModel("文件上传") +public class FileUploadDto { + + @ApiModelProperty(value="id") + private Long id; + + @ApiModelProperty(value="图片地址") + private String imgUrl; + + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + @ApiModelProperty(value="分类id") + private Long typeId; + + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + @ApiModelProperty(value="要上传的图片") + private ArrayList files; +} diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUrlDto.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUrlDto.java new file mode 100644 index 0000000..cd50b2e --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/dto/FileUrlDto.java @@ -0,0 +1,20 @@ +package com.bnyer.file.dto; + +import io.swagger.annotations.ApiModel; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + +/** + * @Author chengkun + * @Date 2022/7/10 16:37 + * @Description + */ +@Getter +@Setter +@ApiModel("文件url地址") +public class FileUrlDto implements Serializable { + + private String url; +} diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java index e11f7cc..12cb86b 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IFileService.java @@ -1,8 +1,10 @@ package com.bnyer.file.service; +import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.vo.ChekFileVo; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; import java.util.ArrayList; /** @@ -12,4 +14,12 @@ import java.util.ArrayList; */ public interface IFileService { ArrayList checkImg(ArrayList multipartFiles); + //图片检测+图片上传+图片保存 + void checkUploadSave(FileUploadDto fileUploadDto) throws IOException; + + /** + * 写入艺术家上传次数 + * @param creatorId 艺术家id + */ + void writeUploadTotalNum(Long creatorId); } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java index 9c845c7..9c2e9fc 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/IQiniuService.java @@ -20,4 +20,11 @@ public interface IQiniuService { * @return */ ArrayList checkImageFormat(ArrayList multipartFiles); + + /** + * 文件删除 + * @param filepath 文件路径 + * @return + */ + String deleteFile(String filepath); } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java index 67a10a9..9bea01e 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/FileServiceImpl.java @@ -1,15 +1,31 @@ package com.bnyer.file.service.impl; +import com.bnyer.common.redis.service.RedisService; +import com.bnyer.file.constants.RedisKeyConstant; +import com.bnyer.file.dto.FileDto; +import com.bnyer.file.dto.FileUploadDto; import com.bnyer.file.service.IFileService; import com.bnyer.file.service.IQiniuService; import com.bnyer.file.service.ITikTokImage; import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.vo.ChekFileVo; +import com.bnyer.img.api.RemoteImgService; +import com.bnyer.img.api.dto.TiktokImgMiniDto; +import org.apache.http.entity.ContentType; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.mock.web.MockMultipartFile; +import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Service; import org.springframework.web.multipart.MultipartFile; +import java.io.ByteArrayInputStream; +import java.io.IOException; +import java.io.InputStream; import java.util.ArrayList; +import lombok.extern.slf4j.Slf4j; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.UUID; /** * @Author: Yeman @@ -17,11 +33,16 @@ import java.util.ArrayList; * @Description: */ @Service("file") +@Slf4j public class FileServiceImpl implements IFileService { @Autowired private IQiniuService qiniuService; @Autowired private ITikTokImage tikTokImage; + @Autowired + private RemoteImgService remoteImgService; + @Autowired + private RedisService redisService; @Override public ArrayList checkImg(ArrayList multipartFiles) { ArrayList chekFileVos = new ArrayList<>(); @@ -29,30 +50,31 @@ public class FileServiceImpl implements IFileService { ArrayList multipartFileList = qiniuService.checkImageFormat(multipartFiles); for (MultipartFile multipartFile : multipartFileList) { ChekFileVo chekFileVo = new ChekFileVo(); + chekFileVo.setFile(multipartFile); String filename = multipartFile.getResource().getFilename(); chekFileVo.setFileName(filename); String imageString = ImgUtil.getImageString(multipartFile); - String checkMsg = qiniuService.checkImageContent("data:application/octet-stream;base64," +imageString); - if (checkMsg.equals("pass")){ + String checkMsg = qiniuService.checkImageContent("data:application/octet-stream;base64," + imageString); + if (checkMsg.equals("pass")) { //抖音图片检测二次检测 - if (tikTokImage.checkImageContent(multipartFile)) { - //可以通过 - chekFileVo.setStatus("1"); - chekFileVos.add(chekFileVo); - }else { - //不可以通过 - chekFileVo.setStatus("2"); - chekFileVos.add(chekFileVo); - } +// if (tikTokImage.checkImageContent(multipartFile)) { + //可以通过 + chekFileVo.setStatus("1"); + chekFileVos.add(chekFileVo); +// }else { +// //不可以通过 +// chekFileVo.setStatus("2"); +// chekFileVos.add(chekFileVo); +// } continue; } - if (checkMsg.equals("review")){ + if (checkMsg.equals("review")) { //人工审核 chekFileVo.setStatus("0"); chekFileVos.add(chekFileVo); continue; } - if (checkMsg.equals("block")){ + if (checkMsg.equals("block")) { //不可通过 chekFileVo.setStatus("2"); chekFileVos.add(chekFileVo); @@ -60,4 +82,40 @@ public class FileServiceImpl implements IFileService { } return chekFileVos; } + + @Override + @Async("mySimpleAsync") + public void checkUploadSave(FileUploadDto fileUploadDto) throws IOException { + //redis累计艺术家当天上传次数,12.00后过期 + writeUploadTotalNum(fileUploadDto.getCreatorId()); + ArrayList multipartFiles = new ArrayList<>(); + for (FileDto fileDto : fileUploadDto.getFiles()) { + InputStream inputStream = new ByteArrayInputStream(fileDto.getBytes()); + MultipartFile files = new MockMultipartFile(fileDto.getName(), fileDto.getOriginalFilename(), ContentType.APPLICATION_OCTET_STREAM.toString(), inputStream); + //System.out.println(files.getSize()); + multipartFiles.add(files); + } + + //检测图片 + for (ChekFileVo chekFileVo : checkImg(multipartFiles)) { + //图片上传 + String imgUrl = qiniuService.userUpload(chekFileVo.getFile()); + TiktokImgMiniDto tiktokImg = new TiktokImgMiniDto(); + tiktokImg.setImgUrl(imgUrl); + tiktokImg.setStatus(chekFileVo.getStatus()); + tiktokImg.setTypeId(fileUploadDto.getTypeId()); + tiktokImg.setCreatorId(fileUploadDto.getCreatorId()); + remoteImgService.insertTiktokImg(tiktokImg); + } + } + + @Override + public void writeUploadTotalNum(Long creatorId) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + log.info("日期【{}】艺术家【{}】上传数+1",date,creatorId); + String redisKey = RedisKeyConstant.CREATOR_UPLOAD_KEY + date; + redisService.hashIncr(redisKey, creatorId.toString(), 1); + } + } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java index 9425da0..337a614 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/service/impl/QiniuServiceImpl.java @@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.bnyer.file.config.QiniuConfig; import com.bnyer.file.service.IQiniuService; +import com.bnyer.file.utils.ImgUtil; import com.bnyer.file.utils.StringUtil; import com.google.gson.Gson; import com.google.gson.JsonSyntaxException; @@ -11,6 +12,7 @@ import com.qiniu.common.QiniuException; import com.qiniu.common.Zone; import com.qiniu.http.Client; import com.qiniu.http.Response; +import com.qiniu.storage.BucketManager; import com.qiniu.storage.Configuration; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; @@ -164,7 +166,8 @@ public class QiniuServiceImpl implements IQiniuService { videoSuffixList.add("mp4"); videoSuffixList.add("mov"); videoSuffixList.add("wmv"); - if (suffix != null&&imageSuffixList.contains(suffix)&&multipartFile.getSize() / 1024 < 50000&&multipartFile.getSize() / 1024 > 0) { + long size = multipartFile.getSize(); + if (suffix != null&&imageSuffixList.contains(suffix)&&multipartFile.getSize() / 1024 < 3072&&multipartFile.getSize() / 1024 > 0) { afterCheckFiles.add(multipartFile); } } @@ -182,12 +185,33 @@ public class QiniuServiceImpl implements IQiniuService { } return null; } + //删除文件 + public String deleteFile(String filepath){ + String[] split = filepath.split("//"); + //构造一个带指定Region对象的配置类 + Configuration cfg = new Configuration(zone); + System.out.println(split[2]); + String key = split[2]; + Auth auth = Auth.create(qiniuConfig.getAccessKey(), qiniuConfig.getSecretKey()); + BucketManager bucketManager = new BucketManager(auth, cfg); + try { + return bucketManager.delete(qiniuConfig.getBucketName(), key).toString(); + } catch (QiniuException ex) { + //如果遇到异常,说明删除失败 + System.err.println(ex.code()); + System.err.println(ex.response.toString()); + } + return ""; + } + public static void main(String[] args) { + String url="http://rd582ra2f.hd-bkt.clouddn.com//code/duck/2022-07-10-e46bf8d168b348fd9cc8b6b39e12d3ca.png"; + for (String s : url.split("//")) { + System.out.println(s); + } -// public static void main(String[] args) { -// // String imageString = ImgUtil.getImageString("C:\\Users\\ASUS\\Documents\\WeChat Files\\wxid_vzk0z5ghy6q922\\FileStorage\\File\\2020-09\\20220608134731.png"); // JSONObject jsonObject = checkImageContent("data:application/octet-stream;base64," + imageString); // System.out.println(JSON.parseObject(jsonObject.get("result").toString()).get("suggestion").toString()); // System.out.println(jsonObject); -// } + } } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java index 12f6e03..28ba930 100644 --- a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/ChekFileVo.java @@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; import lombok.Setter; +import org.springframework.web.multipart.MultipartFile; /** * @Author qyh @@ -18,4 +19,6 @@ public class ChekFileVo { private String status; @ApiModelProperty(value="文件名称") private String fileName; + @ApiModelProperty(value = "文件") + private MultipartFile file; } diff --git a/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java new file mode 100644 index 0000000..105e70b --- /dev/null +++ b/bnyer-services/bnyer-file/src/main/java/com/bnyer/file/vo/UploadVo.java @@ -0,0 +1,9 @@ +package com.bnyer.file.vo; + +/** + * @Author qyh + * @Date 2022/7/9 18:22 + * @Description + */ +public class UploadVo { +} diff --git a/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml b/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml index ccea5fc..687e6b7 100644 --- a/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml +++ b/bnyer-services/bnyer-file/src/main/resources/bootstrap.yml @@ -15,4 +15,4 @@ spring: active: dev servlet: multipart: - maxFileSize: 5MB + maxFileSize: 27MB \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/BnyerImgApplication.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/BnyerImgApplication.java index 433f48d..be25728 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/BnyerImgApplication.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/BnyerImgApplication.java @@ -5,6 +5,7 @@ import com.bnyer.common.security.annotation.EnableRyFeignClients; import com.bnyer.common.swagger.annotation.EnableCustomSwagger2; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.scheduling.annotation.EnableAsync; /** * 系统模块 @@ -15,6 +16,7 @@ import org.springframework.boot.autoconfigure.SpringBootApplication; @EnableCustomSwagger2 @EnableRyFeignClients @SpringBootApplication +@EnableAsync public class BnyerImgApplication { public static void main(String[] args) diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/AlipayConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/AlipayConfig.java index 7c95f63..09928e0 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/AlipayConfig.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/AlipayConfig.java @@ -22,17 +22,17 @@ public class AlipayConfig{ private String gatewayUrl; @Value("${alipay.appId}") - public String appId; + private String appId; @Value("${alipay.privateKey}") - public String privateKey; + private String privateKey; @Value("${alipay.certPath}") - public String certPath; + private String certPath; @Value("${alipay.alipayPublicCertPath}") - public String alipayPublicCertPath; + private String alipayPublicCertPath; @Value("${alipay.rootPath}") - public String rootPath; + private String rootPath; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/BzConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/BzConfig.java new file mode 100644 index 0000000..2fc33df --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/BzConfig.java @@ -0,0 +1,25 @@ +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 = "bnyer.img.bz") +@Getter +@RefreshScope +public class BzConfig { + + @Value("${bnyer.img.bz.appCode}") + private String appCode; + + @Value("${bnyer.img.bz.url}") + private String url; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/FhConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/FhConfig.java index 9b462cc..0c39b7b 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/FhConfig.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/FhConfig.java @@ -18,7 +18,7 @@ import org.springframework.context.annotation.Configuration; public class FhConfig { @Value("${bnyer.img.fasthand.appId}") - private String appId; + public String appId; @Value("${bnyer.img.fasthand.secret}") public String secret; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TiktokConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TiktokConfig.java index 0ca1522..2993230 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TiktokConfig.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/TiktokConfig.java @@ -26,13 +26,13 @@ public class TiktokConfig implements WebMvcConfigurer { private String appId; @Value("${bnyer.img.tiktok.secret}") - public String secret; + private String secret; @Value("${bnyer.img.tiktok.sessionInfoUrl}") - public String sessionInfoUrl; + private String sessionInfoUrl; @Value("${bnyer.img.tiktok.tokenUrl}") - public String tokenUrl; + private String tokenUrl; // @Resource // private TokenCheckHandler tokenCheckHandler; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java index 192166e..eb51a2a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/config/WxConfig.java @@ -26,12 +26,12 @@ public class WxConfig { private String appId; @Value("${bnyer.img.wechat.secret}") - public String secret; + private String secret; @Value("${bnyer.img.wechat.sessionInfoUrl}") - public String sessionInfoUrl; + private String sessionInfoUrl; @Value("${bnyer.img.wechat.tokenUrl}") - public String tokenUrl; + private String tokenUrl; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java index 0610449..e5c7bd3 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/RedisKeyConstant.java @@ -92,4 +92,13 @@ public class RedisKeyConstant { * 审核收益锁键 */ public static final String VERIFY_PROFIT_LOCK_KEY = "bnyer.img.profit.lock:"; + + /** + * 平台用户下载键 + */ + public static final String PLATFORM_USER_DOWNLOAD_KEY = "bnyer.img.user.download:"; + /** + * 艺术家上传键 + */ + public static final String CREATOR_UPLOAD_KEY="bnyer.img.creator.upload:"; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/StatusImgConstant.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/StatusImgConstant.java new file mode 100644 index 0000000..d8c1c55 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/StatusImgConstant.java @@ -0,0 +1,33 @@ +package com.bnyer.img.constants; + +/** + * 平台常量 + * @author chengkun + * @date 2022/4/21 18:12 + */ +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 ONLINE = "3"; + + /** + * 已下架 + */ + public static final String OFFLINE = "4"; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java index f383bbd..11a342b 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/constants/TiktokConstant.java @@ -60,4 +60,19 @@ public class TiktokConstant { * 调用快手授权失败 */ public static final Integer FH_AUTH_ERROR = 105009; + + /** + * 艺术家手机号或密码不正确 + */ + public static final Integer TIKTOK_CREATOR_PWD_ERROR = 105010; + + /** + * 艺术家尚未审核 + */ + public static final Integer TIKTOK_CREATOR_NOT_PASS_ERROR = 105011; + + /** + * 艺术家尚未审核 + */ + public static final Integer TIKTOK_CREATOR_BANED_ERROR = 105012; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BzDataController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BzDataController.java new file mode 100644 index 0000000..d360df4 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/BzDataController.java @@ -0,0 +1,46 @@ +package com.bnyer.img.controller; + +import com.alibaba.fastjson.JSONObject; +import com.bnyer.common.core.domain.R; +import com.bnyer.common.core.web.controller.BaseController; +import com.bnyer.common.redis.service.RedisService; +import com.bnyer.img.dto.BzDto; +import com.bnyer.img.service.BzDataService; +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.*; + +import javax.servlet.http.HttpServletRequest; + +@Api(value = "【图文平台】八字运势接口",tags = "【图文平台】八字运势接口") +@RestController +@RequestMapping("/img/bz") +@Slf4j +public class BzDataController extends BaseController { + + @Autowired + private BzDataService bzDataService; + @Autowired + private RedisService redisService; + //@RequiresPermissions("system:config:list") + @ApiOperation(value = "八字算命") + @PostMapping("/getYs") + public R getYs(@RequestBody @ApiParam("八字运势") BzDto dto) { + JSONObject jsonObject = bzDataService.getYs(dto); + if (jsonObject!=null){ + return R.ok(jsonObject); + } + return R.fail(); + } + + @ApiOperation(value = "八字页面数据统计") + @PostMapping("/dataStatistics") + public R dataStatistics(@RequestParam String source, HttpServletRequest request) { + String ip = bzDataService.getIpAddr(request); + bzDataService.dataStatistics(ip,source); + return R.ok(); + } +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorController.java index e7ca535..9594014 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorController.java @@ -38,9 +38,6 @@ public class CreatorController extends BaseController { if(StringUtils.isNotBlank(dto.getPhone())){ dto.setPhone(Sm4Util.sm4Encryption(dto.getPhone())); } - if(StringUtils.isNotBlank(dto.getOpenId())){ - dto.setOpenId(Sm4Util.sm4Encryption(dto.getOpenId())); - } PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); List creators = creatorService.queryPage(dto); if(creators.size() > 0){ @@ -49,8 +46,6 @@ public class CreatorController extends BaseController { if(StringUtils.isNotBlank(creator.getPhone())){ creator.setPhone(Sm4Util.sm4Decrypt(creator.getPhone())); } - //暂时注释掉openId解密校验 - //creator.setOpenId(Sm4Util.sm4Decrypt(creator.getOpenId())); } } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java index cf51840..b06d8e1 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/CreatorMiniController.java @@ -1,11 +1,14 @@ package com.bnyer.img.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; import com.bnyer.common.core.web.controller.BaseController; import com.bnyer.common.core.web.domain.AjaxResult; -import com.bnyer.img.domain.TiktokImg; +import com.bnyer.common.core.web.page.TableDataInfo; +import com.bnyer.img.constants.TiktokConstant; import com.bnyer.img.dto.*; import com.bnyer.img.service.*; +import com.github.pagehelper.PageHelper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -53,11 +56,56 @@ public class CreatorMiniController extends BaseController { @Autowired private CreatorProfitService creatorProfitService; + @Autowired + private SignService signService; + + @Autowired + private BzDataService bzDataService; + + //@TokenCheck + @ApiOperation(value="检查手机号是否重复") + @PostMapping(value = "/checkPhone") + public AjaxResult checkPhone(@Validated @RequestBody @ApiParam("手机号对象") CheckPhoneDto dto){ + log.debug("【艺术家小程序】检查手机号是否重复参数为:{}", JSON.toJSONString(dto)); + boolean b = creatorService.checkPhone(dto.getPhone()); + if(b){ + return AjaxResult.error(TiktokConstant.BINDED_PHONE,"当前手机号已绑定艺术家,请重新编辑!"); + }else{ + return AjaxResult.success(); + } + } + + //@TokenCheck + @ApiOperation(value="检查搜索码是否重复") + @PostMapping(value = "/checkScanCode") + public AjaxResult checkScanCode(@Validated @RequestBody @ApiParam("搜索码对象") CheckScanCodeDto dto){ + log.debug("【艺术家小程序】检查搜索码是否重复参数为:{}", JSON.toJSONString(dto)); + boolean b = creatorService.checkScanCode(dto.getScanCode()); + if(b){ + return AjaxResult.error(TiktokConstant.SCAN_CODE_REPEAT,"搜索码重复,请重新编辑!"); + }else{ + return AjaxResult.success(); + } + } + + //@TokenCheck + @ApiOperation(value="检查邀请码是否存在") + @PostMapping(value = "/checkInviteCode") + public AjaxResult checkInviteCode(@Validated @RequestBody @ApiParam("邀请码对象") CheckInviteCodeDto dto){ + log.debug("【艺术家小程序】检查邀请码是否存在参数为:{}", JSON.toJSONString(dto)); + boolean b = creatorService.checkInviteCode(dto.getInviteCode()); + if(b){ + return AjaxResult.success(); + }else{ + return AjaxResult.error(TiktokConstant.INVITE_CODE_NOT_EXIST,"邀请码不存在,请联系客服!"); + } + } + //@TokenCheck - @ApiOperation(value="成为艺术家") + @ApiOperation(value="注册艺术家") @PostMapping(value = "/insertCreator") public AjaxResult insertCreator(@Validated @RequestBody @ApiParam("艺术家对象") CreatorDto dto){ - log.info("【艺术家小程序】成为艺术家参数为:{}", JSON.toJSONString(dto)); + log.info("【艺术家小程序】注册艺术家参数为:{}", JSON.toJSONString(dto)); return AjaxResult.success(creatorService.insertCreator(dto)); } @@ -85,24 +133,12 @@ public class CreatorMiniController extends BaseController { return AjaxResult.success(tiktokImgService.delete(ids)); } - //@TokenCheck - @ApiOperation(value="修改艺术家图片") - @PostMapping(value = "/updateTiktokImg") - public AjaxResult updateTiktokImg(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgMiniDto dto){ - log.info("【艺术家小程序】艺术家【{}】修改图片参数为:{}",dto.getCreatorId(), JSON.toJSONString(dto)); - TiktokImg tiktokImg = dto.extractParam(); - tiktokImg.setStatus("0"); - return AjaxResult.success(tiktokImgService.update(dto.extractParam())); - } - //@TokenCheck @ApiOperation(value="新增艺术家图片") @PostMapping(value = "/insertTiktokImg") public AjaxResult insertTiktokImg(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgMiniDto dto){ log.info("【艺术家小程序】艺术家【{}】新增图片参数为:{}",dto.getCreatorId(),JSON.toJSONString(dto)); - TiktokImg tiktokImg = dto.extractParam(); - tiktokImg.setStatus("0"); - return AjaxResult.success(tiktokImgService.insert(tiktokImg)); + return AjaxResult.success(tiktokImgService.insert(dto)); } //@TokenCheck @@ -137,17 +173,19 @@ public class CreatorMiniController extends BaseController { //@TokenCheck @ApiOperation(value="查询公告列表") - @GetMapping(value = "/getNoticeList") - public AjaxResult getNoticeList(){ - return AjaxResult.success(noticeService.queryList()); + @PostMapping(value = "/getNoticeList") + public TableDataInfo getNoticeList(@RequestBody @ApiParam("分页参数") BasePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + return getDataTable(noticeService.queryList()); } //@TokenCheck @ApiOperation(value="查询邀请记录") - @GetMapping(value = "/getInviteLog/{creatorId}") - public AjaxResult getInviteLog(@PathVariable @ApiParam("艺术家id") Long creatorId){ - log.info("【艺术家小程序】查询艺术家id:【{}】邀请记录:",creatorId); - return AjaxResult.success(inviteLogService.queryFrontList(creatorId)); + @PostMapping(value = "/getInviteLog") + public TableDataInfo getInviteLog(@RequestBody @ApiParam("艺术家分页对象") CreatorInviteLogPageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + log.info("【艺术家小程序】查询艺术家id:【{}】邀请记录:",dto.getCreatorId()); + return getDataTable(inviteLogService.queryFrontList(dto.getCreatorId())); } //@TokenCheck @@ -159,11 +197,12 @@ public class CreatorMiniController extends BaseController { } //@TokenCheck - @ApiOperation(value="查询指定艺术家提现记录列表") - @GetMapping(value = "/getWithdrawList/{creatorId}") - public AjaxResult getWithdrawList(@PathVariable @ApiParam("艺术家id") Long creatorId){ - log.info("【艺术家小程序】查询指定艺术家id【{}】提现记录列表",creatorId); - return AjaxResult.success(withdrawLogService.queryFrontList(creatorId)); + @ApiOperation(value="查询指定艺术家提现记录分页") + @PostMapping(value = "/getWithdrawList") + public TableDataInfo getWithdrawList(@RequestBody @ApiParam("艺术家对象") CreatorWithdrawPageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + log.info("【艺术家小程序】查询指定艺术家id【{}】提现记录列表",dto.getCreatorId()); + return getDataTable(withdrawLogService.queryFrontList(dto.getCreatorId())); } //@TokenCheck @@ -209,8 +248,9 @@ public class CreatorMiniController extends BaseController { //@TokenCheck @ApiOperation(value="查询指定艺术家即将入账收益列表") @PostMapping(value = "/queryFrontPreProfit") - public AjaxResult queryFrontPreProfit(@Validated @RequestBody @ApiParam("即将入账对象") ProfitStatusDto params){ - return AjaxResult.success(creatorProfitService.queryFrontPreProfit(params.getCreatorId(),params.getType())); + public TableDataInfo queryFrontPreProfit(@Validated @RequestBody @ApiParam("即将入账对象") ProfitStatusDto params){ + PageHelper.startPage(params.getPageNum(), params.getPageSize()); + return getDataTable(creatorProfitService.queryFrontPreProfit(params.getCreatorId(),params.getType())); } //@TokenCheck @@ -223,8 +263,9 @@ public class CreatorMiniController extends BaseController { //@TokenCheck @ApiOperation(value="查询指定艺术家已入账收益列表") @PostMapping(value = "/queryFrontInProfitAmt") - public AjaxResult queryFrontInProfitAmt(@Validated @RequestBody @ApiParam("已入账对象") ProfitStatusDto params){ - return AjaxResult.success(creatorProfitService.queryFrontInProfitAmt(params.getCreatorId(),params.getType())); + public TableDataInfo queryFrontInProfitAmt(@Validated @RequestBody @ApiParam("已入账对象") ProfitStatusDto params){ + PageHelper.startPage(params.getPageNum(), params.getPageSize()); + return getDataTable(creatorProfitService.queryFrontInProfitAmt(params.getCreatorId(),params.getType())); } //@TokenCheck @@ -237,8 +278,16 @@ public class CreatorMiniController extends BaseController { //@TokenCheck @ApiOperation(value="查询指定艺术家转入钱包收益列表") @PostMapping(value = "/queryFrontEndProfitAmt") - public AjaxResult queryFrontEndProfitAmt(@Validated @RequestBody @ApiParam("转入钱包对象") ProfitStatusDto params){ - return AjaxResult.success(creatorProfitService.queryFrontEndProfitAmt(params.getCreatorId(),params.getType())); + public TableDataInfo queryFrontEndProfitAmt(@Validated @RequestBody @ApiParam("转入钱包对象") ProfitStatusDto params){ + PageHelper.startPage(params.getPageNum(), params.getPageSize()); + return getDataTable(creatorProfitService.queryFrontEndProfitAmt(params.getCreatorId(),params.getType())); + } + + //@TokenCheck + @ApiOperation(value="查询指定艺术家转入钱包收益详情") + @GetMapping(value = "/queryFrontEndAmtDetails/{id}") + public AjaxResult queryFrontEndAmtDetails(@PathVariable @ApiParam("收益id") Long id){ + return AjaxResult.success(creatorProfitService.queryFrontEndAmtDetails(id)); } //@TokenCheck @@ -251,9 +300,49 @@ public class CreatorMiniController extends BaseController { //@TokenCheck @PostMapping("/login") @ApiOperation("小程序艺术家登录") - public AjaxResult login(@Validated @ApiParam("艺术家数据") @RequestBody WxLoginDto param) + public AjaxResult login(@Validated @ApiParam("艺术家数据") @RequestBody CreatorLoginDto param) { log.info("小程序艺术家数据参数为:{}", JSON.toJSON(param)); return AjaxResult.success(creatorService.login(param)); } + + //@TokenCheck + @ApiOperation(value="查询艺术家分类图片数量") + @GetMapping(value = "/queryCreatorTypeImgNum/{creatorId}") + public AjaxResult queryCreatorTypeImgNum(@PathVariable @ApiParam("艺术家id") Long creatorId){ + return AjaxResult.success(tiktokImgService.queryCreatorTypeImgNum(creatorId)); + } + + //@TokenCheck + @PostMapping("/onlineOrOfflineImg") + @ApiOperation("小程序艺术家上下架图片") + public AjaxResult onlineOrOfflineImg(@Validated @ApiParam("艺术家图片数据") @RequestBody StatusDto param) + { + log.info("小程序艺术家上下架图片参数为:{}", JSON.toJSON(param)); + return AjaxResult.success(tiktokImgService.onlineOrOfflineImg(param)); + } + + //@RequiresPermissions("system:config:list") + @ApiOperation(value="获取上传页面标签列表") + @GetMapping(value = "/signList") + public AjaxResult querySignList(){ + return AjaxResult.success(signService.querySignList()); + } + + //@TokenCheck + @ApiOperation(value = "八字算命") + @PostMapping("/getYs") + public AjaxResult getYs(@RequestBody @ApiParam("八字运势") BzDto dto) { + JSONObject jsonObject = bzDataService.getYs(dto); + if (jsonObject!=null){ + return AjaxResult.success(jsonObject); + } + 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())); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java index a494ab7..9da6178 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/FhMiniController.java @@ -1,6 +1,7 @@ package com.bnyer.img.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; 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,6 +10,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.SignImgVo; import com.bnyer.img.vo.TiktokImgVo; import com.github.pagehelper.PageHelper; import io.swagger.annotations.Api; @@ -55,6 +57,12 @@ public class FhMiniController extends BaseController { @Autowired private CreatorProfitService creatorProfitService; + @Autowired + private SignService signService; + + @Autowired + private BzDataService bzDataService; + //@TokenCheck @ApiOperation(value="查询banner列表") @GetMapping(value = "/listBanner") @@ -197,18 +205,26 @@ public class FhMiniController extends BaseController { return getDataTable(tiktokImgVos); } + //@TokenCheck + @ApiOperation(value="检查某平台用户当日下载次数是否超标") + @PostMapping(value = "/checkUserCanDownload") + public AjaxResult checkUserCanDownload(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){ + log.debug("【快手图文小程序】检查某平台用户当日下载次数是否超标参数为:{}", JSON.toJSONString(dto)); + return AjaxResult.success(fhUserService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType())); + } + //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ log.debug("【快手图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); + return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto)); } //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账邀请收益") @PostMapping(value = "/insertOrUpdatePreInviteProfit") - public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ + public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ log.debug("【快手图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); creatorProfitService.insertInvitedProfit(dto.extractParam()); return AjaxResult.success(); @@ -232,4 +248,42 @@ public class FhMiniController extends BaseController { return AjaxResult.error("该艺术家不存在!"); } } + + //@TokenCheck + @ApiOperation(value="查询小程序端标签分页") + @PostMapping(value = "/signImgList") + public TableDataInfo signImgList(@RequestBody @ApiParam("分页对象") SignTypePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List signImgVos = signService.queryFrontSignByTypeId(dto.getTypeId()); + return getDataTable(signImgVos); + } + + //@TokenCheck + @ApiOperation(value="根据分类id和便签Id查询图片分页") + @PostMapping(value = "/querySignImg") + public TableDataInfo querySignImg(@RequestBody @ApiParam("分页对象") SignImgPageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List tiktokImgs = tiktokImgService.querySignImgBySignIdAndTypeId(dto.getSignId(), dto.getTypeId()); + return getDataTable(tiktokImgs); + } + + //@TokenCheck + @ApiOperation(value="根据标签名称查询图片分页") + @PostMapping(value = "/querySignImgBySignName") + public TableDataInfo querySignImgBySignName(@RequestBody @ApiParam("分页对象") SignImgNamePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List tiktokImgs = tiktokImgService.queryImgPageBySignName(dto.getSignName()); + return getDataTable(tiktokImgs); + } + + //@TokenCheck + @ApiOperation(value = "八字算命") + @PostMapping("/getYs") + public AjaxResult getYs(@RequestBody @ApiParam("八字运势") BzDto dto) { + JSONObject jsonObject = bzDataService.getYs(dto); + if (jsonObject!=null){ + return AjaxResult.success(jsonObject); + } + return AjaxResult.error(); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/SignController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/SignController.java index 07cc83d..4177b98 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/SignController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/SignController.java @@ -1,14 +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.Sign; +import com.bnyer.img.dto.SignDto; +import com.bnyer.img.dto.SignPageDto; +import com.bnyer.img.dto.StatusDto; +import com.bnyer.img.service.SignService; +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.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +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/sign") @Slf4j public class SignController extends BaseController { + + @Autowired + private SignService signService; + + //@RequiresPermissions("system:config:list") + @ApiOperation(value="查询sign分页") + @PostMapping("/page") + public TableDataInfo pageSign(@RequestBody @ApiParam("分页对象") SignPageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List signs = signService.queryPage(dto); + return getDataTable(signs); + } + + //@RequiresPermissions("system:config:list") + @ApiOperation(value="新增sign") + @PostMapping(value = "/insert") + public AjaxResult insertSign(@Validated @RequestBody @ApiParam("sign对象") SignDto dto){ + log.debug("【图文平台后台】新增sign参数为:{}", JSON.toJSONString(dto)); + return AjaxResult.success(signService.insert(dto.extractParam())); + } + + //@RequiresPermissions("system:config:list") + @ApiOperation(value="修改sign") + @PostMapping(value = "/update") + public AjaxResult updateSign(@Validated @RequestBody @ApiParam("sign对象")SignDto dto){ + log.debug("【图文平台后台】修改sign参数为:{}", JSON.toJSONString(dto)); + return AjaxResult.success(signService.update(dto.extractParam())); + } + + //@RequiresPermissions("system:config:list") + @ApiOperation(value="删除sign") + @DeleteMapping(value = "/delete/{ids}") + public AjaxResult deleteSign(@PathVariable @ApiParam("主键ids") List ids){ + log.debug("【图文平台后台】删除sign参数为:{}", JSON.toJSONString(ids)); + return AjaxResult.success(signService.delete(ids)); + } + + //@RequiresPermissions("system:config:list") + @ApiOperation(value="查询sign详情") + @GetMapping(value = "/details/{id}") + public AjaxResult detailsSign(@PathVariable @ApiParam("主键id") Long id){ + log.debug("【图文平台后台】查询sign详情参数为:{}", id); + return AjaxResult.success(signService.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(signService.changeStatus(dto.getId(),dto.getStatus())); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java index adc43c1..92f2dc2 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokImgController.java @@ -39,12 +39,12 @@ public class TiktokImgController extends BaseController { } //@RequiresPermissions("system:config:list") - @ApiOperation(value="新增TiktokImg") - @PostMapping(value = "/insert") - public AjaxResult addTiktokImg(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgDto dto){ - log.debug("【图文平台后台】新增TiktokImg参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(tiktokImgService.insert(dto.extractParam())); - } +// @ApiOperation(value="新增TiktokImg") +// @PostMapping(value = "/insert") +// public AjaxResult addTiktokImg(@Validated @RequestBody @ApiParam("TiktokImg对象") TiktokImgDto dto){ +// log.debug("【图文平台后台】新增TiktokImg参数为:{}", JSON.toJSONString(dto)); +// return AjaxResult.success(tiktokImgService.insert(dto.extractParam())); +// } //@RequiresPermissions("system:config:list") @ApiOperation(value="修改TiktokImg") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java index d443dc3..231df9f 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/TiktokMiniController.java @@ -1,8 +1,7 @@ package com.bnyer.img.controller; -import cn.hutool.core.collection.CollectionUtil; import com.alibaba.fastjson.JSON; -import com.bnyer.common.core.exception.ServiceException; +import com.alibaba.fastjson.JSONObject; 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,7 +9,10 @@ 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.*; +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.github.pagehelper.PageHelper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -20,7 +22,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; -import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -57,6 +58,12 @@ public class TiktokMiniController extends BaseController { @Autowired private CreatorProfitService creatorProfitService; + @Autowired + private SignService signService; + + @Autowired + private BzDataService bzDataService; + //@TokenCheck @ApiOperation(value="查询banner列表") @GetMapping(value = "/listBanner") @@ -99,14 +106,8 @@ public class TiktokMiniController extends BaseController { @PostMapping(value = "/creatorImgsPage") public TableDataInfo creatorImgsPage(@RequestBody @ApiParam("分页对象") BasePageDto dto){ PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); - //List list = new ArrayList<>(); List creatorVos = creatorService.queryThreeImgCreatorList(); -// for (CreatorVo creatorVo : creatorVos) { -// if(CollectionUtil.isNotEmpty(creatorVo.getImgList())){ -// list.add(creatorVo); -// } -// } - //TODO 此处图片列表为空时,去除为空的部分分页会有BUG + //TODO 此处图片列表为空时,去除为空的部分分页会有BUG,此处改为了老的数据会优先排列,暂时解决了问题 return getDataTable(creatorVos); } @@ -207,18 +208,26 @@ public class TiktokMiniController extends BaseController { return getDataTable(tiktokImgVos); } + //@TokenCheck + @ApiOperation(value="检查某平台用户当日下载次数是否超标") + @PostMapping(value = "/checkUserCanDownload") + public AjaxResult checkUserCanDownload(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){ + log.debug("【抖音图文小程序】检查某平台用户当日下载次数是否超标参数为:{}", JSON.toJSONString(dto)); + return AjaxResult.success(tiktokUserService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType())); + } + //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ log.debug("【抖音图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); + return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto)); } //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账邀请收益") @PostMapping(value = "/insertOrUpdatePreInviteProfit") - public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ + public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ log.debug("【抖音图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); creatorProfitService.insertInvitedProfit(dto.extractParam()); return AjaxResult.success(); @@ -242,4 +251,42 @@ public class TiktokMiniController extends BaseController { return AjaxResult.error("该艺术家不存在!"); } } + + //@TokenCheck + @ApiOperation(value="查询小程序端标签分页") + @PostMapping(value = "/signImgList") + public TableDataInfo signImgList(@RequestBody @ApiParam("分页对象") SignTypePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List signImgVos = signService.queryFrontSignByTypeId(dto.getTypeId()); + return getDataTable(signImgVos); + } + + //@TokenCheck + @ApiOperation(value="根据分类id和便签Id查询图片分页") + @PostMapping(value = "/querySignImg") + public TableDataInfo querySignImg(@RequestBody @ApiParam("分页对象") SignImgPageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List tiktokImgs = tiktokImgService.querySignImgBySignIdAndTypeId(dto.getSignId(), dto.getTypeId()); + return getDataTable(tiktokImgs); + } + + //@TokenCheck + @ApiOperation(value="根据标签名称查询图片分页") + @PostMapping(value = "/querySignImgBySignName") + public TableDataInfo querySignImgBySignName(@RequestBody @ApiParam("分页对象") SignImgNamePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List tiktokImgs = tiktokImgService.queryImgPageBySignName(dto.getSignName()); + return getDataTable(tiktokImgs); + } + + //@TokenCheck + @ApiOperation(value = "八字算命") + @PostMapping("/getYs") + public AjaxResult getYs(@RequestBody @ApiParam("八字运势") BzDto dto) { + JSONObject jsonObject = bzDataService.getYs(dto); + if (jsonObject!=null){ + return AjaxResult.success(jsonObject); + } + return AjaxResult.error(); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java index 7cba15a..ceb2bfb 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/controller/WxMiniController.java @@ -1,6 +1,7 @@ package com.bnyer.img.controller; import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; 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,6 +10,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.SignImgVo; import com.bnyer.img.vo.TiktokImgVo; import com.github.pagehelper.PageHelper; import io.swagger.annotations.Api; @@ -55,6 +57,12 @@ public class WxMiniController extends BaseController { @Autowired private CreatorProfitService creatorProfitService; + @Autowired + private SignService signService; + + @Autowired + private BzDataService bzDataService; + //@TokenCheck @ApiOperation(value="查询banner列表") @GetMapping(value = "/listBanner") @@ -197,18 +205,26 @@ public class WxMiniController extends BaseController { return getDataTable(tiktokImgVos); } + //@TokenCheck + @ApiOperation(value="检查某平台用户当日下载次数是否超标") + @PostMapping(value = "/checkUserCanDownload") + public AjaxResult checkUserCanDownload(@Validated @RequestBody @ApiParam("检查超标对象") checkUserCanDownloadDto dto){ + log.debug("【微信图文小程序】检查某平台用户当日下载次数是否超标参数为:{}", JSON.toJSONString(dto)); + return AjaxResult.success(wxUserService.checkUserCanDownload(dto.getUserId(),dto.getPlatform(),dto.getAppType())); + } + //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账广告收益") @PostMapping(value = "/insertOrUpdatePreAdProfit") public AjaxResult insertOrUpdatePreAdProfit(@Validated @RequestBody @ApiParam("即将入账广告对象") CreatorProfitAdInsertDto dto){ log.debug("【微信图文小程序】新增/更新艺术家即将入账广告收益参数为:{}", JSON.toJSONString(dto)); - return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto.extractParam())); + return AjaxResult.success(creatorProfitService.insertCreatorProfit(dto)); } //@TokenCheck @ApiOperation(value="新增/更新艺术家即将入账邀请收益") @PostMapping(value = "/insertOrUpdatePreInviteProfit") - public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitAdInsertDto dto){ + public AjaxResult insertOrUpdatePreInviteProfit(@Validated @RequestBody @ApiParam("即将入账邀请对象") CreatorProfitInviteInsertDto dto){ log.debug("【微信图文小程序】新增/更新艺术家即将入账邀请收益参数为:{}", JSON.toJSONString(dto)); creatorProfitService.insertInvitedProfit(dto.extractParam()); return AjaxResult.success(); @@ -232,4 +248,42 @@ public class WxMiniController extends BaseController { return AjaxResult.error("该艺术家不存在!"); } } + + //@TokenCheck + @ApiOperation(value="查询小程序端标签分页") + @PostMapping(value = "/signImgList") + public TableDataInfo signImgList(@RequestBody @ApiParam("分页对象") SignTypePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List signImgVos = signService.queryFrontSignByTypeId(dto.getTypeId()); + return getDataTable(signImgVos); + } + + //@TokenCheck + @ApiOperation(value="根据分类id和便签Id查询图片分页") + @PostMapping(value = "/querySignImg") + public TableDataInfo querySignImg(@RequestBody @ApiParam("分页对象") SignImgPageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List tiktokImgs = tiktokImgService.querySignImgBySignIdAndTypeId(dto.getSignId(), dto.getTypeId()); + return getDataTable(tiktokImgs); + } + + //@TokenCheck + @ApiOperation(value="根据标签名称查询图片分页") + @PostMapping(value = "/querySignImgBySignName") + public TableDataInfo querySignImgBySignName(@RequestBody @ApiParam("分页对象") SignImgNamePageDto dto){ + PageHelper.startPage(dto.getPageNum(), dto.getPageSize()); + List tiktokImgs = tiktokImgService.queryImgPageBySignName(dto.getSignName()); + return getDataTable(tiktokImgs); + } + + //@TokenCheck + @ApiOperation(value = "八字算命") + @PostMapping("/getYs") + public AjaxResult getYs(@RequestBody @ApiParam("八字运势") BzDto dto) { + JSONObject jsonObject = bzDataService.getYs(dto); + if (jsonObject!=null){ + return AjaxResult.success(jsonObject); + } + return AjaxResult.error(); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/BzData.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/BzData.java new file mode 100644 index 0000000..354a015 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/BzData.java @@ -0,0 +1,61 @@ +package com.bnyer.img.domain; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.*; + +@ApiModel(value="com-bnyer-img-domain-BzData") +@Getter +@Setter +@ToString +@AllArgsConstructor +@NoArgsConstructor +@TableName(value = "img_bz_data") +public class BzData { + /** + * 主键id + */ + @TableId(value = "id", type = IdType.INPUT) + @ApiModelProperty(value="主键id") + private Long id; + + /** + * 日期 + */ + @TableField(value = "date") + @ApiModelProperty(value="日期 年月日") + private String date; + + /** + * pv + */ + @TableField(value = "pv") + @ApiModelProperty(value="pv") + private Long pv; + + /** + * uv + */ + @TableField(value = "uv") + @ApiModelProperty(value="uv") + private Long uv; + + /** + * 平台(0->Hub;1->抖音;2->快手;3->微信) + */ + @TableField(value = "source") + @ApiModelProperty(value="source") + private String source; + + /** + * 防止重复唯一标识 + */ + @TableField(value = "mark") + @ApiModelProperty(value="mark") + private String mark; + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Creator.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Creator.java index 225c036..6f9d8c9 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Creator.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Creator.java @@ -26,11 +26,11 @@ import java.util.Date; @AllArgsConstructor @NoArgsConstructor @TableName(value = "img_creator") -public class Creator extends BaseDomain { +public class Creator extends BaseDomain { /** * 主键id */ - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value="主键id") private Long id; @@ -42,11 +42,11 @@ public class Creator extends BaseDomain { private String name; /** - * 姓名 + * 密码 */ - @TableField(value = "open_id") - @ApiModelProperty(value="微信id") - private String openId; + @TableField(value = "password") + @ApiModelProperty(value="密码") + private String password; /** * 搜索码 @@ -111,13 +111,6 @@ public class Creator extends BaseDomain { @ApiModelProperty(value="是否活跃(0->不活跃;1->活跃 连续10天以上更新内容)") private String isHot; - /** - * 是否显示 (0->隐藏;1->显示) - */ - @TableField(value = "is_show") - @ApiModelProperty(value="是否显示 (0->隐藏;1->显示)") - private String isShow; - /** * 最后登录时间 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/ImgSignRelation.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/ImgSignRelation.java index 17e8f5f..acb9b3a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/ImgSignRelation.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/ImgSignRelation.java @@ -4,10 +4,14 @@ 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 lombok.*; +import java.io.Serializable; +import java.util.Date; + @ApiModel(value="com-bnyer-img-domain-ImgSignRelation") @Getter @Setter @@ -15,11 +19,11 @@ import lombok.*; @AllArgsConstructor @NoArgsConstructor @TableName(value = "img_img_sign_relation") -public class ImgSignRelation extends BaseDomain { +public class ImgSignRelation implements Serializable { /** * 主键id */ - @TableId(value = "id", type = IdType.INPUT) + @TableId(value = "id", type = IdType.AUTO) @ApiModelProperty(value="主键id") private Long id; @@ -30,6 +34,13 @@ public class ImgSignRelation extends BaseDomain { @ApiModelProperty(value="图片id") private Long imgId; + /** + * 分类id + */ + @TableField(value = "type_id") + @ApiModelProperty(value="分类id") + private Long typeId; + /** * 标签id */ @@ -37,5 +48,13 @@ public class ImgSignRelation extends BaseDomain { @ApiModelProperty(value="标签id") private Long signId; + /** + * 创建时间 + */ + @TableField(value = "create_time") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="创建时间") + private Date createTime; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Sign.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Sign.java index ff4a220..c3327ea 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Sign.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/domain/Sign.java @@ -30,5 +30,12 @@ public class Sign extends BaseDomain{ @ApiModelProperty(value="标签名称") private String name; + /** + * 背景图 + */ + @TableField(value = "img") + @ApiModelProperty(value="背景图") + private String img; + private static final long serialVersionUID = 1L; } \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/BzDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/BzDto.java new file mode 100644 index 0000000..76f5470 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/BzDto.java @@ -0,0 +1,35 @@ +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; + +/** + * @Author qyh + * @Date 2022/7/13 21:27 + * @Description + */ +@Getter +@Setter +@ApiModel("八字运势接收类") +public class BzDto { + @NotBlank(message = "姓不能为空!") + @ApiModelProperty(value="姓") + private String lastName; + + @NotBlank(message = "名不能为空!") + @ApiModelProperty(value="名") + private String firstName; + + @NotBlank(message = "性别不能为空!") + @ApiModelProperty(value="性别") + private String sex; + + @NotBlank(message = "出生年月不能为空!") + @ApiModelProperty(value="出生年月") + //19990209060808这样的 + private String birth; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckInviteCodeDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckInviteCodeDto.java new file mode 100644 index 0000000..2be2fd2 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckInviteCodeDto.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 CheckInviteCodeDto implements Serializable { + + @NotBlank(message = "邀请码不能为空!") + @ApiModelProperty(value="邀请码") + private String inviteCode; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckPhoneDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckPhoneDto.java new file mode 100644 index 0000000..cab16f2 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckPhoneDto.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 CheckPhoneDto implements Serializable { + + @NotBlank(message = "手机号不能为空!") + @ApiModelProperty(value="手机号") + private String phone; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckScanCodeDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckScanCodeDto.java new file mode 100644 index 0000000..146b9b1 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CheckScanCodeDto.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; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; +import java.io.Serializable; + + +@Getter +@Setter +@ApiModel("搜索码接收类") +public class CheckScanCodeDto implements Serializable { + + @NotBlank(message = "搜索码不能为空!") + @ApiModelProperty(value="搜索码") + private String scanCode; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorDto.java index df5db0c..fa8eaef 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorDto.java @@ -14,8 +14,9 @@ import java.io.Serializable; @ApiModel("艺术家接收类") public class CreatorDto implements Serializable { - @ApiModelProperty(value="主键Id") - private Long id; + @NotBlank(message = "昵称不能为空!") + @ApiModelProperty(value="昵称") + private String name; @NotBlank(message = "搜索码不能为空!") @ApiModelProperty(value="搜索码") @@ -25,6 +26,14 @@ public class CreatorDto implements Serializable { @ApiModelProperty(value="手机号") private String phone; + @NotBlank(message = "密码不能为空!") + @ApiModelProperty(value="密码") + private String password; + + //@NotBlank(message = "头像不能为空!") + @ApiModelProperty(value="头像img地址") + private String img; + @ApiModelProperty(value="简介") private String intro; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorInviteLogPageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorInviteLogPageDto.java new file mode 100644 index 0000000..826a62e --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorInviteLogPageDto.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; + +import javax.validation.constraints.NotNull; + + +@Getter +@Setter +@ApiModel("艺术家邀请记录分页接收类") +public class CreatorInviteLogPageDto extends BasePageDto { + + @NotNull(message = "艺术家id不能为空!") + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorLoginDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorLoginDto.java new file mode 100644 index 0000000..33dca23 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorLoginDto.java @@ -0,0 +1,23 @@ +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 CreatorLoginDto implements Serializable { + + @NotBlank(message = "手机号不能为空!") + @ApiModelProperty(value = "手机号") + private String phone; + + @NotBlank(message = "密码不能为空!") + @ApiModelProperty(value = "密码") + private String password; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorPageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorPageDto.java index 6f54590..c0957e3 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorPageDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorPageDto.java @@ -16,9 +16,6 @@ public class CreatorPageDto extends BasePageDto { @ApiModelProperty(value="昵称") private String name; - @ApiModelProperty(value="微信id") - private String openId; - @ApiModelProperty(value="搜索码") private String scanCode; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java index 98251d3..8b1d41d 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitAdInsertDto.java @@ -1,7 +1,5 @@ package com.bnyer.img.dto; -import com.bnyer.common.core.utils.bean.BeanUtils; -import com.bnyer.img.domain.CreatorProfit; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Getter; @@ -37,9 +35,7 @@ public class CreatorProfitAdInsertDto implements Serializable { @ApiModelProperty(value="应用类型(0->节点壁纸)") private String appType; - public CreatorProfit extractParam(){ - CreatorProfit creatorProfit = new CreatorProfit(); - BeanUtils.copyProperties(this, creatorProfit); - return creatorProfit; - } + @NotNull(message = "用户id不能为空!") + @ApiModelProperty(value="用户id") + private Long userId; } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java new file mode 100644 index 0000000..65ab180 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorProfitInviteInsertDto.java @@ -0,0 +1,45 @@ +package com.bnyer.img.dto; + +import com.bnyer.common.core.utils.bean.BeanUtils; +import com.bnyer.img.domain.CreatorProfit; +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 CreatorProfitInviteInsertDto implements Serializable { + + @NotNull(message = "艺术家id不能为空!") + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + @NotBlank(message = "收益人搜索码不能为空!") + @ApiModelProperty(value="收益人搜索码") + private String scanCode; + + @NotNull(message = "图片id不能为空!") + @ApiModelProperty(value="图片id") + private Long imgId; + + @NotBlank(message = "结算平台不能为空!") + @ApiModelProperty(value="结算平台(0->抖音;1->快手;2->微信;3->uniapp)") + private String platform; + + @NotBlank(message = "应用类型不能为空!") + @ApiModelProperty(value="应用类型(0->节点壁纸)") + private String appType; + + public CreatorProfit extractParam(){ + CreatorProfit creatorProfit = new CreatorProfit(); + BeanUtils.copyProperties(this, creatorProfit); + return creatorProfit; + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorUploadDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorUploadDto.java new file mode 100644 index 0000000..75268f2 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorUploadDto.java @@ -0,0 +1,27 @@ +package com.bnyer.img.dto; + +import com.bnyer.common.core.annotation.Desensitized; +import com.bnyer.common.core.enums.SensitiveTypeEnum; +import com.bnyer.common.core.utils.Sm4Util; +import com.bnyer.common.core.utils.StringUtils; +import com.bnyer.img.domain.CreatorAccount; +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 CreatorUploadDto implements Serializable { + + @ApiModelProperty(value="艺术家id") + @NotNull(message = "艺术家id不能为空!") + private Long creatorId; + + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorWithdrawPageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorWithdrawPageDto.java new file mode 100644 index 0000000..e30ef7a --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/CreatorWithdrawPageDto.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; + +import javax.validation.constraints.NotNull; + + +@Getter +@Setter +@ApiModel("艺术家提现记录分页接收类") +public class CreatorWithdrawPageDto extends BasePageDto { + + @NotNull(message = "艺术家id不能为空!") + @ApiModelProperty(value="艺术家id") + private Long creatorId; + + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ImgSignRelationPageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ImgSignRelationPageDto.java new file mode 100644 index 0000000..833bd90 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ImgSignRelationPageDto.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("imgSignRelation分页接收类") +public class ImgSignRelationPageDto extends BasePageDto { + + @ApiModelProperty(value="是否显示") + private String isShow; + + @ApiModelProperty(value="图片id") + private Long imgId; + + @ApiModelProperty(value="标签id") + private Long signId; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitStatusDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitStatusDto.java index 79d0216..7583942 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitStatusDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/ProfitStatusDto.java @@ -13,7 +13,7 @@ import java.io.Serializable; @Getter @Setter @ApiModel("入账类型接收类") -public class ProfitStatusDto implements Serializable { +public class ProfitStatusDto extends BasePageDto { @NotNull(message = "艺术家id不能为空!") @ApiModelProperty(value="艺术家id") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignDto.java new file mode 100644 index 0000000..b441ed6 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignDto.java @@ -0,0 +1,32 @@ +package com.bnyer.img.dto; + +import com.bnyer.common.core.utils.bean.BeanUtils; +import com.bnyer.img.domain.Sign; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; + + +@Getter +@Setter +@ApiModel("sign接收类") +public class SignDto implements Serializable { + + @ApiModelProperty(value="主键id") + private Long id; + + @ApiModelProperty(value="标签名称") + private String name; + + @ApiModelProperty(value="背景图") + private String img; + + public Sign extractParam(){ + Sign sign = new Sign(); + BeanUtils.copyProperties(this,sign); + return sign; + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignImgNamePageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignImgNamePageDto.java new file mode 100644 index 0000000..c2b1324 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignImgNamePageDto.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; + +@Getter +@Setter +@ApiModel("标签图片分页根据标签名称接收类") +public class SignImgNamePageDto extends BasePageDto { + + @NotBlank(message = "标签名称不能为空!") + @ApiModelProperty(value="标签名称") + private String signName; + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignImgPageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignImgPageDto.java new file mode 100644 index 0000000..0b67cd7 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignImgPageDto.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; + +import javax.validation.constraints.NotNull; + +@Getter +@Setter +@ApiModel("标签图片分页接收类") +public class SignImgPageDto extends BasePageDto { + + @NotNull(message = "分类id不能为空!") + @ApiModelProperty(value="分类id") + private Long typeId; + + @NotNull(message = "标签id不能为空!") + @ApiModelProperty(value="标签id") + private Long signId; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignPageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignPageDto.java new file mode 100644 index 0000000..35b1b94 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignPageDto.java @@ -0,0 +1,19 @@ +package com.bnyer.img.dto; + +import com.baomidou.mybatisplus.annotation.TableField; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +@Getter +@Setter +@ApiModel("sign分页接收类") +public class SignPageDto extends BasePageDto { + + @ApiModelProperty(value="标签名称") + private String name; + + @ApiModelProperty(value="是否显示") + private String isShow; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignTypePageDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignTypePageDto.java new file mode 100644 index 0000000..883695d --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/SignTypePageDto.java @@ -0,0 +1,18 @@ +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; + +@Getter +@Setter +@ApiModel("标签分类分页接收类") +public class SignTypePageDto extends BasePageDto { + + @NotNull(message = "分类id不能为空!") + @ApiModelProperty(value="分类id") + private Long typeId; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgMiniDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgMiniDto.java index 91ace0c..8bf70b7 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgMiniDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/TiktokImgMiniDto.java @@ -2,12 +2,14 @@ package com.bnyer.img.dto; import com.bnyer.common.core.utils.bean.BeanUtils; import com.bnyer.img.domain.TiktokImg; +import com.bnyer.img.vo.SignVo; 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 @@ -27,6 +29,12 @@ public class TiktokImgMiniDto implements Serializable { @ApiModelProperty(value="分类id") private Long typeId; + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + @ApiModelProperty(value="标签id列表") + private List signList; + public TiktokImg extractParam(){ TiktokImg tiktokImg = new TiktokImg(); BeanUtils.copyProperties(this,tiktokImg); diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WithdrawOrderDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WithdrawOrderDto.java index b08eedb..e7e5b0f 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WithdrawOrderDto.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/WithdrawOrderDto.java @@ -10,7 +10,7 @@ import java.io.Serializable; @Getter @Setter -@ApiModel("notice分页接收类") +@ApiModel("提现记录明细接收类") public class WithdrawOrderDto implements Serializable { @NotBlank(message = "订单id不能为空!") diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java new file mode 100644 index 0000000..1e3742c --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/dto/checkUserCanDownloadDto.java @@ -0,0 +1,27 @@ +package com.bnyer.img.dto; + +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import javax.validation.constraints.NotNull; +import java.io.Serializable; + + +@Getter +@Setter +@ApiModel("检查用户下载次数接收类") +public class checkUserCanDownloadDto implements Serializable { + + @ApiModelProperty(value="用户id") + private Long userId; + + @NotNull(message = "平台不能为空!") + @ApiModelProperty(value="平台") + private String platform; + + @NotNull(message = "应用不能为空!") + @ApiModelProperty(value="应用") + private String appType; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/BzDataMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/BzDataMapper.java new file mode 100644 index 0000000..e5006a0 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/BzDataMapper.java @@ -0,0 +1,15 @@ +package com.bnyer.img.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.bnyer.img.domain.Banner; +import com.bnyer.img.domain.BzData; +import com.bnyer.img.vo.BannerVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface BzDataMapper extends BaseMapper { + +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java index 0c98e38..9c58ff6 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/CreatorProfitMapper.java @@ -171,4 +171,12 @@ public interface CreatorProfitMapper extends BaseMapper { * @return - */ BigDecimal queryLastDayInviteProfit(@Param("creatorId") Long creatorId); + + /** + * 查询转入钱包收益详情 + * @param id 收益id + * @return - + */ + CreatorProfitEndAmtVo queryFrontEndAmtDetails(@Param("id") Long id); + } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ImgSignRelationMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ImgSignRelationMapper.java index 19c3159..67fe0d8 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ImgSignRelationMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/ImgSignRelationMapper.java @@ -2,8 +2,35 @@ package com.bnyer.img.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.img.domain.ImgSignRelation; +import com.bnyer.img.vo.SignRelationVo; +import com.bnyer.img.vo.SignVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface ImgSignRelationMapper extends BaseMapper { + + /** + * 根据图片id查询标签集合 + * @param imgId 图片id + * @return - + */ + List querySignListByImgId(@Param("imgId") Long imgId); + + /** + * 根据图片id查询标签集合 + * @param imgId 图片id + * @return - + */ + List querySignRelationByImgId(@Param("imgId") Long imgId); + + /** + * 批量新增标签 + * @param imgId 图片id + * @param typeId 分类id + * @param signIds 标签id列表 + */ + void batctInsert(@Param("imgId") Long imgId, @Param("typeId") Long typeId, @Param("signIds") List signIds); } \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/SignMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/SignMapper.java index 823408d..e4df35a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/SignMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/SignMapper.java @@ -2,8 +2,25 @@ package com.bnyer.img.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.img.domain.Sign; +import com.bnyer.img.vo.SignImgVo; +import com.bnyer.img.vo.SignVo; +import com.bnyer.img.vo.TiktokImgVo; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; @Mapper public interface SignMapper extends BaseMapper { + /** + * 查询上传页面标签列表 + * @return - + */ + List querySignList(); + + /** + * 根据分类id查询小程序端标签分页 + * @return - + */ + List queryFrontSign(@Param("typeId") Long typeId); } \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java index d61fd4d..ddf4bad 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/mapper/TiktokImgMapper.java @@ -2,6 +2,7 @@ package com.bnyer.img.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.bnyer.img.domain.TiktokImg; +import com.bnyer.img.vo.ImgSignVo; import com.bnyer.img.vo.TiktokImgVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; @@ -16,7 +17,7 @@ public interface TiktokImgMapper extends BaseMapper { * @param typeId 分类Id * @return - */ - List queryInList(@Param("creatorId")String creatorId,@Param("typeId") String typeId); + List queryInList(@Param("creatorId")String creatorId, @Param("typeId") String typeId); /** * 查询艺术家对外图片列表 @@ -60,4 +61,27 @@ public interface TiktokImgMapper extends BaseMapper { * @return - */ List queryImgsByScanCodeAndTypeId(@Param("scanCode") String scanCode,@Param("typeId") Long typeId); + + /** + * 查询艺术家分类图片数量 + * @param typeId 类型id + * @param creatorId 艺术家id + * @return - + */ + Integer queryCreatorTypeImgNum(@Param("typeId") Long typeId,@Param("creatorId") Long creatorId); + + /** + * 根据分类id和便签Id查询图片分页 + * @param signId 标签id + * @param typeId 分类id + * @return - + */ + List querySignImgBySignIdAndTypeId(@Param("signId") Long signId,@Param("typeId") Long typeId); + + /** + * 根据标签名称查询图片 + * @param signName 标签名称 + * @return - + */ + List queryImgPageBySignName(@Param("signName") String signName); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/BzDataService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/BzDataService.java new file mode 100644 index 0000000..6d0365d --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/BzDataService.java @@ -0,0 +1,22 @@ +package com.bnyer.img.service; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.bnyer.img.domain.Banner; +import com.bnyer.img.domain.BzData; +import com.bnyer.img.dto.BannerPageDto; +import com.bnyer.img.dto.BzDto; +import com.bnyer.img.vo.BannerVo; + +import javax.servlet.http.HttpServletRequest; +import java.util.List; + +public interface BzDataService { + JSONObject getYs(BzDto dto); + + void dataStatistics(String ip,String source); + + int update(BzData bzData,UpdateWrapper updateWrapper); + + String getIpAddr(HttpServletRequest request); +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java index bc9cc56..2a8901c 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorProfitService.java @@ -1,6 +1,7 @@ package com.bnyer.img.service; import com.bnyer.img.domain.CreatorProfit; +import com.bnyer.img.dto.CreatorProfitAdInsertDto; import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.ProfitInOrEndDto; import com.bnyer.img.vo.*; @@ -23,10 +24,10 @@ public interface CreatorProfitService { /** * 新增或更新广告收益记录 - * @param creatorProfit 广告收益参数 + * @param params 广告收益参数 * @return - */ - int insertCreatorProfit(CreatorProfit creatorProfit); + int insertCreatorProfit(CreatorProfitAdInsertDto params); /** * 新增或更新邀请收益 @@ -90,6 +91,11 @@ public interface CreatorProfitService { */ void batchUpdateConfirmType(); + /** + * 批量删除昨日用户下载次数 + */ + void batchDeleteUserDownloadNum(); + /** * 小程序查询收益信息 @@ -169,6 +175,26 @@ public interface CreatorProfitService { /** * 批量更新收益单状态为转入钱包 * @param list 订单列表 + * @return - */ int batchUpdate(List list); + + /** + * 查询转入钱包收益详情 + * @param id 收益id + * @return - + */ + CreatorProfitEndAmtVo queryFrontEndAmtDetails(Long id); + + /** + * 检查艺术家上传是否超标 + * @param creatorId 艺术家id + * @return - + */ + boolean checkCreatorCanUpload(Long creatorId); + + /** + * 批量删除昨日艺术家上传次数 + */ + void batchDeleteCreatorUploadNum(); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorService.java index 9d7e993..34cc14a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/CreatorService.java @@ -1,10 +1,7 @@ package com.bnyer.img.service; import com.bnyer.img.domain.Creator; -import com.bnyer.img.dto.CreatorDto; -import com.bnyer.img.dto.CreatorPageDto; -import com.bnyer.img.dto.VerifyCreatorDto; -import com.bnyer.img.dto.WxLoginDto; +import com.bnyer.img.dto.*; import com.bnyer.img.vo.*; import java.util.List; @@ -98,7 +95,7 @@ public interface CreatorService { * @param param 前端传来的参数 * @return - */ - Map login(WxLoginDto param); + Map login(CreatorLoginDto param); /** * 查询所有审核通过的艺术家 @@ -125,4 +122,25 @@ public interface CreatorService { * @return - */ Map queryCreatorScanCodeById(Long id); + + /** + * 检查用户是否绑定过手机号 + * @param phone 手机号 + * @return - + */ + boolean checkPhone(String phone); + + /** + * 检查搜索码是否重复 + * @param scanCode 搜索码 + * @return - + */ + boolean checkScanCode(String scanCode); + + /** + * 检查邀请码是否存在 + * @param inviteCode 邀请码 + * @return - + */ + boolean checkInviteCode(String inviteCode); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FhUserService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FhUserService.java index c61312a..8ae66eb 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FhUserService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/FhUserService.java @@ -51,4 +51,13 @@ public interface FhUserService { * @return - */ int changeStatus(Long id,String status); + + /** + * 检查某平台用户当日下载次数是否超标 + * @param userId 用户id + * @param platform 平台 + * @param appType 应用 + * @return - + */ + boolean checkUserCanDownload(Long userId,String platform,String appType); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/SignService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/SignService.java index d81ade2..ef2db87 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/SignService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/SignService.java @@ -1,4 +1,73 @@ package com.bnyer.img.service; +import com.bnyer.img.domain.Sign; +import com.bnyer.img.dto.SignPageDto; +import com.bnyer.img.vo.SignImgVo; +import com.bnyer.img.vo.SignVo; +import com.bnyer.img.vo.TiktokImgVo; + +import java.util.List; + public interface SignService { + /** + * 后台新增Sign + * @param sign 标签 + * @return - + */ + int insert(Sign sign); + + /** + * 修改sign + * @param sign - + * @return - + */ + int update(Sign sign); + + /** + * 批量删除sign + * @param ids ids + * @return - + */ + int delete(List ids); + + /** + * 查询sign分页 + * @param dto 分页对象 + * @return - + */ + List queryPage(SignPageDto dto); + + /** + * 查询sign详情 + * @param id 主键id + * @return - + */ + Sign queryDetails(Long id); + + /** + * 查询sign是否重复 + * @param name 标签名字 + * @return - + */ + boolean checkSign(String name); + + /** + * 变更显示状态 + * @param id 主键id + * @param status 状态 + * @return - + */ + int changeStatus(Long id,String status); + + /** + * 查询上传页面标签列表 + * @return - + */ + List querySignList(); + + /** + * 根据分类id查询小程序端标签分页 + * @return - + */ + List queryFrontSignByTypeId(Long typeId); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java index 18b54d0..cb9e4d4 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokImgService.java @@ -1,7 +1,11 @@ package com.bnyer.img.service; import com.bnyer.img.domain.TiktokImg; +import com.bnyer.img.dto.StatusDto; +import com.bnyer.img.dto.TiktokImgMiniDto; import com.bnyer.img.dto.TiktokImgPageDto; +import com.bnyer.img.vo.CreatorTypeImgVo; +import com.bnyer.img.vo.ImgSignVo; import com.bnyer.img.vo.TiktokImgVo; import java.util.List; @@ -10,10 +14,10 @@ public interface TiktokImgService { /** * 新增图片 - * @param tiktokImg 图片 + * @param dto 图片 * @return - */ - int insert(TiktokImg tiktokImg); + int insert(TiktokImgMiniDto dto); /** * 修改图片 @@ -49,7 +53,7 @@ public interface TiktokImgService { * @param typeId 分类id * @return - */ - List queryInList(String creatorId,String typeId); + List queryInList(String creatorId, String typeId); /** * 查询指定艺术家对外的图片集合(通过审核的) @@ -115,4 +119,33 @@ public interface TiktokImgService { * @return - */ List queryImgsByScanCodeAndTypeId(String scanCode,Long typeId); + + /** + * 查询艺术家分类图片数量 + * @param creatorId 艺术家id + * @return - + */ + CreatorTypeImgVo queryCreatorTypeImgNum(Long creatorId); + + /** + * 艺术家上下架图片 + * @param param 图片参数 + * @return - + */ + int onlineOrOfflineImg(StatusDto param); + + /** + * 根据分类id和标签Id查询图片分页 + * @param signId 标签id + * @param typeId 分类id + * @return - + */ + List querySignImgBySignIdAndTypeId(Long signId, Long typeId); + + /** + * 根据标签名称查询图片 + * @param signName 标签名称 + * @return - + */ + List queryImgPageBySignName(String signName); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java index 937fd82..a39440a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/TiktokUserService.java @@ -50,4 +50,13 @@ public interface TiktokUserService { * @return - */ int changeStatus(Long id,String status); + + /** + * 检查某平台用户当日下载次数是否超标 + * @param userId 用户id + * @param platform 平台 + * @param appType 应用 + * @return - + */ + boolean checkUserCanDownload(Long userId,String platform,String appType); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/WxUserService.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/WxUserService.java index ded2139..1f5ed02 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/WxUserService.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/WxUserService.java @@ -51,4 +51,13 @@ public interface WxUserService { * @return - */ int changeStatus(Long id,String status); + + /** + * 检查某平台用户当日下载次数是否超标 + * @param userId 用户id + * @param platform 平台 + * @param appType 应用 + * @return - + */ + boolean checkUserCanDownload(Long userId,String platform,String appType); } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/BzDataServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/BzDataServiceImpl.java new file mode 100644 index 0000000..41ee1e2 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/BzDataServiceImpl.java @@ -0,0 +1,166 @@ +package com.bnyer.img.service.impl; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.bnyer.common.core.domain.R; +import com.bnyer.common.core.utils.StringUtils; +import com.bnyer.common.redis.service.RedisService; +import com.bnyer.img.config.BzConfig; +import com.bnyer.img.domain.Banner; +import com.bnyer.img.domain.BzData; +import com.bnyer.img.dto.BannerPageDto; +import com.bnyer.img.dto.BzDto; +import com.bnyer.img.mapper.BannerMapper; +import com.bnyer.img.mapper.BzDataMapper; +import com.bnyer.img.service.BannerService; +import com.bnyer.img.service.BzDataService; +import com.bnyer.img.vo.BannerVo; +import lombok.extern.slf4j.Slf4j; +import org.apache.http.HttpEntity; +import org.apache.http.HttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletRequest; +import java.io.IOException; +import java.net.URLEncoder; +import java.time.LocalDate; +import java.util.Date; +import java.util.List; + +@Service +@Slf4j +public class BzDataServiceImpl implements BzDataService { + + @Autowired + private RedisService redisService; + @Autowired + private BzDataMapper bzDataMapper; + @Autowired + private BzConfig bzConfig; + + @Override + public JSONObject getYs(BzDto dto) { + //API产品路径 + String requestUrl = bzConfig.getUrl(); + //阿里云APPCODE + String appcode = bzConfig.getAppCode(); + String lastName = dto.getLastName(); + String firstName = dto.getFirstName(); + String sex = dto.getSex(); + String birth = dto.getBirth(); + CloseableHttpClient httpClient = null; + try { + httpClient = HttpClients.createDefault(); + String str = "SECOND_NAME=" + URLEncoder.encode(firstName, "UTF-8") + "&GENDER=" + URLEncoder.encode(sex, "UTF-8") + "&BIRTH=" + URLEncoder.encode(birth, "UTF-8") + "&FIRST_NAME=" + URLEncoder.encode(lastName, "UTF-8"); + System.out.println(requestUrl + str); + // 创建一个HttpGet实例 + HttpGet httpGet = new HttpGet(requestUrl + str); + httpGet.addHeader("Authorization", "APPCODE " + appcode); + + // 发送GET请求 + HttpResponse execute = httpClient.execute(httpGet); + + // 获取状态码 + int statusCode = execute.getStatusLine().getStatusCode(); + System.out.println(statusCode); + + // 获取结果 + HttpEntity entity = execute.getEntity(); + String result = EntityUtils.toString(entity, "utf-8"); + //System.out.println(result); + return JSON.parseObject(result); + } catch (Exception e) { + e.printStackTrace(); + } finally { + if (httpClient != null) { + try { + httpClient.close(); + } catch (IOException e) { + e.printStackTrace(); + } + } + } + return null; + } + + @Override + public void dataStatistics(String ip, String source) { + String today = LocalDate.now() + ""; + String page="bzPage_" + source; + //保存今天的key + redisService.redisTemplate.opsForZSet().add("bzPage_key" +today, today+page, 1.0); + //pv统计 + redisService.pvStatistics(today, page); + //uv统计 + redisService.uvStatistics(today, page, ip); + //查看是否已经有了这条数据 + if (!redisService.hasKey(today + source)) { + QueryWrapper wrapper = new QueryWrapper<>(); + wrapper.eq("date", today); + wrapper.eq("source", source); + List bzData = bzDataMapper.selectList(wrapper); + if (bzData.size() <= 0) { + BzData data = new BzData(); + data.setDate(today); + data.setPv(1L); + data.setUv(1L); + data.setSource(source); + data.setMark(today + source); + bzDataMapper.insert(data); + } + } + } + + @Override + public int update(BzData bzData, UpdateWrapper updateWrapper) { + return bzDataMapper.update(bzData,updateWrapper); + } + + @Override + public String getIpAddr(HttpServletRequest request) { + String ip = request.getHeader("x-forwarded-for"); + //System.out.println("x-forwarded-for ip: " + ip); + if (ip != null && ip.length() != 0 && !"unknown".equalsIgnoreCase(ip)) { + // 多次反向代理后会有多个ip值,第一个ip才是真实ip + if (ip.indexOf(",") != -1) { + ip = ip.split(",")[0]; + } + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("Proxy-Client-IP"); + //System.out.println("Proxy-Client-IP ip: " + ip); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("WL-Proxy-Client-IP"); + //System.out.println("WL-Proxy-Client-IP ip: " + ip); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_CLIENT_IP"); + //System.out.println("HTTP_CLIENT_IP ip: " + ip); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("HTTP_X_FORWARDED_FOR"); + //System.out.println("HTTP_X_FORWARDED_FOR ip: " + ip); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getHeader("X-Real-IP"); + //System.out.println("X-Real-IP ip: " + ip); + } + if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)) { + ip = request.getRemoteAddr(); + //System.out.println("getRemoteAddr ip: " + ip); + } + //System.out.println("获取客户端ip: " + ip); + return ip; + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java index 5ffe257..36af11b 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorProfitServiceImpl.java @@ -5,8 +5,10 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.bnyer.common.redis.service.RedisService; import com.bnyer.common.redis.service.RedissonService; +import com.bnyer.img.constants.RedisKeyConstant; import com.bnyer.img.domain.CreatorProfit; import com.bnyer.img.domain.InviteLog; +import com.bnyer.img.dto.CreatorProfitAdInsertDto; import com.bnyer.img.dto.CreatorProfitPageDto; import com.bnyer.img.dto.ProfitInOrEndDto; import com.bnyer.img.mapper.CreatorProfitMapper; @@ -54,16 +56,33 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { } } + /** + * 写入下载次数 + * @param appType 应用 + * @param platform 平台 + * @param userId 用户id + */ + private void writePlatformUserDownloadNum(String appType,String platform,Long userId){ + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + String hashKey = appType+":"+platform+":"+userId; + log.info("日期【{}】应用【{}】平台【{}】用户【{}】下载数+1",date,appType,platform,userId); + String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date; + redisService.hashIncr(redisKey, hashKey, 1); + } + @Override @Transactional(rollbackFor = Exception.class) - public int insertCreatorProfit(CreatorProfit creatorProfit) { + public int insertCreatorProfit(CreatorProfitAdInsertDto params) { SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd"); long times = System.currentTimeMillis(); String date = format.format(times); - String mark = creatorProfit.getCreatorId().toString() + creatorProfit.getImgId().toString() + creatorProfit.getAppType() + creatorProfit.getPlatform() + + String mark = params.getCreatorId().toString() + params.getImgId().toString() + params.getAppType() + params.getPlatform() + "0" + date.replace("-", ""); //缓存中下载总数+1 - tiktokImgService.writeDownloadTotalNum(creatorProfit.getAppType(), creatorProfit.getPlatform()); + tiktokImgService.writeDownloadTotalNum(params.getAppType(), params.getPlatform()); + //redis累计平台用户当天下载次数,12.00后过期 + writePlatformUserDownloadNum(params.getAppType(), params.getPlatform(), params.getUserId()); //检查收益表是否存在广告记录,存在则更新次数 boolean b = this.checkCreatorProfitExist(mark); if (b) { @@ -72,6 +91,12 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { return update; } //不存在则新增广告记录 + CreatorProfit creatorProfit = new CreatorProfit(); + creatorProfit.setCreatorId(params.getCreatorId()); + creatorProfit.setScanCode(params.getScanCode()); + creatorProfit.setImgId(params.getImgId()); + creatorProfit.setPlatform(params.getPlatform()); + creatorProfit.setAppType(params.getAppType()); creatorProfit.setCreateTime(new Date()); creatorProfit.setUpdateTime(new Date()); creatorProfit.setType("0"); @@ -81,7 +106,7 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { creatorProfit.setDownloadNum(1); creatorProfit.setMark(mark); //根据平台生成订单号 - switch (creatorProfit.getPlatform()) { + switch (params.getPlatform()) { case "0": creatorProfit.setOrderNo("DY" + IdUtil.getSnowflakeNextIdStr()); break; @@ -231,6 +256,21 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { log.info("==============批量更新艺术家收益状态完成,耗时【{}】毫秒!===============", System.currentTimeMillis() - startTime); } + @Override + public void batchDeleteUserDownloadNum() { + log.info("==============批量删除昨日用户下载次数开始!==============="); + long startTime = System.currentTimeMillis(); + //获取昨日日期 + Date yesterday = new Date(startTime - 1000 * 60 * 60 * 24); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String date = simpleDateFormat.format(yesterday); + String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date; + if(redisService.hasKey(redisKey)){ + redisService.deleteObject(redisKey); + } + log.info("==============批量删除昨日用户下载次数完成,耗时【{}】毫秒!===============", System.currentTimeMillis() - startTime); + } + @Override public ProfitVo queryFrontProfitInfo(Long creatorId) { //累计收益 @@ -319,4 +359,43 @@ public class CreatorProfitServiceImpl implements CreatorProfitService { public int batchUpdate(List list) { return creatorProfitMapper.batchUpdateTransInfo(list); } + + @Override + public CreatorProfitEndAmtVo queryFrontEndAmtDetails(Long id) { + return creatorProfitMapper.queryFrontEndAmtDetails(id); + } + + @Override + public boolean checkCreatorCanUpload(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; + } + }else{ + //不存在键则可上传 + return false; + } + } + + @Override + public void batchDeleteCreatorUploadNum() { + log.info("==============批量删除昨日艺术家上传次数开始!==============="); + long startTime = System.currentTimeMillis(); + //获取昨日日期 + Date yesterday = new Date(startTime - 1000 * 60 * 60 * 24); + SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd"); + String date = simpleDateFormat.format(yesterday); + String redisKey = RedisKeyConstant.CREATOR_UPLOAD_KEY + date; + if(redisService.hasKey(redisKey)){ + redisService.deleteObject(redisKey); + } + log.info("==============批量删除昨日艺术家上传次数完成,耗时【{}】毫秒!===============", System.currentTimeMillis() - startTime); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java index 7d4ad7a..b140446 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/CreatorServiceImpl.java @@ -1,6 +1,6 @@ package com.bnyer.img.service.impl; -import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.collection.CollectionUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.bnyer.common.core.exception.ServiceException; @@ -10,15 +10,13 @@ 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.CreatorDto; -import com.bnyer.img.dto.CreatorPageDto; -import com.bnyer.img.dto.VerifyCreatorDto; -import com.bnyer.img.dto.WxLoginDto; +import com.bnyer.img.dto.*; import com.bnyer.img.mapper.CreatorMapper; import com.bnyer.img.mapper.InviteLogMapper; import com.bnyer.img.mapper.TiktokImgMapper; @@ -26,15 +24,12 @@ import com.bnyer.img.mapper.VerifyLogMapper; import com.bnyer.img.service.CreatorService; import com.bnyer.img.vo.*; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang3.ObjectUtils; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.client.RestTemplate; -import javax.crypto.Cipher; -import javax.crypto.spec.IvParameterSpec; -import javax.crypto.spec.SecretKeySpec; import java.math.BigDecimal; import java.util.*; import java.util.concurrent.TimeUnit; @@ -68,16 +63,10 @@ public class CreatorServiceImpl implements CreatorService { @Autowired private WxConfig wxConfig; - - - /** - * 检查用户是否绑定过手机号 - * @param phone 手机号 - * @return - - */ - private boolean checkPhone(String phone){ + @Override + public boolean checkPhone(String phone){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Creator::getPhone, phone); + wrapper.eq(Creator::getPhone, Sm4Util.sm4Encryption(StringUtils.trim(phone))); List creators = creatorMapper.selectList(wrapper); if(creators.size() > 0){ return true; @@ -86,14 +75,10 @@ public class CreatorServiceImpl implements CreatorService { } } - /** - * 检查搜索码是否重复 - * @param scanCode 搜索码 - * @return - - */ - private boolean checkScanCode(String scanCode){ + @Override + public boolean checkScanCode(String scanCode){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Creator::getScanCode, scanCode); + wrapper.eq(Creator::getScanCode, StringUtils.trim(scanCode)); List creators = creatorMapper.selectList(wrapper); if(creators.size() > 0){ return true; @@ -102,53 +87,49 @@ public class CreatorServiceImpl implements CreatorService { } } - /** - * 检查邀请码是否存在 - * @param inviteCode 邀请码 - * @return - - */ - private Creator checkInviteCode(String inviteCode){ + @Override + public boolean checkInviteCode(String inviteCode){ LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(Creator::getInviteCode, inviteCode); - return creatorMapper.selectOne(wrapper); + wrapper.eq(Creator::getInviteCode, StringUtils.trim(inviteCode)); + Creator creators = creatorMapper.selectOne(wrapper); + if(creators != null){ + return true; + }else{ + return false; + } } @Override @Transactional(rollbackFor = Exception.class) public int insertCreator(CreatorDto dto) { - //检查手机号是否存在 - boolean b1 = checkPhone(Sm4Util.sm4Encryption(dto.getPhone())); - if(b1){ - throw new ServiceException("当前手机号已绑定艺术家,请重新编辑!", TiktokConstant.BINDED_PHONE); - } - //检查搜索码是否重复 - boolean b = this.checkScanCode(dto.getScanCode()); - if(b){ - throw new ServiceException("搜索码重复,请重新编辑!",TiktokConstant.SCAN_CODE_REPEAT); - } //检查邀请码是否存在 - Creator creatorProtoType = this.checkInviteCode(dto.getInviteCode()); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Creator::getInviteCode, StringUtils.trim(dto.getInviteCode())); + Creator creatorProtoType = creatorMapper.selectOne(wrapper); if(creatorProtoType == null){ throw new ServiceException("邀请码不存在,请重新编辑!",TiktokConstant.INVITE_CODE_NOT_EXIST); } Creator creator = new Creator(); - creator.setId(dto.getId()); - creator.setIntro(dto.getIntro()); - creator.setScanCode(dto.getScanCode()); + creator.setName(StringUtils.trim(dto.getName())); + creator.setPassword(Sm4Util.sm4Encryption(StringUtils.trim(dto.getPassword()))); + creator.setImg(StringUtils.trim(dto.getImg())); + creator.setIntro(StringUtils.trim(dto.getIntro())); + creator.setScanCode(StringUtils.trim(dto.getScanCode())); creator.setInviteCode(IdUtils.inviteCodeGen()); - creator.setUrl(dto.getUrl()); - creator.setPhone(Sm4Util.sm4Encryption(dto.getPhone())); + creator.setUrl(StringUtils.trim(dto.getUrl())); + creator.setPhone(Sm4Util.sm4Encryption(StringUtils.trim(dto.getPhone()))); creator.setIsHot("0"); creator.setStatus("0"); creator.setIsShow("1"); creator.setAmt(BigDecimal.valueOf(0)); creator.setSort(0); + creator.setCreateTime(new Date()); creator.setUpdateTime(new Date()); - int update = creatorMapper.updateById(creator); - log.info("手机号【{}】成为艺术家成功!待审核",dto.getPhone()); + int insert = creatorMapper.insert(creator); + log.info("手机号【{}】成为艺术家成功!待审核",StringUtils.trim(dto.getPhone())); //保存邀请记录 InviteLog inviteLog = new InviteLog(); - inviteLog.setInviteCode(dto.getInviteCode()); + inviteLog.setInviteCode(StringUtils.trim(dto.getInviteCode())); inviteLog.setInvitedCreatorId(creator.getId()); inviteLog.setCreatorId(creatorProtoType.getId()); inviteLog.setCreateTime(new Date()); @@ -156,8 +137,8 @@ public class CreatorServiceImpl implements CreatorService { inviteLog.setUpdateTime(new Date()); inviteLog.setSort(0); inviteLogMapper.insert(inviteLog); - log.info("艺术家id【{}】被邀请码【{}】邀请成功!记录写入数据库完成!",creator.getId(),dto.getInviteCode()); - return update; + log.info("艺术家id【{}】被邀请码【{}】邀请成功!记录写入数据库完成!",creator.getId(),StringUtils.trim(dto.getInviteCode())); + return insert; } @Override @@ -201,7 +182,14 @@ public class CreatorServiceImpl implements CreatorService { @Override public List queryThreeImgCreatorList() { - return creatorMapper.queryThreeImgCreatorList(); + List creatorVos = creatorMapper.queryThreeImgCreatorList(); + List list = new ArrayList<>(); + for (CreatorVo creatorVo : creatorVos) { + if(CollectionUtil.isNotEmpty(creatorVo.getImgList())){ + list.add(creatorVo); + } + } + return list; } @Override @@ -267,116 +255,38 @@ public class CreatorServiceImpl implements CreatorService { return creatorMapper.update(creator,wrapper); } - /** - * 获取用户openId及sessionKey - * @param code 登录凭证code - * @return - - */ - private WxSessionInfoVo getSessionInfo(String code) { - String url = wxConfig.getSessionInfoUrl()+"?appid="+wxConfig.getAppId()+"&secret="+wxConfig.getSecret()+"&js_code="+code+"&grant_type=authorization_code"; - String forObject = restTemplate.getForObject(url, String.class); - JSONObject sessionInfo = JSONObject.parseObject(forObject); - if(StringUtils.isNotBlank(sessionInfo.getString("errcode"))){ - if(!sessionInfo.getString("errcode").equals(TiktokConstant.SUCCESS)){ - log.error("微信授权session接口调用失败,错误状态码为:【{}】,错误信息为:【{}】",sessionInfo.getString("errcode"),sessionInfo.getString("errmsg")); - throw new ServiceException("微信授权session接口调用失败!",TiktokConstant.WECHAT_AUTH_ERROR); - } - } - //调用成功,组装返回数据 - WxSessionInfoVo result = new WxSessionInfoVo(); - result.setSessionKey(sessionInfo.getString("session_key")); - result.setOpenId(sessionInfo.getString("openid")); - return result; - } - - /** - * 获取用户敏感信息 - * @param sessionKey - - * @param encryptedData 敏感数据 - * @param iv 加密向量 - * @return - - */ - private WxUserInfoVo getUserInfo(String sessionKey, String encryptedData, String iv){ - Base64.Decoder decoder = Base64.getDecoder(); - byte[] sessionKeyBytes = decoder.decode(sessionKey); - byte[] ivBytes = decoder.decode(iv); - byte[] encryptedBytes = decoder.decode(encryptedData); - - Cipher cipher = null; - try { - cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - SecretKeySpec skeySpec = new SecretKeySpec(sessionKeyBytes, "AES"); - IvParameterSpec ivSpec = new IvParameterSpec(ivBytes); - cipher.init(Cipher.DECRYPT_MODE, skeySpec, ivSpec); - byte[] ret = cipher.doFinal(encryptedBytes); - if (null != ret && ret.length > 0) { - String result = new String(ret, "UTF-8"); - return JSONObject.parseObject(result,WxUserInfoVo.class); - } - } catch (Exception e) { - e.printStackTrace(); - } - return null; - } - - /** - * 保存用户 - * @param creator 艺术家信息 - * @param openId 微信id - * @param sessionKey - - * @param encryptedData 敏感信息数据 - * @param iv 加密向量 - * @return - - */ - private Creator saveUserInfo(Creator creator,String openId, String sessionKey, String encryptedData, String iv){ - if (ObjectUtils.isEmpty(creator)) { - //创建用户 - creator = new Creator(); - //获取用户昵称和头像 - WxUserInfoVo userInfo = this.getUserInfo(sessionKey, encryptedData, iv); - creator.setImg(userInfo.getAvatarUrl()); - creator.setName(userInfo.getNickName()); - creator.setOpenId(Sm4Util.sm4Encryption(openId)); - creator.setCreateTime(new Date()); - creator.setUpdateTime(new Date()); - creator.setLastLoginTime(new Date()); - creatorMapper.insert(creator); - log.info("艺术家【{}】创建成功!", openId); - return creator; - }else{ - log.info("该艺术家【{}】已存在,更新登录时间",openId); - creator.setLastLoginTime(new Date()); - creatorMapper.updateById(creator); - return creator; - } - } - @Override - public Map login(WxLoginDto dto) { - WxSessionInfoVo sessionInfo = this.getSessionInfo(dto.getCode()); - //检查数据库中是否存在该openId,存在则直接设置会话状态登录;不存在则新增 + public Map login(CreatorLoginDto dto) { LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); - wrapper.eq(sessionInfo.getOpenId() != null,Creator::getOpenId,Sm4Util.sm4Encryption(sessionInfo.getOpenId())); + wrapper.eq(Creator::getPhone, Sm4Util.sm4Encryption(dto.getPhone())); + wrapper.eq(Creator::getPassword, Sm4Util.sm4Encryption(dto.getPassword())); Creator creator = creatorMapper.selectOne(wrapper); if(creator == null){ - //新用户,新增 - creator = this.saveUserInfo(creator,sessionInfo.getOpenId(), sessionInfo.getSessionKey(), dto.getEncryptedData(), dto.getIv()); + throw new ServiceException("手机号或密码不正确!",TiktokConstant.TIKTOK_CREATOR_PWD_ERROR); + } + if(creator.getStatus().equals("0")){ + throw new ServiceException("当前艺术家暂未审核,请耐心等待或联系客服!",TiktokConstant.TIKTOK_CREATOR_NOT_PASS_ERROR); } - //设置会话状态 - String redisKey = RedisKeyConstant.WECHAT_CREATOR_LOGIN_KEY+Sm4Util.sm4Encryption(sessionInfo.getOpenId()); + if(creator.getStatus().equals("2")){ + throw new ServiceException("当前艺术家被封禁,请联系客服处理!",TiktokConstant.TIKTOK_CREATOR_BANED_ERROR); + } + CreatorLoginVo creatorLoginVo = new CreatorLoginVo(); + BeanUtils.copyProperties(creator, creatorLoginVo); + creatorLoginVo.setLastLoginTime(new Date()); + //存在则设置会话状态 + String redisKey = RedisKeyConstant.WECHAT_CREATOR_LOGIN_KEY+Sm4Util.sm4Encryption(dto.getPhone()); //存在该登录态则删除刷新 if(redisService.hasKey(redisKey)){ redisService.deleteObject(redisKey); } StringBuffer sb = new StringBuffer(); String randomId = IdUtils.fastSimpleUUID(); - sb.append(randomId).append("#").append(sessionInfo.getOpenId()); + sb.append(randomId).append("#").append(Sm4Util.sm4Encryption(dto.getPhone()+randomId)); //设置登录会话 Map map = new HashMap<>(2); map.put("token", sb.toString()); - map.put("sessionKey", sessionInfo.getSessionKey()); - map.put("userInfo",creator); - redisService.setCacheObject(redisKey,map, 30L, TimeUnit.DAYS); + map.put("userInfo",creatorLoginVo); + redisService.setCacheObject(redisKey,map, 10L, TimeUnit.DAYS); return map; } @@ -396,7 +306,14 @@ public class CreatorServiceImpl implements CreatorService { @Override public List queryHotCreatorList() { - return creatorMapper.queryHotCreatorList(); + List creatorHotVos = creatorMapper.queryHotCreatorList(); + List list = new ArrayList<>(); + for (CreatorHotVo creatorHotVo : creatorHotVos) { + if(creatorHotVo.getHotNum() > 0){ + list.add(creatorHotVo); + } + } + return list; } @Override diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java index 359252d..0bba4b4 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/FhUserServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.web.client.RestTemplate; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; @@ -201,4 +202,24 @@ public class FhUserServiceImpl implements FhUserService { user.setIsShow(status); return fhUserMapper.update(user, wrapper); } + + @Override + public boolean checkUserCanDownload(Long userId, String platform, String appType) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + String hashKey = appType+":"+platform+":"+userId; + String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date; + if(redisService.hasHashKey(redisKey,hashKey)){ + //存在键,判断次数,次数达标则不可下载 + Integer downloadNum = redisService.getCacheMapValue(redisKey, hashKey); + if(downloadNum >= 5){ + return true; + }else{ + return false; + } + }else{ + //不存在键则可下载 + return false; + } + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/SignServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/SignServiceImpl.java index b11bb72..cad82a4 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/SignServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/SignServiceImpl.java @@ -1,10 +1,114 @@ 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.exception.ServiceException; +import com.bnyer.common.core.utils.StringUtils; +import com.bnyer.img.domain.ImgSignRelation; +import com.bnyer.img.domain.Sign; +import com.bnyer.img.dto.SignPageDto; +import com.bnyer.img.mapper.ImgSignRelationMapper; +import com.bnyer.img.mapper.SignMapper; import com.bnyer.img.service.SignService; +import com.bnyer.img.vo.SignImgVo; +import com.bnyer.img.vo.SignVo; +import com.bnyer.img.vo.TiktokImgVo; 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 SignServiceImpl implements SignService { + @Autowired + private SignMapper signMapper; + + @Autowired + private ImgSignRelationMapper imgSignRelationMapper; + + @Override + @Transactional(rollbackFor = Exception.class) + public int insert(Sign sign) { + boolean b = checkSign(sign.getName()); + if(b){ + throw new ServiceException("标签名称已存在!"); + }else{ + sign.setCreateTime(new Date()); + sign.setUpdateTime(new Date()); + return signMapper.insert(sign); + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int update(Sign sign) { + sign.setUpdateTime(new Date()); + return signMapper.updateById(sign); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int delete(List ids) { + int i = signMapper.deleteBatchIds(ids); + //删除关联relation + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.in(ImgSignRelation::getSignId, ids); + imgSignRelationMapper.delete(wrapper); + //imgSignRelationMapper.batchDelete(ids); + return i; + } + + @Override + public List queryPage(SignPageDto dto) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + if (StringUtils.isNotBlank(dto.getName())){ + wrapper.like(Sign::getName,dto.getName()); + } + if (StringUtils.isNotBlank(dto.getIsShow())){ + wrapper.eq(Sign::getIsShow,dto.getIsShow()); + } + wrapper.orderByDesc(Sign::getSort); + return signMapper.selectList(wrapper); + } + + @Override + public Sign queryDetails(Long id) { + return signMapper.selectById(id); + } + + @Override + public boolean checkSign(String name) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.eq(Sign::getName,name); + List signs = signMapper.selectList(wrapper); + if(signs.size() > 0){ + return true; + }else{ + return false; + } + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int changeStatus(Long id, String status) { + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + wrapper.eq(Sign::getId,id); + Sign sign = new Sign(); + sign.setIsShow(status); + return signMapper.update(sign,wrapper); + } + + @Override + public List querySignList() { + return signMapper.querySignList(); + } + + @Override + public List queryFrontSignByTypeId(Long typeId) { + return signMapper.queryFrontSign(typeId); + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java index ce32b8d..d7c340a 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokImgServiceImpl.java @@ -5,16 +5,23 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.bnyer.common.core.utils.StringUtils; import com.bnyer.common.redis.service.RedisService; import com.bnyer.img.constants.RedisKeyConstant; +import com.bnyer.img.constants.StatusImgConstant; import com.bnyer.img.domain.TiktokCollection; import com.bnyer.img.domain.TiktokImg; import com.bnyer.img.domain.TiktokLike; +import com.bnyer.img.dto.StatusDto; +import com.bnyer.img.dto.TiktokImgMiniDto; import com.bnyer.img.dto.TiktokImgPageDto; +import com.bnyer.img.mapper.ImgSignRelationMapper; import com.bnyer.img.mapper.TiktokCollectionMapper; import com.bnyer.img.mapper.TiktokImgMapper; import com.bnyer.img.mapper.TiktokLikeMapper; import com.bnyer.img.service.TiktokImgService; +import com.bnyer.img.vo.CreatorTypeImgVo; +import com.bnyer.img.vo.ImgSignVo; import com.bnyer.img.vo.TiktokImgVo; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -39,14 +46,28 @@ public class TiktokImgServiceImpl implements TiktokImgService { @Autowired private RedisService redisService; + @Autowired + private ImgSignRelationMapper imgSignRelationMapper; + @Override @Transactional(rollbackFor = Exception.class) - public int insert(TiktokImg tiktokImg) { + public int insert(TiktokImgMiniDto dto) { + TiktokImg tiktokImg = new TiktokImg(); + tiktokImg.setImgUrl(dto.getImgUrl()); + tiktokImg.setCreatorId(dto.getCreatorId()); + tiktokImg.setTypeId(dto.getTypeId()); + tiktokImg.setStatus(dto.getStatus()); tiktokImg.setCreateTime(new Date()); tiktokImg.setUpdateTime(new Date()); - return tiktokImgMapper.insert(tiktokImg); + int insert = tiktokImgMapper.insert(tiktokImg); + //保存标签 + if(CollectionUtils.isNotEmpty(dto.getSignList())){ + imgSignRelationMapper.batctInsert(tiktokImg.getId(),dto.getTypeId(),dto.getSignList()); + } + return insert; } + @Override @Transactional(rollbackFor = Exception.class) public int update(TiktokImg tiktokImg) { @@ -99,7 +120,7 @@ public class TiktokImgServiceImpl implements TiktokImgService { } @Override - public List queryInList(String creatorId, String typeId) { + public List queryInList(String creatorId, String typeId) { return tiktokImgMapper.queryInList(creatorId,typeId); } @@ -189,4 +210,51 @@ public class TiktokImgServiceImpl implements TiktokImgService { public List queryImgsByScanCodeAndTypeId(String scanCode, Long typeId) { return tiktokImgMapper.queryImgsByScanCodeAndTypeId(scanCode,typeId); } + + @Override + public CreatorTypeImgVo queryCreatorTypeImgNum(Long creatorId) { + Integer headNum = tiktokImgMapper.queryCreatorTypeImgNum(1L, creatorId); + Integer gifNum = tiktokImgMapper.queryCreatorTypeImgNum(2L, creatorId); + Integer backNum = tiktokImgMapper.queryCreatorTypeImgNum(3L, creatorId); + Integer friendNum = tiktokImgMapper.queryCreatorTypeImgNum(4L, creatorId); + Integer emoNum = tiktokImgMapper.queryCreatorTypeImgNum(5L, creatorId); + Integer watchNum = tiktokImgMapper.queryCreatorTypeImgNum(6L, creatorId); + CreatorTypeImgVo result = new CreatorTypeImgVo(); + result.setHeadNum(headNum); + result.setGifNum(gifNum); + result.setBackNum(backNum); + result.setFriendNum(friendNum); + result.setEmoNum(emoNum); + result.setWatchNum(watchNum); + return result; + } + + @Override + @Transactional(rollbackFor = Exception.class) + public int onlineOrOfflineImg(StatusDto param) { + TiktokImg img = new TiktokImg(); + LambdaUpdateWrapper wrapper = new LambdaUpdateWrapper<>(); + if(param.getStatus().equals(StatusImgConstant.ONLINE)){ + img.setStatus(StatusImgConstant.ONLINE); + wrapper.eq(TiktokImg::getId, param.getId()); + return tiktokImgMapper.update(img, wrapper); + }else if(param.getStatus().equals(StatusImgConstant.OFFLINE)){ + img.setStatus(StatusImgConstant.OFFLINE); + wrapper.eq(TiktokImg::getId, param.getId()); + return tiktokImgMapper.update(img, wrapper); + }else{ + return 0; + } + } + + @Override + public List querySignImgBySignIdAndTypeId(Long signId, Long typeId) { + return tiktokImgMapper.querySignImgBySignIdAndTypeId(signId,typeId); + } + + @Override + public List queryImgPageBySignName(String signName) { + return tiktokImgMapper.queryImgPageBySignName(signName); + } + } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java index 511d765..edcbf39 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/TiktokUserServiceImpl.java @@ -32,6 +32,7 @@ import javax.annotation.Resource; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; @@ -210,4 +211,24 @@ public class TiktokUserServiceImpl implements TiktokUserService { user.setIsShow(status); return tiktokUserMapper.update(user,wrapper); } + + @Override + public boolean checkUserCanDownload(Long userId, String platform, String appType) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + String hashKey = appType+":"+platform+":"+userId; + String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date; + if(redisService.hasHashKey(redisKey,hashKey)){ + //存在键,判断次数,次数达标则不可下载 + Integer downloadNum = redisService.getCacheMapValue(redisKey, hashKey); + if(downloadNum >= 5){ + return true; + }else{ + return false; + } + }else{ + //不存在键则可下载 + return false; + } + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WithdrawLogServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WithdrawLogServiceImpl.java index d83322c..e3e1e96 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WithdrawLogServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WithdrawLogServiceImpl.java @@ -139,12 +139,33 @@ public class WithdrawLogServiceImpl implements WithdrawLogService { @Override public List queryFrontList(Long creatorId) { - return withdrawLogMapper.queryFrontList(creatorId); + List withdrawLogVos = withdrawLogMapper.queryFrontList(creatorId); + if(withdrawLogVos.size() > 0){ + for (WithdrawLogVo withdrawLogVo : withdrawLogVos) { + if(StringUtils.isNotBlank(withdrawLogVo.getPhone())){ + withdrawLogVo.setPhone(Sm4Util.sm4Decrypt(withdrawLogVo.getPhone())); + } + if(StringUtils.isNotBlank(withdrawLogVo.getBankNo())){ + withdrawLogVo.setBankNo(Sm4Util.sm4Decrypt(withdrawLogVo.getBankNo())); + } + JSONObject.parseObject(DesensitizedUtils.getJsonNoCopy(withdrawLogVo), WithdrawLogVo.class); + } + } + + return withdrawLogVos; } @Override public WithdrawLogVo queryFrontDetails(String orderId) { - return withdrawLogMapper.queryFrontDetails(orderId); + WithdrawLogVo withdrawLogVo = withdrawLogMapper.queryFrontDetails(orderId); + if(StringUtils.isNotBlank(withdrawLogVo.getPhone())){ + withdrawLogVo.setPhone(Sm4Util.sm4Decrypt(withdrawLogVo.getPhone())); + } + if(StringUtils.isNotBlank(withdrawLogVo.getBankNo())){ + withdrawLogVo.setBankNo(Sm4Util.sm4Decrypt(withdrawLogVo.getBankNo())); + } + JSONObject.parseObject(DesensitizedUtils.getJsonNoCopy(withdrawLogVo), WithdrawLogVo.class); + return withdrawLogVo; } /** diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java index 0e13792..7253829 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/service/impl/WxUserServiceImpl.java @@ -31,6 +31,7 @@ import org.springframework.web.client.RestTemplate; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; +import java.text.SimpleDateFormat; import java.util.*; import java.util.concurrent.TimeUnit; @@ -212,4 +213,24 @@ public class WxUserServiceImpl implements WxUserService { user.setIsShow(status); return wxUserMapper.update(user, wrapper); } + + @Override + public boolean checkUserCanDownload(Long userId, String platform, String appType) { + SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + String date = df.format(new Date()); + String hashKey = appType+":"+platform+":"+userId; + String redisKey = RedisKeyConstant.PLATFORM_USER_DOWNLOAD_KEY + date; + if(redisService.hasHashKey(redisKey,hashKey)){ + //存在键,判断次数,次数达标则不可下载 + Integer downloadNum = redisService.getCacheMapValue(redisKey, hashKey); + if(downloadNum >= 5){ + return true; + }else{ + return false; + } + }else{ + //不存在键则可下载 + return false; + } + } } diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java index f9f5f37..89148ec 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CollectionSyncTask.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** + * 同步用户收藏记录任务 * @author chengkun * @date 2022/5/12 18:13 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java index 669fbb0..8221cd0 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/CreatorProfitConfirmTypeSyncTask.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** + * 更新艺术家收益状态任务 * @author chengkun * @date 2022/5/12 18:13 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/DateSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/DateSyncTask.java new file mode 100644 index 0000000..b54165d --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/DateSyncTask.java @@ -0,0 +1,60 @@ +package com.bnyer.img.task; + +import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.bnyer.common.redis.service.RedisService; +import com.bnyer.img.domain.BzData; +import com.bnyer.img.service.BzDataService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import com.xxl.job.core.log.XxlJobLogger; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +import java.time.LocalDate; +import java.util.Set; + +/** + * @Author qyh + * @Date 2022/7/14 16:43 + * @Description + */ +@Component +@Slf4j +public class DateSyncTask { + @Autowired + private static RedisService redisService; + @Autowired + private static BzDataService bzDataService; + //@XxlJob("dateSyncTask") + //@Scheduled(fixedDelay = 1000 * 60 * 60) + public static ReturnT dateSync() { + String day = LocalDate.now().plusDays(-1)+ ""; + String redisKey = "bzPage_key" + day; + System.out.println(redisService); + redisService.setCacheObject("4", 2); + Set range = redisService.redisTemplate.opsForZSet().range(redisKey, 0, -1); + for (Object key : redisService.redisTemplate.opsForZSet().range(redisKey, 0, -1)) { + Long pv = Long.parseLong(redisService.redisTemplate.opsForValue().get(key + "PV").toString()); + Long uv = Long.parseLong(redisService.redisTemplate.opsForHyperLogLog().size(key + "UV").toString()); + String[] s = key.toString().split("_"); + String source = s[1]; + redisService.deleteObject(key + "PV"); + redisService.deleteObject(key + "UV"); + UpdateWrapper wrapper = new UpdateWrapper<>(); + wrapper.set("pv",pv); + wrapper.set("uv",uv); + wrapper.eq("date",day); + wrapper.eq("source",source); + bzDataService.update(new BzData(),wrapper); +// redisService.deleteObject(key + "PV"); +// redisService.deleteObject(key + "UV"); + } + redisService.deleteObject("bzPage_key" + day); + XxlJobLogger.log("{} 我执行了同步pv,uv任务", System.currentTimeMillis()); + return ReturnT.SUCCESS; + } + + +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java index 7ab7b44..c62ebd8 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/LikeSyncTask.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; /** + * 同步点赞任务 * @author chengkun * @date 2022/5/12 18:13 */ diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java new file mode 100644 index 0000000..7b51221 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/task/UserDownloadSyncTask.java @@ -0,0 +1,36 @@ +package com.bnyer.img.task; + +import com.bnyer.img.service.CreatorProfitService; +import com.xxl.job.core.biz.model.ReturnT; +import com.xxl.job.core.handler.annotation.XxlJob; +import com.xxl.job.core.log.XxlJobLogger; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Component; + +/** + * 同步删除昨日用户下载次数任务 + * @author chengkun + * @date 2022/5/12 18:13 + */ +@Component +@Slf4j +public class UserDownloadSyncTask { + + @Autowired + private CreatorProfitService creatorProfitService; + + @XxlJob("userDownloadSyncTask") + public ReturnT syncUserDownload(String param) throws Exception { + creatorProfitService.batchDeleteUserDownloadNum(); + XxlJobLogger.log("{} 我执行了批量删除昨日用户下载次数任务", System.currentTimeMillis()); + return ReturnT.SUCCESS; + } + + @XxlJob("creatorDownloadSyncTask") + public ReturnT syncCreatorUpload(String param) throws Exception { + creatorProfitService.batchDeleteCreatorUploadNum(); + XxlJobLogger.log("{} 我执行了批量删除昨日用户上传次数任务", System.currentTimeMillis()); + return ReturnT.SUCCESS; + } +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorLoginVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorLoginVo.java new file mode 100644 index 0000000..7032984 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorLoginVo.java @@ -0,0 +1,71 @@ +package com.bnyer.img.vo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + + +@Getter +@Setter +@ApiModel("艺术家登录响应类") +public class CreatorLoginVo implements Serializable { + + @ApiModelProperty(value="主键id") + private Long id; + + @ApiModelProperty(value="昵称") + private String name; + + @ApiModelProperty(value="搜索码") + private String scanCode; + + @ApiModelProperty(value="手机号") + private String phone; + + @ApiModelProperty(value="头像img地址") + private String img; + + @ApiModelProperty(value="简介") + private String intro; + + @ApiModelProperty(value="余额") + private BigDecimal amt; + + @ApiModelProperty(value="邀请码") + private String inviteCode; + + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + private String status; + + @ApiModelProperty(value="第三方平台账号详情地址") + private String url; + + @ApiModelProperty(value="是否活跃(0->不活跃;1->活跃 连续10天以上更新内容)") + private String isHot; + + @ApiModelProperty(value="是否显示 (0->隐藏;1->显示)") + private String isShow; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="创建时间") + private Date createTime; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="更新时间") + private Date updateTime; + + @ApiModelProperty(value="排序") + private Integer sort; + + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value="最后登录时间") + private Date lastLoginTime; + + private static final long serialVersionUID = 1L; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java new file mode 100644 index 0000000..978e5b0 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/CreatorTypeImgVo.java @@ -0,0 +1,35 @@ +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 CreatorTypeImgVo implements Serializable { + + @ApiModelProperty(value="头像数量") + private Integer headNum; + + @ApiModelProperty(value="gif动图数量") + private Integer gifNum; + + @ApiModelProperty(value="手机壁纸数量") + private Integer backNum; + + @ApiModelProperty(value="朋友圈背景数量") + private Integer friendNum; + + @ApiModelProperty(value="表情包数量") + private Integer emoNum; + + @ApiModelProperty(value="iwatch数量") + private Integer watchNum; + + private static final long serialVersionUID = 1L; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/ImgSignVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/ImgSignVo.java new file mode 100644 index 0000000..066c218 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/ImgSignVo.java @@ -0,0 +1,48 @@ +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; +import java.util.List; + + +@Getter +@Setter +@ApiModel("图片标签响应类") +public class ImgSignVo implements Serializable { + + @ApiModelProperty(value="id") + private Long id; + + @ApiModelProperty(value="图片地址") + private String imgUrl; + + @ApiModelProperty(value="用户id") + private Long creatorId; + + @ApiModelProperty(value="分类id") + private Long typeId; + + @ApiModelProperty(value="下载量") + private Integer downloadNum; + + @ApiModelProperty(value="点赞量") + private Integer greatNum; + + @ApiModelProperty(value="收藏量") + private Integer collectionNum; + + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝;3->已上架;4->已下架))") + private String status; + + @ApiModelProperty(value="是否热门(0->冷门;1->热门)") + private String isHot; + + @ApiModelProperty(value="标签列表") + private List signList; + + private static final long serialVersionUID = 1L; +} diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/InviteLogVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/InviteLogVo.java index d1d18f4..b7331df 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/InviteLogVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/InviteLogVo.java @@ -28,6 +28,9 @@ public class InviteLogVo implements Serializable { @ApiModelProperty(value="被邀请者搜索码") private String invitedScanCode; + @ApiModelProperty(value="被邀请者头像") + private String img; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value="邀请时间") private String createTime; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignImgVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignImgVo.java new file mode 100644 index 0000000..de8f0bf --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignImgVo.java @@ -0,0 +1,28 @@ +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("sign图片响应体") +public class SignImgVo implements Serializable { + @ApiModelProperty(value="标签id") + private Long signId; + + @ApiModelProperty(value="标签名称") + private String signName; + + @ApiModelProperty(value="背景图") + private String img; + + @ApiModelProperty(value="分类id") + private Long typeId; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignRelationVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignRelationVo.java new file mode 100644 index 0000000..62635b4 --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignRelationVo.java @@ -0,0 +1,25 @@ +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 SignRelationVo implements Serializable { + @ApiModelProperty(value="标签id") + private Long signId; + + @ApiModelProperty(value="标签名称") + private String signName; + + @ApiModelProperty(value="标签图片主键id") + private Long signImgRelationId; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignVo.java new file mode 100644 index 0000000..084f30b --- /dev/null +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/SignVo.java @@ -0,0 +1,22 @@ +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("sign响应体") +public class SignVo implements Serializable { + @ApiModelProperty(value="主键id") + private Long id; + + @ApiModelProperty(value="标签名称") + private String name; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokCollectionVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokCollectionVo.java index 2c3915c..fa04176 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokCollectionVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokCollectionVo.java @@ -11,7 +11,7 @@ import java.io.Serializable; @Getter @Setter @ApiModel("抖音收藏响应类") -public class TiktokCollectionVo implements Serializable { +public class TiktokCollectionVo implements Serializable { @ApiModelProperty(value="id") private Long id; diff --git a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokImgVo.java b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokImgVo.java index bb7acd4..8731943 100644 --- a/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokImgVo.java +++ b/bnyer-services/bnyer-img/src/main/java/com/bnyer/img/vo/TiktokImgVo.java @@ -6,6 +6,7 @@ import lombok.Getter; import lombok.Setter; import java.io.Serializable; +import java.util.List; @Getter @@ -34,11 +35,14 @@ public class TiktokImgVo implements Serializable { @ApiModelProperty(value="收藏量") private Integer collectionNum; - @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝)") + @ApiModelProperty(value="状态(0->待审核;1->审核通过;2->审核拒绝;3->已上架;4->已下架))") private String status; @ApiModelProperty(value="是否热门(0->冷门;1->热门)") private String isHot; + @ApiModelProperty(value="标签列表") + private List signList; + private static final long serialVersionUID = 1L; } diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorMapper.xml index 1079453..c8569af 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorMapper.xml @@ -6,7 +6,7 @@ - + @@ -53,7 +53,7 @@ - id, `name`,open_id, scan_code, phone, img, intro, invite_code, url, status, is_hot, is_show, create_time, + id, `name`,password, scan_code, phone, img, intro, invite_code, url, status, is_hot, is_show, create_time, update_time, sort, amt, last_login_time @@ -65,7 +65,7 @@ (select sum(collection_num) from img_tiktok_img where creator_id = ic.id) as imgCollectionNum from img_creator ic where ic.is_show = '1' and ic.status = '1' - order by ic.create_time desc + order by ic.create_time asc select ic.id,ic.scan_code,ic.is_hot,ic.img, - (select sum(download_num+great_num+collection_num) from img_tiktok_img where creator_id = ic.id) as hotNum + ifnull((select sum(download_num+great_num+collection_num) from img_tiktok_img where creator_id = ic.id),0) as hotNum from img_creator ic where ic.status = '1' and ic.is_show = '1' order by hotNum desc limit 10 diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml index 2fbd5e9..1d02a69 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/CreatorProfitMapper.xml @@ -48,10 +48,10 @@ select - sum(download_num) as inviteDownloadNum,create_time as createTime + sum(download_num) as inviteDownloadNum,DATE_FORMAT(create_time,'%Y-%m-%d') as createTime from img_creator_profit where creator_id = #{creatorId} and status = '0' and is_show = '1' and type = '1' - group by create_time + group by DATE_FORMAT(create_time,'%Y-%m-%d') + + diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/ImgSignRelationMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/ImgSignRelationMapper.xml index 7c05c49..8d8cac4 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/ImgSignRelationMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/ImgSignRelationMapper.xml @@ -6,14 +6,35 @@ + - - - - id, img_id, sign_id, is_show, create_time, update_time, sort + id, img_id, type_id, sign_id, create_time + + + insert into img_img_sign_relation(img_id, type_id, sign_id,create_time) values + + ( + #{imgId}, #{typeId}, #{item},now() + ) + + + \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/InviteLogMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/InviteLogMapper.xml index 416610c..7de3e60 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/InviteLogMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/InviteLogMapper.xml @@ -22,7 +22,7 @@ select iil.id as id,iil.creator_id as creatorId,iil.invite_code as inviteCode, iil.invited_creator_id as invitedCreatorId,ic.scan_code as invitedScanCode, - iil.create_time as createTime + ic.img as img,iil.create_time as createTime from img_invite_log iil join img_creator ic on iil.invited_creator_id = ic.id where iil.is_show = '1' and iil.creator_id = #{creatorId} diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/SignMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/SignMapper.xml index 43d4ee9..170b047 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/SignMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/SignMapper.xml @@ -6,6 +6,7 @@ + @@ -13,6 +14,21 @@ - id, `name`, is_show, create_time, update_time, sort + id, `name`, img,is_show, create_time, update_time, sort + + \ No newline at end of file diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml index 4cbaee5..da5687c 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokCollectionMapper.xml @@ -27,7 +27,7 @@ from img_collection itc join img_tiktok_img iti on itc.img_id = iti.id join img_type it on iti.type_id = it.id - where iti.is_show = '1' and it.is_show = '1' and iti.status = '1' and itc.is_show = '1' + where iti.is_show = '1' and it.is_show = '1' and iti.status = '3' and itc.is_show = '1' and itc.user_id = #{userId} and itc.platform = #{platform} order by itc.sort desc diff --git a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml index ae4463c..e3a1e8a 100644 --- a/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml +++ b/bnyer-services/bnyer-img/src/main/resources/com/bnyer/img/mapper/TiktokImgMapper.xml @@ -18,32 +18,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, img_url, creator_id, type_id, download_num, great_num, collection_num, `status`, is_hot, is_show, create_time, update_time, sort - select - id,img_url,creator_id,type_id,download_num, great_num, collection_num,status,is_hot - from img_tiktok_img + iti.id as id,iti.img_url as imgUrl,iti.creator_id as creatorId,iti.type_id as typeId, + iti.download_num as downloadNum, iti.great_num as greatNum, iti.collection_num as collectionNum, + iti.status as status, iti.is_hot as isHot + from img_tiktok_img iti - is_show = '1' + iti.is_show = '1' - and creator_id = #{creatorId} + and iti.creator_id = #{creatorId} - and type_id = #{typeId} + and iti.type_id = #{typeId} - order by create_time desc + order by iti.create_time desc - + @@ -53,44 +95,86 @@ - select - id,img_url,creator_id,type_id,download_num, great_num, collection_num,status,is_hot - from img_tiktok_img - where creator_id = #{creatorId} and is_show = '1' and status = '1' - order by create_time desc + iti.id as id,iti.img_url as imgUrl,iti.creator_id as creatorId,iti.type_id as typeId, + iti.download_num as downloadNum, iti.great_num greatNum, iti.collection_num as collectionNum, + iti.status as status,iti.is_hot as isHot + from img_tiktok_img iti + where iti.creator_id = #{creatorId} and iti.is_show = '1' and iti.status = '3' + order by iti.create_time desc limit 3 - select - id,img_url,creator_id,type_id,download_num, great_num, collection_num,status,is_hot - from img_tiktok_img - where creator_id = #{creatorId} and is_show = '1' and status = '1' - order by create_time desc + iti.id as id,iti.img_url as imgUrl,iti.creator_id as creatorId, + iti.type_id as typeId,iti.download_num as downloadNum, iti.great_num as greatNum, + iti.collection_num as collectionNum,iti.status as status,iti.is_hot as isHot + from img_tiktok_img iti + where iti.creator_id = #{creatorId} and iti.is_show = '1' and iti.status = '3' + order by iti.create_time desc - select - id,img_url,creator_id,type_id,download_num, great_num, collection_num,status,is_hot - from img_tiktok_img - where is_show = '1' and status = '1' and id = #{imgId} + iti.id as id,iti.img_url as imgUrl,iti.creator_id as creatorId, + iti.type_id as typeId,iti.download_num as downloadNum, iti.great_num as greatNum, + iti.collection_num as collectionNum,iti.status as status,iti.is_hot as isHot + from img_tiktok_img iti + where iti.is_show = '1' and iti.status = '3' and iti.id = #{imgId} - select - id,img_url,creator_id,type_id,download_num, great_num, collection_num,status,is_hot - from img_tiktok_img - where is_show = '1' and status = '1' + iti.id as id,iti.img_url as imgUrl,iti.creator_id as creatorId, + iti.type_id as typeId,iti.download_num downloadNum, iti.great_num as greatNum, + iti.collection_num as collectionNum,iti.status as status,iti.is_hot as isHot + from img_tiktok_img iti + where iti.is_show = '1' and iti.status = '3' - select iti.id as id,iti.img_url as imgUrl,iti.creator_id as creatorId,iti.type_id as TypeId, iti.download_num as downloadNum,iti.great_num as greatNum,iti.collection_num as collectionNum, iti.status as status,iti.is_hot as isHot from img_tiktok_img iti join img_creator ic on iti.creator_id = ic.id - where iti.is_show = '1' and iti.status = '1' + where iti.is_show = '1' and iti.status = '3' and ic.scan_code = #{scanCode} and iti.type_id = #{typeId} + + + +