springcloud_k8s_panzhihuazhihuishequ/common/pom.xml
@@ -26,6 +26,7 @@ <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <version>1.18.24</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/HomeController.java
@@ -42,6 +42,7 @@ private final ISystemUserService systemUserService; private final IPartyMemberService partyMemberService; private final RedisUtils redisUtils; private final IdentityInformationService identityInformationService; @ApiOperation("获取banner列表") @GetMapping("/banner-list") @@ -117,86 +118,12 @@ @ApiOperation("获取身份信息") public R<IdentityInformationVO> getIdentityInfo() { LoginUserInfoVO loginUserInfo = getLoginUserInfo(); // 获取党员信息 PartyMember partyMember = partyMemberService.getOne(new LambdaQueryWrapper<PartyMember>() .eq(PartyMember::getPhone, loginUserInfo.getPhone()) .eq(PartyMember::getDelFlag, 0)); // 获取管理员信息 SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(getLoginUserInfo().getPhone()).orElse(null); // 获取身份 Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfo.getPhone()); // 获取提示内容是否确认 Integer isConfirm = (Integer) redisUtils.get("confirmContent:" + loginUserInfo.getPhone()); List<PermissionsVO> permissions = new ArrayList<>(); IdentityInformationVO identityInformationVO = new IdentityInformationVO(); identityInformationVO.setIsConfirmContent(isConfirm !=null && isConfirm == 1); if (partyMember != null) { identityInformationVO.setIsFrozen(partyMember.getFreezeStatus() == 1); } if (systemUser != null) { identityInformationVO.setIsFrozen(systemUser.getStatus() == 2); } if (identity == null && systemUser != null) { identityInformationVO.setIdentity(2); redisUtils.set("identity:" + loginUserInfo.getPhone(), 2); }else if (identity == null && partyMember != null){ identityInformationVO.setIdentity(1); redisUtils.set("identity:" + loginUserInfo.getPhone(), 1); } else { identityInformationVO.setIdentity(identity); } if (identityInformationVO.getIdentity() != null){ if (identityInformationVO.getIdentity() == 1){ identityInformationVO.setIsFrozen(partyMember !=null && partyMember.getFreezeStatus() == 1); }else if (identityInformationVO.getIdentity() == 2){ identityInformationVO.setIsFrozen(systemUser != null &&systemUser.getStatus() == 2); } }else { identityInformationVO.setIsFrozen(false); } identityInformationVO.setIsPartymember(partyMember != null && partyMember.getAuditStatus().equals(1)); identityInformationVO.setIsConfirm(partyMember != null && partyMember.getIsConfirm() == 1); identityInformationVO.setAuditStatus(partyMember == null ? null : partyMember.getAuditStatus()); if (partyMember != null) { PermissionsVO partyMemberPermissions = new PermissionsVO(); partyMemberPermissions.setIdentity(1); partyMemberPermissions.setName(String.format("%s%s", partyMember.getCommunity(), "党员")); partyMemberPermissions.setIsFrozen(partyMember.getFreezeStatus() == 1); permissions.add(partyMemberPermissions); } if (systemUser != null) { Integer accountLevel = systemUser.getAccountLevel(); String districts = systemUser.getDistricts(); String street = systemUser.getStreet(); String community = systemUser.getCommunity(); PermissionsVO adminPermissions = new PermissionsVO(); adminPermissions.setIdentity(2); adminPermissions.setIsFrozen(systemUser.getStatus() == 2); if (accountLevel == 1){ adminPermissions.setName(String.format("%s%s%s%s%s", "攀枝花市",districts, street, community, "管理员")); }if (accountLevel == 2) { adminPermissions.setName(String.format("%s%s%s%s", districts, street, community, "管理员")); } else if (accountLevel == 3) { adminPermissions.setIdentity(2); adminPermissions.setName(String.format("%s%s%s", street, community, "管理员")); } else if (accountLevel == 4) { adminPermissions.setName(String.format("%s%s", community, "管理员")); adminPermissions.setIdentity(2); } permissions.add(adminPermissions); } identityInformationVO.setPermissions(permissions); IdentityInformationVO identityInformationVO = identityInformationService.getIdentityInformationVO(loginUserInfo); return R.ok(identityInformationVO); } /** * 切换身份 */ springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/controller/PartyMemberController.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.panzhihua.common.controller.BaseController; import com.panzhihua.common.exceptions.ServiceException; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.R; import com.panzhihua.sangeshenbian.model.entity.PartyMember; @@ -40,6 +41,12 @@ @ApiOperation(value = "党员申请") @PostMapping("/apply") public R<?> apply(@Valid @RequestBody PartyMemberApplicationRequest dto) { int count = partyMemberService.count(new LambdaQueryWrapper<PartyMember>() .eq(PartyMember::getPhone, getLoginUserInfo().getPhone()) .eq(PartyMember::getDelFlag, 0)); if (count > 0){ return R.fail("您已提交过申请,请勿重复提交"); } partyMemberService.applyForMembership(dto, getLoginUserInfo()); return R.ok(); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/ISystemUserService.java
@@ -2,9 +2,11 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.IService; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO; import com.panzhihua.sangeshenbian.warpper.SystemUserList; import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; @@ -65,4 +67,5 @@ * @return */ List<RegionVO> getRegionTree(SystemUserVo loginUserInfo); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/IdentityInformationService.java
New file @@ -0,0 +1,14 @@ package com.panzhihua.sangeshenbian.service; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO; public interface IdentityInformationService { /** * 获取身份信息 * @param loginUserInfo 登录用户信息 * @return 身份信息 */ IdentityInformationVO getIdentityInformationVO(LoginUserInfoVO loginUserInfo); } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/ComplaintServiceImpl.java
@@ -2,6 +2,7 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollectionUtil; import cn.idev.excel.EasyExcel; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; @@ -37,7 +38,9 @@ import com.panzhihua.sangeshenbian.model.vo.ComplaintVO; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.utils.FileUtil; import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO; import com.panzhihua.sangeshenbian.warpper.MgtComplaintQuery; import com.panzhihua.sangeshenbian.warpper.PermissionsVO; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.context.annotation.Lazy; @@ -82,6 +85,7 @@ private final IComplaintCommentService complaintCommentService; private final HttpServletResponse response; private final IPartyMemberService partyMemberService; private final IdentityInformationService identityInformationService; private final RedisUtils redisUtils; @Override @@ -110,8 +114,10 @@ complaint.setSerialNumber(serialNumber); Optional<SystemUser> systemUserOpt = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()); Integer accountLevel = 5; //获取当前身份,1=党员,2=管理员 Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfoVO.getPhone()); //获取当前身份 IdentityInformationVO identityInformationVO = identityInformationService.getIdentityInformationVO(loginUserInfoVO); //1=党员,2=管理员 Integer identity = identityInformationVO.getIdentity(); if (systemUserOpt.isPresent() && null != identity && identity == 2) { SystemUser systemUser = systemUserOpt.get(); accountLevel = systemUser.getAccountLevel(); @@ -270,7 +276,7 @@ } } //有审核数据,且正在办理 if(null != one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2)){ if(null != one && (vo.getStatus() == 0 || vo.getStatus() == 1 || vo.getStatus() == 2 || vo.getStatus() == 6)){ //区分是上报数据还是下派数据 if(one.getAuditType() == 2){ //判断当前审核状态 @@ -286,48 +292,6 @@ } } }else{ //审核状态为待审核,需要授权审核按钮 if((one.getAuditStatus() == 5 || one.getAuditStatus() == 7) && systemUserByPhone.isPresent()){ SystemUser systemUser = systemUserByPhone.get(); String targetId = ""; Integer accountLevel = 5; //获取当前身份,1=党员,2=管理员 Integer identity = (Integer) redisUtils.get("identity:" + systemUser.getPhone()); if(2 == identity){ accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 targetId = "510400"; break; case 2: //区县级 targetId = systemUser.getDistrictsCode(); break; case 3: //街道 targetId = systemUser.getStreetId().toString(); break; case 4: //社区 targetId = systemUser.getCommunityId().toString(); break; case 5: //党员 PartyMember partyMember = partyMemberService.getPartyMemberByPhone(systemUser.getPhone()); targetId = partyMember.getId().toString(); break; } ComplaintAuditRecord one2 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) .eq(ComplaintAuditRecord::getLatestFlag, 1)); Integer isAdmin = systemUserByPhone.get().getIsAdmin(); if(one2.getReportType().equals(accountLevel) && one2.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){ vo.setAuditButtonStatus(0); } } } //没有审核通过,则需要查询上一条审核通过的数据,如果没有则给到添加诉求的人 ComplaintAuditRecord one1 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) .eq(ComplaintAuditRecord::getAuditType, 2).eq(ComplaintAuditRecord::getAuditStatus, 1).orderByDesc(ComplaintAuditRecord::getSort).last(" limit 0, 1")); @@ -416,6 +380,50 @@ } } //有审核数据,且为审核中 //审核状态为待审核,需要授权审核按钮 if(null != one && (vo.getStatus() == 5 || vo.getStatus() == 7) && systemUserByPhone.isPresent()){ SystemUser systemUser = systemUserByPhone.get(); String targetId = ""; Integer accountLevel = 5; //获取当前身份,1=党员,2=管理员 Integer identity = (Integer) redisUtils.get("identity:" + systemUser.getPhone()); if(2 == identity){ accountLevel = systemUser.getAccountLevel(); switch (accountLevel) { case 1: //市级 targetId = "510400"; break; case 2: //区县级 targetId = systemUser.getDistrictsCode(); break; case 3: //街道 targetId = systemUser.getStreetId().toString(); break; case 4: //社区 targetId = systemUser.getCommunityId().toString(); break; case 5: //党员 PartyMember partyMember = partyMemberService.getPartyMemberByPhone(systemUser.getPhone()); targetId = partyMember.getId().toString(); break; } ComplaintAuditRecord one2 = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, vo.getId()) .eq(ComplaintAuditRecord::getLatestFlag, 1)); Integer isAdmin = systemUserByPhone.get().getIsAdmin(); if(one2.getReportType().equals(accountLevel) && one2.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){ vo.setAuditButtonStatus(0); } } } //状态为已办结,判断评价按钮 int count = complaintCommentService.count(new LambdaQueryWrapper<ComplaintComment>().eq(ComplaintComment::getComplaintId, vo.getId()).eq(ComplaintComment::getDelFlag, 0)); if(vo.getStatus() == 3 && 0 == count){ @@ -489,16 +497,16 @@ List<ComplaintProgress> list = complaintProgressService.lambdaQuery().eq(ComplaintProgress::getComplaintId, id) .orderByAsc(ComplaintProgress::getCreateTime).list(); detail.setComplaintProgresses(list); detail.setAuditButtonStatus(1); detail.setEvaluateButtonStatus(1); if((detail.getStatus() == 5 || detail.getStatus() == 7) && systemUserByPhone.isPresent()){ ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, detail.getId()) .eq(ComplaintAuditRecord::getLatestFlag, 1)); Integer isAdmin = systemUserByPhone.get().getIsAdmin(); if(one.getReportType().equals(accountLevel) && one.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){ detail.setAuditButtonStatus(0); } } // detail.setAuditButtonStatus(1); // detail.setEvaluateButtonStatus(1); // if((detail.getStatus() == 5 || detail.getStatus() == 7) && systemUserByPhone.isPresent()){ // ComplaintAuditRecord one = complaintAuditRecordService.getOne(new LambdaQueryWrapper<ComplaintAuditRecord>().eq(ComplaintAuditRecord::getComplaintId, detail.getId()) // .eq(ComplaintAuditRecord::getLatestFlag, 1)); // Integer isAdmin = systemUserByPhone.get().getIsAdmin(); // if(one.getReportType().equals(accountLevel) && one.getSuperiorId().toString().equals(targetId) && 1 == isAdmin){ // detail.setAuditButtonStatus(0); // } // } buttonPermission(detail, systemUserByPhone); @@ -577,14 +585,17 @@ .ne(SystemUser::getStatus, 3) .last("LIMIT 1")); IdentityInformationVO identityInformationVO = identityInformationService.getIdentityInformationVO(loginUserInfoVO); if (CollectionUtil.isEmpty(identityInformationVO.getPermissions())) { throw new ServiceException("请先完成认证"); } Long superiorId; int reportType; if (adminUser == null) { superiorId = loginUserInfoVO.getCommunityId(); if (Objects.isNull(superiorId)) { throw new ServiceException("上报失败,请绑定社区"); } reportType = ReportTypeEnum.COMMUNITY.getCode(); PartyMember partyMember = partyMemberService.getPartyMemberByPhone(phone); superiorId = partyMember.getCommunityId(); reportType = 4; } else { int accountLevel = adminUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { @@ -745,16 +756,24 @@ @Override @Transactional(rollbackFor = Exception.class) public void saveDelay(ComplaintDelayDTO dto, LoginUserInfoVO loginUserInfoVO) { IdentityInformationVO identityInformationVO = identityInformationService.getIdentityInformationVO(loginUserInfoVO); List<PermissionsVO> permissions = identityInformationVO.getPermissions(); if (CollectionUtil.isEmpty(permissions)){ throw new ServiceException("请先完成认证"); } SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfoVO.getPhone()).orElse(null); Long superiorId; int reportType; if (systemUser == null) { superiorId = loginUserInfoVO.getCommunityId(); if (identityInformationVO.getIdentity() == 1) { PartyMember partyMember = partyMemberService.getPartyMemberByPhone(loginUserInfoVO.getPhone()); superiorId = partyMember.getCommunityId(); if (Objects.isNull(superiorId)) { throw new ServiceException("延期申请失败,请绑定社区"); } reportType = ReportTypeEnum.COMMUNITY.getCode(); } else { } else if (identityInformationVO.getIdentity() == 2){ int accountLevel = systemUser.getAccountLevel(); // 改为基本类型 if (accountLevel == 1) { throw new ServiceException("市级账号,无法延期申请!"); @@ -774,6 +793,8 @@ // 处理未预期的账号等级 throw new ServiceException("未知的账号等级"); } }else { throw new ServiceException("无权申请"); } // 清除最新记录 springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/IdentityInformationServiceImpl.java
New file @@ -0,0 +1,106 @@ package com.panzhihua.sangeshenbian.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.redis.RedisUtils; import com.panzhihua.sangeshenbian.model.entity.PartyMember; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.service.IPartyMemberService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.service.IdentityInformationService; import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO; import com.panzhihua.sangeshenbian.warpper.PermissionsVO; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.List; @RequiredArgsConstructor @Service public class IdentityInformationServiceImpl implements IdentityInformationService { private final ISystemUserService systemUserService; private final IPartyMemberService partyMemberService; private final RedisUtils redisUtils; @Override public IdentityInformationVO getIdentityInformationVO(LoginUserInfoVO loginUserInfo) { // 获取党员信息 PartyMember partyMember = partyMemberService.getOne(new LambdaQueryWrapper<PartyMember>() .eq(PartyMember::getPhone, loginUserInfo.getPhone()) .eq(PartyMember::getDelFlag, 0)); // 获取管理员信息 SystemUser systemUser = systemUserService.getSystemUserAdminByPhone(loginUserInfo.getPhone()).orElse(null); // 获取身份 Integer identity = (Integer) redisUtils.get("identity:" + loginUserInfo.getPhone()); List<PermissionsVO> permissions = new ArrayList<>(); IdentityInformationVO identityInformationVO = new IdentityInformationVO(); // 获取提示内容是否确认 Integer isConfirm = (Integer) redisUtils.get("confirmContent:" + loginUserInfo.getPhone()); identityInformationVO.setIsConfirmContent(isConfirm !=null && isConfirm == 1); if (partyMember != null) { identityInformationVO.setIsFrozen(partyMember.getFreezeStatus() == 1); } if (systemUser != null) { identityInformationVO.setIsFrozen(systemUser.getStatus() == 2); } if (identity == null && systemUser != null) { identityInformationVO.setIdentity(2); redisUtils.set("identity:" + loginUserInfo.getPhone(), 2); }else if (identity == null && partyMember != null){ identityInformationVO.setIdentity(1); redisUtils.set("identity:" + loginUserInfo.getPhone(), 1); } else { identityInformationVO.setIdentity(identity); } if (identityInformationVO.getIdentity() != null){ if (identityInformationVO.getIdentity() == 1){ identityInformationVO.setIsFrozen(partyMember !=null && partyMember.getFreezeStatus() == 1); }else if (identityInformationVO.getIdentity() == 2){ identityInformationVO.setIsFrozen(systemUser != null &&systemUser.getStatus() == 2); } }else { identityInformationVO.setIsFrozen(false); } identityInformationVO.setIsPartymember(partyMember != null && partyMember.getAuditStatus().equals(1)); identityInformationVO.setIsConfirm(partyMember != null && partyMember.getIsConfirm() == 1); identityInformationVO.setAuditStatus(partyMember == null ? null : partyMember.getAuditStatus()); if (partyMember != null) { PermissionsVO partyMemberPermissions = new PermissionsVO(); partyMemberPermissions.setIdentity(1); partyMemberPermissions.setName(String.format("%s%s", partyMember.getCommunity(), "党员")); partyMemberPermissions.setIsFrozen(partyMember.getFreezeStatus() == 1); permissions.add(partyMemberPermissions); } if (systemUser != null) { Integer accountLevel = systemUser.getAccountLevel(); String districts = systemUser.getDistricts(); String street = systemUser.getStreet(); String community = systemUser.getCommunity(); PermissionsVO adminPermissions = new PermissionsVO(); adminPermissions.setIdentity(2); adminPermissions.setIsFrozen(systemUser.getStatus() == 2); if (accountLevel == 1){ adminPermissions.setName(String.format("%s%s%s%s%s", "攀枝花市",districts, street, community, "管理员")); }if (accountLevel == 2) { adminPermissions.setName(String.format("%s%s%s%s", districts, street, community, "管理员")); } else if (accountLevel == 3) { adminPermissions.setIdentity(2); adminPermissions.setName(String.format("%s%s%s", street, community, "管理员")); } else if (accountLevel == 4) { adminPermissions.setName(String.format("%s%s", community, "管理员")); adminPermissions.setIdentity(2); } permissions.add(adminPermissions); } identityInformationVO.setPermissions(permissions); return identityInformationVO; } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/java/com/panzhihua/sangeshenbian/service/impl/SystemUserServiceImpl.java
@@ -1,19 +1,24 @@ package com.panzhihua.sangeshenbian.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.beust.jcommander.internal.Lists; import com.panzhihua.common.model.vos.LoginUserInfoVO; import com.panzhihua.common.model.vos.sangeshenbian.SystemUserVo; import com.panzhihua.common.utlis.StringUtils; import com.panzhihua.sangeshenbian.dao.SystemUserMapper; import com.panzhihua.sangeshenbian.model.entity.ComAct; import com.panzhihua.sangeshenbian.model.entity.PartyMember; import com.panzhihua.sangeshenbian.model.entity.SystemUser; import com.panzhihua.sangeshenbian.model.vo.RegionVO; import com.panzhihua.sangeshenbian.service.IBcRegionService; import com.panzhihua.sangeshenbian.service.IComActService; import com.panzhihua.sangeshenbian.service.IComStreetService; import com.panzhihua.sangeshenbian.service.ISystemUserService; import com.panzhihua.sangeshenbian.warpper.IdentityInformationVO; import com.panzhihua.sangeshenbian.warpper.PermissionsVO; import com.panzhihua.sangeshenbian.warpper.SystemUserList; import com.panzhihua.sangeshenbian.warpper.SystemUserListVo; import lombok.RequiredArgsConstructor; @@ -148,4 +153,5 @@ return regionTree; } } springcloud_k8s_panzhihuazhihuishequ/service_sangeshenbian/src/main/resources/mapper/ComplaintMapper.xml
@@ -384,7 +384,7 @@ scar.department_name, scar.department_id FROM sgsb_complaint sc INNER JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 LEFT JOIN sgsb_complaint_audit_record scar ON scar.complaint_id = sc.id and scar.latest_flag = 1 ) AS t <where> <if test="1 == loginUserInfo.accountLevel">