CompanyCollectionService.java 3.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. package com.izouma.nineth.service;
  2. import com.izouma.nineth.domain.*;
  3. import com.izouma.nineth.dto.PageQuery;
  4. import com.izouma.nineth.enums.CollectionSource;
  5. import com.izouma.nineth.enums.CollectionStatus;
  6. import com.izouma.nineth.enums.CollectionType;
  7. import com.izouma.nineth.exception.BusinessException;
  8. import com.izouma.nineth.repo.*;
  9. import com.izouma.nineth.utils.JpaUtils;
  10. import lombok.AllArgsConstructor;
  11. import org.apache.commons.lang3.ObjectUtils;
  12. import org.springframework.beans.BeanUtils;
  13. import org.springframework.data.domain.Page;
  14. import org.springframework.stereotype.Service;
  15. @Service
  16. @AllArgsConstructor
  17. public class CompanyCollectionService {
  18. private CompanyCollectionRepo companyCollectionRepo;
  19. private CollectionRepo collectionRepo;
  20. private UserRepo userRepo;
  21. private CollectionPrivilegeRepo collectionPrivilegeRepo;
  22. private SysConfigService sysConfigService;
  23. public Page<CompanyCollection> all(PageQuery pageQuery) {
  24. return companyCollectionRepo.findAll(JpaUtils.toSpecification(pageQuery, CompanyCollection.class), JpaUtils.toPageRequest(pageQuery));
  25. }
  26. public void audit(Long id, CollectionStatus status, String reason) {
  27. CompanyCollection companyCollection = companyCollectionRepo.findById(id)
  28. .orElseThrow(new BusinessException("无申请"));
  29. if (!CollectionStatus.PENDING.equals(companyCollection.getStatus())) {
  30. throw new BusinessException("已审核");
  31. }
  32. companyCollection.setStatus(status);
  33. companyCollection.setReason(reason);
  34. if (CollectionStatus.FAIL.equals(status)) {
  35. //存状态
  36. companyCollectionRepo.save(companyCollection);
  37. return;
  38. }
  39. CollectionPrivilege privilege = collectionPrivilegeRepo.findByCompanyCollectionId(id);
  40. if (ObjectUtils.isNotEmpty(privilege)) {
  41. return;
  42. }
  43. Collection collection = new Collection();
  44. BeanUtils.copyProperties(companyCollection, collection);
  45. collection.setSource(CollectionSource.COMPANY);
  46. collection.setType(CollectionType.DEFAULT);
  47. collection.setStock(companyCollection.getTotal());
  48. //铸造者/持有者
  49. Long userId = companyCollection.getUserId();
  50. User user = userRepo.findById(userId).orElseThrow(new BusinessException("无企业"));
  51. collection.setMinter(user.getNickname());
  52. collection.setMinterId(userId);
  53. collection.setMinterAvatar(user.getAvatar());
  54. collection.setOwner(user.getNickname());
  55. collection.setOwnerId(userId);
  56. collection.setOwnerAvatar(user.getAvatar());
  57. // Showroom showroom = showroomRepo.findFirstByUserId(userId);
  58. int royalties = sysConfigService.getInt("royalties");
  59. int serviceCharge = sysConfigService.getInt("service_charge");
  60. collection.setRoyalties(royalties);
  61. collection.setServiceCharge(serviceCharge);
  62. collection.setId(null);
  63. collection = collectionRepo.save(collection);
  64. //企业属性
  65. collectionPrivilegeRepo.save(CollectionPrivilege.builder()
  66. .collectionId(collection.getId())
  67. .companyCollectionId(id)
  68. .build());
  69. //存状态
  70. companyCollectionRepo.save(companyCollection);
  71. }
  72. }