AdSpecialProductImportDTO.java 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163
  1. package com.ylcm.sys.excel.model;
  2. import java.io.Serializable;
  3. import java.math.BigDecimal;
  4. import java.time.LocalDate;
  5. import java.time.LocalTime;
  6. import javax.validation.constraints.NotNull;
  7. import org.apache.commons.lang.StringUtils;
  8. import org.springframework.beans.BeanUtils;
  9. import com.alibaba.excel.annotation.ExcelProperty;
  10. import com.ylcm.sys.common.DateUtil;
  11. import com.ylcm.sys.common.EnumHelperUtil;
  12. import com.ylcm.sys.common.Util;
  13. import com.ylcm.sys.domain.AdSpecial;
  14. import com.ylcm.sys.enums.AdSpecialShowEnvEnum;
  15. import com.ylcm.sys.excel.converter.LocalDateConverter;
  16. import com.ylcm.sys.excel.converter.LocalTimeConverter;
  17. import com.ylcm.sys.form.AdSpecialForm;
  18. import io.swagger.annotations.ApiModelProperty;
  19. import lombok.Data;
  20. @Data
  21. public class AdSpecialProductImportDTO implements Serializable{
  22. /**
  23. * 产品导入
  24. */
  25. private static final long serialVersionUID = 3863153959765813542L;
  26. @NotNull
  27. @ApiModelProperty(value = "产品名称")
  28. @ExcelProperty(index = 0)
  29. private String productName;
  30. @ApiModelProperty(value = "品牌")
  31. @ExcelProperty(index = 1)
  32. private String brandName;
  33. @ApiModelProperty(value = "广告主")
  34. @ExcelProperty(index = 2)
  35. private String advMaster;
  36. @NotNull
  37. @ApiModelProperty(value = "媒体名称")
  38. @ExcelProperty(index = 3)
  39. private String mediaName;
  40. @NotNull
  41. @ApiModelProperty(value = "播出环境 0电视剧 1综艺 2广告")
  42. @ExcelProperty(index = 4)
  43. private String showEnv;
  44. @NotNull
  45. @ApiModelProperty(value = "播出节目")
  46. @ExcelProperty(index = 5)
  47. private String tvName;
  48. @NotNull
  49. @ApiModelProperty(value = "播出日期")
  50. @ExcelProperty(index = 6, converter = LocalDateConverter.class)
  51. private LocalDate showDate;
  52. @NotNull
  53. @ApiModelProperty(value = "播出时间")
  54. @ExcelProperty(index = 7, converter = LocalTimeConverter.class)
  55. private LocalTime showTime;
  56. @ApiModelProperty(value = "联系方式")
  57. @ExcelProperty(index = 8)
  58. private String phone = "";
  59. @ApiModelProperty(value = "播出时长(单位分)")
  60. @ExcelProperty(index = 9)
  61. private String showDuration;
  62. @ApiModelProperty(value = "刊例(万)")
  63. @ExcelProperty(index = 10)
  64. private String price;
  65. private Integer type;
  66. private String msg = "";
  67. public void check() {
  68. if (StringUtils.isBlank(productName)) {
  69. msg = "栏目名称不能为空";
  70. return;
  71. }
  72. if (StringUtils.isBlank(mediaName)) {
  73. msg = "媒体名称不能为空";
  74. return;
  75. }
  76. if (StringUtils.isBlank(showEnv)) {
  77. msg = "播出环境不能为空";
  78. return;
  79. }
  80. if (StringUtils.isBlank(tvName)) {
  81. msg = "播出节目不能为空";
  82. return;
  83. }
  84. if (showDate == null) {
  85. msg = "播出日期不能为空或者格式不对";
  86. return;
  87. }
  88. if (showTime == null) {
  89. msg = "播出时间不能为空或者格式不对";
  90. return;
  91. }
  92. if (StringUtils.isBlank(showDuration)) {
  93. msg = "播放时长不能为空";
  94. return;
  95. }
  96. if (StringUtils.isNotBlank(advMaster) && advMaster.length() > 20) {
  97. msg = "广告主长度不能超过20个字";
  98. return;
  99. }
  100. if (!showEnv.contains("电视剧") && tvName.length() > 20) {
  101. msg = "播出节目长度不能超过20个字";
  102. return;
  103. }
  104. if (StringUtils.isNotBlank(phone) && phone.length() > 20) {
  105. msg = "联系方式长度不能超过20个字";
  106. return;
  107. }
  108. if (StringUtils.isNotBlank(showDuration) && (!Util.isNumericKeepOneDecimal(showDuration) || Float.parseFloat(showDuration) >= 100000F)) {
  109. msg = "请填写正确的播放时长,只允许一位小数,最大不能超过5位数!";
  110. return;
  111. }
  112. if (StringUtils.isNotBlank(price) && ( !Util.isNumeric(price,false)) || new BigDecimal(price).compareTo(new BigDecimal("100000000")) > -1) {
  113. msg = "请填写正确的刊例价格,最大不能超过8位数!";
  114. return;
  115. }
  116. }
  117. public AdSpecial toSpecial() {
  118. AdSpecial adSpecial = new AdSpecial();
  119. BeanUtils.copyProperties(this, adSpecial);
  120. if (StringUtils.isNotBlank(price)) {
  121. adSpecial.setPrice(new BigDecimal(price));
  122. }
  123. if (StringUtils.isNotBlank(showDuration)) {
  124. adSpecial.setShowDuration(Float.parseFloat(showDuration));
  125. }
  126. AdSpecialShowEnvEnum showEnvEnum = EnumHelperUtil.getOneByName(AdSpecialShowEnvEnum.class, showEnv);
  127. adSpecial.setShowEnv(showEnvEnum.getCode());
  128. return adSpecial;
  129. }
  130. public AdSpecialForm toSpecialForm(AdSpecial adSpecial) {
  131. AdSpecialForm adSpecialForm = new AdSpecialForm();
  132. BeanUtils.copyProperties(adSpecial, adSpecialForm);
  133. adSpecialForm.setShowDate(DateUtil.getStringByLocalDate(showDate));
  134. adSpecialForm.setShowTime(DateUtil.getStringByLocalTime(showTime));
  135. return adSpecialForm;
  136. }
  137. }