注入
@Data
@NoArgsConstructor
@Accessors(chain = true)
@Component
public class PackageDTO
{
@Resource
private IBeetlProCategoryService proCategoryService;
@Resource
private BeetlProCategoryMapper beetlProCategoryMapper;
@Resource
private ISysUserService sysUserService;
}
静态类
private static PackageDTO packageDTO;
@PostConstruct 注解
@PostConstruct
public void init()
{
packageDTO = this;
packageDTO.proCategoryService = this.proCategoryService;
packageDTO.beetlProCategoryMapper = this.beetlProCategoryMapper;
packageDTO.sysUserService = this.sysUserService;
}
调用
public PackageDTO(BeetlPro beetlPro)
{
if (!Objects.isNull(beetlPro))
{
this.packageId = beetlPro.getPackageId();
this.packageNumber = beetlPro.getNumber();
this.packageName = beetlPro.getName();
this.packagePrice = beetlPro.getRemuneration();
this.bargainType = generateBargainType(beetlPro.getNegotiationType());
this.imagePath = "";
this.bidCount = 0 ;
this.collectCount = 0 ;
this.levelCategory = packageDTO.proCategoryService.generateLeveLProCategory(beetlPro.getCategoryId());
this.categoryName = packageDTO.beetlProCategoryMapper.selectById(beetlPro.getCategoryId()).getCategoryName();
this.publishNameCategory = generatePublishNameCategory(beetlPro.getAccountId());
this.publishName = generatePublishName(beetlPro.getAccountId());
}
}
完整代码
package com.beetl.pc.entity.dto;
import com.beetl.common.constants.BeetlConstants;
import com.beetl.common.core.domain.entity.BeetlPro;
import com.beetl.pc.entity.vo.AccountVo;
import com.beetl.pc.mapper.BeetlProCategoryMapper;
import com.beetl.pc.service.IBeetlProCategoryService;
import com.beetl.pc.service.ISysUserService;
import lombok.*;
import lombok.experimental.Accessors;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;
import javax.annotation.PostConstruct;
import javax.annotation.Resource;
import java.util.Objects;
/**
* @author:Gavin
* @Email:yanyrzneg@aliyun.com
* @Date:2024/2/4 15:57
* @description: /project/all 页面传输数据对象
*/
@Data
@NoArgsConstructor
@Accessors(chain = true)
@Component
public class PackageDTO
{
@Resource
private IBeetlProCategoryService proCategoryService;
@Resource
private BeetlProCategoryMapper beetlProCategoryMapper;
@Resource
private ISysUserService sysUserService;
private static PackageDTO packageDTO;
@PostConstruct
public void init()
{
packageDTO = this;
packageDTO.proCategoryService = this.proCategoryService;
packageDTO.beetlProCategoryMapper = this.beetlProCategoryMapper;
packageDTO.sysUserService = this.sysUserService;
}
/**
* 包ID
*/
private Long packageId;
/**
* 包编号
*/
private String packageNumber;
/**包名称*/
private String packageName;
/**
* 竞标人数
*/
private Integer bidCount;
/**
* 收藏者人数
*/
private Integer collectCount;
/**
* 发布者名称
*/
private String publishName;
/**
* 发布者类型
*/
private String publishNameCategory;
/**
* 包类别
*/
private String categoryName;
/**
* 包的三级类别
*/
private String levelCategory;
/**
* 包的议价类型
*/
private String bargainType;
/**
* 包的竞标价格
*/
private String packagePrice;
/**
* 包的图片价格
*/
private String imagePath;
/**
* 账号Id
*/
private Long accountId;
public PackageDTO(BeetlPro beetlPro)
{
if (!Objects.isNull(beetlPro))
{
this.packageId = beetlPro.getPackageId();
this.packageNumber = beetlPro.getNumber();
this.packageName = beetlPro.getName();
this.packagePrice = beetlPro.getRemuneration();
this.bargainType = generateBargainType(beetlPro.getNegotiationType());
//TODO 图片地址
this.imagePath = "";
this.bidCount = 0 ;
this.collectCount = 0 ;
this.levelCategory = packageDTO.proCategoryService.generateLeveLProCategory(beetlPro.getCategoryId());
this.categoryName = packageDTO.beetlProCategoryMapper.selectById(beetlPro.getCategoryId()).getCategoryName();
this.publishNameCategory = generatePublishNameCategory(beetlPro.getAccountId());
this.publishName = generatePublishName(beetlPro.getAccountId());
}
}
public String generateBargainType(String negotiationType)
{
String str = "不可议价";
if (Objects.equals(negotiationType, "1"))
{
str ="可议价";
}
return str;
}
/**
* 发布账号类别
* @param accountId 账号Id
* @return 账号类型
*/
public String generatePublishNameCategory(Long accountId)
{
AccountVo accountVo = packageDTO.sysUserService.generateNicknameAndAccountType(accountId);
if (Objects.equals(accountVo.getUserType(), BeetlConstants.ACCOUNT_TYPE_COMPANY))
return "企业";return "私人";
}
/**
* 发布账号用户名称
* @param accountId 账号Id
* @return 发布账号名称
*/
public String generatePublishName(Long accountId)
{
AccountVo accountVo = packageDTO.sysUserService.generateNicknameAndAccountType(accountId);
return accountVo.getUserName();
}
}