From 350f7aa6654f63c1792dc403e624c4aa583bd0de Mon Sep 17 00:00:00 2001
From: whj <1070107765@qq.com>
Date: 星期五, 09 九月 2022 15:34:04 +0800
Subject: [PATCH] 门店管理

---
 ycl-common/src/main/java/com/ycl/mapper/store/UmsStoreInfoMapper.java            |   16 ++
 ycl-platform/src/main/java/com/ycl/controller/store/UmsStoreInfoController.java  |  115 ++++++++++++++
 ycl-common/src/main/java/com/ycl/vo/store/StoreInfoExcelVo.java                  |   41 +++++
 ycl-common/src/main/java/com/ycl/enums/common/ResultCode.java                    |    5 
 ycl-common/src/main/java/com/ycl/service/store/UmsStoreInfoService.java          |   33 ++++
 ycl-common/src/main/java/com/ycl/utils/ExcelUtils.java                           |   23 ++
 ycl-common/src/main/java/com/ycl/vo/store/UmsStoreInfoParam.java                 |   44 +++++
 ycl-common/src/main/java/com/ycl/service/store/impl/UmsStoreInfoServiceImpl.java |   70 ++++++++
 ycl-common/src/main/java/com/ycl/dto/UmsStoreInfoParam.java                      |   45 +++++
 ycl-common/src/main/resources/mapper/store/UmsStoreInfoMapper.xml                |   17 ++
 ycl-common/src/main/java/com/ycl/entity/store/UmsStoreInfo.java                  |   58 +++++++
 pom.xml                                                                          |    6 
 12 files changed, 472 insertions(+), 1 deletions(-)

diff --git a/pom.xml b/pom.xml
index 58b221b..c2b7558 100644
--- a/pom.xml
+++ b/pom.xml
@@ -149,6 +149,12 @@
             <artifactId>jaxb-api</artifactId>
             <version>${jaxb-api.version}</version>
         </dependency>
+
+        <dependency>
+            <groupId>com.alibaba</groupId>
+            <artifactId>easyexcel</artifactId>
+            <version>3.1.1</version>
+        </dependency>
     </dependencies>
 
 </project>
diff --git a/ycl-common/src/main/java/com/ycl/dto/UmsStoreInfoParam.java b/ycl-common/src/main/java/com/ycl/dto/UmsStoreInfoParam.java
new file mode 100644
index 0000000..c59103d
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/dto/UmsStoreInfoParam.java
@@ -0,0 +1,45 @@
+package com.ycl.dto;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.Pattern;
+import java.math.BigDecimal;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class UmsStoreInfoParam {
+
+    @NotBlank(message = "闂ㄥ簵鎵�鏈変汉涓嶈兘涓虹┖")
+    @ApiModelProperty("濮撳悕")
+    private String owner;
+
+    @NotBlank(message = "闂ㄥ簵鍚嶇О涓嶈兘涓虹┖")
+    @ApiModelProperty("闂ㄥ簵鍚嶇О")
+    private String storename;
+
+    @NotBlank(message = "鎵嬫満鍙蜂笉鑳戒负绌�")
+    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "鎵嬫満鍙锋牸寮忔湁璇�")
+    @ApiModelProperty("鑱旂郴鏂瑰紡")
+    private String contact;
+
+    @ApiModelProperty("鍦板潃")
+    private String storeaddr;
+
+    @ApiModelProperty("鐓х墖")
+    private String storephoto;
+
+    @NotBlank(message = "韬唤璇佷俊鎭笉鑳戒负绌�")
+    @ApiModelProperty("韬唤璇佷俊鎭�")
+    private String idcardinfo;
+
+    @ApiModelProperty("闂ㄥ簵绉垎")
+    private BigDecimal storescore;
+}
diff --git a/ycl-common/src/main/java/com/ycl/entity/store/UmsStoreInfo.java b/ycl-common/src/main/java/com/ycl/entity/store/UmsStoreInfo.java
new file mode 100644
index 0000000..c9d0ff0
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/entity/store/UmsStoreInfo.java
@@ -0,0 +1,58 @@
+package com.ycl.entity.store;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.*;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+
+/**
+ * <p>
+ * 
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-08
+ */
+@Getter
+@Setter
+@TableName("ums_store_storeinfo")
+@NoArgsConstructor
+@AllArgsConstructor
+@ApiModel(value = "UmsStoreStoreinfo瀵硅薄", description = "")
+@Builder
+public class UmsStoreInfo implements Serializable {
+
+    private static final long serialVersionUID = 1L;
+
+    @ApiModelProperty("涓婚敭")
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty("濮撳悕")
+    private String owner;
+
+    @ApiModelProperty("闂ㄥ簵鍚嶇О")
+    private String storename;
+
+    @ApiModelProperty("鑱旂郴鏂瑰紡")
+    private String contact;
+
+    @ApiModelProperty("鍦板潃")
+    private String storeaddr;
+
+    @ApiModelProperty("鐓х墖")
+    private String storephoto;
+
+    @ApiModelProperty("韬唤璇佷俊鎭�")
+    private String idcardinfo;
+
+    @ApiModelProperty("闂ㄥ簵绉垎")
+    private BigDecimal storescore;
+
+
+}
diff --git a/ycl-common/src/main/java/com/ycl/enums/common/ResultCode.java b/ycl-common/src/main/java/com/ycl/enums/common/ResultCode.java
index 8e9c1b5..9ff7bd4 100644
--- a/ycl-common/src/main/java/com/ycl/enums/common/ResultCode.java
+++ b/ycl-common/src/main/java/com/ycl/enums/common/ResultCode.java
@@ -19,7 +19,10 @@
     RECORD_SAVE_FAIL(2002, "璁板綍淇濆瓨澶辫触"),
     RECORD_UPDATE_FAIL(2003, "璁板綍鏇存柊澶辫触"),
     RECORD_DELETE_FAIL(2004, "璁板綍鍒犻櫎澶辫触"),
