Browse Source

完善导入手机号 以及将数据源数据导入excel表单

zhangyang 2 years ago
parent
commit
d77a870ddb

+ 15 - 2
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/PoNewsController.java

@@ -4,6 +4,7 @@ import com.ruoyi.common.annotation.Log;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.controller.BaseController;
 import com.ruoyi.common.core.domain.AjaxResult;
+import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.common.core.page.TableDataInfo;
 import com.ruoyi.common.enums.BusinessType;
 import com.ruoyi.common.utils.poi.ExcelUtil;
@@ -43,15 +44,27 @@ public class PoNewsController extends BaseController
     @Log(title = "用户手机导入", businessType = BusinessType.IMPORT)
     @PreAuthorize("@ss.hasPermi('system:news:import')")
     @PostMapping("/importData")
-    public AjaxResult importData(MultipartFile file, boolean updateSupport, PoNews poNews) throws Exception
+    public AjaxResult importData(MultipartFile file, boolean updateSupport) throws Exception
     {
         ExcelUtil<PoNews> util = new ExcelUtil<PoNews>(PoNews.class);
         List<PoNews> phoneList = util.importExcel(file.getInputStream());
         String userName = getUsername();
-        String message = poNewsService.importPhone(phoneList, updateSupport, userName,poNews);
+        String message = poNewsService.importPhone(phoneList, updateSupport, userName);
         return success(message);
     }
 
+    /**
+     * 对list数据源将其里面的数据导入到excel表单
+     * @param response
+     */
+    @PostMapping("/importTemplate")
+    public void importTemplate(HttpServletResponse response)
+    {
+        ExcelUtil<PoNews> util = new ExcelUtil<PoNews>(PoNews.class);
+        util.importTemplateExcel(response, "消息数据");
+    }
+
+
     /**
      * 查看详情
      * 点击详情获取一个消息详细内容根据newsId

+ 2 - 2
ruoyi-system/src/main/java/com/ruoyi/system/mapper/PoUserMapper.java

@@ -1,6 +1,5 @@
 package com.ruoyi.system.mapper;
 
-import com.ruoyi.common.core.domain.entity.SysUser;
 import com.ruoyi.system.domain.PoUser;
 
 import java.util.List;
@@ -85,8 +84,9 @@ public interface PoUserMapper
 
     /**
      * 通过手机号查询用户是否存在
+     *
      * @param phonenumber
      * @return
      */
-    SysUser selectUserByUserPhoneNumber(String phonenumber);
+    PoUser selectUserByUserPhoneNumber(String phonenumber);
 }

+ 1 - 2
ruoyi-system/src/main/java/com/ruoyi/system/service/IPoNewsService.java

@@ -96,10 +96,9 @@ public interface IPoNewsService
      * @param phoneList
      * @param updateSupport
      * @param userName
-     * @param poNews
      * @return
      */
-    String importPhone(List<PoNews> phoneList, boolean updateSupport, String userName, PoNews poNews);
+    String importPhone(List<PoNews> phoneList, boolean updateSupport, String userName);
 
 }
 

+ 21 - 4
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/PoNewsServiceImpl.java

@@ -8,6 +8,7 @@ import com.ruoyi.common.utils.StringUtils;
 import com.ruoyi.common.utils.bean.BeanUtils;
 import com.ruoyi.common.utils.bean.BeanValidators;
 import com.ruoyi.system.domain.PoNews;
+import com.ruoyi.system.domain.PoUser;
 import com.ruoyi.system.mapper.PoNewsMapper;
 import com.ruoyi.system.mapper.PoUserMapper;
 import com.ruoyi.system.service.IPoNewsService;
@@ -225,11 +226,10 @@ public class PoNewsServiceImpl implements IPoNewsService {
      * @param phoneList     手机号数据
      * @param updateSupport 是否支持更新 存在则更新
      * @param userName      操作用户
-     * @param poNews        返回结果
      * @return
      */
     @Override
-    public String importPhone(List<PoNews> phoneList, boolean updateSupport, String userName, PoNews poNews) {
+    public String importPhone(List<PoNews> phoneList, boolean updateSupport, String userName) {
         if (StringUtils.isNull(phoneList) || phoneList.size() == 0) {
             throw new ServiceException("导入用户电话数据不能为空!");
         }
@@ -241,7 +241,7 @@ public class PoNewsServiceImpl implements IPoNewsService {
         for (PoNews phone : phoneList) {
             try {
                 // 验证是否存在这个用户
-                SysUser u = poUserMapper.selectUserByUserPhoneNumber(phone.getPhonenumber());
+                PoUser u = poUserMapper.selectUserByUserPhoneNumber(phone.getPhonenumber());
                 if (StringUtils.isNull(u)) {
                     BeanValidators.validateWithException(validator, phone);
                     phone.setPhonenumber(phone.getPhonenumber());
@@ -250,11 +250,28 @@ public class PoNewsServiceImpl implements IPoNewsService {
                     successNum++;
                     successMsg.append("<br/>" + successNum + "、电话号 " + phone.getPhonenumber() + " 导入成功");
                 }
+                else if (updateSupport){
+                    BeanValidators.validateWithException(validator, phone);
+                    phone.setUpdateBy(userName);
+                    this.updatePoNews(phone);
+                    successNum++;
+                    successMsg.append("<br/>" + successNum + "、手机 " + phone.getPhonenumber() + " 更新成功");
+                }
+                else{
+                    failureNum++;
+                    failureMsg.append("<br/>" + failureNum + "、手机 " + phone.getPhonenumber()+ " 已经存在");
+                }
             } catch (Exception e) {
                 failureNum++;
-                String msg = "<br/>" + failureNum + "、dian " + phone.getPhonenumber() + " 导入失败:";
+                String msg = "<br/>" + failureNum + "、电话号 " + phone.getPhonenumber() + " 导入失败:";
                 failureMsg.append(msg + e.getMessage());
             }
+        }
+        if (failureNum > 0){
+            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
+            throw new ServiceException(failureMsg.toString());
+        }else{
+            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
         }
                 return successMsg.toString();
     }