浏览代码

no message

FengChaoYu 9 月之前
父节点
当前提交
11aae1b233

+ 3 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/es/ESGoodsVO.java

@@ -88,6 +88,9 @@ public class ESGoodsVO {
     @ApiModelProperty(value = "备注")
     private String remark;
 
+    @ApiModelProperty(value = "微信昵称")
+    private String userNickName;
+
     @ApiModelProperty(value = "发布人")
     private String createBy;
 

+ 13 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/admin/AdminWebsitController.java

@@ -1,5 +1,6 @@
 package com.gree.mall.manager.controller.admin;
 
+import com.gree.mall.manager.bean.ExcelData;
 import com.gree.mall.manager.bean.admin.AdminWebsitNewBean;
 import com.gree.mall.manager.bean.admin.AdminWebsitTree;
 import com.gree.mall.manager.exception.RemoteServiceException;
@@ -8,6 +9,7 @@ import com.gree.mall.manager.logic.admin.AdminWebsitLogic;
 import com.gree.mall.manager.plus.entity.AdminWebsit;
 import com.gree.mall.manager.plus.entity.AdminWebsitPayConfig;
 import com.gree.mall.manager.plus.entity.AdminZone;
+import com.gree.mall.manager.utils.excel.ExcelUtils;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import io.swagger.annotations.ApiParam;
@@ -18,6 +20,7 @@ import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 
 @Slf4j
@@ -117,4 +120,14 @@ public class AdminWebsitController {
         adminWebsitLogic.importData(file);
         return ResponseHelper.success();
     }
+
+    @GetMapping("/export")
+    @ApiOperation(value = "网点管理-导出")
+    public void export(
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        ExcelData excelData = adminWebsitLogic.exportData();
+        ExcelUtils.exportExcel(request, response, "网点管理列表.xlsx", excelData);
+    }
 }

+ 128 - 4
mall-server-api/src/main/java/com/gree/mall/manager/logic/admin/AdminWebsitLogic.java

@@ -3,6 +3,7 @@ package com.gree.mall.manager.logic.admin;
 import cn.hutool.core.collection.CollectionUtil;
 import com.alibaba.excel.util.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
+import com.gree.mall.manager.bean.ExcelData;
 import com.gree.mall.manager.bean.admin.AdminUserCom;
 import com.gree.mall.manager.bean.admin.AdminWebsitNewBean;
 import com.gree.mall.manager.bean.admin.AdminWebsitTree;
@@ -25,10 +26,8 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.annotation.Resource;
 import javax.servlet.http.HttpServletRequest;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Objects;
-import java.util.Optional;
+import java.util.*;
+import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Slf4j
@@ -585,10 +584,135 @@ public class AdminWebsitLogic {
 
             if (CollectionUtil.isNotEmpty(adminWebsitList)) {
                 adminWebsitService.saveBatch(adminWebsitList);
+                for (AdminWebsit websit : adminWebsitList) {
+                    reloadJoinCode(websit.getCompanyWechatId(), websit.getJoinCode());
+
+                    // 初始化辅材配件默认仓
+                    initMaterialStorage(adminUser, websit);
+
+
+                    AdminDept adminDept = adminDeptService.lambdaQuery().eq(AdminDept::getCompanyWechatId, websit.getCompanyWechatId())
+                            .eq(AdminDept::getPId, "1").last("limit 1").one();
+                    AdminDeptWebsit adminDeptWebsit = new AdminDeptWebsit();
+                    adminDeptWebsit.setAdminDeptId(adminDept.getAdminDeptId());
+                    adminDeptWebsit.setWebsitId(websit.getWebsitId());
+                    adminDeptWebsit.setWebsitName(websit.getName());
+                    adminDeptWebsit.setDeptName(adminDept.getDeptName());
+                    adminDeptWebsit.insert();
+                }
+
                 if (CollectionUtil.isNotEmpty(payConfigList)) {
                     adminWebsitPayConfigService.saveBatch(payConfigList);
                 }
             }
         }
     }
