diff --git a/pom.xml b/pom.xml
index a38f594..5c7e053 100644
--- a/pom.xml
+++ b/pom.xml
@@ -130,7 +130,7 @@
com.alibaba
easyexcel
- 3.2.1
+ 3.3.2
org.springframework.boot
diff --git a/src/main/java/top/xinsin/controller/OrderController.java b/src/main/java/top/xinsin/controller/OrderController.java
index 923f33a..de35a04 100644
--- a/src/main/java/top/xinsin/controller/OrderController.java
+++ b/src/main/java/top/xinsin/controller/OrderController.java
@@ -49,5 +49,5 @@ public class OrderController {
public void downloadTemplate(HttpServletResponse response) {this.orderService.downloadTemplate(response);}
@RequestMapping(path = "/uploadBatch", method = RequestMethod.POST)
- public void uploadBatch(@RequestParam("file") MultipartFile file) {this.orderService.uploadBatch(file);}
+ public R uploadBatch(@RequestParam("file") MultipartFile file) {return this.orderService.uploadBatch(file);}
}
diff --git a/src/main/java/top/xinsin/controller/WebSocketController.java b/src/main/java/top/xinsin/controller/WebSocketController.java
index 0b23272..0bc26ea 100644
--- a/src/main/java/top/xinsin/controller/WebSocketController.java
+++ b/src/main/java/top/xinsin/controller/WebSocketController.java
@@ -37,7 +37,7 @@ public class WebSocketController {
this.userId = userId;
//加入map
webSocketMap.put(userId, this);
- R stringR = webSocketService.addVerify(userId);
+ R stringR = webSocketService.addVerify(userId,this);
sendMessageByUserId(userId, stringR);
}
@OnClose
@@ -73,9 +73,9 @@ public class WebSocketController {
log.error("用户{}不在线",userId);
}
}
- @Scheduled(fixedRate = 10000)
+ @Scheduled(fixedRate = 1000)
public void verifyTime(){
- List expireTimes = webSocketService.getExpireTimes();
+ List expireTimes = webSocketService.getExpireTimes(webSocketMap.keys());
expireTimes.forEach(e -> {
if(webSocketMap.containsKey(e)){
webSocketMap.get(e).sendMessage(JSON.toJSONString(R.success(new JSONObject().fluentPut("info","当前登录用户已过期"))));
diff --git a/src/main/java/top/xinsin/pojo/Order.java b/src/main/java/top/xinsin/pojo/Order.java
index c958d39..ea40c59 100644
--- a/src/main/java/top/xinsin/pojo/Order.java
+++ b/src/main/java/top/xinsin/pojo/Order.java
@@ -9,6 +9,7 @@ import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
+import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;
import java.io.Serial;
@@ -22,264 +23,61 @@ import java.util.Date;
*/
@TableName("shop_order")
@ExcelIgnoreUnannotated
+@Accessors(chain = true)
+@Data
public class Order implements Serializable {
@Serial
private static final long serialVersionUID = 1L;
@ExcelIgnore
@TableId(value = "id", type = IdType.AUTO)
private Integer id;
- @ExcelProperty({"订单号"})
@TableField("order_no")
private String orderNo;
- @ExcelProperty({"下单时间"})
@TableField("order_time")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date orderTime;
- @ExcelProperty({"订单状态"})
@TableField("order_status")
private String orderStatus;
- @ExcelProperty({"旺旺号"})
@TableField("wang_no")
private String wangNo;
- @ExcelProperty({"微信|qq账号"})
@TableField("wechat_no")
private String wechatNo;
- @ExcelProperty({"支付宝账号"})
@TableField("alipay_no")
private String alipayNo;
- @ExcelProperty({"付款金额"})
@TableField("pay_amt")
private Double payAmt;
- @ExcelProperty({"店铺名称"})
@TableField("store_id")
private Integer storeId;
- @ExcelProperty({"佣金"})
@TableField("commission")
private Double commission;
- @ExcelProperty({"支付宝名称"})
@TableField("alipay_name")
private String alipayName;
- @ExcelProperty({"放单人"})
@TableField("rp_name")
private String rpName;
- @ExcelProperty({"放单人微信名"})
@TableField("rp_wechat_name")
private String rpWechatName;
- @ExcelProperty({"备注"})
@TableField("remark")
private String remark;
- @ExcelProperty({"买家电话"})
@TableField("phone_number")
private String phoneNumber;
- @ExcelProperty({"银行卡号"})
@TableField("card_no")
private String cardNo;
- @ExcelProperty({"插旗"})
@TableField("flag")
private Integer flag;
- @ExcelProperty({"插旗备注"})
@TableField("flag_remark")
private String flagRemark;
- @ExcelProperty({"付款时间"})
@TableField("pay_time")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private Date payTime;
- @ExcelProperty({"收货地址"})
@TableField("address")
private String address;
- @ExcelProperty({"商品id"})
@TableField("shop_id")
private Integer shopId;
- @ExcelProperty({"sku"})
@TableField("sku")
private String sku;
@ExcelIgnore
@TableField(exist = false)
private String storeName;
-
- public Integer getId() {
- return id;
- }
-
- public void setId(Integer id) {
- this.id = id;
- }
-
- public String getOrderNo() {
- return orderNo;
- }
-
- public void setOrderNo(String orderNo) {
- this.orderNo = orderNo;
- }
-
- public Date getOrderTime() {
- return orderTime;
- }
-
- public void setOrderTime(Date orderTime) {
- this.orderTime = orderTime;
- }
-
- public String getOrderStatus() {
- return orderStatus;
- }
-
- public void setOrderStatus(String orderStatus) {
- this.orderStatus = orderStatus;
- }
-
- public String getWangNo() {
- return wangNo;
- }
-
- public void setWangNo(String wangNo) {
- this.wangNo = wangNo;
- }
-
- public String getWechatNo() {
- return wechatNo;
- }
-
- public void setWechatNo(String wechatNo) {
- this.wechatNo = wechatNo;
- }
-
- public String getAlipayNo() {
- return alipayNo;
- }
-
- public void setAlipayNo(String alipayNo) {
- this.alipayNo = alipayNo;
- }
-
- public Double getPayAmt() {
- return payAmt;
- }
-
- public void setPayAmt(Double payAmt) {
- this.payAmt = payAmt;
- }
-
- public Integer getStoreId() {
- return storeId;
- }
-
- public void setStoreId(Integer storeId) {
- this.storeId = storeId;
- }
-
- public Double getCommission() {
- return commission;
- }
-
- public void setCommission(Double commission) {
- this.commission = commission;
- }
-
- public String getAlipayName() {
- return alipayName;
- }
-
- public void setAlipayName(String alipayName) {
- this.alipayName = alipayName;
- }
-
- public String getRpName() {
- return rpName;
- }
-
- public void setRpName(String rpName) {
- this.rpName = rpName;
- }
-
- public String getRpWechatName() {
- return rpWechatName;
- }
-
- public void setRpWechatName(String rpWechatName) {
- this.rpWechatName = rpWechatName;
- }
-
- public String getRemark() {
- return remark;
- }
-
- public void setRemark(String remark) {
- this.remark = remark;
- }
-
- public String getPhoneNumber() {
- return phoneNumber;
- }
-
- public void setPhoneNumber(String phoneNumber) {
- this.phoneNumber = phoneNumber;
- }
-
- public String getCardNo() {
- return cardNo;
- }
-
- public void setCardNo(String cardNo) {
- this.cardNo = cardNo;
- }
-
- public Integer getFlag() {
- return flag;
- }
-
- public void setFlag(Integer flag) {
- this.flag = flag;
- }
-
- public String getFlagRemark() {
- return flagRemark;
- }
-
- public void setFlagRemark(String flagRemark) {
- this.flagRemark = flagRemark;
- }
-
- public Date getPayTime() {
- return payTime;
- }
-
- public void setPayTime(Date payTime) {
- this.payTime = payTime;
- }
-
- public String getAddress() {
- return address;
- }
-
- public void setAddress(String address) {
- this.address = address;
- }
-
- public Integer getShopId() {
- return shopId;
- }
-
- public void setShopId(Integer shopId) {
- this.shopId = shopId;
- }
-
- public String getSku() {
- return sku;
- }
-
- public void setSku(String sku) {
- this.sku = sku;
- }
-
- public String getStoreName() {
- return storeName;
- }
-
- public void setStoreName(String storeName) {
- this.storeName = storeName;
- }
}
diff --git a/src/main/java/top/xinsin/pojo/OrderByExcel.java b/src/main/java/top/xinsin/pojo/OrderByExcel.java
new file mode 100644
index 0000000..cd452f1
--- /dev/null
+++ b/src/main/java/top/xinsin/pojo/OrderByExcel.java
@@ -0,0 +1,67 @@
+package top.xinsin.pojo;
+
+import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.format.DateTimeFormat;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/**
+ * @author xinsin
+ * Created On 2023/6/9 09:25
+ * @version 1.0
+ */
+@Getter
+@Setter
+@EqualsAndHashCode
+@ExcelIgnoreUnannotated
+public class OrderByExcel {
+ @ExcelProperty("订单号")
+ private String orderNo;
+ @ExcelProperty("下单时间")
+ @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+ private String orderTime;
+ @ExcelProperty("订单状态")
+ private String orderStatus;
+ @ExcelProperty("旺旺号")
+ private String wangNo;
+ @ExcelProperty("微信|qq账号")
+ private String wechatNo;
+ @ExcelProperty("支付宝账号")
+ private String alipayNo;
+ @ExcelProperty("付款金额")
+ private String payAmt;
+ @ExcelProperty("店铺名称")
+ private String storeId;
+ @ExcelProperty("佣金")
+ private String commission;
+ @ExcelProperty("支付宝名称")
+ private String alipayName;
+ @ExcelProperty("放单人")
+ private String rpName;
+ @ExcelProperty("放单人微信名")
+ private String rpWechatName;
+ @ExcelProperty("备注")
+ private String remark;
+ @ExcelProperty("买家电话")
+ private String phoneNumber;
+ @ExcelProperty("银行卡号")
+ private String cardNo;
+ @ExcelProperty("插旗")
+ private String flag;
+ @ExcelProperty("插旗备注")
+ private String flagRemark;
+ @ExcelProperty("付款时间")
+ @DateTimeFormat("yyyy-MM-dd HH:mm:ss")
+ private String payTime;
+ @ExcelProperty("收货地址")
+ private String address;
+ @ExcelProperty("商品id")
+ private String shopId;
+ @ExcelProperty("sku")
+ private String sku;
+}
diff --git a/src/main/java/top/xinsin/service/OrderService.java b/src/main/java/top/xinsin/service/OrderService.java
index c9d7488..60ef6a8 100644
--- a/src/main/java/top/xinsin/service/OrderService.java
+++ b/src/main/java/top/xinsin/service/OrderService.java
@@ -1,18 +1,17 @@
package top.xinsin.service;
import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.read.listener.PageReadListener;
import com.alibaba.fastjson2.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import jakarta.servlet.http.HttpServletResponse;
import lombok.SneakyThrows;
import lombok.extern.slf4j.Slf4j;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import top.xinsin.enums.OrderStatus;
import top.xinsin.enums.SearchType;
@@ -21,9 +20,8 @@ import top.xinsin.mapper.OrderMapper;
import top.xinsin.mapper.StoreMapper;
import top.xinsin.pojo.Commission;
import top.xinsin.pojo.Order;
+import top.xinsin.pojo.OrderByExcel;
import top.xinsin.pojo.Store;
-import top.xinsin.pojo.vo.OrderVO;
-import top.xinsin.util.ExcelParserUtil;
import top.xinsin.util.HttpCodes;
import top.xinsin.util.R;
@@ -31,8 +29,14 @@ import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.Date;
import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
+import java.util.concurrent.atomic.AtomicInteger;
/**
* @author xinsin
@@ -169,11 +173,48 @@ public class OrderService extends ServiceImpl implements Orde
}
@SneakyThrows
- public void uploadBatch(MultipartFile file) {
- try {
- EasyExcel.read(file.getInputStream(), Order.class, new ExcelParserUtil(this)).headRowNumber(2).sheet().doRead();
- } catch (Throwable var3) {
- throw var3;
- }
+ @Transactional
+ public R uploadBatch(MultipartFile file) {
+ DateFormat fmt =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+ AtomicInteger total = new AtomicInteger();
+ AtomicBoolean status = new AtomicBoolean(false);
+ EasyExcel.read(file.getInputStream(),OrderByExcel.class,new PageReadListener(list -> {
+ list.remove(0);
+ total.addAndGet(list.size());
+ List orders = new ArrayList<>();
+ list.forEach(e -> {
+ try {
+ orders.add(new Order()
+ .setOrderNo(e.getOrderNo())
+ .setOrderTime(e.getOrderTime() != null ? fmt.parse(e.getOrderTime()) : null)
+ .setOrderStatus(e.getOrderStatus())
+ .setWangNo(e.getWangNo())
+ .setWechatNo(e.getWechatNo())
+ .setAlipayNo(e.getAlipayNo())
+ .setPayAmt(e.getPayAmt() != null ? Double.parseDouble(e.getPayAmt()) : null)
+ .setStoreId(e.getStoreId() != null ? Integer.parseInt(e.getStoreId()) : null)
+ .setCommission(e.getCommission() != null ? Double.parseDouble(e.getCommission()) : null)
+ .setAlipayName(e.getAlipayName())
+ .setRpName(e.getRpName())
+ .setRpWechatName(e.getRpWechatName())
+ .setRemark(e.getRemark())
+ .setPhoneNumber(e.getPhoneNumber())
+ .setCardNo(e.getCardNo())
+ .setFlag(e.getFlag() != null ? Integer.parseInt(e.getFlag()) : null)
+ .setFlagRemark(e.getFlagRemark())
+ .setPayTime(e.getPayTime() != null ? fmt.parse(e.getPayTime()) : null)
+ .setAddress(e.getAddress())
+ .setShopId(e.getShopId() != null ? Integer.parseInt(e.getStoreId()) : null)
+ .setSku(e.getSku())
+ );
+ } catch (ParseException ex) {
+ throw new RuntimeException(ex);
+ }
+ log.info(" ==> 解析一条数据: {}", JSONObject.toJSONString(e));
+ });
+ log.info(" ==> 共全部数据: {}",total.get());
+ status.set(this.saveBatch(orders));
+ })).sheet().doRead();
+ return R.success(new JSONObject().fluentPut("total",total.get()).fluentPut("status",status.get()));
}
}
diff --git a/src/main/java/top/xinsin/service/WebSocketService.java b/src/main/java/top/xinsin/service/WebSocketService.java
index 55f6c45..8d2b696 100644
--- a/src/main/java/top/xinsin/service/WebSocketService.java
+++ b/src/main/java/top/xinsin/service/WebSocketService.java
@@ -1,6 +1,7 @@
package top.xinsin.service;
import com.alibaba.fastjson2.JSON;
+import com.alibaba.fastjson2.JSONArray;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import jakarta.annotation.Resource;
@@ -17,15 +18,10 @@ import top.xinsin.util.HttpCodes;
import top.xinsin.util.R;
import top.xinsin.util.StringConstant;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Set;
+import java.util.*;
import java.util.concurrent.ConcurrentHashMap;
import java.util.concurrent.TimeUnit;
-import static org.apache.naming.SelectorContext.prefix;
-
@Service
@Slf4j
public class WebSocketService {
@@ -34,30 +30,48 @@ public class WebSocketService {
@Autowired
private VerifyMapper verifyMapper;
- public R addVerify(String userId){
+ private Map adminBYStoreId = new HashMap<>();
+
+ public R addVerify(String userId, WebSocketController session){
RedisSerializer stringSerializer = new StringRedisSerializer();
redisTemplate.setValueSerializer(stringSerializer);
redisTemplate.setKeySerializer(stringSerializer);
- if (userId.equals("-114514")){
- return R.success("检测为管理员登录");
+ JSONObject jsonObject = new JSONObject();
+ if (userId.startsWith("-114514_")){
+ adminBYStoreId.put(userId.replace("-114514_",""),session);
+// 筛选出当前过期的数据
+ Set noVerify = redisTemplate.keys(StringConstant.NO_VERIFY_PRE + "*");
+ Set verify = redisTemplate.keys(StringConstant.VERIFY_PRE + "*");
+ List list = new ArrayList<>();
+ assert noVerify != null;
+ noVerify.forEach(e -> list.add(e.replace(StringConstant.NO_VERIFY_PRE, "")));
+ assert verify!= null;
+ List list2 = new ArrayList<>();
+ verify.forEach(e -> list2.add(e.replace(StringConstant.VERIFY_PRE, "")));
+ List list1 = list.stream().filter(e -> !list2.contains(e)).toList();
+ JSONArray jsonArray = new JSONArray();
+ Arrays.stream(userId.replace("-114514_", "").split(",")).filter(list1::contains).forEach(jsonArray::add);
+ jsonObject.fluentPut("expire",jsonArray);
+ return R.success(jsonObject.fluentPut("info","检测为管理员登录"));
}
Object o = redisTemplate.opsForValue().get(StringConstant.VERIFY_PRE + userId);
- Object o1 = redisTemplate.opsForValue().get(StringConstant.VERIFY_PRE + userId + "_no");
- System.out.println(o == null);
- System.out.println(o1 == null);
+ Object o1 = redisTemplate.opsForValue().get(StringConstant.NO_VERIFY_PRE + userId);
if (o == null && o1 == null){
Verify verify = verifyMapper.selectOne(new LambdaQueryWrapper().eq(Verify::getStoreId, userId));
if (verify != null){
if(userId.equals(String.valueOf(verify.getStoreId()))) {
redisTemplate.opsForValue().set(StringConstant.VERIFY_PRE + userId, String.valueOf(verify.getNum()), verify.getCountdown(), TimeUnit.SECONDS);
- redisTemplate.opsForValue().set(StringConstant.VERIFY_PRE + userId + "_no", String.valueOf(verify.getNum()));
- return R.success("已将该用户过期时间存入");
+ redisTemplate.opsForValue().set(StringConstant.NO_VERIFY_PRE + userId, String.valueOf(verify.getNum()));
+ jsonObject.fluentPut("info","已将该用户过期时间存入");
+ return R.success(jsonObject);
}
}
}else{
- return R.success("当前用户已存在");
+ jsonObject.fluentPut("info","当前用户已存在");
+ return R.success(jsonObject);
}
- return R.failed(HttpCodes.HTTP_CODES500,"不存在该用户");
+ jsonObject.fluentPut("info","不存在该用户");
+ return R.failed(HttpCodes.HTTP_CODES500,jsonObject);
}
public R parseMessage(String userId, String message, ConcurrentHashMap webSocketMap){
JSONObject parse = JSONObject.parse(message);
@@ -83,7 +97,7 @@ public class WebSocketService {
String verifyResult = String.valueOf(parse.get("verifyResult"));
String userId = String.valueOf(parse.get("userId"));
- int i = Integer.parseInt(String.valueOf(redisTemplate.opsForValue().get(StringConstant.VERIFY_PRE + userId + "_no")));
+ int i = Integer.parseInt(String.valueOf(redisTemplate.opsForValue().get(StringConstant.NO_VERIFY_PRE + userId)));
System.out.println(i);
Verify verify = new Verify();
verify.setVerifyResult(verifyResult);
@@ -100,7 +114,7 @@ public class WebSocketService {
}else{
if (webSocketMap.containsKey(userId)){
webSocketMap.get(userId).sendMessage(JSON.toJSONString(new JSONObject().fluentPut("info","管理员已同意你的验证信息,请重新登录")));
- redisTemplate.delete(StringConstant.VERIFY_PRE + userId + "_no");
+ redisTemplate.delete(StringConstant.NO_VERIFY_PRE + userId);
Verify verify1 = new Verify();
verify.setVerifyPhone("");
verify.setVerifyName("");
@@ -114,7 +128,7 @@ public class WebSocketService {
Long expire = redisTemplate.getExpire(StringConstant.VERIFY_PRE + userId);
assert expire != null;
if (expire.equals(-2L)){
- Object o = redisTemplate.opsForValue().get(StringConstant.VERIFY_PRE + userId + "_no");
+ Object o = redisTemplate.opsForValue().get(StringConstant.NO_VERIFY_PRE + userId);
if (o != null){
return R.success(new JSONObject().fluentPut("info","当前用户登录已过期"));
}
@@ -126,7 +140,7 @@ public class WebSocketService {
private R addVerifyInfo(String userId, JSONObject parse) {
Long expire = redisTemplate.getExpire(StringConstant.VERIFY_PRE + userId);
- Object o = redisTemplate.opsForValue().get(StringConstant.VERIFY_PRE + userId + "_no");
+ Object o = redisTemplate.opsForValue().get(StringConstant.NO_VERIFY_PRE + userId);
assert expire != null;
if (expire.equals(-2L) && o != null){
Object verifyName = parse.get("verifyName");
@@ -143,19 +157,22 @@ public class WebSocketService {
private R ping(String userId) {
return R.success(new JSONObject().fluentPut("info","pong").fluentPut("time",redisTemplate.getExpire(StringConstant.VERIFY_PRE + userId)));
}
- public List getExpireTimes(){
+ public List getExpireTimes(Enumeration keys){
List expireUser = new ArrayList<>();
- Set keys = redisTemplate.keys(prefix.concat(StringConstant.VERIFY_PRE + "*"));
+
+// Set keys = redisTemplate.keys(StringConstant.VERIFY_PRE + "*");
assert keys != null;
- keys.forEach(e -> {
+ Iterator iterator = keys.asIterator();
+ while (iterator.hasNext()){
+ String e = StringConstant.VERIFY_PRE + iterator.next();
if (Objects.equals(redisTemplate.getExpire(e), -1L)){
expireUser.add(e);
redisTemplate.delete(e);
}else if (Objects.equals(redisTemplate.getExpire(e),-2L)){
+ expireUser.add(e);
redisTemplate.delete(e);
}
- });
-// log.info("{}",keys);
+ }
return expireUser;
}
}
diff --git a/src/main/java/top/xinsin/util/ExcelParserUtil.java b/src/main/java/top/xinsin/util/ExcelParserUtil.java
index d5a5480..d6a74f3 100644
--- a/src/main/java/top/xinsin/util/ExcelParserUtil.java
+++ b/src/main/java/top/xinsin/util/ExcelParserUtil.java
@@ -4,13 +4,16 @@ import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.exception.ExcelDataConvertException;
import com.alibaba.excel.read.processor.AnalysisEventProcessor;
+import com.alibaba.excel.util.ListUtils;
import com.alibaba.fastjson2.JSONObject;
import lombok.extern.slf4j.Slf4j;
import top.xinsin.mapper.OrderMapper;
import top.xinsin.pojo.Order;
+import top.xinsin.pojo.OrderByExcel;
import top.xinsin.service.OrderService;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
/**
@@ -19,7 +22,7 @@ import java.util.List;
* @version 1.0
*/
@Slf4j
-public class ExcelParserUtil extends AnalysisEventListener {
+public class ExcelParserUtil extends AnalysisEventListener {
/**
* 每次读取的最大数据条数
*/
@@ -33,7 +36,7 @@ public class ExcelParserUtil extends AnalysisEventListener {
/**
* 可接收任何参数的泛型List集合
*/
- List list = new ArrayList<>();
+ List list = ListUtils.newArrayListWithExpectedSize(MAX_BATCH_COUNT);
List total = new ArrayList<>();
@@ -48,7 +51,7 @@ public class ExcelParserUtil extends AnalysisEventListener {
}
@Override
- public void invoke(Order data, AnalysisContext analysisContext) {
+ public void invoke(OrderByExcel data, AnalysisContext analysisContext) {
log.info(" ==> 解析一条数据: {}", data);
list.add(data);
if (list.size() > MAX_BATCH_COUNT) {
@@ -74,7 +77,11 @@ public class ExcelParserUtil extends AnalysisEventListener {
*/
private void saveData() {
log.info(" ==> 数据保存开始: {}", list.size());
- dynamicService.saveBatch(list);
+ list.forEach(e -> {
+
+ System.out.println(e.getOrderNo());
+ });
+// dynamicService.saveBatch(list);
log.info(" ==> 数据保存结束 <==");
}
diff --git a/src/main/java/top/xinsin/util/StringConstant.java b/src/main/java/top/xinsin/util/StringConstant.java
index 8697786..160ab0f 100644
--- a/src/main/java/top/xinsin/util/StringConstant.java
+++ b/src/main/java/top/xinsin/util/StringConstant.java
@@ -7,4 +7,5 @@ public class StringConstant {
public static final String ID_REGEX = "[0-9]*";
public static final String VERIFY_PRE = "verify_";
+ public static final String NO_VERIFY_PRE = "no_verify_";
}
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 2e1da3b..32b5534 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -2,12 +2,12 @@ server:
port: 8001
spring:
datasource:
- username: commerce
- password: Jix656dzD6St4YCn_
-# username: commerce_system
-# password: Jix656dzD6St4YCn
- url: jdbc:mysql://localhost:3306/commerce_system?serverTimezone=UTC-8
-# url: jdbc:mysql://wzpmc.cn:3306/commerce_system?serverTimezone=UTC-8
+# username: commerce
+# password: Jix656dzD6St4YCn_
+ username: commerce_system
+ password: Jix656dzD6St4YCn
+# url: jdbc:mysql://localhost:3306/commerce_system?serverTimezone=UTC-8
+ url: jdbc:mysql://wzpmc.cn:3306/commerce_system?serverTimezone=UTC-8
driver-class-name: com.mysql.cj.jdbc.Driver
# druid配置
type: com.alibaba.druid.pool.DruidDataSource
diff --git a/template/example.xlsx b/template/example.xlsx
index ee9c302..919e828 100644
Binary files a/template/example.xlsx and b/template/example.xlsx differ