AdSpecialProductImportDTO.java 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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. AdSpecialShowEnvEnum showEnvEnum = EnumHelperUtil.getOneByName(AdSpecialShowEnvEnum.class, showEnv);
  117. if (showEnvEnum == null) {
  118. msg = "播出环境填写错误:" + showEnv;
  119. return;
  120. }
  121. }
  122. public AdSpecial toSpecial() {
  123. AdSpecial adSpecial = new AdSpecial();
  124. BeanUtils.copyProperties(this, adSpecial);
  125. if (StringUtils.isNotBlank(price)) {
  126. adSpecial.setPrice(new BigDecimal(price));
  127. }
  128. if (StringUtils.isNotBlank(showDuration)) {
  129. adSpecial.setShowDuration(Float.parseFloat(showDuration));
  130. }
  131. AdSpecialShowEnvEnum showEnvEnum = EnumHelperUtil.getOneByName(AdSpecialShowEnvEnum.class, showEnv);
  132. adSpecial.setShowEnv(showEnvEnum.getCode());
  133. return adSpecial;
  134. }
  135. public AdSpecialForm toSpecialForm(AdSpecial adSpecial) {
  136. AdSpecialForm adSpecialForm = new AdSpecialForm();
  137. BeanUtils.copyProperties(adSpecial, adSpecialForm);
  138. adSpecialForm.setShowDate(DateUtil.getStringByLocalDate(showDate));
  139. adSpecialForm.setShowTime(DateUtil.getStringByLocalTime(showTime));
  140. return adSpecialForm;
  141. }
  142. }