+
+    public ExcelData exportData() {
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        List<List<Object>> rows = new ArrayList<>();
+
+        String companyId = "";
+        String companyName = "";
+        if (Objects.nonNull(adminUser.getAdminCompanyWechat())) {
+            companyId = adminUser.getAdminCompanyWechat().getCompanyWechatId();
+            companyName = adminUser.getAdminCompanyWechat().getCompanyName();
+        }
+
+        ExcelData excelData = new ExcelData();
+
+        final List<AdminWebsit> websitList = adminWebsitService.lambdaQuery()
+                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(companyId), AdminWebsit::getCompanyWechatId, companyId)
+                .eq(AdminWebsit::getType, AdminWebsitTypeEnum.C.getKey())
+                .in(CollectionUtil.isNotEmpty(adminUser.getAdminWebsitIds()), AdminWebsit::getWebsitId, adminUser.getAdminWebsitIds())
+                .list();
+
+        List<String> titleList = new ArrayList<>();
+        titleList.add("网点名称");
+        titleList.add("联系人");
+        titleList.add("详细地址");
+        titleList.add("电子支付商户名称");
+        titleList.add("状态");
+        titleList.add("通联支付开关");
+
+        if (CollectionUtil.isEmpty(websitList)) {
+            excelData.setTitles(titleList);
+            excelData.setRows(rows);
+            return excelData;
+        }
+
+        final List<AdminWebsitPayConfig> payConfigList = adminWebsitPayConfigService.lambdaQuery()
+                .in(AdminWebsitPayConfig::getWebsitId, websitList.stream()
+                        .map(AdminWebsit::getWebsitId)
+                        .collect(Collectors.toList()))
+                .list();
+
+        final List<AdminCompanyWechatPayConfig> wechatPayConfigs = adminCompanyWechatPayConfigService.lambdaQuery()
+                .eq(org.apache.commons.lang3.StringUtils.isNotBlank(companyId), AdminCompanyWechatPayConfig::getCompanyWechatId, companyId)
+                .list();
+
+        final Map<String, AdminCompanyWechatPayConfig> wechatPayConfigMap = wechatPayConfigs.stream()
+                .collect(Collectors.toMap(AdminCompanyWechatPayConfig::getId, Function.identity()));
+
+        final Map<String, List<AdminWebsitPayConfig>> itemMap = payConfigList.stream()
+                .collect(Collectors.groupingBy(AdminWebsitPayConfig::getWebsitId));
+
+        // 计算出最多行配置数量
+        int configCount = 0;
+        for (Map.Entry<String, List<AdminWebsitPayConfig>> entry : itemMap.entrySet()) {
+            if (entry.getValue().size() > configCount) {
+                configCount = entry.getValue().size();
+            }
+        }
+
+        for (int i = 0; i < configCount; i++) {
+            titleList.add("通联商户名称" + (i+1));
+            titleList.add("通联集团号" + (i+1));
+            titleList.add("类别" + (i+1));
+            titleList.add("通联商户号" + (i+1));
+            titleList.add("通联商户appid" + (i+1));
+            titleList.add("状态" + (i+1));
+        }
+
+        int requireRowSize = titleList.size();
+
+        for (AdminWebsit websit : websitList) {
+            List<Object> row = new ArrayList<>();
+
+            final AdminCompanyWechatPayConfig wechatPayConfig = wechatPayConfigMap.get(websit.getPayWorkerCodeId());
+            row.add(websit.getName());
+            row.add(websit.getLinkName());
+            row.add(websit.getAddress());
+            row.add(Objects.nonNull(wechatPayConfig) ? wechatPayConfig.getPayMerchantName() : "无");
+            row.add(websit.getStatus() ? "启用" : "禁用");
+            row.add(websit.getIsUseAllinpay() ? "开启" : "关闭");
+
+            final List<AdminWebsitPayConfig> items = itemMap.get(websit.getWebsitId());
+            if (CollectionUtil.isNotEmpty(items)) {
+                for (AdminWebsitPayConfig item : items) {
+                    row.add(item.getName());
+                    row.add(item.getOrgId());
+                    row.add(item.getType().equals(WebsitGoodsTypeEnum.M.getKey()) ? WebsitGoodsTypeEnum.M.getRemark() : WebsitGoodsTypeEnum.P.getRemark());
+                    row.add(item.getMchNo());
+                    row.add(item.getAppid());
+                    row.add(item.getStatus() ? "开启" : "关闭");
+                }
+            }
+
+            if (row.size() != requireRowSize) {
+                int needRowSize = requireRowSize - row.size();
+                if (needRowSize > 0) {
+                    for (int i = 0; i < needRowSize; i++) {
+                        row.add("");
+                    }
+                }
+            }
+
+            rows.add(row);
+        }
+
+        excelData.setTitles(titleList);
+        excelData.setRows(rows);
+        return excelData;
+    }
 }

二进制
mall-server-api/src/main/resources/template/网点管理导入模板.xlsx