-    RECORD_NOT_EXISTS(2005, "璁板綍涓嶅瓨鍦�");
+    RECORD_NOT_EXISTS(2005, "璁板綍涓嶅瓨鍦�"),
+    FILE_NOT_FOUND(2006, "鏂囦欢涓嶅瓨鍦�"),
+    FILE_TYPE_FAIL(2007, "鏂囦欢鏍煎紡閿欒");
+
     private long code;
     private String message;
 
diff --git a/ycl-common/src/main/java/com/ycl/mapper/store/UmsStoreInfoMapper.java b/ycl-common/src/main/java/com/ycl/mapper/store/UmsStoreInfoMapper.java
new file mode 100644
index 0000000..3f4a578
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/mapper/store/UmsStoreInfoMapper.java
@@ -0,0 +1,16 @@
+package com.ycl.mapper.store;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ycl.entity.store.UmsStoreInfo;
+
+/**
+ * <p>
+ *  Mapper 鎺ュ彛
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-08
+ */
+public interface UmsStoreInfoMapper extends BaseMapper<UmsStoreInfo> {
+
+}
diff --git a/ycl-common/src/main/java/com/ycl/service/store/UmsStoreInfoService.java b/ycl-common/src/main/java/com/ycl/service/store/UmsStoreInfoService.java
new file mode 100644
index 0000000..1aa8e05
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/service/store/UmsStoreInfoService.java
@@ -0,0 +1,33 @@
+package com.ycl.service.store;
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.ycl.entity.store.UmsStoreInfo;
+import com.ycl.entity.user.UmsAdmin;
+import org.springframework.web.multipart.MultipartFile;
+
+/**
+ * <p>
+ *  鏈嶅姟绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-08
+ */
+public interface UmsStoreInfoService extends IService<UmsStoreInfo> {
+    /**
+     * 鏍规嵁闂ㄥ簵鍚嶇О鍒嗛〉鑾峰彇闂ㄥ簵鍒楄〃鍒楄〃
+     * @param keyword 鍏抽敭瀛�
+     * @param pageSize 椤甸潰澶у皬
+     * @param pageNum 椤电爜
+     * @return 鍒嗛〉瀹炰綋
+     */
+    Page<UmsStoreInfo> list(String keyword, Integer pageSize, Integer pageNum);
+
+    /**
+     * 璇诲彇excel鏂囦欢鍔ㄦ�佸姞杞芥枃浠�
+     * @param file
+     * @return
+     */
+    boolean addByExcel(MultipartFile file);
+}
diff --git a/ycl-common/src/main/java/com/ycl/service/store/impl/UmsStoreInfoServiceImpl.java b/ycl-common/src/main/java/com/ycl/service/store/impl/UmsStoreInfoServiceImpl.java
new file mode 100644
index 0000000..b1e0e3d
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/service/store/impl/UmsStoreInfoServiceImpl.java
@@ -0,0 +1,70 @@
+package com.ycl.service.store.impl;
+
+import cn.hutool.core.util.StrUtil;
+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 com.ycl.entity.store.UmsStoreInfo;
+import com.ycl.enums.common.ResultCode;
+import com.ycl.exception.ApiException;
+import com.ycl.mapper.store.UmsStoreInfoMapper;
+import com.ycl.service.store.UmsStoreInfoService;
+import com.ycl.utils.ExcelUtils;
+import com.ycl.vo.store.StoreInfoExcelVo;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.BeanUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * <p>
+ * 鏈嶅姟瀹炵幇绫�
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-08
+ */
+@Service
+@Slf4j
+public class UmsStoreInfoServiceImpl extends ServiceImpl<UmsStoreInfoMapper, UmsStoreInfo> implements UmsStoreInfoService {
+
+    @Override
+    public Page<UmsStoreInfo> list(String keyword, Integer pageSize, Integer pageNum) {
+        Page<UmsStoreInfo> page = new Page<>(pageSize, pageNum);
+        LambdaQueryWrapper<UmsStoreInfo> wrapper = new LambdaQueryWrapper<>();
+        if (StrUtil.isNotEmpty(keyword)) {
+            wrapper.like(UmsStoreInfo::getStorename, keyword);
+        }
+        return page(page, wrapper);
+    }
+
+    @Override
+    public boolean addByExcel(MultipartFile file) {
+        if (file == null) {
+            throw new ApiException(ResultCode.FILE_NOT_FOUND);
+        }
+        String type = file.getOriginalFilename().substring(file.getOriginalFilename().lastIndexOf("."));
+        if (!(type.equals(".xls") || type.equals(".xlsx"))) {
+            throw new ApiException(ResultCode.FILE_TYPE_FAIL);
+        }
+        try {
+            List<StoreInfoExcelVo> datas = ExcelUtils.getExcelModelData(file.getInputStream(), StoreInfoExcelVo.class);
+            log.info("璇诲彇鍒皗}鏉℃暟鎹�", datas.size());
+            List<UmsStoreInfo> infos = new ArrayList<>();
+            for (StoreInfoExcelVo data : datas) {
+                UmsStoreInfo info = new UmsStoreInfo();
+                BeanUtils.copyProperties(data,info);
+                infos.add(info);
+            }
+            BeanUtils.copyProperties(datas,infos);
+            saveBatch(infos);
+            return true;
+        } catch (Exception e) {
+            throw new ApiException(ResultCode.FAILED);
+        }
+    }
+}
diff --git a/ycl-common/src/main/java/com/ycl/utils/ExcelUtils.java b/ycl-common/src/main/java/com/ycl/utils/ExcelUtils.java
new file mode 100644
index 0000000..6bc76f5
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/utils/ExcelUtils.java
@@ -0,0 +1,23 @@
+package com.ycl.utils;
+
+import com.alibaba.excel.EasyExcel;
+import com.alibaba.excel.read.builder.ExcelReaderBuilder;
+import com.alibaba.excel.read.builder.ExcelReaderSheetBuilder;
+import lombok.extern.slf4j.Slf4j;
+
+import java.io.InputStream;
+import java.util.List;
+
+@Slf4j
+public class ExcelUtils {
+
+    public static <T> List<T> getExcelModelData(final InputStream inputStream, Class<T> clazz) {
+        if (null == inputStream) {
+            throw new NullPointerException("the inputStream is null!");
+        }
+        ExcelReaderBuilder result = EasyExcel.read(inputStream, clazz, null);
+        ExcelReaderSheetBuilder sheet1 = result.sheet();
+        List<T> resultData = sheet1.doReadSync();
+        return resultData;
+    }
+}
diff --git a/ycl-common/src/main/java/com/ycl/vo/store/StoreInfoExcelVo.java b/ycl-common/src/main/java/com/ycl/vo/store/StoreInfoExcelVo.java
new file mode 100644
index 0000000..7f1d346
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/vo/store/StoreInfoExcelVo.java
@@ -0,0 +1,41 @@
+package com.ycl.vo.store;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.math.BigDecimal;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class StoreInfoExcelVo {
+
+    @ExcelProperty("濮撳悕")
+    @ApiModelProperty("濮撳悕")
+    private String owner;
+
+    @ExcelProperty("闂ㄥ簵鍚嶇О")
+    @ApiModelProperty("闂ㄥ簵鍚嶇О")
+    private String storename;
+
+    @ExcelProperty("鑱旂郴鏂瑰紡")
+    @ApiModelProperty("鑱旂郴鏂瑰紡")
+    private String contact;
+
+    @ExcelProperty("鍦板潃")
+    @ApiModelProperty("鍦板潃")
+    private String storeaddr;
+
+    @ExcelProperty("韬唤璇佷俊鎭�")
+    @ApiModelProperty("韬唤璇佷俊鎭�")
+    private String idcardinfo;
+
+    @ExcelProperty("闂ㄥ簵绉垎")
+    @ApiModelProperty("闂ㄥ簵绉垎")
+    private BigDecimal storescore;
+}
diff --git a/ycl-common/src/main/java/com/ycl/vo/store/UmsStoreInfoParam.java b/ycl-common/src/main/java/com/ycl/vo/store/UmsStoreInfoParam.java
new file mode 100644
index 0000000..9e924d0
--- /dev/null
+++ b/ycl-common/src/main/java/com/ycl/vo/store/UmsStoreInfoParam.java
@@ -0,0 +1,44 @@
+package com.ycl.vo.store;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import javax.validation.constraints.NotBlank;
+import javax.validation.constraints.Pattern;
+import java.math.BigDecimal;
+
+@Data
+@NoArgsConstructor
+@AllArgsConstructor
+@Builder
+public class UmsStoreInfoParam {
+
+    @NotBlank(message = "闂ㄥ簵鎵�鏈変汉涓嶈兘涓虹┖")
+    @ApiModelProperty("濮撳悕")
+    private String owner;
+
+    @NotBlank(message = "闂ㄥ簵鍚嶇О涓嶈兘涓虹┖")
+    @ApiModelProperty("闂ㄥ簵鍚嶇О")
+    private String storename;
+
+    @NotBlank(message = "鎵嬫満鍙蜂笉鑳戒负绌�")
+    @Pattern(regexp = "^[1][3,4,5,6,7,8,9][0-9]{9}$", message = "鎵嬫満鍙锋牸寮忔湁璇�")
+    @ApiModelProperty("鑱旂郴鏂瑰紡")
+    private String contact;
+
+    @ApiModelProperty("鍦板潃")
+    private String storeaddr;
+
+    @ApiModelProperty("鐓х墖")
+    private String storephoto;
+
+    @NotBlank(message = "韬唤璇佷俊鎭笉鑳戒负绌�")
+    @ApiModelProperty("韬唤璇佷俊鎭�")
+    private String idcardinfo;
+
+    @ApiModelProperty("闂ㄥ簵绉垎")
+    private BigDecimal storescore;
+}
diff --git a/ycl-common/src/main/resources/mapper/store/UmsStoreInfoMapper.xml b/ycl-common/src/main/resources/mapper/store/UmsStoreInfoMapper.xml
new file mode 100644
index 0000000..64cc4a4
--- /dev/null
+++ b/ycl-common/src/main/resources/mapper/store/UmsStoreInfoMapper.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.ycl.mapper.store.UmsStoreInfoMapper">
+
+    <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 -->
+    <resultMap id="BaseResultMap" type="com.ycl.entity.store.UmsStoreInfo">
+        <id column="id" property="id"/>
+        <result column="owner" property="owner"/>
+        <result column="storename" property="storename"/>
+        <result column="contact" property="contact"/>
+        <result column="storeaddr" property="storeaddr"/>
+        <result column="storephoto" property="storephoto"/>
+        <result column="idcardinfo" property="idcardinfo"/>
+        <result column="storescore" property="storescore"/>
+    </resultMap>
+
+</mapper>
diff --git a/ycl-platform/src/main/java/com/ycl/controller/store/UmsStoreInfoController.java b/ycl-platform/src/main/java/com/ycl/controller/store/UmsStoreInfoController.java
new file mode 100644
index 0000000..30bfe30
--- /dev/null
+++ b/ycl-platform/src/main/java/com/ycl/controller/store/UmsStoreInfoController.java
@@ -0,0 +1,115 @@
+package com.ycl.controller.store;
+
+
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ycl.api.CommonPage;
+import com.ycl.api.CommonResult;
+import com.ycl.dto.UmsStoreInfoParam;
+import com.ycl.entity.store.UmsStoreInfo;
+import com.ycl.enums.common.ResultCode;
+import com.ycl.exception.ApiException;
+import com.ycl.service.store.UmsStoreInfoService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.ByteArrayInputStream;
+import java.io.InputStream;
+
+/**
+ * <p>
+ * 鍓嶇鎺у埗鍣�
+ * </p>
+ *
+ * @author lyq
+ * @since 2022-09-08
+ */
+@RestController
+@RequestMapping("/store/storeinfo")
+@Api(tags = "闂ㄥ簵绠$悊")
+public class UmsStoreInfoController {
+    private UmsStoreInfoService umsStoreInfoService;
+
+    @Autowired
+    public void setUmsStoreInfoService(UmsStoreInfoService umsStoreInfoService) {
+        this.umsStoreInfoService = umsStoreInfoService;
+    }
+
+    @ApiOperation("鏍规嵁闂ㄥ簵鍚嶇О鍒嗛〉鑾峰彇闂ㄥ簵鍒楄〃鍒楄〃")
+    @RequestMapping(value = "/list", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<CommonPage<UmsStoreInfo>> list(@RequestParam(value = "keyword", required = false) String keyword,
+                                                       @RequestParam(value = "pageSize", defaultValue = "5") Integer pageSize,
+                                                       @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum) {
+        Page<UmsStoreInfo> storeInfoPage = umsStoreInfoService.list(keyword, pageSize, pageNum);
+        return CommonResult.success(CommonPage.restPage(storeInfoPage));
+    }
+
+    @ApiOperation("鏍规嵁id鑾峰彇闂ㄥ簵淇℃伅")
+    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult<UmsStoreInfo> getItem(@PathVariable Long id) {
+        UmsStoreInfo umsStoreInfo = umsStoreInfoService.getById(id);
+        return CommonResult.success(umsStoreInfo);
+    }
+
+    @ApiOperation(value = "娣诲姞闂ㄥ簵淇℃伅")
+    @RequestMapping(value = "/add", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult<UmsStoreInfo> add(@Validated @RequestBody UmsStoreInfoParam umsStoreInfoParam) {
+        UmsStoreInfo umsStoreInfo = UmsStoreInfo.builder()
+                .owner(umsStoreInfoParam.getOwner())
+                .storename(umsStoreInfoParam.getStorename())
+                .contact(umsStoreInfoParam.getContact())
+                .storeaddr(umsStoreInfoParam.getStoreaddr())
+                .storephoto(umsStoreInfoParam.getStorephoto())
+                .idcardinfo(umsStoreInfoParam.getIdcardinfo())
+                .storescore(umsStoreInfoParam.getStorescore()).build();
+        boolean success = umsStoreInfoService.save(umsStoreInfo);
+        if (success) {
+            return CommonResult.success(null);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "鏍规嵁id鍒犻櫎闂ㄥ簵淇℃伅")
+    @RequestMapping(value = "/delete/{id}", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult delete(@PathVariable Long id) {
+        boolean success = umsStoreInfoService.removeById(id);
+        if (success) {
+            return CommonResult.success(null);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "淇敼闂ㄥ簵淇℃伅")
+    @RequestMapping(value = "/update", method = RequestMethod.GET)
+    @ResponseBody
+    public CommonResult update(@RequestBody UmsStoreInfo umsStoreInfo) {
+        boolean success = umsStoreInfoService.updateById(umsStoreInfo);
+        if (success) {
+            return CommonResult.success(null);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+
+    @ApiOperation(value = "鏍规嵁excel妯℃澘鎵归噺瀵煎叆闂ㄥ簵淇℃伅")
+    @RequestMapping(value = "/add/excel", method = RequestMethod.POST)
+    @ResponseBody
+    public CommonResult addByExcel(MultipartFile file) {
+        boolean success = umsStoreInfoService.addByExcel(file);
+        if (success) {
+            return CommonResult.success(null);
+        } else {
+            return CommonResult.failed();
+        }
+    }
+}
+

--
Gitblit v1.8.0