记得上下班打卡 | git大法好,push需谨慎

Commit e87ff0ed authored by wanglele's avatar wanglele

时间处理优化

parent 32fae02f
package com.liquidnet.service.platform.controller.goblin.code;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.liquidnet.commons.lang.util.CollectionUtil;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeFetchExcelVo;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j
public class CodeDataListener extends AnalysisEventListener<GoblinNftExCodeFetchExcelVo> {
// 返回的数据集合
List<String> phones = new ArrayList<>();
@Override
public void invoke(GoblinNftExCodeFetchExcelVo fetchExcel, AnalysisContext analysisContext) {
phones.add(fetchExcel.getPhone());
}
/**
* 在转换异常 获取其他异常下会调用本接口。抛出异常则停止读取。如果这里不抛出异常则 继续读取下一行。
*
* @param exception
* @param context
* @throws Exception
*/
@Override
public void onException(Exception exception, AnalysisContext context) {
log.error("解析失败,但是继续解析下一行:{}", exception.getMessage());
// 如果是某一个单元格的转换异常 能获取到具体行号
// 如果要获取头的信息 配合invokeHeadMap使用
if (exception instanceof ExcelDataConvertException) {
ExcelDataConvertException excelDataConvertException = (ExcelDataConvertException)exception;
log.error("第{}行,第{}列解析异常", excelDataConvertException.getRowIndex(),
excelDataConvertException.getColumnIndex());
}
}
/**
* 所有数据解析完成了 都会来调用
*
* @param analysisContext
*/
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
/**
* 返回数据
* @return
*/
public List<String> getData(){
return phones;
}
/**
* 设置读取的数据集合
*
* @param phones 设置读取的数据集合
**/
public void setDatas(List<String> phones) {
this.phones = phones;
}
}
package com.liquidnet.service.platform.service.impl.goblin; package com.liquidnet.service.platform.service.impl.goblin;
import com.alibaba.excel.EasyExcel; import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.EasyExcelFactory;
import com.alibaba.excel.ExcelReader;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.read.listener.PageReadListener; import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.excel.support.ExcelTypeEnum; import com.alibaba.excel.support.ExcelTypeEnum;
import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.metadata.style.WriteCellStyle;
import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy;
import com.alibaba.fastjson.JSON;
import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.core.type.TypeReference;
import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageHelper;
import com.liquidnet.commons.lang.util.*; import com.liquidnet.commons.lang.util.*;
import com.liquidnet.service.adam.dto.AdamUserInfoDto; import com.liquidnet.service.adam.dto.AdamUserInfoDto;
import com.liquidnet.service.adam.mapper.AdamUserMapper; import com.liquidnet.service.adam.mapper.AdamUserMapper;
import com.liquidnet.service.base.ResponseDto; import com.liquidnet.service.base.ResponseDto;
import com.liquidnet.service.goblin.constant.GoblinRedisConst;
import com.liquidnet.service.goblin.dto.vo.CodeExcelVo; import com.liquidnet.service.goblin.dto.vo.CodeExcelVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeFetchExcelVo; import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeFetchExcelVo;
import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo; import com.liquidnet.service.goblin.dto.vo.GoblinNftExCodeVo;
...@@ -28,11 +23,8 @@ import com.liquidnet.service.goblin.mapper.GoblinNftExCodeMapper; ...@@ -28,11 +23,8 @@ import com.liquidnet.service.goblin.mapper.GoblinNftExCodeMapper;
import com.liquidnet.service.goblin.mapper.GoblinNftExSkuMapper; import com.liquidnet.service.goblin.mapper.GoblinNftExSkuMapper;
import com.liquidnet.service.goblin.param.GoblinNftExCodeParam; import com.liquidnet.service.goblin.param.GoblinNftExCodeParam;
import com.liquidnet.service.goblin.service.IGoblinNftExCodeService; import com.liquidnet.service.goblin.service.IGoblinNftExCodeService;
import com.liquidnet.service.platform.controller.goblin.code.CodeDataListener;
import com.liquidnet.service.platform.utils.GoblinRedisUtils; import com.liquidnet.service.platform.utils.GoblinRedisUtils;
import com.liquidnet.service.platform.utils.ObjectUtil; import com.liquidnet.service.platform.utils.ObjectUtil;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -42,19 +34,14 @@ import org.springframework.transaction.annotation.Transactional; ...@@ -42,19 +34,14 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.LinkedMultiValueMap;
import org.springframework.util.MultiValueMap; import org.springframework.util.MultiValueMap;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import sun.rmi.log.LogInputStream;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import java.io.OutputStream; import java.io.OutputStream;
import java.net.URL;
import java.net.URLEncoder; import java.net.URLEncoder;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map;
/** /**
* @Author: wll * @Author: wll
...@@ -383,16 +370,20 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService { ...@@ -383,16 +370,20 @@ public class GoblinNftExCodeServiceImpl implements IGoblinNftExCodeService {
@Override @Override
public ResponseDto<Boolean> addAirdrops(MultipartFile file, String activityId) { public ResponseDto<Boolean> addAirdrops(MultipartFile file, String activityId) {
try{ try{
CodeDataListener codeDataListener = new CodeDataListener(); // 手机号集合
// https://alibaba-easyexcel.github.io/quickstart/read.html ArrayList<String> phones = CollectionUtil.arrayListString();
ExcelReader excelReader = EasyExcelFactory.read(file.getInputStream(), GoblinNftExCodeFetchExcelVo.class, codeDataListener).headRowNumber(0).build(); EasyExcel.read(file.getInputStream(), GoblinNftExCodeFetchExcelVo.class, new PageReadListener<GoblinNftExCodeFetchExcelVo>(dataList->{
excelReader.readAll(); for (GoblinNftExCodeFetchExcelVo data : dataList) {
List<String> phones = codeDataListener.getData(); if (data.getPhone() == null) {
continue;
}
phones.add(data.getPhone());
}
})).sheet().doRead();
// 根据活动id获取可用兑换码 // 根据活动id获取可用兑换码
List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectCodeAvailableByActivityId(activityId); List<GoblinNftExCode> goblinNftExCodes = goblinNftExCodeMapper.selectCodeAvailableByActivityId(activityId);
if (goblinNftExCodes.size() < phones.size()){ if (goblinNftExCodes.size() < phones.size()){
return ResponseDto.failure("可用兑换码不足!"); return ResponseDto.failure("可用兑换码数量不足!");
} }
......
...@@ -250,7 +250,11 @@ public class GoblinNftExCodeTaskServiceImpl implements IGoblinNftExCodeTaskServi ...@@ -250,7 +250,11 @@ public class GoblinNftExCodeTaskServiceImpl implements IGoblinNftExCodeTaskServi
goblinNftExSku.setRdStopTime(exStopTime.toString()); goblinNftExSku.setRdStopTime(exStopTime.toString());
bolTime = true; bolTime = true;
} }
}else {
bolTime = true;
} }
if (bolTime){ if (bolTime){
goblinRedisUtils.addSkuTime(key, goblinNftExSku); goblinRedisUtils.addSkuTime(key, goblinNftExSku);
} }
......
...@@ -369,7 +369,8 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService { ...@@ -369,7 +369,8 @@ public class GoblinNftExSkuServiceImpl implements IGoblinNftExSkuService {
&& info.getStatus().equals("3") && info.getStatus().equals("3")
&& info.getShelvesStatus().equals("3") && info.getShelvesStatus().equals("3")
&& (info.getSkuAppear() == null || info.getSkuAppear().equals("0")) && (info.getSkuAppear() == null || info.getSkuAppear().equals("0"))
&& info.getDelFlg().equals("0")) { && info.getDelFlg().equals("0")
&& info.getSkuCanbuy().equals(1)) {
return true; return true;
} else { } else {
return false; return false;
......
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