Browse Source

Merge branch 'test' into 盘古养号好友整改

leon 4 years ago
parent
commit
5d810249d3

+ 27 - 0
src/main/java/com/mokamrp/privates/controller/pangu/FosterwxWxfriendController.java

@@ -3,11 +3,16 @@ package com.mokamrp.privates.controller.pangu;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.model.PutObjectRequest;
 import com.mokamrp.privates.config.OSSConfiguration;
+import com.mokamrp.privates.constant.HttpMsg;
 import com.mokamrp.privates.constant.HttpStatus;
 import com.mokamrp.privates.entity.PostBasePageHandle;
+import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.help.AjaxResult;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.help.Analysis;
+import com.mokamrp.privates.interceptor.AuthUser;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobileWxfriend;
+import com.mokamrp.privates.mapper.pojo.User;
 import com.mokamrp.privates.utils.OssFile;
 import io.swagger.annotations.Api;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -25,6 +30,7 @@ import java.text.SimpleDateFormat;
 import java.util.*;
 
 import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.multipart.MultipartFile;
 
 
 /**
@@ -97,5 +103,26 @@ public class FosterwxWxfriendController extends BaseController<FosterwxWxfriend>
         ossClient.putObject(putObjectRequest);
         return AjaxResult.success(ossConfiguration.getHost() + filePath);
     }
+
+    @PostMapping("/import")
+    public Object uploadFile(@RequestBody MultipartFile file, @AuthUser User authUser) {
+        Map<String, Object> map = new HashMap<>(16);
+        Map<Integer, String> feild = new HashMap<>(5);
+        feild.put(0, "stationName");
+        feild.put(1, "wxName");
+        feild.put(2, "wxUsername");
+        List<Map<String, String>> row = new ArrayList<>();
+        VoltaHandle<ArrayList<Map<String, String>>> voltaRes = Analysis.analysis(file, feild);
+        if (voltaRes.getErr() != null) {
+            return AjaxResult.error(voltaRes.getErr());
+        }
+        row = voltaRes.getData();
+        try {
+            VoltaHandle<Boolean> res = fosterwxWxfriendService.importData(row, authUser);
+        } catch (Exception e) {
+            return AjaxResult.error(e.getMessage());
+        }
+        return AjaxResult.success(HttpMsg.importSuccess);
+    }
 }
 

+ 5 - 0
src/main/java/com/mokamrp/privates/service/pangu/FosterwxWxfriendService.java

@@ -1,9 +1,12 @@
 package com.mokamrp.privates.service.pangu;
 
+import com.mokamrp.privates.entity.VoltaHandle;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxWxfriend;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.mokamrp.privates.entity.PostBasePageHandle;
 import com.mokamrp.privates.entity.ResHandle;
+import com.mokamrp.privates.mapper.pojo.User;
+
 import java.util.List;
 import java.util.Map;
 /**
@@ -17,4 +20,6 @@ import java.util.Map;
 public interface FosterwxWxfriendService extends IService<FosterwxWxfriend> {
     //.@leon 获取数据列表
     public ResHandle<List<FosterwxWxfriend>> getList(PostBasePageHandle handle);
+    //.@leon 导入
+    public VoltaHandle<Boolean> importData(List<Map<String,String>> row, User authUser) throws Exception;
 }

+ 39 - 0
src/main/java/com/mokamrp/privates/service/pangu/impl/FosterwxWxfriendServiceImpl.java

@@ -1,7 +1,14 @@
 package com.mokamrp.privates.service.pangu.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.mokamrp.privates.entity.VoltaHandle;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobile;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxMobileWxfriend;
+import com.mokamrp.privates.mapper.pangu.pojo.FosterwxStation;
 import com.mokamrp.privates.mapper.pangu.pojo.FosterwxWxfriend;
 import com.mokamrp.privates.mapper.pangu.FosterwxWxfriendMapper;
+import com.mokamrp.privates.mapper.pojo.User;
+import com.mokamrp.privates.service.pangu.FosterwxStationService;
 import com.mokamrp.privates.service.pangu.FosterwxWxfriendService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
@@ -10,6 +17,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
 import com.mokamrp.privates.entity.ResHandle;
+import org.springframework.transaction.annotation.Transactional;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 
 /**
@@ -25,6 +36,9 @@ public class FosterwxWxfriendServiceImpl extends ServiceImpl<FosterwxWxfriendMap
 
     @Autowired
     public FosterwxWxfriendMapper fosterwxWxfriendMapper;
+
+    @Autowired
+    public FosterwxStationService fosterwxStationService;
     /**
      * 获取数据列表 支持分页
      * @param handle
@@ -40,4 +54,29 @@ public class FosterwxWxfriendServiceImpl extends ServiceImpl<FosterwxWxfriendMap
         res.setTotal(pageObj.getTotal());
         return res;
     }
+
+    @Transactional(rollbackFor = Exception.class)
+    public VoltaHandle<Boolean> importData(List<Map<String,String>> row, User authUser) throws Exception{
+        VoltaHandle<Boolean> res = new VoltaHandle<>();
+        if (row.size() <= 0) {
+            throw new Exception("表格读取完成后,没有获取到任何数据");
+        }
+        DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
+        for (int i = 0; i < row.size(); i++) {
+            FosterwxStation stationInfo = fosterwxStationService.getOne(new QueryWrapper<FosterwxStation>()
+                    .eq("station_name", row.get(i).get("stationName")));
+            if (stationInfo == null) {
+                throw new Exception("站点编号不存在");
+            }
+
+            FosterwxWxfriend add = new FosterwxWxfriend();
+            add.setStationId(stationInfo.getId());
+            add.setWxName(row.get(i).get("wxName"));
+            add.setWxUsername(row.get(i).get("wxUsername"));
+            add.setCreateAt(LocalDateTime.now());
+            add.setUpdateAt(LocalDateTime.now());
+            this.save(add);
+        }
+        return res;
+    }
 }