From 022a7ff7abf82cd2546e18071ade5228b4e2339f Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期一, 08 七月 2024 14:07:49 +0800 Subject: [PATCH] 管理后台营销员列表职级展示问题修改 --- meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java | 180 ++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 145 insertions(+), 35 deletions(-) diff --git a/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java b/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java index e1419dc..346bfdd 100644 --- a/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java +++ b/meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java @@ -8,7 +8,11 @@ import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.baomidou.mybatisplus.mapper.Wrapper; import com.baomidou.mybatisplus.plugins.Page; -import com.sinata.common.enums.*; +import com.sinata.common.enums.EnumAuditState; +import com.sinata.common.enums.EnumCityRole; +import com.sinata.common.enums.EnumIsDelete; +import com.sinata.common.enums.EnumIsSystemNotice; +import com.sinata.common.enums.EnumMemberGrade; import com.sinata.common.enums.mall.EnumMallGoodsGroupType; import com.sinata.common.enums.mall.EnumMallOrderState; import com.sinata.core.base.controller.BaseController; @@ -21,6 +25,7 @@ import com.sinata.core.shiro.ShiroUser; import com.sinata.core.util.Convert; import com.sinata.core.util.ExcelExportUtil; +import com.sinata.core.util.ExcelImportUtil; import com.sinata.core.util.SqlUtil; import com.sinata.modular.mall.model.MallOrder; import com.sinata.modular.mall.service.IMallOrderService; @@ -34,6 +39,16 @@ import com.sinata.modular.system.service.IRoleService; import com.sinata.modular.system.service.ISystemNoticeService; import com.sinata.modular.system.service.ITCityRegionService; +import java.io.IOException; +import java.math.BigDecimal; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; +import javax.servlet.http.HttpServletResponse; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -41,12 +56,9 @@ import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; - -import javax.servlet.http.HttpServletResponse; -import java.math.BigDecimal; -import java.util.*; -import java.util.stream.Collectors; +import org.springframework.web.multipart.MultipartFile; /** * 会员用户信息控制器 @@ -149,11 +161,11 @@ Collectors.toList()); if (cityRoleList.contains(EnumCityRole.CITY_ROLE.index)) { // 市级城市管理员 - wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 4), SqlLike.RIGHT); + wrapper.like("o.agent_county_code", shiroUser.getCityCode().substring(0, 4), SqlLike.RIGHT); } else if (cityRoleList.contains(EnumCityRole.PROVINCE_ROLE.index)) { // 省级城市管理员 - wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 2), SqlLike.RIGHT); + wrapper.like("o.agent_county_code", shiroUser.getCityCode().substring(0, 2), SqlLike.RIGHT); } } catch (Exception e) { e.printStackTrace(); @@ -190,15 +202,20 @@ List<MemUser> v4UserList = memUserService.getUserListByGrade(EnumMemberGrade.G_4.index); List<MemUser> v5UserList = memUserService.getUserListByGrade(EnumMemberGrade.G_5.index); - + List<MemUserRelation> userRelationList = memUserRelationService.selectList(null); + Map<Integer, Integer> userRelationMap = userRelationList.stream().collect(Collectors + .toMap(u -> u.getId(), p -> p.getParentId())); // 封装数据 - for (Map<String, Object> map : list) { - map.put("cityCode", - cityRegionService.getProvinceCityCountyNameByAll(cityAll, Convert.toStr(map.get("city_code"))).stream() + /* for (Map<String, Object> map : list) { + map.put("cityCode", + cityRegionService.getProvinceCityCountyNameByAll(cityAll, + Convert.toStr(map.get("agent_county_code"))).stream() .map(TCityRegion::getName) .collect(Collectors.joining("-")) ); - map.put("audit_time", DateUtil.format(DateUtil.parse(Convert.toStr(map.get("audit_time"))), "yyyy-MM-dd")); + map.put("audit_time", + DateUtil.format(DateUtil.parse(Convert.toStr(map.get("audit_time"))), + "yyyy-MM-dd")); // // 权益人信息 // MemUser equityUser = equityUserUserList.stream().filter(o -> { @@ -230,34 +247,30 @@ }).findFirst().orElse(new MemUser()); map.put("equityUserShowId", parentUser.getShowId()); map.put("equityUserRealName", parentUser.getRealName()); - map.put("equityUserCityCode", cityRegionService.getProvinceCityCountyNameByAll(cityAll, parentUser.getCityCode()).stream() + map.put("equityUserCityCode", cityRegionService.getProvinceCityCountyNameByAll(cityAll, + parentUser.getCityCode()).stream() .map(TCityRegion::getName) .collect(Collectors.joining("-"))); // 用户等级 - Integer userMemberGradeId = map.get("member_grade_id") == null ? null : (Integer) map.get("member_grade_id"); + Integer userMemberGradeId = map.get("member_grade_id") == null ? null + : (Integer) map.get("member_grade_id"); // 查询上级城市合伙人、市场总监信息 - MemUser[] parentV4V5User = memUserRelationService.getParentV4V5ByRelationPath( - v4UserList, - v5UserList, + MemUser[] parentV4V5User = memUserRelationService.getParentV4V5ByRelationPath2( map.get("relation_path") == null ? null : map.get("relation_path").toString(), userMemberGradeId ); - if (parentV4V5User[0] != null) { - map.put("v4ShowId", parentV4V5User[0].getShowId()); - map.put("v4Team", parentV4V5User[0].getRealName()); - } else if (parentV4V5User[1] != null) { - map.put("v4ShowId", parentV4V5User[1].getShowId()); - map.put("v4Team", parentV4V5User[1].getRealName()); - map.put("v5ShowId", parentV4V5User[1].getShowId()); - map.put("v5Team", parentV4V5User[1].getRealName()); - } - if (parentV4V5User[1] != null) { - map.put("v5ShowId", parentV4V5User[1].getShowId()); - map.put("v5Team", parentV4V5User[1].getRealName()); - } - // 本人是城市合伙人或市场总监时,城市合伙人工号/团队、市场总监工号/团队,显示本人的信息 + if (parentV4V5User[0] != null) { + map.put("v4ShowId", parentV4V5User[0].getShowId()); + map.put("v4Team", parentV4V5User[0].getRealName()); + } + if (parentV4V5User[1] != null) { + map.put("v5ShowId", parentV4V5User[1].getShowId()); + map.put("v5Team", parentV4V5User[1].getRealName()); + } + + // 本人是城市合伙人或市场总监时,城市合伙人工号/团队、市场总监工号/团队,显示本人的信息 if (userMemberGradeId == EnumMemberGrade.G_4.index) { map.put("v4ShowId", map.get("show_id")); map.put("v4Team", map.get("real_name")); @@ -269,8 +282,54 @@ map.put("v5ShowId", map.get("show_id")); map.put("v5Team", map.get("real_name")); } - } - return list; + }*/ + List<Map<String, Object>> result = list.stream().peek(map -> { + map.put("cityCode", + cityRegionService.getProvinceCityCountyNameByAll(cityAll, + Convert.toStr(map.get("agent_county_code"))).stream() + .map(TCityRegion::getName) + .collect(Collectors.joining("-")) + ); + map.put("audit_time", + DateUtil.format(DateUtil.parse(Convert.toStr(map.get("audit_time"))), + "yyyy-MM-dd")); + // 推荐人信息 + Integer[] parentUserId = new Integer[]{0}; + for (MemUserRelation ur : parentUserRelationList) { + if (ur.getId().equals(Convert.toInt(map.get("id")))) { + parentUserId[0] = ur.getParentId(); + break; + } + } + MemUser parentUser = parentUserList.stream().filter(o -> { + if (o.getId().equals(parentUserId[0])) { + return true; + } + return false; + }).findFirst().orElse(new MemUser()); + map.put("equityUserShowId", parentUser.getShowId()); + map.put("equityUserRealName", parentUser.getRealName()); + map.put("equityUserCityCode", cityRegionService.getProvinceCityCountyNameByAll(cityAll, + parentUser.getCityCode()).stream() + .map(TCityRegion::getName) + .collect(Collectors.joining("-"))); + + // 用户等级 + Integer userMemberGradeId = map.get("member_grade_id") == null ? null + : (Integer) map.get("member_grade_id"); + // 查询上级城市合伙人、市场总监信息 + MemUser[] parentV4V5User = memUserRelationService.getParentV4V5ByRelationPath3( + Integer.valueOf(map.get("id").toString()), userRelationMap); + if (parentV4V5User[0] != null) { + map.put("v4ShowId", parentV4V5User[0].getShowId()); + map.put("v4Team", parentV4V5User[0].getRealName()); + } + if (parentV4V5User[1] != null) { + map.put("v5ShowId", parentV4V5User[1].getShowId()); + map.put("v5Team", parentV4V5User[1].getRealName()); + } + }).collect(Collectors.toList()); + return result; } /** @@ -496,6 +555,7 @@ + ", agent_province_code = " + SqlUtil.addSingleQuotes(province) + ", agent_city_code = " + SqlUtil.addSingleQuotes(city) + ", agent_county_code = " + SqlUtil.addSingleQuotes(county); + log.info("用户:{}修改了营销员城市地址",memUser.getRealName()); } } @@ -805,7 +865,7 @@ + ", agent_province_code = " + SqlUtil.addSingleQuotes(province) + ", agent_city_code = " + SqlUtil.addSingleQuotes(city) + ", agent_county_code = " + SqlUtil.addSingleQuotes(county); - + log.info("用户:{}修改了营销员城市地址",userIdList.toString()); boolean flag = memUserService.updateForSet(whereSql, new EntityWrapper<MemUser>().in("id", userIdList)); return returnByFlag(flag, null); } @@ -835,5 +895,55 @@ return new ErrorTip(500, StrUtil.isNotBlank(msg) ? msg : "操作失败!"); } } + @Permission + @ResponseBody + @BussinessLog(value = "营销人员管理-下载导入模板") + @RequestMapping(value = "/downloadTemplate",method = RequestMethod.POST) + public Object downloadTemplate(HttpServletResponse response) { + // // 表格数据【封装】 + // List<List<Object>> dataList = new ArrayList<>(); + // // 头部列【封装】 + // List<Object> shellList = new ArrayList<>(); + // shellList.add("姓名"); + // shellList.add("手机号"); + // shellList.add("性别"); + // shellList.add("生日 例:2024-06-06"); + // shellList.add("证件类型 0身份证 1护照"); + // shellList.add("身份证号"); + // shellList.add("银行名称"); + // shellList.add("银行卡号"); + // shellList.add("推荐人手机号"); + // dataList.add(shellList); + // try { + // ExcelExportUtil.easySheet(URLEncoder.encode("营销人员导入模板", "UTF-8"),"sheet1",dataList,response); + // } catch (IOException e) { + // throw new RuntimeException(e); + // } + String url = "https://meitianmeiya.obs.cn-southwest-2.myhuaweicloud.com/excel/%E8%90%A5%E9%94%80%E4%BA%BA%E5%91%98%E5%AF%BC%E5%85%A5%E6%A8%A1%E6%9D%BF.xls"; + return new SuccessTip(200, url); + } + @Permission + @ResponseBody + @BussinessLog(value = "营销人员管理-导入") + @RequestMapping(value = "/importSalesUser",method = RequestMethod.POST) + public Object importUsers(MultipartFile file, HttpServletResponse response) { + String s = file.getOriginalFilename(); + if (s == null || !("xls".equals(s.substring(s.lastIndexOf(".") + 1)) || "xlsx".equals(s.substring(s.lastIndexOf(".") + 1)))) { + return new ErrorTip(500,"只能上传.xls或.xlsx格式的文件!"); + } + List<Map<String, String>> mapList = null; + try { + mapList = ExcelImportUtil.getMapList(file, + new String[]{"姓名", "手机号", "性别","生日 例:2024-06-06","证件类型 0身份证 1护照", "身份证号","银行名称","银行卡号","推荐人手机号","职级 3黄金营销员 4城市合伙人 5市场总监"}); + } catch (IOException e) { + throw new RuntimeException(e); + } + String str = memUserService.importSalesUser(mapList, response); + if (str == null) { + return SUCCESS_TIP; + } else { + return new SuccessTip(201, str); + } + } } -- Gitblit v1.7.1