diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java index e9828f104f..dbd4c2f6d8 100644 --- a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/exception/EpmetErrorCode.java @@ -37,8 +37,14 @@ public enum EpmetErrorCode { MOBILE_GET_CODE_ERROR(8104,"获取验证码失败"), MESSAGE_SMS_SEND_ERROR(8105, "短信发送失败"), NOT_DEL_GRID(8106,"该网格存在工作人员,不允许删除"), + ORG_IS_NOT_NULL(8107,"党组织关系不能为空"), - CANNOT_DELETE_PARTYB_RANCH(8108,"当前支部存在党员,不允许删除"), + CANNOT_DELETE_PARTY_BRANCH(8108,"当前支部存在党员,不允许删除"), + IDCARDNO_ALREADY_EXITS(8109,"系统已存在相同身份证号码,请重新输入"), + IDCARDNO_ERROR(8110,"身份证号格式错误,请重新输入"), + CANNOT_DELETE_PARTY_MEMBER(8111,"该用户已注册党员,不允许删除"), + + CANNOT_AUDIT_WARM(8201, "请完善居民信息"), NOT_DEL_AGENCY(8202, "该机关存在下级机关,不允许删除"), NOT_DEL_AGENCY_PER(8205, "该机关存在工作人员,不允许删除"), diff --git a/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java new file mode 100644 index 0000000000..cc93d9f3a8 --- /dev/null +++ b/epmet-commons/epmet-commons-tools/src/main/java/com/epmet/commons/tools/validator/IdCardNoValidatorUtils.java @@ -0,0 +1,19 @@ +package com.epmet.commons.tools.validator; + +/** + * 描述一下 + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/18 9:59 + */ +public class IdCardNoValidatorUtils { + //判断身份证号是否正确 + public static boolean checkIsIdCardNo(String idCardNo){ + return true; + } + + //根据身份证号判断性别 + public static String getGender(String idCard) { + return "1"; + } +} diff --git a/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/DeleteBranchFormDTO.java b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/PartyBranchIdFormDTO.java similarity index 76% rename from epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/DeleteBranchFormDTO.java rename to epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/PartyBranchIdFormDTO.java index 0e3e5f5ea2..5009842a2c 100644 --- a/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/DeleteBranchFormDTO.java +++ b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/PartyBranchIdFormDTO.java @@ -6,15 +6,18 @@ import javax.validation.constraints.NotBlank; import java.io.Serializable; /** - * 描述一下 + * 党支部id * * @author yinzuomei@elink-cn.com * @date 2020/6/17 17:02 */ @Data -public class DeleteBranchFormDTO implements Serializable { +public class PartyBranchIdFormDTO implements Serializable { private static final long serialVersionUID = 5321430865413383354L; + /** + * 党支部id + */ @NotBlank(message = "党支部id不能为空") private String partyBranchId; } diff --git a/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/SaveOrUpdateParyMemberFormDTO.java b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/SaveOrUpdateParyMemberFormDTO.java new file mode 100644 index 0000000000..999cfd34b1 --- /dev/null +++ b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/form/SaveOrUpdateParyMemberFormDTO.java @@ -0,0 +1,42 @@ +package com.epmet.dto.form; + +import com.epmet.commons.tools.validator.group.CustomerClientShowGroup; +import lombok.Data; + +import javax.validation.constraints.NotBlank; +import java.io.Serializable; + +/** + * 新增、修改党员入参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/17 22:15 + */ +@Data +public class SaveOrUpdateParyMemberFormDTO implements Serializable { + private static final long serialVersionUID = -6896349967046364830L; + + public interface UpdatePatyMemberGroup extends CustomerClientShowGroup { + } + + public interface SavePatyMemberGroup extends CustomerClientShowGroup { + } + + public interface AddUserShowGroup extends CustomerClientShowGroup { + } + + @NotBlank(message = "党支部id不能为空", groups = {SavePatyMemberGroup.class}) + private String partyBranchId; + + @NotBlank(message = "姓名不能为空", groups = {AddUserShowGroup.class}) + private String name; + + @NotBlank(message = "手机号不能为空", groups = {AddUserShowGroup.class}) + private String idCard; + + @NotBlank(message = "身份证不能为空", groups = {AddUserShowGroup.class}) + private String mobile; + + @NotBlank(message = "党员id不能为空", groups = {UpdatePatyMemberGroup.class}) + private String partyMemberId; +} diff --git a/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyBranchInfoResultDTO.java b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyBranchInfoResultDTO.java new file mode 100644 index 0000000000..dad717fc22 --- /dev/null +++ b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyBranchInfoResultDTO.java @@ -0,0 +1,41 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 党支部详情信息返参 + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/17 21:45 + */ +@Data +public class PartyBranchInfoResultDTO implements Serializable { + private static final long serialVersionUID = 1184531127569286576L; + + /** + * 党支部id + */ + private String partyBranchId; + + /** + * 党支部名称 + */ + private String partyBranchName; + + /** + * 党支部概要 + */ + private String profile; + + /** + * 党支部所属网格名称 + */ + private String gridName; + + /** + * 党支部所属网格id + */ + private String gridId; +} diff --git a/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyMemberIdResultDTO.java b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyMemberIdResultDTO.java new file mode 100644 index 0000000000..09f2e6b1a9 --- /dev/null +++ b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyMemberIdResultDTO.java @@ -0,0 +1,17 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 党员id:添加党员后返参、修改党员后返参 + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/17 22:13 + */ +@Data +public class PartyMemberIdResultDTO implements Serializable { + private static final long serialVersionUID = 7467454908831748131L; + private String partyMemberId; +} diff --git a/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyMemberInfoResultDTO.java b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyMemberInfoResultDTO.java new file mode 100644 index 0000000000..7f812531c5 --- /dev/null +++ b/epmet-module/gov-grid/gov-grid-client/src/main/java/com/epmet/dto/result/PartyMemberInfoResultDTO.java @@ -0,0 +1,30 @@ +package com.epmet.dto.result; + +import lombok.Data; + +import java.io.Serializable; + +/** + * 党员列表返参DTO + * + * @author yinzuomei@elink-cn.com + * @date 2020/6/18 10:04 + */ +@Data +public class PartyMemberInfoResultDTO implements Serializable { + private static final long serialVersionUID = 627412197353847930L; + /** + * 党员id + */ + private String partyMemberId; + + /** + * 姓名 + */ + private String name; + + /** + * 性别1男2女0未知 + */ + private String gender; +} diff --git a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/PartyBranchManageController.java b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/PartyBranchManageController.java index edb06910f7..74fb00d27c 100644 --- a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/PartyBranchManageController.java +++ b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/controller/PartyBranchManageController.java @@ -2,12 +2,8 @@ package com.epmet.controller; import com.epmet.commons.tools.utils.Result; import com.epmet.commons.tools.validator.ValidatorUtils; -import com.epmet.dto.form.DeleteBranchFormDTO; -import com.epmet.dto.form.PartyBranchAddFormDTO; -import com.epmet.dto.form.PartyBranchEditFormDTO; -import com.epmet.dto.form.PartyBranchListFormDTO; -import com.epmet.dto.result.PartyBranchAddResultDTO; -import com.epmet.dto.result.PartyBranchListResultDTO; +import com.epmet.dto.form.*; +import com.epmet.dto.result.*; import com.epmet.service.PartyBranchManageService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.PostMapping; @@ -73,16 +69,76 @@ public class PartyBranchManageController { } /** - * @return com.epmet.commons.tools.utils.Result * @param formDTO + * @return com.epmet.commons.tools.utils.Result * @author yinzuomei * @description 删除党支部 * @Date 2020/6/17 18:23 **/ @PostMapping("delete") - public Result deleteBranch(@RequestBody DeleteBranchFormDTO formDTO) { + public Result deleteBranch(@RequestBody PartyBranchIdFormDTO formDTO) { ValidatorUtils.validateEntity(formDTO); - partyBranchManageService.deleteBranch(formDTO); + partyBranchManageService.deleteBranch(formDTO.getPartyBranchId()); return new Result(); } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 5、党支部详情信息查询 + * @Date 2020/6/17 21:49 + **/ + @PostMapping("info") + public Result queryPartyBranchInfo(@RequestBody PartyBranchIdFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO); + PartyBranchInfoResultDTO partyBranchInfoResultDTO = partyBranchManageService.queryPartyBranchInfo(formDTO.getPartyBranchId()); + return new Result().ok(partyBranchInfoResultDTO); + } + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @author yinzuomei + * @description 6、党员列表查询 + * @Date 2020/6/18 0:17 + **/ + @PostMapping("/partymember/list") + public Result> listPartyMember(@RequestBody PartyBranchIdFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + List list=partyBranchManageService.listPartyMember(formDTO.getPartyBranchId()); + return new Result>().ok(list); + } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 7、添加党员 + * @Date 2020/6/17 22:25 + **/ + @PostMapping("/partymember/add") + public Result addPartyMember(@RequestBody SaveOrUpdateParyMemberFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, SaveOrUpdateParyMemberFormDTO.AddUserShowGroup.class + , SaveOrUpdateParyMemberFormDTO.SavePatyMemberGroup.class); + PartyMemberIdResultDTO partyMemberIdResultDTO = new PartyMemberIdResultDTO(); + partyMemberIdResultDTO.setPartyMemberId(partyBranchManageService.addPartyMember(formDTO)); + return new Result().ok(partyMemberIdResultDTO); + } + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 8、编辑党员 + * @Date 2020/6/17 23:29 + **/ + @PostMapping("/partymember/edit") + public Result editPartyMember(@RequestBody SaveOrUpdateParyMemberFormDTO formDTO) { + ValidatorUtils.validateEntity(formDTO, SaveOrUpdateParyMemberFormDTO.AddUserShowGroup.class + , SaveOrUpdateParyMemberFormDTO.UpdatePatyMemberGroup.class); + PartyMemberIdResultDTO partyMemberIdResultDTO = new PartyMemberIdResultDTO(); + partyMemberIdResultDTO.setPartyMemberId(partyBranchManageService.editPartyMember(formDTO)); + return new Result().ok(partyMemberIdResultDTO); + } } diff --git a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/PartyBranchManageService.java b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/PartyBranchManageService.java index dae0c060d7..c9693eddb4 100644 --- a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/PartyBranchManageService.java +++ b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/PartyBranchManageService.java @@ -1,11 +1,13 @@ package com.epmet.service; -import com.epmet.dto.form.DeleteBranchFormDTO; import com.epmet.dto.form.PartyBranchAddFormDTO; import com.epmet.dto.form.PartyBranchEditFormDTO; import com.epmet.dto.form.PartyBranchListFormDTO; +import com.epmet.dto.form.SaveOrUpdateParyMemberFormDTO; import com.epmet.dto.result.PartyBranchAddResultDTO; +import com.epmet.dto.result.PartyBranchInfoResultDTO; import com.epmet.dto.result.PartyBranchListResultDTO; +import com.epmet.dto.result.PartyMemberInfoResultDTO; import java.util.List; @@ -45,10 +47,46 @@ public interface PartyBranchManageService { /** * @return void - * @param formDTO + * @param partyBranchId * @author yinzuomei * @description 删除党支部 * @Date 2020/6/17 17:04 **/ - void deleteBranch(DeleteBranchFormDTO formDTO); + void deleteBranch(String partyBranchId); + + /** + * @return com.epmet.dto.result.PartyBranchInfoResultDTO + * @param partyBranchId + * @author yinzuomei + * @description 5、党支部详情信息查询 + * @Date 2020/6/17 21:49 + **/ + PartyBranchInfoResultDTO queryPartyBranchInfo(String partyBranchId); + + /** + * @return java.util.List + * @param partyBranchId + * @author yinzuomei + * @description 党员列表查询 + * @Date 2020/6/18 10:06 + **/ + List listPartyMember(String partyBranchId); + + /** + * @return java.lang.String + * @param formDTO + * @author yinzuomei + * @description 7、添加党员 + * @Date 2020/6/17 22:26 + **/ + String addPartyMember(SaveOrUpdateParyMemberFormDTO formDTO); + + /** + * @return java.lang.String + * @param formDTO + * @author yinzuomei + * @description 8、编辑党员 + * @Date 2020/6/17 23:29 + **/ + String editPartyMember(SaveOrUpdateParyMemberFormDTO formDTO); } diff --git a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/PartyBranchManageServiceImpl.java b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/PartyBranchManageServiceImpl.java index fd6c6c4d66..ae2ea9469c 100644 --- a/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/PartyBranchManageServiceImpl.java +++ b/epmet-module/gov-grid/gov-grid-server/src/main/java/com/epmet/service/impl/PartyBranchManageServiceImpl.java @@ -7,11 +7,14 @@ import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.dto.CustomerPartyBranchDTO; import com.epmet.dto.form.*; -import com.epmet.dto.result.ListPartyBranchResultDTO; -import com.epmet.dto.result.PartyBranchAddResultDTO; -import com.epmet.dto.result.PartyBranchListResultDTO; +import com.epmet.dto.result.*; import com.epmet.feign.GovOrgOpenFeignClient; +import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; +import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import com.epmet.service.PartyBranchManageService; +import org.apache.commons.lang3.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -31,6 +34,8 @@ public class PartyBranchManageServiceImpl implements PartyBranchManageService { private Logger logger = LogManager.getLogger(PartyBranchManageServiceImpl.class); @Autowired private GovOrgOpenFeignClient govOrgOpenFeignClient; + @Autowired + private ResiPartyMemberOpenFeignClient resiPartyMemberOpenFeignClient; @Override public PartyBranchAddResultDTO addPartyBranch(PartyBranchAddFormDTO formDTO) { @@ -71,19 +76,108 @@ public class PartyBranchManageServiceImpl implements PartyBranchManageService { } @Override - public void deleteBranch(DeleteBranchFormDTO formDTO) { - Result customerPartyBranchDTOResult = govOrgOpenFeignClient.getPartyBranchById(formDTO.getPartyBranchId()); + public void deleteBranch(String partyBranchId) { + Result customerPartyBranchDTOResult = govOrgOpenFeignClient.getPartyBranchById(partyBranchId); if (!customerPartyBranchDTOResult.success()||null==customerPartyBranchDTOResult.getData()) { - logger.error(String.format("查询党支部信息失败入参:%s",JSON.toJSONString(formDTO))); + logger.error(String.format("查询党支部信息失败入参:partyBranchId=%s",partyBranchId)); return; }else{ if (null != customerPartyBranchDTOResult.getData() && customerPartyBranchDTOResult.getData().getTotalPartyMember() > 0) { - throw new RenException(EpmetErrorCode.CANNOT_DELETE_PARTYB_RANCH.getCode()); + throw new RenException(EpmetErrorCode.CANNOT_DELETE_PARTY_BRANCH.getCode()); } } - Result delteResult=govOrgOpenFeignClient.deletePartyBranchById(formDTO.getPartyBranchId()); + Result delteResult=govOrgOpenFeignClient.deletePartyBranchById(partyBranchId); if(!delteResult.success()){ - logger.error(String.format("删除党支部失败入参:%s",JSON.toJSONString(formDTO))); + logger.error(String.format("删除党支部失败入参:partyBranchId=%s",partyBranchId)); + } + } + + @Override + public PartyBranchInfoResultDTO queryPartyBranchInfo(String partyBranchId) { + PartyBranchInfoResultDTO partyBranchInfo = new PartyBranchInfoResultDTO(); + Result customerPartyBranchDTOResult = govOrgOpenFeignClient.getPartyBranchById(partyBranchId); + if (!customerPartyBranchDTOResult.success() || null == customerPartyBranchDTOResult.getData()) { + logger.error(String.format("党支部详情信息查询异常,partyBranchId=%s", partyBranchId)); + return partyBranchInfo; + } + partyBranchInfo.setPartyBranchId(partyBranchId); + partyBranchInfo.setPartyBranchName(customerPartyBranchDTOResult.getData().getPartyBranchName()); + partyBranchInfo.setProfile(customerPartyBranchDTOResult.getData().getProfile()); + partyBranchInfo.setGridId(customerPartyBranchDTOResult.getData().getGridId()); + Result gridInfoResult = govOrgOpenFeignClient.queryGridInfo(customerPartyBranchDTOResult.getData().getGridId()); + if (gridInfoResult.success() && null != gridInfoResult.getData() && StringUtils.isNotBlank(gridInfoResult.getData().getParentAgencyName())) { + partyBranchInfo.setGridName(String.format("%s-%s", gridInfoResult.getData().getParentAgencyName(), gridInfoResult.getData().getGridName())); + } else { + logger.error(String.format("查询网格基本信息失败,gridId=%s", customerPartyBranchDTOResult.getData().getGridId())); } + return partyBranchInfo; + } + + @Override + public List listPartyMember(String partyBranchId) { + Result> result = resiPartyMemberOpenFeignClient.listPartyMemberBaseInfo(partyBranchId); + if (result.success()) { + List list = ConvertUtils.sourceToTarget(result.getData(), PartyMemberInfoResultDTO.class); + return list; + } + logger.error("党员列表查询失败"); + return new ArrayList<>(); + } + + @Override + public String addPartyMember(SaveOrUpdateParyMemberFormDTO formDTO) { + //1、查询党支部信息 + Result customerPartyBranchResult = govOrgOpenFeignClient.getPartyBranchById(formDTO.getPartyBranchId()); + if (!customerPartyBranchResult.success() || null == customerPartyBranchResult.getData()) { + throw new RenException("党支部信息获取失败"); + } + //2、构造党员入参 + CustomerPartyBranchDTO customerPartyBranch = customerPartyBranchResult.getData(); + PartyMemberBaseInfoAddFormDTO partyMemberBaseInfoAddFormDTO = this.getPartyMemberBaseInfoAddFormDTO(formDTO, customerPartyBranch); + Result result = resiPartyMemberOpenFeignClient.addPartyMemberBaseInfo(partyMemberBaseInfoAddFormDTO); + //3、党支部总人数+1 + if (result.success() && StringUtils.isNotBlank(result.getData())) { + //党支部总人数+1 + customerPartyBranch.setTotalPartyMember(customerPartyBranch.getTotalPartyMember() + 1); + Result updatePartyBranchResult = govOrgOpenFeignClient.updatePartyBranch(customerPartyBranch); + if (updatePartyBranchResult.success()) { + logger.info(String.format("党支部(%s)总人数+1", formDTO.getPartyBranchId())); + } + } else { + logger.error("添加党员异常"); + throw new RenException(result.getCode()); + } + return result.getData(); + } + + @Override + public String editPartyMember(SaveOrUpdateParyMemberFormDTO formDTO) { + PartymemberBaseInfoDTO partymemberBaseInfoDTO = new PartymemberBaseInfoDTO(); + partymemberBaseInfoDTO.setIdCard(formDTO.getIdCard().trim()); + partymemberBaseInfoDTO.setName(formDTO.getName().trim()); + partymemberBaseInfoDTO.setMobile(formDTO.getMobile().trim()); + partymemberBaseInfoDTO.setId(formDTO.getPartyMemberId()); + Result updateResult = resiPartyMemberOpenFeignClient.update(partymemberBaseInfoDTO); + if (updateResult.success() && StringUtils.isNotBlank(updateResult.getData())) { + logger.info("修改党员信息成功"); + return updateResult.getData(); + }else{ + logger.error("修改党员信息失败"); + throw new RenException(updateResult.getCode()); + } + } + + private PartyMemberBaseInfoAddFormDTO getPartyMemberBaseInfoAddFormDTO(SaveOrUpdateParyMemberFormDTO formDTO, + CustomerPartyBranchDTO customerPartyBranchDTO) { + PartyMemberBaseInfoAddFormDTO partyMemberBaseInfoAddFormDTO=new PartyMemberBaseInfoAddFormDTO(); + partyMemberBaseInfoAddFormDTO.setBranchId(formDTO.getPartyBranchId()); + partyMemberBaseInfoAddFormDTO.setIdCard(formDTO.getIdCard().trim()); + partyMemberBaseInfoAddFormDTO.setMobile(formDTO.getMobile().trim()); + partyMemberBaseInfoAddFormDTO.setName(formDTO.getName().trim()); + + partyMemberBaseInfoAddFormDTO.setBranch(customerPartyBranchDTO.getPartyBranchName()); + partyMemberBaseInfoAddFormDTO.setOrganization(customerPartyBranchDTO.getAgencyName()); + partyMemberBaseInfoAddFormDTO.setCustomerId(customerPartyBranchDTO.getCustomerId()); + return partyMemberBaseInfoAddFormDTO; } } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerPartyBranchDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerPartyBranchDTO.java index 88f0afc598..960e01450e 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerPartyBranchDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/CustomerPartyBranchDTO.java @@ -17,9 +17,10 @@ package com.epmet.dto; +import lombok.Data; + import java.io.Serializable; import java.util.Date; -import lombok.Data; /** @@ -93,4 +94,13 @@ public class CustomerPartyBranchDTO implements Serializable { */ private Date updatedTime; + /** + * 网格所属机关id + */ + private String agencyId; + + /** + * 网格所属机关名字 + */ + private String agencyName; } \ No newline at end of file diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridInfoResultDTO.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridInfoResultDTO.java index fff7b43caf..83bf82bfbf 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridInfoResultDTO.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/dto/result/GridInfoResultDTO.java @@ -77,5 +77,15 @@ public class GridInfoResultDTO implements Serializable { * 省级组织名称 */ private String proviceName; + + /** + * 网格所属机关id + */ + private String parentAgencyId; + + /** + * 网格所属机关名称 + */ + private String parentAgencyName; } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java index db86b3548b..4d3c71959b 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/GovOrgOpenFeignClient.java @@ -6,6 +6,7 @@ import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerPartyBranchDTO; import com.epmet.dto.form.ListPartyBranchFormDTO; import com.epmet.dto.result.ArticleGridResultDTO; +import com.epmet.dto.result.GridInfoResultDTO; import com.epmet.dto.result.ListPartyBranchResultDTO; import com.epmet.dto.result.PublishAgencyListResultDTO; import com.epmet.feign.fallback.GovOrgOpenFeignClientFallback; @@ -110,4 +111,14 @@ public interface GovOrgOpenFeignClient { **/ @GetMapping(value = "gov/org/customerpartybranch/delete/{id}") Result deletePartyBranchById(@PathVariable("id") String partyBranchId); + + /** + * @param gridId + * @return com.epmet.commons.tools.utils.Result + * @Author yinzuomei + * @Description 根据网格id查询所属组织信息 + * @Date 2020/4/26 23:16 + **/ + @GetMapping("/gov/org/customergrid/getGridInfo/{gridId}") + Result queryGridInfo(@PathVariable("gridId") String gridId); } diff --git a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java index 2fffa2b13b..8de4fa49f9 100644 --- a/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java +++ b/epmet-module/gov-org/gov-org-client/src/main/java/com/epmet/feign/fallback/GovOrgOpenFeignClientFallback.java @@ -7,6 +7,7 @@ import com.epmet.dto.CustomerAgencyDTO; import com.epmet.dto.CustomerPartyBranchDTO; import com.epmet.dto.form.ListPartyBranchFormDTO; import com.epmet.dto.result.ArticleGridResultDTO; +import com.epmet.dto.result.GridInfoResultDTO; import com.epmet.dto.result.ListPartyBranchResultDTO; import com.epmet.dto.result.PublishAgencyListResultDTO; import com.epmet.feign.GovOrgOpenFeignClient; @@ -67,4 +68,8 @@ public class GovOrgOpenFeignClientFallback implements GovOrgOpenFeignClient { return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "deleteById", partyBranchId); } + @Override + public Result queryGridInfo(String gridId) { + return ModuleUtils.feignConError(ServiceConstant.GOV_ORG_SERVER, "getGridInfo",gridId); + } } diff --git a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java index bcc4ecf11c..00436e9b59 100644 --- a/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java +++ b/epmet-module/gov-org/gov-org-server/src/main/java/com/epmet/service/impl/CustomerGridServiceImpl.java @@ -27,7 +27,6 @@ import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.security.dto.TokenDto; import com.epmet.commons.tools.utils.ConvertUtils; -import com.epmet.commons.tools.utils.ModuleUtils; import com.epmet.commons.tools.utils.Result; import com.epmet.constant.CustomerGridConstant; import com.epmet.dao.CustomerAgencyDao; @@ -452,6 +451,8 @@ public class CustomerGridServiceImpl extends BaseServiceImpl page(Map params) { @@ -79,7 +87,18 @@ public class CustomerPartyBranchServiceImpl extends BaseServiceImpl update(@RequestBody PartymemberBaseInfoDTO dto); + + /** + * @param formDTO + * @return com.epmet.commons.tools.utils.Result + * @author yinzuomei + * @description 添加党员 + * @Date 2020/6/17 23:00 + **/ + @PostMapping(value = "/resi/partymember/partymemberbaseinfo/addPartyMemberBaseInfo", consumes = MediaType.APPLICATION_JSON_UTF8_VALUE) + Result addPartyMemberBaseInfo(@RequestBody PartyMemberBaseInfoAddFormDTO formDTO); + + /** + * @return com.epmet.commons.tools.utils.Result> + * @param partyBranchId + * @author yinzuomei + * @description 根据党支部id,查询党员列表 + * @Date 2020/6/18 10:12 + **/ + @GetMapping(value = "resi/partymember/partymemberbaseinfo/listPartyMemberBaseInfo/{partyBranchId}") + Result> listPartyMemberBaseInfo(@PathVariable("partyBranchId") String partyBranchId); } diff --git a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java index cdcbbcbc92..af3e36dd79 100644 --- a/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java +++ b/epmet-module/resi-partymember/resi-partymember-client/src/main/java/com/epmet/resi/partymember/feign/fallback/ResiPartyMemberOpenFeignClientFallback.java @@ -1,8 +1,16 @@ package com.epmet.resi.partymember.feign.fallback; +import com.epmet.commons.tools.constant.ServiceConstant; +import com.epmet.commons.tools.utils.ModuleUtils; +import com.epmet.commons.tools.utils.Result; +import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; import com.epmet.resi.partymember.feign.ResiPartyMemberOpenFeignClient; import org.springframework.stereotype.Component; +import java.util.List; + /** * 本服务对外开放的API,其他服务通过引用此client调用该服务 * @@ -11,4 +19,19 @@ import org.springframework.stereotype.Component; */ @Component public class ResiPartyMemberOpenFeignClientFallback implements ResiPartyMemberOpenFeignClient { + + @Override + public Result update(PartymemberBaseInfoDTO partymemberBaseInfoDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "update", partymemberBaseInfoDTO); + } + + @Override + public Result addPartyMemberBaseInfo(PartyMemberBaseInfoAddFormDTO formDTO) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "addPartyMemberBaseInfo", formDTO); + } + + @Override + public Result> listPartyMemberBaseInfo(String partyBranchId) { + return ModuleUtils.feignConError(ServiceConstant.RESI_PARTYMEMBER_SERVER, "listPartyMemberBaseInfo", partyBranchId); + } } diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberBaseInfoController.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberBaseInfoController.java index 438594f0b3..7595e5d6c5 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberBaseInfoController.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/controller/PartymemberBaseInfoController.java @@ -28,15 +28,16 @@ import com.epmet.commons.tools.validator.group.UpdateGroup; import com.epmet.modules.partymember.excel.PartymemberBaseInfoExcel; import com.epmet.modules.partymember.service.PartymemberBaseInfoService; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; import com.epmet.resi.partymember.dto.partymember.form.ReviewedParyMemberFormDTO; import com.epmet.resi.partymember.dto.partymember.form.UnderReviewParyMemberFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.ReviewedParyMemberResultDTO; import com.epmet.resi.partymember.dto.partymember.result.UnderReviewParyMemberResultDTO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; -import javax.validation.Valid; import java.util.List; import java.util.Map; @@ -121,4 +122,31 @@ public class PartymemberBaseInfoController { ValidatorUtils.validateEntity(formDTO); return partymemberBaseInfoService.audited(formDTO); } + + /** + * @return com.epmet.commons.tools.utils.Result + * @param formDTO + * @author yinzuomei + * @description 添加党员 + * @Date 2020/6/17 22:47 + **/ + @PostMapping("addPartyMemberBaseInfo") + public Result addPartyMemberBaseInfo(@RequestBody PartyMemberBaseInfoAddFormDTO formDTO){ + ValidatorUtils.validateEntity(formDTO); + String partyMemberId=partymemberBaseInfoService.addPartyMemberBaseInfo(formDTO); + return new Result().ok(partyMemberId); + } + + /** + * @param partyBranchId + * @return com.epmet.commons.tools.utils.Result> + * @author yinzuomei + * @description 根据党支部id, 查询党员列表 + * @Date 2020/6/18 10:18 + **/ + @GetMapping("listPartyMemberBaseInfo/{partyBranchId}") + public Result> listPartyMemberBaseInfo(@PathVariable("partyBranchId") String partyBranchId) { + return new Result>().ok(partymemberBaseInfoService.listPartyMemberBaseInfo(partyBranchId)); + } + } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java index d9213b6fda..b49ca7552f 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberAuthRecordDao.java @@ -29,5 +29,13 @@ import org.apache.ibatis.annotations.Mapper; */ @Mapper public interface PartymemberAuthRecordDao extends BaseDao { - + + /** + * @return com.epmet.modules.partymember.entity.PartymemberAuthRecordEntity + * @param partymemberBaseInfoId + * @author yinzuomei + * @description 根据党员库id,查询党员认证信息 + * @Date 2020/6/18 0:04 + **/ + PartymemberAuthRecordEntity selectByPartyMemberBaseInfoId(String partymemberBaseInfoId); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java index 6c614045fb..d4a8931124 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/dao/PartymemberBaseInfoDao.java @@ -25,6 +25,7 @@ import com.epmet.resi.partymember.dto.partymember.form.UnderReviewParyMemberForm import com.epmet.resi.partymember.dto.partymember.result.ReviewedParyMemberResultDTO; import com.epmet.resi.partymember.dto.partymember.result.UnderReviewParyMemberResultDTO; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -78,4 +79,22 @@ public interface PartymemberBaseInfoDao extends BaseDao selectListReviewedParyMember(ReviewedParyMemberFormDTO formDTO); + + /** + * @return com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity + * @param idCard + * @author yinzuomei + * @description 根据身份证号查询党员库 + * @Date 2020/6/17 23:49 + **/ + PartymemberBaseInfoEntity selectByIdCard(@Param("idCard") String idCard,@Param("id")String id); + + /** + * @return java.util.List + * @param partyBranchId + * @author yinzuomei + * @description 根据党支部id,查询党员列表 + * @Date 2020/6/18 11:05 + **/ + List selectListPartyMemberBaseInfo(String partyBranchId); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java index e317427c92..056833ac1c 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/PartymemberBaseInfoService.java @@ -24,8 +24,10 @@ import com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberConfirmAutoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; import com.epmet.resi.partymember.dto.partymember.form.ReviewedParyMemberFormDTO; import com.epmet.resi.partymember.dto.partymember.form.UnderReviewParyMemberFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.ReviewedParyMemberResultDTO; import com.epmet.resi.partymember.dto.partymember.result.UnderReviewParyMemberResultDTO; @@ -125,4 +127,22 @@ public interface PartymemberBaseInfoService extends BaseService> audited(ReviewedParyMemberFormDTO formDTO); + + /** + * @return java.lang.String + * @param formDTO + * @author yinzuomei + * @description 添加党员 + * @Date 2020/6/17 22:50 + **/ + String addPartyMemberBaseInfo(PartyMemberBaseInfoAddFormDTO formDTO); + + /** + * @return java.util.List + * @param partyBranchId + * @author yinzuomei + * @description 根据党支部id,查询党员列表 + * @Date 2020/6/18 10:17 + **/ + List listPartyMemberBaseInfo(String partyBranchId); } \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java index f91dc23fe7..67c26fcbf6 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/java/com/epmet/modules/partymember/service/impl/PartymemberBaseInfoServiceImpl.java @@ -22,24 +22,33 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.epmet.commons.mybatis.service.impl.BaseServiceImpl; import com.epmet.commons.tools.constant.FieldConstant; import com.epmet.commons.tools.constant.NumConstant; +import com.epmet.commons.tools.exception.EpmetErrorCode; +import com.epmet.commons.tools.exception.RenException; import com.epmet.commons.tools.page.PageData; import com.epmet.commons.tools.utils.ConvertUtils; import com.epmet.commons.tools.utils.Result; +import com.epmet.commons.tools.validator.IdCardNoValidatorUtils; +import com.epmet.commons.tools.validator.PhoneValidatorUtils; import com.epmet.constant.PartyMemberConstant; import com.epmet.dto.form.UserResiInfoListFormDTO; import com.epmet.dto.result.GridInfoResultDTO; import com.epmet.dto.result.UserResiInfoResultDTO; import com.epmet.modules.feign.EpmetUserFeignClient; import com.epmet.modules.feign.GovOrgFeignClient; +import com.epmet.modules.partymember.dao.PartymemberAuthRecordDao; import com.epmet.modules.partymember.dao.PartymemberBaseInfoDao; import com.epmet.modules.partymember.entity.PartymemberBaseInfoEntity; import com.epmet.modules.partymember.redis.PartymemberBaseInfoRedis; +import com.epmet.modules.partymember.service.PartyBranchMembersService; import com.epmet.modules.partymember.service.PartymemberBaseInfoService; +import com.epmet.resi.partymember.dto.partymember.PartyBranchMembersDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberBaseInfoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberConfirmAutoDTO; import com.epmet.resi.partymember.dto.partymember.PartymemberInfoDTO; +import com.epmet.resi.partymember.dto.partymember.form.PartyMemberBaseInfoAddFormDTO; import com.epmet.resi.partymember.dto.partymember.form.ReviewedParyMemberFormDTO; import com.epmet.resi.partymember.dto.partymember.form.UnderReviewParyMemberFormDTO; +import com.epmet.resi.partymember.dto.partymember.result.PartymemberBaseInfoResultDTO; import com.epmet.resi.partymember.dto.partymember.result.ReviewedParyMemberResultDTO; import com.epmet.resi.partymember.dto.partymember.result.UnderReviewParyMemberResultDTO; import info.debatty.java.stringsimilarity.Levenshtein; @@ -68,6 +77,10 @@ public class PartymemberBaseInfoServiceImpl extends BaseServiceImpl>().ok(list); } + @Override + public String addPartyMemberBaseInfo(PartyMemberBaseInfoAddFormDTO formDTO) { + //校验数据 + this.checkPartymemberBaseInfoDTO(formDTO.getIdCard(),formDTO.getMobile(),null); + //插入党员库记录 + PartymemberBaseInfoEntity entity = ConvertUtils.sourceToTarget(formDTO, PartymemberBaseInfoEntity.class); + insert(entity); + //插入党支部-党员关系记录 + PartyBranchMembersDTO partyBranchMembersDTO=new PartyBranchMembersDTO(); + partyBranchMembersDTO.setBranchId(formDTO.getBranchId()); + partyBranchMembersDTO.setPartymemberBaseInfoId(entity.getId()); + partyBranchMembersService.save(partyBranchMembersDTO); + return entity.getId(); + } + + @Override + public List listPartyMemberBaseInfo(String partyBranchId) { + List resultDTOList=new ArrayList<>(); + if(StringUtils.isNotBlank(partyBranchId)){ + List entityList=baseDao.selectListPartyMemberBaseInfo(partyBranchId); + for(PartymemberBaseInfoEntity entity:entityList){ + PartymemberBaseInfoResultDTO partymemberBaseInfoResultDTO=new PartymemberBaseInfoResultDTO(); + partymemberBaseInfoResultDTO.setName(entity.getName()); + partymemberBaseInfoResultDTO.setPartyMemberId(entity.getId()); + partymemberBaseInfoResultDTO.setGender(IdCardNoValidatorUtils.getGender(entity.getIdCard())); + resultDTOList.add(partymemberBaseInfoResultDTO); + } + } + return resultDTOList; + } /** * 生成返回结果 diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml index e02cba68aa..f61badbc80 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberAuthRecordDao.xml @@ -19,5 +19,11 @@ - + \ No newline at end of file diff --git a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml index 2cbad32ae0..6e6f16e42d 100644 --- a/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml +++ b/epmet-module/resi-partymember/resi-partymember-server/src/main/resources/mapper/partymember/PartymemberBaseInfoDao.xml @@ -120,4 +120,29 @@ applyTime DESC LIMIT #{pageNo},#{pageSize} + + + + + + \ No newline at end of file