From 5fcab4f1d5c3c65ecef6970a3479bae6d479ff99 Mon Sep 17 00:00:00 2001 From: mitao <2763622819@qq.com> Date: 星期四, 23 五月 2024 18:43:19 +0800 Subject: [PATCH] bug修复 --- meiya-admin/src/main/java/com/sinata/modular/member/controller/MemUserSalesController.java | 221 ++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 152 insertions(+), 69 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 09e0afd..1472182 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 @@ -28,8 +28,10 @@ import com.sinata.modular.member.model.MemUserRelation; import com.sinata.modular.member.service.IMemUserRelationService; import com.sinata.modular.member.service.IMemUserService; +import com.sinata.modular.system.model.Role; import com.sinata.modular.system.model.SystemNotice; import com.sinata.modular.system.model.TCityRegion; +import com.sinata.modular.system.service.IRoleService; import com.sinata.modular.system.service.ISystemNoticeService; import com.sinata.modular.system.service.ITCityRegionService; import lombok.extern.slf4j.Slf4j; @@ -73,12 +75,20 @@ @Autowired private ISystemNoticeService systemNoticeService; + @Autowired + private IRoleService roleService; + /** * 跳转到会员用户信息首页 */ @RequestMapping("") public String index(Model model) { - return PREFIX + "memUserSales.html"; + boolean admin = ShiroKit.isAdmin(); + if (admin) { + return PREFIX + "memUserSales.html"; + } else { + return PREFIX + "memUserSalesAuth.html"; + } } @ResponseBody @@ -132,12 +142,18 @@ try { // 【城市管理员】数据查询 ShiroUser shiroUser = ShiroKit.getUser(); - if (shiroUser.getRoleList().contains(EnumCityRole.PROVINCE_ROLE.index)) { - // 省级城市管理员 - wrapper.like("o.city_code", shiroUser.getCityCode().substring(0, 2), SqlLike.RIGHT); - } else if (shiroUser.getRoleList().contains(EnumCityRole.CITY_ROLE.index)) { + List<Integer> roleList = shiroUser.getRoleList(); + List<Integer> cityRoleList = roleService.selectList( + new EntityWrapper<Role>().in("id", roleList)).stream().map(Role::getCityRole) + .collect( + Collectors.toList()); + if (cityRoleList.contains(EnumCityRole.CITY_ROLE.index)) { // 市级城市管理员 wrapper.like("o.city_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); } } catch (Exception e) { e.printStackTrace(); @@ -178,7 +194,7 @@ // 封装数据 for (Map<String, Object> map : list) { map.put("cityCode", - cityRegionService.getProvinceCityCountyNameByAll(cityAll, Convert.toStr(map.get("city_code"))).stream() + cityRegionService.getProvinceCityCountyNameByAll(cityAll, Convert.toStr(map.get("agent_county_code"))).stream() .map(TCityRegion::getName) .collect(Collectors.joining("-")) ); @@ -221,13 +237,11 @@ // 用户等级 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) { + if (parentV4V5User[0] != null) { map.put("v4ShowId", parentV4V5User[0].getShowId()); map.put("v4Team", parentV4V5User[0].getRealName()); } @@ -259,65 +273,117 @@ @ResponseBody @RequestMapping(value = "/export") public void export(String beginTime, String endTime, String nickName, String phone, String showId, Integer isLock, Integer isLeaveOffice, Integer memberGradeId, HttpServletResponse response) { + boolean admin = ShiroKit.isAdmin(); List<Map<String, Object>> list = this.wrapperList(null, beginTime, endTime, nickName, phone, showId, isLock, isLeaveOffice, memberGradeId); // 表格数据【封装】 List<List<Object>> dataList = new ArrayList<>(); - - // 头部列【封装】 - List<Object> shellList = new ArrayList<>(); - shellList.add("工号"); - shellList.add("提交时间"); - shellList.add("推荐人工号"); - shellList.add("推荐人"); - shellList.add("推荐人所在城市"); - shellList.add("姓名"); - shellList.add("性别"); - shellList.add("生日"); - shellList.add("联系电话"); - shellList.add("证件类型"); - shellList.add("证件号码"); - shellList.add("银行卡号"); - shellList.add("品行分"); - shellList.add("审核状态"); - shellList.add("佣金等级"); - shellList.add("积分"); - shellList.add("入司时间"); - shellList.add("状态"); - shellList.add("城市合伙人工号"); - shellList.add("城市合伙人团队"); - shellList.add("市场总监工号"); - shellList.add("市场总监团队"); - dataList.add(shellList); - - // 详细数据列【封装】 - for (Map<String, Object> map : list) { - shellList = new ArrayList<>(); - shellList.add(map.get("show_id")); - shellList.add(map.get("apply_time")); - shellList.add(map.get("equityUserShowId")); - shellList.add(map.get("equityUserRealName")); - shellList.add(map.get("equityUserCityCode")); - shellList.add(map.get("real_name")); - shellList.add(map.get("sex")); - shellList.add(map.get("birthday")); - shellList.add(map.get("phone")); - shellList.add(Convert.toInt(map.get("card_type")) == 0 ? "身份证" : "护照"); - shellList.add(map.get("id_card")); - shellList.add(map.get("bank_number")); - shellList.add(map.get("credit_score")); - shellList.add(EnumAuditState.getMarkByIndex(Convert.toInt(map.get("audit_state")))); - shellList.add(EnumMemberGrade.getAliasByIndex(Convert.toInt(map.get("member_grade_id")))); - shellList.add(map.get("integral")); - shellList.add(map.get("audit_time")); - Integer isLeaveOfficeNum = Convert.toInt(map.get("is_leave_office")); - shellList.add(isLeaveOfficeNum == 0 ? "在职" : isLeaveOfficeNum == 1 ? "离职" : "-"); - shellList.add(map.get("v4ShowId")); - shellList.add(map.get("v4Team")); - shellList.add(map.get("v5ShowId")); - shellList.add(map.get("v5Team")); + if (admin) { + // 头部列【封装】 + List<Object> shellList = new ArrayList<>(); + shellList.add("工号"); + shellList.add("提交时间"); + shellList.add("推荐人工号"); + shellList.add("推荐人"); + shellList.add("推荐人所在城市"); + shellList.add("姓名"); + shellList.add("性别"); + shellList.add("生日"); + shellList.add("联系电话"); + shellList.add("证件类型"); + shellList.add("证件号码"); + shellList.add("银行卡号"); + shellList.add("品行分"); + shellList.add("审核状态"); + shellList.add("佣金等级"); + shellList.add("积分"); + shellList.add("入司时间"); + shellList.add("状态"); + shellList.add("城市合伙人工号"); + shellList.add("城市合伙人团队"); + shellList.add("市场总监工号"); + shellList.add("市场总监团队"); dataList.add(shellList); + + // 详细数据列【封装】 + for (Map<String, Object> map : list) { + shellList = new ArrayList<>(); + shellList.add(map.get("show_id")); + shellList.add(map.get("apply_time")); + shellList.add(map.get("equityUserShowId")); + shellList.add(map.get("equityUserRealName")); + shellList.add(map.get("equityUserCityCode")); + shellList.add(map.get("real_name")); + shellList.add(map.get("sex")); + shellList.add(map.get("birthday")); + shellList.add(map.get("phone")); + shellList.add(Convert.toInt(map.get("card_type")) == 0 ? "身份证" : "护照"); + shellList.add(map.get("id_card")); + shellList.add(map.get("bank_number")); + shellList.add(map.get("credit_score")); + shellList.add(EnumAuditState.getMarkByIndex(Convert.toInt(map.get("audit_state")))); + shellList.add(EnumMemberGrade.getAliasByIndex(Convert.toInt(map.get("member_grade_id")))); + shellList.add(map.get("integral")); + shellList.add(map.get("audit_time")); + Integer isLeaveOfficeNum = Convert.toInt(map.get("is_leave_office")); + shellList.add(isLeaveOfficeNum == 0 ? "在职" : isLeaveOfficeNum == 1 ? "离职" : "-"); + shellList.add(map.get("v4ShowId")); + shellList.add(map.get("v4Team")); + shellList.add(map.get("v5ShowId")); + shellList.add(map.get("v5Team")); + dataList.add(shellList); + } + } else { + // 头部列【封装】 + List<Object> shellList = new ArrayList<>(); + shellList.add("工号"); + shellList.add("提交时间"); + shellList.add("推荐人工号"); + shellList.add("推荐人"); + shellList.add("推荐人所在城市"); + shellList.add("姓名"); + shellList.add("性别"); + shellList.add("生日"); + shellList.add("证件类型"); + shellList.add("品行分"); + shellList.add("审核状态"); + shellList.add("佣金等级"); + shellList.add("积分"); + shellList.add("入司时间"); + shellList.add("状态"); + shellList.add("城市合伙人工号"); + shellList.add("城市合伙人团队"); + shellList.add("市场总监工号"); + shellList.add("市场总监团队"); + dataList.add(shellList); + + // 详细数据列【封装】 + for (Map<String, Object> map : list) { + shellList = new ArrayList<>(); + shellList.add(map.get("show_id")); + shellList.add(map.get("apply_time")); + shellList.add(map.get("equityUserShowId")); + shellList.add(map.get("equityUserRealName")); + shellList.add(map.get("equityUserCityCode")); + shellList.add(map.get("real_name")); + shellList.add(map.get("sex")); + shellList.add(map.get("birthday")); + shellList.add(Convert.toInt(map.get("card_type")) == 0 ? "身份证" : "护照"); + shellList.add(map.get("credit_score")); + shellList.add(EnumAuditState.getMarkByIndex(Convert.toInt(map.get("audit_state")))); + shellList.add(EnumMemberGrade.getAliasByIndex(Convert.toInt(map.get("member_grade_id")))); + shellList.add(map.get("integral")); + shellList.add(map.get("audit_time")); + Integer isLeaveOfficeNum = Convert.toInt(map.get("is_leave_office")); + shellList.add(isLeaveOfficeNum == 0 ? "在职" : isLeaveOfficeNum == 1 ? "离职" : "-"); + shellList.add(map.get("v4ShowId")); + shellList.add(map.get("v4Team")); + shellList.add(map.get("v5ShowId")); + shellList.add(map.get("v5Team")); + dataList.add(shellList); + } } + try { String title = "营销员"; // 调用工具类进行导出 @@ -387,18 +453,21 @@ Integer gradeId = 0; // 判断用是否为普通会员、VIP会员,可直接升级黄金营销员、城市合伙人 if (memUser.getMemberGradeId() == EnumMemberGrade.G_1.index || memUser.getMemberGradeId() == EnumMemberGrade.G_2.index) { + //2024年4月改:购买钻石套餐成为城市合伙人的时间节点:次日、次月、次季度(和人员职级晋升维持设置 一致) if (order.getOrderType() == EnumMallGoodsGroupType.GROUP_DIAMOND.index) { - gradeId = EnumMemberGrade.G_4.index; + gradeId = EnumMemberGrade.G_3.index; + setSql +=", upgrade_status = 0"; } else if (order.getOrderType() == EnumMallGoodsGroupType.GROUP_GOLD.index) { gradeId = EnumMemberGrade.G_3.index; + setSql +=", upgrade_status = 1"; } } // 判断用是否为黄金营销员,可升级城市合伙人 - else if (memUser.getMemberGradeId() == EnumMemberGrade.G_3.index) { - if (order.getOrderType() == EnumMallGoodsGroupType.GROUP_DIAMOND.index) { - gradeId = EnumMemberGrade.G_4.index; - } - } +// else if (memUser.getMemberGradeId() == EnumMemberGrade.G_3.index) { +// if (order.getOrderType() == EnumMallGoodsGroupType.GROUP_DIAMOND.index) { +// gradeId = EnumMemberGrade.G_4.index; +// } +// } // 其他(城市合伙人、市场总监)不处理 // 升级、重置品行(处理降级的要重置) @@ -478,6 +547,8 @@ */ @RequestMapping(value = "/detail/{memUserId}") public Object detail(@PathVariable("memUserId") Integer memUserId, Model model) { + boolean admin = ShiroKit.isAdmin(); + model.addAttribute("isAdmin", admin); // 个人信息 MemUser memUser = memUserService.selectById(memUserId); if (memUser != null) { @@ -666,6 +737,18 @@ @RequestMapping(value = "/editUserLevel") public Object editUserLevel(Integer userId, String memberGradeId) { String whereSql = "member_grade_id = " + memberGradeId; + MemUser memUser = memUserService.selectById(userId); + if (Objects.nonNull(memUser)) { + String equityOrderNo = memUser.getEquityOrderNo(); + MallOrder order = mallOrderService.selectOne(new EntityWrapper<MallOrder>() + .eq("order_no", equityOrderNo)); + if (Objects.nonNull(order)) { + if (order.getOrderType() == 2 && memUser.getMemberGradeId() == 3) { + whereSql += ", upgrade_status = 1"; + } + } + } + boolean flag = memUserService.updateForSet(whereSql, new EntityWrapper<MemUser>().eq("id", userId)); return returnByFlag(flag, null); } -- Gitblit v1.7.1