Commit 17d687d9 authored by tangtuo's avatar tangtuo

v1.0.0功能开发

parent 3da18aa8
......@@ -22,6 +22,9 @@ public class CopyrightApply {
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "流水号")
private String serialNum;
@ApiModelProperty(value = "用户id")
private Integer userId;
......
package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.AllArgsConstructor;
import lombok.Data;
/**
* @author tangtuo
* @date 2021/12/13 11:22
*/
@Data
@AllArgsConstructor
@TableName(value = "tb_copyright_apply_owner_relation")
public class CopyrightApplyOwnerRelation {
private Integer copyrightId;
private Integer ownerId;
}
......@@ -5,11 +5,16 @@ import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fzm.common.entity.dto.CopyrightDTO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.Max;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;
@Data
......@@ -22,29 +27,41 @@ public class CopyrightOwner {
private Integer id;
@ApiModelProperty(value = "版权id")
private Integer copyrightId;
private Integer userId;
@NotNull(message = "著作权人类型不能为空")
@ApiModelProperty(value = "类别 0-自然人 1-法人")
private Integer type;
@NotBlank(message = "著作权人不能为空")
@ApiModelProperty(value = "著作权人")
private String owner;
@NotBlank(message = "证件号码不能为空")
@ApiModelProperty(value = "证件号码")
private String idNumber;
@NotNull(message = "证件是否长期有效不能为空")
@ApiModelProperty(value = "是否长期有效 0-否 1-是")
private Integer isEffective;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@NotNull(message = "证件有效期起始时间不能为空")
@ApiModelProperty(value = "证件有效起止时间")
private Date effectiveStartDate;
@DateTimeFormat(pattern = "yyyy-MM-dd")
@JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd")
@NotNull(message = "证件有效期终止时间不能为空")
@ApiModelProperty(value = "证件有效终止时间")
private Date effectiveEndDate;
@NotBlank(message = "用户所在省份不能为空")
@ApiModelProperty(value = "用户所在省份")
private String province;
@NotBlank(message = "用户所在城市不能为空")
@ApiModelProperty(value = "用户所在城市")
private String city;
......@@ -63,6 +80,7 @@ public class CopyrightOwner {
@ApiModelProperty(value = "证件照片(营业执照等)")
private String certificatesPhoto;
@NotBlank(message = "委托证明不能为空")
@ApiModelProperty(value = "委托证明")
private String entrustProve;
......
package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
@Data
@TableName("tb_draft")
public class Draft {
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty("用户id")
private Integer userId;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("草稿json串")
private String json;
@ApiModelProperty("保存草稿时编辑到了第几步,方便再次编辑时页面跳转")
private Integer step;
private Date createDate;
private Date updateDate;
}
package com.fzm.common.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @author tangtuo
* @date 2021/12/10 15:54
*/
@Data
@TableName("tb_file_template")
public class FileTemplate {
@TableId(type = IdType.AUTO)
private Integer id;
@ApiModelProperty("文件名")
private String fileName;
@ApiModelProperty(value = "文件路径")
private String fileUrl;
@JsonProperty(access = JsonProperty.Access.WRITE_ONLY)
@ApiModelProperty("类型 0-权利取得方式证明材料 1-代理委托书 2-权利归属证明材料《合作作品权属协议书》3-权利归属证明材料《著作权权属申请》4-权利归属证明材料《职务作品权属约定》 5-权利归属证明材料《委托创作协议书(甲方享有全部权利)》,权利归属证明材料《委托创作协议书(作者保留署名权)》")
private Integer type;
}
......@@ -76,8 +76,8 @@ public class CopyrightDTO {
@ApiModelProperty(value = "作者列表")
private List<Author> authors;
@ApiModelProperty(value = "著作权人列表")
private List<Owner> owners;
@ApiModelProperty(value = "著作权人id列表")
private List<Integer> ownerIds;
@ApiModelProperty("文件列表")
private List<File> files;
......
package com.fzm.common.entity.dto;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
/**
* @author tangtuo
* @date 2021/12/10 15:22
*/
@Data
public class DraftDTO {
@NotBlank(message = "草稿内容不能为空")
private String content;
@NotNull(message = "步骤不能为空")
private Integer step;
@NotBlank(message = "解析内容不能为空")
private String json;
}
package com.fzm.common.entity.vo;
import cn.hutool.core.bean.BeanUtil;
import com.fzm.common.entity.*;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/13 11:35
*/
@Data
public class CopyrightVo {
@ApiModelProperty(value = "主键")
private Integer id;
@ApiModelProperty(value = "流水号")
private String serialNum;
@ApiModelProperty(value = "用户id")
private Integer userId;
@ApiModelProperty(value = "nft哈希")
private String nftHash;
@ApiModelProperty(value = "nft名称")
private String nftName;
@ApiModelProperty(value = "作品名称")
private String opusName;
@ApiModelProperty(value = "作品类别id")
private Integer opusCategoryId;
@ApiModelProperty(value = "作品性质")
private String opusProperty;
@ApiModelProperty(value = "内容简介")
private String contentSynopsis;
@ApiModelProperty(value = "创作过程")
private String createProcess;
@ApiModelProperty(value = "作品完成日期")
private Date opusCompleteDate;
@ApiModelProperty(value = "作品完成省份")
private String opusCompleteProvince;
@ApiModelProperty(value = "作品完成城市")
private String opusCompleteCity;
@ApiModelProperty(value = "'发表状态 0-未发表 1-已发表")
private Integer publishState;
@ApiModelProperty(value = "首次发表日期")
private Date firstPublishDate;
@ApiModelProperty(value = "首次发表省份")
private String firstPublishProvince;
@ApiModelProperty(value = "首次发表城市")
private String firstPublishCity;
@ApiModelProperty(value = "权力取得方式")
private String authorityAcquireMode;
@ApiModelProperty(value = "权力取得证明材料的文件地址")
private String authorityAcquireProve;
@ApiModelProperty(value = "权力归属方式")
private String authorityAscriptionMode;
@ApiModelProperty(value = "权力归属证明材料的文件地址")
private String authorityAscriptionProve;
@ApiModelProperty(value = "登记状态 0-待审核 1-登记成功 2-审核失败")
private Integer registerState;
@ApiModelProperty(value = "文件列表")
private List<CopyrightFile> files;
@ApiModelProperty(value = "作者列表")
private List<CopyrightAuthor> authors;
@ApiModelProperty(value = "权力列表")
private List<Authority> authorities;
@ApiModelProperty(value = "著作权人列表")
private List<CopyrightOwner> owners;
public CopyrightVo(CopyrightApply copyrightApply) {
BeanUtil.copyProperties(copyrightApply, this, true);
}
}
......@@ -11,9 +11,12 @@ import lombok.Getter;
@AllArgsConstructor
public enum CopyrightApplyStateEnum {
WITHDRAW(-1, "已撤回"),
TO_BE_REVIEWED(0, "待审核"),
SUCCEEDED(1, "登记成功"),
FAILED(2, "审核失败"),
SUBMITTED(2, "已提交"),
REJECTED(3, "已驳回"),
SUCCEEDED(4, "登记成功"),
FAILED(5, "审核失败"),
;
private int code;
......
package com.fzm.common.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* @author tangtuo
* @date 2021/12/13 10:33
*/
@Getter
@AllArgsConstructor
public enum OwnerTypeEnum {
PERSON(0, "个人"),
LEGAL(1, "法人"),
;
private int type;
private String desc;
}
......@@ -17,6 +17,7 @@ public enum ResultCode implements IErrorCode {
RECEIVE_ERROR(416, "nft领取失败"),
TRANSFER_ERROR(416, "nft转让失败"),
ID_CARD_VERIFICATION_ERROR(417, "身份证验证失败"),
OPERATION_FAILED(418, "操作失败"),
;
......
......@@ -4,10 +4,20 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Authority;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:28
*/
@Mapper
public interface AuthorityMapper extends BaseMapper<Authority> {
/**
* 根据版权id查询列表
*
* @param copyrightId
* @return
*/
List<Authority> getByCopyrightId(Integer copyrightId);
}
......@@ -3,6 +3,9 @@ package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.CopyrightApply;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author tangtuo
......@@ -10,4 +13,13 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface CopyrightApplyMapper extends BaseMapper<CopyrightApply> {
/**
* 查询用户的版权登记列表
*
* @param userId
* @param state
* @return
*/
List<CopyrightApply> list(@Param("userId") Integer userId, @Param("state") Integer state);
}
package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.CopyrightApplyOwnerRelation;
import org.apache.ibatis.annotations.Mapper;
/**
* @author tangtuo
* @date 2021/12/13 11:24
*/
@Mapper
public interface CopyrightApplyOwnerRelationMapper extends BaseMapper<CopyrightApplyOwnerRelation> {
}
......@@ -3,6 +3,9 @@ package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.CopyrightOwner;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @author tangtuo
......@@ -10,4 +13,12 @@ import org.apache.ibatis.annotations.Mapper;
*/
@Mapper
public interface CopyrightOwnerMapper extends BaseMapper<CopyrightOwner> {
/**
* 根据著作权人id查询
*
* @param copyrightId
* @return
*/
List<CopyrightOwner> getByCopyrightId(@Param("copyrightId") Integer copyrightId);
}
package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.Draft;
import org.apache.ibatis.annotations.Mapper;
/**
* @author tangtuo
* @date 2021/12/10 10:17
*/
@Mapper
public interface DraftMapper extends BaseMapper<Draft> {
}
package com.fzm.common.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.fzm.common.entity.FileTemplate;
import org.apache.ibatis.annotations.Mapper;
/**
* @author tangtuo
* @date 2021/12/10 16:00
*/
@Mapper
public interface FileTemplateMapper extends BaseMapper<FileTemplate> {
}
......@@ -10,5 +10,15 @@ import java.util.List;
* @date 2021/12/9 11:42
*/
public interface AuthorityService extends IService<Authority> {
List<Authority> getByType(int type);
/**
* 根据版权id查询列表
*
* @param id
* @return
*/
List<Authority> getByCopyrightId(Integer id);
}
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.CopyrightApplyOwnerRelation;
/**
* @author tangtuo
* @date 2021/12/13 11:24
*/
public interface CopyrightApplyOwnerRelationService extends IService<CopyrightApplyOwnerRelation> {
}
......@@ -3,6 +3,9 @@ package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.CopyrightApply;
import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.entity.vo.CopyrightVo;
import java.util.List;
/**
* @author tangtuo
......@@ -17,4 +20,38 @@ public interface CopyrightApplyService extends IService<CopyrightApply> {
* @return
*/
Integer submit(CopyrightDTO copyrightDTO);
/**
* 查询用户的版权登记列表
*
* @param userId
* @param state
* @return
*/
List<CopyrightApply> list(Integer userId, Integer state);
/**
* 驳回
*
* @param id
* @return
*/
Boolean reject(Integer id);
/**
* 删除记录
*
* @param id
* @return
*/
Boolean delete(Integer id);
/**
* 获取详情
*
* @param id
* @return
*/
CopyrightVo getDetail(Integer id);
}
......@@ -3,9 +3,27 @@ package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.CopyrightAuthor;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:41
*/
public interface CopyrightAuthorService extends IService<CopyrightAuthor> {
/**
* 根据版权id删除
*
* @param id
* @return
*/
Integer delByCopyrightId(Integer id);
/**
* 根据版权id查询作者列表
*
* @param copyrightId
* @return
*/
List<CopyrightAuthor> getByCopyrightId(int copyrightId);
}
......@@ -8,4 +8,11 @@ import com.fzm.common.entity.CopyrightAuthorityRelation;
* @date 2021/12/9 11:44
*/
public interface CopyrightAuthorityRelationService extends IService<CopyrightAuthorityRelation> {
/**
* 根据版权id删除
*
* @param copyrightId
*/
Integer delByCopyrightId(Integer copyrightId);
}
......@@ -3,9 +3,28 @@ package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.CopyrightFile;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:43
*/
public interface CopyrightFileService extends IService<CopyrightFile> {
/**
* 根据版权id查询
*
* @param copyrightId
* @return
*/
List<CopyrightFile> getByCopyrightId(Integer copyrightId);
/**
* 根据版权id删除
*
* @param id
* @return
*/
Integer delByCopyrightId(Integer id);
}
......@@ -3,9 +3,27 @@ package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.CopyrightOwner;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:40
*/
public interface CopyrightOwnerService extends IService<CopyrightOwner> {
/**
* 获取我的著作权人列表
*
* @param userId
* @return
*/
List<CopyrightOwner> getByUserId(Integer userId);
/**
* 根据著作权id查询列表
*
* @param copyrightId
* @return
*/
List<CopyrightOwner> getByCopyrightId(Integer copyrightId);
}
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.Draft;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/10 10:18
*/
public interface DraftService extends IService<Draft> {
/**
* 查询用户的草稿列表
*
* @param userId
* @return
*/
List<Draft> getByUserId(Integer userId);
/**
* 删除草稿记录
*
* @param id
* @return
*/
Boolean delete(Integer id);
}
package com.fzm.common.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.fzm.common.entity.FileTemplate;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/10 16:01
*/
public interface FileTemplateService extends IService<FileTemplate> {
List<FileTemplate> listByType(Integer type);
}
......@@ -7,6 +7,7 @@ import com.fzm.common.mapper.AuthorityMapper;
import com.fzm.common.service.AuthorityService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
......@@ -17,10 +18,19 @@ import java.util.List;
public class AuthorityServiceImpl extends ServiceImpl<AuthorityMapper, Authority> implements AuthorityService {
@Resource
private AuthorityMapper authorityMapper;
@Override
public List<Authority> getByType(int type) {
QueryWrapper<Authority> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", type);
return list(queryWrapper);
}
@Override
public List<Authority> getByCopyrightId(Integer copyrightId) {
return authorityMapper.getByCopyrightId(copyrightId);
}
}
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightApplyOwnerRelation;
import com.fzm.common.mapper.CopyrightApplyOwnerRelationMapper;
import com.fzm.common.service.CopyrightApplyOwnerRelationService;
import org.springframework.stereotype.Service;
/**
* @author tangtuo
* @date 2021/12/13 11:25
*/
@Service
public class CopyrightApplyOwnerRelationServiceImpl extends ServiceImpl<CopyrightApplyOwnerRelationMapper, CopyrightApplyOwnerRelation> implements CopyrightApplyOwnerRelationService {
}
......@@ -4,18 +4,21 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.constant.SystemConstant;
import com.fzm.common.entity.*;
import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.entity.vo.CopyrightVo;
import com.fzm.common.enums.CopyrightApplyStateEnum;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.CopyrightApplyMapper;
import com.fzm.common.service.*;
import com.fzm.common.utils.JwtUtil;
import com.fzm.common.utils.OssUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
/**
* @author tangtuo
......@@ -32,7 +35,7 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
private CopyrightFileService copyrightFileService;
@Resource
private CopyrightOwnerService copyrightOwnerService;
private CopyrightApplyOwnerRelationService copyrightApplyOwnerRelationService;
@Resource
private CopyrightAuthorService copyrightAuthorService;
......@@ -41,11 +44,20 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
private CopyrightAuthorityRelationService copyrightAuthorityRelationService;
@Resource
private AuthorityService authorityService;
@Resource
private CopyrightOwnerService copyrightOwnerService;
@Resource
private UserService userService;
@Resource
private NftService nftService;
@Resource
private OssUtil ossUtil;
@Override
public Integer submit(CopyrightDTO copyrightDTO) {
// 判断此nft是否属于当前登录用户所有
......@@ -75,13 +87,11 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
}
copyrightFileService.saveBatch(files);
// 保存著作权人信息
ArrayList<CopyrightOwner> owners = new ArrayList<>();
for (CopyrightDTO.Owner owner : copyrightDTO.getOwners()) {
CopyrightOwner copyrightOwner = new CopyrightOwner(owner);
copyrightOwner.setCopyrightId(copyrightApply.getId());
owners.add(copyrightOwner);
ArrayList<CopyrightApplyOwnerRelation> owners = new ArrayList<>();
for (Integer ownerId : copyrightDTO.getOwnerIds()) {
owners.add(new CopyrightApplyOwnerRelation(copyrightApply.getId(), ownerId));
}
copyrightOwnerService.saveBatch(owners);
copyrightApplyOwnerRelationService.saveBatch(owners);
// 保存作者信息
ArrayList<CopyrightAuthor> authors = new ArrayList<>();
for (CopyrightDTO.Author author : copyrightDTO.getAuthors()) {
......@@ -99,4 +109,69 @@ public class CopyrightApplyServiceImpl extends ServiceImpl<CopyrightApplyMapper,
copyrightAuthorityRelationService.saveBatch(relations);
return copyrightApply.getId();
}
@Override
public List<CopyrightApply> list(Integer userId, Integer state) {
return copyrightApplyMapper.list(userId, state);
}
@Override
public Boolean reject(Integer id) {
CopyrightApply copyright = getById(id);
if (copyright == null) {
throw GlobalException.newException(ResultCode.DATA_ERROR, "此版权登记记录不存在,请核对后重试");
}
if (CopyrightApplyStateEnum.TO_BE_REVIEWED.getCode() != copyright.getRegisterState()) {
throw GlobalException.newException(ResultCode.OPERATION_FAILED, "此版权申请记录已提交,无法驳回");
}
copyright.setRegisterState(CopyrightApplyStateEnum.REJECTED.getCode());
return updateById(copyright);
}
@Override
public Boolean delete(Integer id) {
CopyrightApply copyright = getById(id);
if (copyright == null) {
throw GlobalException.newException(ResultCode.DATA_ERROR, "此版权登记记录不存在,请核对后重试");
}
// 只有驳回和登记失败的才能删除
if (CopyrightApplyStateEnum.REJECTED.getCode() != copyright.getRegisterState() &&
CopyrightApplyStateEnum.FAILED.getCode() != copyright.getRegisterState()) {
throw GlobalException.newException(ResultCode.OPERATION_FAILED, "只有驳回或登记失败的版权记录才能删除");
}
// 删除权力取得方式的附件
if (StringUtils.isNotBlank(copyright.getAuthorityAcquireMode())) {
ossUtil.delete(copyright.getAuthorityAcquireMode());
}
// 删除权力归属证明附件
if (StringUtils.isNotBlank(copyright.getAuthorityAscriptionMode())) {
ossUtil.delete(copyright.getAuthorityAcquireMode());
}
// 删除附件列表
copyrightFileService.delByCopyrightId(id);
// 删除作者列表
copyrightAuthorService.delByCopyrightId(id);
// 删除版权权力拥有情况
copyrightAuthorityRelationService.delByCopyrightId(id);
return copyrightApplyMapper.deleteById(id) > 0;
}
@Override
public CopyrightVo getDetail(Integer id) {
CopyrightApply copyrightApply = getById(id);
CopyrightVo copyrightVo = new CopyrightVo(copyrightApply);
// 查询附件列表
List<CopyrightFile> files = copyrightFileService.getByCopyrightId(id);
copyrightVo.setFiles(files);
// 查询作者列表
List<CopyrightAuthor> authors = copyrightAuthorService.getByCopyrightId(id);
copyrightVo.setAuthors(authors);
// 查询著作权人列表
List<CopyrightOwner> owners = copyrightOwnerService.getByCopyrightId(id);
// 查询权力列表
List<Authority> authorities = authorityService.getByCopyrightId(id);
copyrightVo.setAuthorities(authorities);
return copyrightVo;
}
}
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightAuthor;
import com.fzm.common.entity.CopyrightFile;
import com.fzm.common.mapper.CopyrightAuthorMapper;
import com.fzm.common.service.CopyrightAuthorService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:41
*/
@Service
public class CopyrightAuthorServiceImpl extends ServiceImpl<CopyrightAuthorMapper, CopyrightAuthor> implements CopyrightAuthorService {
@Resource
private CopyrightAuthorMapper copyrightAuthorMapper;
@Override
public Integer delByCopyrightId(Integer copyrightId) {
UpdateWrapper<CopyrightAuthor> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("copyright_id", copyrightId);
return copyrightAuthorMapper.delete(updateWrapper);
}
@Override
public List<CopyrightAuthor> getByCopyrightId(int copyrightId) {
QueryWrapper<CopyrightAuthor> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("copyright_id", copyrightId);
return copyrightAuthorMapper.selectList(queryWrapper);
}
}
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightAuthorityRelation;
import com.fzm.common.mapper.CopyrightAuthorityRelationMapper;
import com.fzm.common.service.CopyrightAuthorityRelationService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
* @author tangtuo
* @date 2021/12/9 11:44
*/
@Service
public class CopyrightAuthorityRelationServiceImpl extends ServiceImpl<CopyrightAuthorityRelationMapper, CopyrightAuthorityRelation> implements CopyrightAuthorityRelationService {
@Resource
private CopyrightAuthorityRelationMapper copyrightAuthorityRelationMapper;
@Override
public Integer delByCopyrightId(Integer copyrightId) {
UpdateWrapper<CopyrightAuthorityRelation> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("copyrightId", copyrightId);
return copyrightAuthorityRelationMapper.delete(updateWrapper);
}
}
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
import com.baomidou.mybatisplus.extension.service.IService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightFile;
import com.fzm.common.mapper.CopyrightFileMapper;
import com.fzm.common.service.CopyrightFileService;
import com.fzm.common.utils.OssUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:43
*/
@Service
public class CopyrightFileServiceImpl extends ServiceImpl<CopyrightFileMapper, CopyrightFile> implements CopyrightFileService {
@Resource
private CopyrightFileMapper copyrightFileMapper;
@Resource
private OssUtil ossUtil;
@Override
public List<CopyrightFile> getByCopyrightId(Integer copyrightId) {
QueryWrapper<CopyrightFile> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("copyright_id", copyrightId);
return copyrightFileMapper.selectList(queryWrapper);
}
@Override
public Integer delByCopyrightId(Integer copyrightId) {
List<CopyrightFile> list = getByCopyrightId(copyrightId);
for (CopyrightFile file : list) {
ossUtil.delete(file.getFileUrl());
}
UpdateWrapper<CopyrightFile> updateWrapper = new UpdateWrapper<>();
updateWrapper.eq("copyright_id", copyrightId);
return copyrightFileMapper.delete(updateWrapper);
}
}
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.CopyrightOwner;
import com.fzm.common.mapper.CopyrightOwnerMapper;
import com.fzm.common.service.CopyrightOwnerService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/9 11:40
*/
@Service
public class CopyrightOwnerServiceImpl extends ServiceImpl<CopyrightOwnerMapper, CopyrightOwner> implements CopyrightOwnerService {
@Resource
private CopyrightOwnerMapper ownerMapper;
@Override
public List<CopyrightOwner> getByUserId(Integer userId) {
QueryWrapper<CopyrightOwner> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("user_id", userId);
return ownerMapper.selectList(queryWrapper);
}
@Override
public List<CopyrightOwner> getByCopyrightId(Integer copyrightId) {
return ownerMapper.getByCopyrightId(copyrightId);
}
}
package com.fzm.common.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.Draft;
import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.mapper.DraftMapper;
import com.fzm.common.service.DraftService;
import com.fzm.common.utils.JsonUtil;
import com.fzm.common.utils.OssUtil;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/10 10:18
*/
@Service
public class DraftServiceImpl extends ServiceImpl<DraftMapper, Draft> implements DraftService {
@Resource
private DraftMapper draftMapper;
@Resource
private OssUtil ossUtil;
@Override
public List<Draft> getByUserId(Integer userId) {
QueryWrapper<Draft> wrapper = new QueryWrapper<>();
wrapper.eq("user_id", userId);
return draftMapper.selectList(wrapper);
}
@Override
public Boolean delete(Integer id) {
Draft draft = getById(id);
if (draft == null) {
throw GlobalException.newException(ResultCode.FAILED, "删除草稿失败,此记录不存在");
}
CopyrightDTO copyrightDTO = JsonUtil.toObject(draft.getJson(), CopyrightDTO.class);
if (copyrightDTO != null) {
// 删除权力取得方式的附件权力
if (StringUtils.isNotBlank(copyrightDTO.getAuthorityAcquireMode())) {
ossUtil.delete(copyrightDTO.getAuthorityAcquireMode());
}
// 删除权力归属证明附件
if (StringUtils.isNotBlank(copyrightDTO.getAuthorityAscriptionMode())) {
ossUtil.delete(copyrightDTO.getAuthorityAcquireMode());
}
// 删除文件列表
if (CollectionUtil.isNotEmpty(copyrightDTO.getFiles())) {
for (CopyrightDTO.File file : copyrightDTO.getFiles()) {
if (StringUtils.isNotBlank(file.getFileUrl())) {
ossUtil.delete(file.getFileUrl());
}
}
}
// 删除著作人列表的附件
/*if (CollectionUtil.isNotEmpty(copyrightDTO.getOwners())) {
for (CopyrightDTO.Owner owner : copyrightDTO.getOwners()) {
if (StringUtils.isNotBlank(owner.getBackPhoto())) {
ossUtil.delete(owner.getBackPhoto());
}
if (StringUtils.isNotBlank(owner.getPositivePhoto())) {
ossUtil.delete(owner.getPositivePhoto());
}
if (StringUtils.isNotBlank(owner.getPersonalPhoto())) {
ossUtil.delete(owner.getPersonalPhoto());
}
if (StringUtils.isNotBlank(owner.getCertificatesPhoto())) {
ossUtil.delete(owner.getCertificatesPhoto());
}
if (StringUtils.isNotBlank(owner.getEntrustProve())) {
ossUtil.delete(owner.getEntrustProve());
}
}
}*/
}
return draftMapper.deleteById(id) > 0;
}
}
package com.fzm.common.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fzm.common.entity.FileTemplate;
import com.fzm.common.mapper.FileTemplateMapper;
import com.fzm.common.service.FileTemplateService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/10 16:02
*/
@Service
public class FileTemplateServiceImpl extends ServiceImpl<FileTemplateMapper, FileTemplate> implements FileTemplateService {
@Override
public List<FileTemplate> listByType(Integer type) {
QueryWrapper<FileTemplate> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", type);
return baseMapper.selectList(queryWrapper);
}
}
......@@ -183,7 +183,7 @@ public class UserServiceImpl extends ServiceImpl<UserMapper, User> implements Us
User loginUser = getUserByToken();
// 如果不是第一次上传头像,需要删除旧头像
if (StringUtils.isNotBlank(loginUser.getAvatar())) {
ossUtil.delete(loginUser.getAvatar(), ossProperties.getSimpleBucket());
ossUtil.delete(loginUser.getAvatar());
}
User user = new User().
setAvatar(avatar).
......
......@@ -78,7 +78,8 @@ public class JwtUtil {
/**
* 从token中获取登录用户名
*/
public static Date getCreateTimeFromToken(String token) {
public static Date getCreateTimeFromToken(String token
) {
try {
Claims claims = getClaimsFromToken(token);
return claims.get(CLAIM_KEY_CREATED, Date.class);
......
......@@ -185,7 +185,8 @@ public class OssUtil {
}
}
public void delete(String fileUrl, String bucketName) {
public void delete(String fileUrl) {
String bucketName = ossProperties.getSimpleBucket();
String endpoint = ossProperties.getEndPoint();
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录RAM控制台创建RAM账号。
String accessKeyId = ossProperties.getAppKey();
......@@ -206,7 +207,7 @@ public class OssUtil {
OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
String bucket2 = "joying-nft";
ossClient.deleteObject("test-nft","20210913/ff8e541497d1482895be1f038bb0430e/微信图片_20210913144401.jpg");
ossClient.deleteObject("test-nft", "20210913/ff8e541497d1482895be1f038bb0430e/微信图片_20210913144401.jpg");
}
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fzm.common.mapper.AuthorityMapper">
<select id="getByCopyrightId" resultType="com.fzm.common.entity.Authority">
select *
from tb_authority
where id in
(select authority_id from tb_copyright_authority_relation where copyright_id = #{copyrightId})
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fzm.common.mapper.CopyrightApplyMapper">
<select id="list" resultType="com.fzm.common.entity.CopyrightApply">
select * from tb_copyright_apply
<where>
user_id = #{userId}
<if test="state == 1">
and register_state != 4
</if>
<if test="state == 2">
and register_state == 4
</if>
</where>
</select>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.fzm.common.mapper.CopyrightOwnerMapper">
<select id="getByCopyrightId" resultType="com.fzm.common.entity.CopyrightOwner">
select *
from tb_copyright_owner
where id in (select owner_id from tb_copyright_apply_owner_relation where copyright_id = #{copyrightId})
</select>
</mapper>
\ No newline at end of file
package com.fzm.portal.controller;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.CopyrightApply;
import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.entity.vo.CopyrightVo;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.CopyrightApplyService;
import com.fzm.common.utils.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
......@@ -32,4 +35,35 @@ public class CopyrightApplyController {
Integer copyrightId = copyrightApplyService.submit(copyrightDTO);
return ResponseModel.success(copyrightId);
}
@GetMapping("/list")
@ApiOperation(value = "查询版权登记列表")
public ResponseModel<List<CopyrightApply>> list(@RequestHeader(value = "Authorization") String token, @ApiParam("状态 0-全部 1-进行中 2-已完成") @RequestParam Integer state) {
Integer userId = JwtUtil.getUserIdFromToken(token);
List<CopyrightApply> list = copyrightApplyService.list(userId, state);
return ResponseModel.success(list);
}
@PostMapping(value = "/reject")
@ApiOperation(value = "驳回")
public ResponseModel<Boolean> reject(@RequestParam Integer id) {
Boolean result = copyrightApplyService.reject(id);
return ResponseModel.success(result);
}
@PostMapping(value = "/delete")
@ApiOperation(value = "删除")
public ResponseModel<Boolean> delete(@RequestParam Integer id) {
Boolean result = copyrightApplyService.delete(id);
return ResponseModel.success(result);
}
@GetMapping(value = "/detail")
@ApiOperation(value = "获取详情")
public ResponseModel<CopyrightVo> getById(@RequestParam Integer id) {
CopyrightVo copyrightVo = copyrightApplyService.getDetail(id);
return ResponseModel.success(copyrightVo);
}
}
package com.fzm.portal.controller;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.CopyrightOwner;
import com.fzm.common.enums.OwnerTypeEnum;
import com.fzm.common.enums.ResultCode;
import com.fzm.common.exception.GlobalException;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.CopyrightOwnerService;
import com.fzm.common.utils.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/13 10:16
*/
@Authentication
@RestController
@RequestMapping("/copyright/owner")
@Api(tags = "著作权人")
public class CopyrightOwnerController {
@Resource
private CopyrightOwnerService copyrightOwnerService;
@PostMapping(value = "/add")
@ApiOperation(value = "新增著作权人")
public ResponseModel<Integer> add(@RequestHeader(value = "Authentication") String token, @RequestBody CopyrightOwner owner) {
// 如果著作权人是个人的话,身份证正反面照片 著作权人手持身份证照片等信息必传
if (owner.getType().equals(OwnerTypeEnum.PERSON.getType())) {
if (StringUtils.isAnyBlank(owner.getBackPhoto(), owner.getPositivePhoto(), owner.getPersonalPhoto())) {
throw GlobalException.newException(ResultCode.VALIDATE_FAILED);
}
} else {
// 著作权人是法人的话, 证件照片必传
if (StringUtils.isBlank(owner.getCertificatesPhoto())) {
throw GlobalException.newException(ResultCode.VALIDATE_FAILED);
}
}
Integer userId = JwtUtil.getUserIdFromToken(token);
owner.setUserId(userId);
copyrightOwnerService.save(owner);
return ResponseModel.success(owner.getId());
}
@GetMapping(value = "/list")
@ApiOperation(value = "获取我的著作权人列表")
public ResponseModel<List<CopyrightOwner>> list(@RequestHeader(value = "Authentication") String token){
Integer userId = JwtUtil.getUserIdFromToken(token);
List<CopyrightOwner> list = copyrightOwnerService.getByUserId(userId);
return ResponseModel.success(list);
}
}
package com.fzm.portal.controller;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.entity.Draft;
import com.fzm.common.entity.dto.CopyrightDTO;
import com.fzm.common.entity.dto.DraftDTO;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.DraftService;
import com.fzm.common.utils.JsonUtil;
import com.fzm.common.utils.JwtUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/10 10:19
*/
@Authentication
@RestController
@RequestMapping("/Draft")
@Api(tags = "草稿管理")
public class DraftController {
@Resource
private DraftService draftService;
@PostMapping("/save")
@ApiOperation(value = "保存草稿")
public ResponseModel<Integer> save(@RequestHeader(value = "Authorization") String token, @RequestBody Draft draft) {
draft.setUserId(JwtUtil.getUserIdFromToken(token));
draftService.save(draft);
return ResponseModel.success(draft.getId());
}
@GetMapping("/list")
@ApiOperation(value = "查询我的草稿列表")
public ResponseModel<List<Draft>> list(@RequestHeader(value = "" +
"") String token) {
Integer userId = JwtUtil.getUserIdFromToken(token);
List<Draft> list = draftService.getByUserId(userId);
return ResponseModel.success(list);
}
@PostMapping("/delete")
@ApiOperation(value = "删除草稿记录")
public ResponseModel<Boolean> delete(Integer id) {
Boolean result = draftService.delete(id);
return ResponseModel.success(result);
}
}
package com.fzm.portal.controller;
import com.fzm.common.entity.FileTemplate;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.service.FileTemplateService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
* @author tangtuo
* @date 2021/12/10 16:03
*/
@RestController
@RequestMapping("/file/template")
@Api(tags = "文件模板")
public class FileTemplateController {
@Resource
private FileTemplateService fileTemplateService;
@GetMapping("/list/{type}")
@ApiOperation(value = "根据类型查询文件列表")
@ApiImplicitParam(name = "type", value = "附件类型 " +
"0-权利取得方式证明材料 " +
"1-代理委托书 " +
"2-权利归属证明材料《合作作品权属协议书》" +
"3-权利归属证明材料《著作权权属申请》" +
"4-权利归属证明材料《职务作品权属约定》 " +
"5-权利归属证明材料《委托创作协议书(甲方享有全部权利)》,权利归属证明材料《委托创作协议书(作者保留署名权)》")
public ResponseModel<List<FileTemplate>> listByType(@PathVariable Integer type) {
List<FileTemplate> list = fileTemplateService.listByType(type);
return ResponseModel.success(list);
}
}
package com.fzm.portal.controller;
import com.fasterxml.jackson.databind.deser.std.NumberDeserializers;
import com.fzm.common.annotation.Authentication;
import com.fzm.common.model.ResponseModel;
import com.fzm.common.utils.OssUtil;
import com.tencentcloudapi.tsf.v20180326.models.TaskRule;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
......@@ -39,7 +38,24 @@ public class OssController {
@PostMapping("/upload")
@ApiOperation("普通文件上传")
public ResponseModel<String> upload(MultipartFile file) throws IOException {
return ResponseModel.success(ossUtil.putSimpleObject(file));
}
@Authentication
@PostMapping("/download")
@ApiOperation(value = "下载文件")
public void download(@RequestParam String fileUrl) {
String fileName = fileUrl.substring(fileUrl.lastIndexOf("/") + 1);
ossUtil.downloadFile(fileUrl, fileName);
}
@Authentication
@ApiOperation(value = "删除文件")
@PostMapping(value = "/delete")
public ResponseModel<Boolean> delete(String fileUrl) {
ossUtil.delete(fileUrl);
return ResponseModel.success(true);
}
}
......@@ -949,3 +949,57 @@ Caused by: com.alibaba.druid.sql.parser.ParserException: ERROR. pos 24, line 1,
2021-12-09 18:00:22.405 [SpringContextShutdownHook] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor-Shutting down ExecutorService 'applicationTaskExecutor'
2021-12-09 18:00:22.556 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource-{dataSource-1} closing ...
2021-12-09 18:00:22.559 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource-{dataSource-1} closed
2021-12-09 18:00:27.381 [main] INFO com.fzm.portal.JoyingPortalApplication-Starting JoyingPortalApplication on LAPTOP-AT8CNAMK with PID 174788 (D:\workspace\fzm-joying\joying-portal\target\classes started by tangtuo in D:\workspace\fzm-joying)
2021-12-09 18:00:27.383 [main] INFO com.fzm.portal.JoyingPortalApplication-The following profiles are active: dev
2021-12-09 18:00:28.241 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate-Multiple Spring Data modules found, entering strict repository configuration mode!
2021-12-09 18:00:28.243 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate-Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2021-12-09 18:00:28.266 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate-Finished Spring Data repository scanning in 11ms. Found 0 Redis repository interfaces.
2021-12-09 18:01:56.781 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer-Tomcat initialized with port(s): 8001 (http)
2021-12-09 18:01:57.484 [main] INFO org.apache.coyote.http11.Http11NioProtocol-Initializing ProtocolHandler ["http-nio-8001"]
2021-12-09 18:01:57.495 [main] INFO org.apache.catalina.core.StandardService-Starting service [Tomcat]
2021-12-09 18:01:57.501 [main] INFO org.apache.catalina.core.StandardEngine-Starting Servlet engine: [Apache Tomcat/9.0.35]
2021-12-09 18:02:11.122 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]-Initializing Spring embedded WebApplicationContext
2021-12-09 18:02:11.128 [main] INFO org.springframework.web.context.ContextLoader-Root WebApplicationContext: initialization completed in 103707 ms
2021-12-09 18:02:58.407 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure-Init DruidDataSource
2021-12-09 18:04:40.123 [main] INFO com.alibaba.druid.pool.DruidDataSource-{dataSource-1} inited
2021-12-09 18:04:41.666 [main] INFO org.redisson.Version-Redisson 3.16.0
2021-12-09 18:04:42.537 [redisson-netty-4-23] INFO o.r.connection.pool.MasterPubSubConnectionPool-1 connections initialized for 172.16.101.135/172.16.101.135:6379
2021-12-09 18:04:42.598 [redisson-netty-4-20] INFO org.redisson.connection.pool.MasterConnectionPool-24 connections initialized for 172.16.101.135/172.16.101.135:6379
2021-12-09 18:04:42.965 [main] WARN c.b.mybatisplus.core.metadata.TableInfoHelper-Warn: Could not find @TableId in Class: com.fzm.common.entity.CopyrightAuthorityRelation.
2021-12-09 18:04:43.466 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping-Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
2021-12-09 18:04:43.679 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor-Initializing ExecutorService 'applicationTaskExecutor'
2021-12-09 18:04:44.098 [main] INFO org.apache.coyote.http11.Http11NioProtocol-Starting ProtocolHandler ["http-nio-8001"]
2021-12-09 18:04:44.111 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer-Tomcat started on port(s): 8001 (http) with context path ''
2021-12-09 18:04:44.112 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper-Context refreshed
2021-12-09 18:04:44.127 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper-Found 1 custom documentation plugin(s)
2021-12-09 18:04:44.155 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner-Scanning for api listing references
2021-12-09 18:04:44.265 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_1
2021-12-09 18:04:44.276 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_2
2021-12-09 18:04:44.295 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_3
2021-12-09 18:04:44.334 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: getByIdUsingGET_1
2021-12-09 18:04:44.347 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_4
2021-12-09 18:04:44.352 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: publishUsingPOST_1
2021-12-09 18:04:44.380 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_5
2021-12-09 18:04:44.383 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_6
2021-12-09 18:04:44.436 [main] INFO com.fzm.portal.JoyingPortalApplication-Started JoyingPortalApplication in 257.491 seconds (JVM running for 258.54)
2021-12-09 18:05:04.945 [http-nio-8001-exec-2] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]-Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-12-09 18:05:04.951 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet-Initializing Servlet 'dispatcherServlet'
2021-12-09 18:05:06.470 [http-nio-8001-exec-2] INFO org.springframework.web.servlet.DispatcherServlet-Completed initialization in 1514 ms
2021-12-09 18:05:07.318 [http-nio-8001-exec-2] INFO com.fzm.portal.aop.LogAop-请求路径: /opus/category/list,请求参数:[]
2021-12-09 18:05:38.842 [http-nio-8001-exec-2] DEBUG c.fzm.common.mapper.OpusCategoryMapper.selectList-==> Preparing: SELECT id,value FROM tb_opus_category
2021-12-09 18:05:42.795 [http-nio-8001-exec-2] DEBUG c.fzm.common.mapper.OpusCategoryMapper.selectList-==> Parameters:
2021-12-09 18:05:46.467 [http-nio-8001-exec-2] DEBUG c.fzm.common.mapper.OpusCategoryMapper.selectList-<== Total: 18
2021-12-09 18:05:58.323 [http-nio-8001-exec-2] INFO com.fzm.portal.aop.LogAop-请求路径:/opus/category/list,接口耗时:51067ms
2021-12-09 18:18:08.387 [http-nio-8001-exec-3] INFO com.fzm.portal.aop.LogAop-请求路径: /opus/category/list,请求参数:[]
2021-12-09 18:18:08.495 [http-nio-8001-exec-3] INFO com.fzm.portal.aop.LogAop-请求路径:/opus/category/list,接口耗时:108ms
2021-12-09 18:18:35.777 [http-nio-8001-exec-4] INFO com.fzm.portal.aop.LogAop-请求路径: /opus/category/list,请求参数:[]
2021-12-09 18:18:35.837 [http-nio-8001-exec-4] INFO com.fzm.portal.aop.LogAop-请求路径:/opus/category/list,接口耗时:60ms
2021-12-09 18:18:37.251 [http-nio-8001-exec-5] INFO com.fzm.portal.aop.LogAop-请求路径: /opus/category/list,请求参数:[]
2021-12-09 18:18:37.324 [http-nio-8001-exec-5] INFO com.fzm.portal.aop.LogAop-请求路径:/opus/category/list,接口耗时:73ms
2021-12-09 18:18:38.150 [http-nio-8001-exec-6] INFO com.fzm.portal.aop.LogAop-请求路径: /opus/category/list,请求参数:[]
2021-12-09 18:18:38.237 [http-nio-8001-exec-6] INFO com.fzm.portal.aop.LogAop-请求路径:/opus/category/list,接口耗时:87ms
2021-12-09 18:18:38.900 [http-nio-8001-exec-7] INFO com.fzm.portal.aop.LogAop-请求路径: /opus/category/list,请求参数:[]
2021-12-09 18:18:38.973 [http-nio-8001-exec-7] INFO com.fzm.portal.aop.LogAop-请求路径:/opus/category/list,接口耗时:73ms
2021-12-09 18:42:22.201 [SpringContextShutdownHook] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor-Shutting down ExecutorService 'applicationTaskExecutor'
2021-12-09 18:42:22.422 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource-{dataSource-1} closing ...
2021-12-09 18:42:22.439 [SpringContextShutdownHook] INFO com.alibaba.druid.pool.DruidDataSource-{dataSource-1} closed
This diff is collapsed.
2021-12-13 15:39:39.753 [main] INFO com.fzm.portal.JoyingPortalApplication-Starting JoyingPortalApplication on LAPTOP-AT8CNAMK with PID 169656 (D:\workspace\fzm-joying\joying-portal\target\classes started by tangtuo in D:\workspace\fzm-joying)
2021-12-13 15:39:39.755 [main] INFO com.fzm.portal.JoyingPortalApplication-The following profiles are active: dev
2021-12-13 15:39:40.788 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate-Multiple Spring Data modules found, entering strict repository configuration mode!
2021-12-13 15:39:40.791 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate-Bootstrapping Spring Data Redis repositories in DEFAULT mode.
2021-12-13 15:39:40.821 [main] INFO o.s.d.r.config.RepositoryConfigurationDelegate-Finished Spring Data repository scanning in 14ms. Found 0 Redis repository interfaces.
2021-12-13 15:39:41.681 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer-Tomcat initialized with port(s): 8001 (http)
2021-12-13 15:39:41.691 [main] INFO org.apache.coyote.http11.Http11NioProtocol-Initializing ProtocolHandler ["http-nio-8001"]
2021-12-13 15:39:41.691 [main] INFO org.apache.catalina.core.StandardService-Starting service [Tomcat]
2021-12-13 15:39:41.691 [main] INFO org.apache.catalina.core.StandardEngine-Starting Servlet engine: [Apache Tomcat/9.0.35]
2021-12-13 15:39:41.914 [main] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]-Initializing Spring embedded WebApplicationContext
2021-12-13 15:39:41.914 [main] INFO org.springframework.web.context.ContextLoader-Root WebApplicationContext: initialization completed in 2117 ms
2021-12-13 15:39:42.062 [main] INFO c.a.d.s.b.a.DruidDataSourceAutoConfigure-Init DruidDataSource
2021-12-13 15:39:43.647 [main] INFO com.alibaba.druid.pool.DruidDataSource-{dataSource-1} inited
2021-12-13 15:39:45.326 [main] INFO org.redisson.Version-Redisson 3.16.0
2021-12-13 15:39:46.286 [redisson-netty-4-29] INFO o.r.connection.pool.MasterPubSubConnectionPool-1 connections initialized for 172.16.101.135/172.16.101.135:6379
2021-12-13 15:39:46.336 [redisson-netty-4-18] INFO org.redisson.connection.pool.MasterConnectionPool-24 connections initialized for 172.16.101.135/172.16.101.135:6379
2021-12-13 15:39:46.668 [main] WARN c.b.mybatisplus.core.metadata.TableInfoHelper-Warn: Could not find @TableId in Class: com.fzm.common.entity.CopyrightApplyOwnerRelation.
2021-12-13 15:39:46.743 [main] WARN c.b.mybatisplus.core.metadata.TableInfoHelper-Warn: Could not find @TableId in Class: com.fzm.common.entity.CopyrightAuthorityRelation.
2021-12-13 15:39:47.424 [main] INFO s.d.s.w.PropertySourcedRequestMappingHandlerMapping-Mapped URL path [/v2/api-docs] onto method [springfox.documentation.swagger2.web.Swagger2Controller#getDocumentation(String, HttpServletRequest)]
2021-12-13 15:39:47.615 [main] INFO o.s.scheduling.concurrent.ThreadPoolTaskExecutor-Initializing ExecutorService 'applicationTaskExecutor'
2021-12-13 15:39:48.068 [main] INFO org.apache.coyote.http11.Http11NioProtocol-Starting ProtocolHandler ["http-nio-8001"]
2021-12-13 15:39:48.081 [main] INFO o.s.boot.web.embedded.tomcat.TomcatWebServer-Tomcat started on port(s): 8001 (http) with context path ''
2021-12-13 15:39:48.082 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper-Context refreshed
2021-12-13 15:39:48.099 [main] INFO s.d.s.web.plugins.DocumentationPluginsBootstrapper-Found 1 custom documentation plugin(s)
2021-12-13 15:39:48.128 [main] INFO s.d.spring.web.scanners.ApiListingReferenceScanner-Scanning for api listing references
2021-12-13 15:39:48.248 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_1
2021-12-13 15:39:48.259 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_2
2021-12-13 15:39:48.278 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_3
2021-12-13 15:39:48.307 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: getByIdUsingGET_1
2021-12-13 15:39:48.314 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_4
2021-12-13 15:39:48.331 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: addUsingPOST_1
2021-12-13 15:39:48.334 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_5
2021-12-13 15:39:48.336 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: deleteUsingPOST_1
2021-12-13 15:39:48.341 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_6
2021-12-13 15:39:48.367 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: getByIdUsingGET_2
2021-12-13 15:39:48.378 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_7
2021-12-13 15:39:48.382 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: publishUsingPOST_1
2021-12-13 15:39:48.399 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: saveUsingPOST_1
2021-12-13 15:39:48.411 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_8
2021-12-13 15:39:48.414 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: listUsingGET_9
2021-12-13 15:39:48.416 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: deleteUsingPOST_2
2021-12-13 15:39:48.417 [main] INFO s.d.s.w.r.operation.CachingOperationNameGenerator-Generating unique operation named: downloadUsingPOST_1
2021-12-13 15:39:48.472 [main] INFO com.fzm.portal.JoyingPortalApplication-Started JoyingPortalApplication in 9.251 seconds (JVM running for 11.35)
2021-12-13 15:45:21.189 [http-nio-8001-exec-1] INFO o.a.c.core.ContainerBase.[Tomcat].[localhost].[/]-Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-12-13 15:45:21.189 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet-Initializing Servlet 'dispatcherServlet'
2021-12-13 15:45:21.206 [http-nio-8001-exec-1] INFO org.springframework.web.servlet.DispatcherServlet-Completed initialization in 17 ms
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment