diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java index 469d4ca..1950596 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/request/PreEugenicsBaseListRequest.java @@ -10,6 +10,11 @@ import com.lyms.platform.common.dao.BaseQuery; public class PreEugenicsBaseListRequest extends BaseQuery { /** + * 检索类型 1/丈夫 2/妻子 3/全部(默认) + */ + private String searchType = "3"; + + /** * 丈夫身份证号码/妻子身份证号码 */ private String idCardNo; @@ -53,6 +58,14 @@ public class PreEugenicsBaseListRequest extends BaseQuery { private String street; + public String getSearchType() { + return searchType; + } + + public void setSearchType(String searchType) { + this.searchType = searchType; + } + public String getPhone() { return phone; } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java index a15ca4c..7e71c36 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/PreEugebicsServiceImpl.java @@ -4,6 +4,7 @@ import java.util.Date; import java.util.LinkedList; import java.util.List; +import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.domain.Sort; import org.springframework.data.mongodb.core.MongoTemplate; @@ -120,7 +121,7 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen public BaseResponse edit(PreEugenicsBaseRequest param) { PreEugenicsBaseModel model = param; String id = model.getId(); - if (StringUtils.isNum(id)) { + if (StringUtils.isEmpty(id)) { return new BaseResponse("参数缺失", ErrorCodeConstants.PARAMETER_ERROR); } Query query = Query.query(Criteria.where("id").is(param.getId())); @@ -139,26 +140,24 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen @Override public BaseListResponse listPage(PreEugenicsBaseListRequest param) { Query query = new Query(); + String searchType = param.getSearchType(); String idCardNo = param.getIdCardNo(); - if (StringUtils.isNotEmpty(idCardNo)) { - query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo).orOperator(Criteria.where("wifeCardNo").is(idCardNo))); - } + query = getQueryByIdCardNo(query, searchType, idCardNo); + String name = param.getName(); - if (StringUtils.isNotEmpty(name)) { - query.addCriteria(Criteria.where("husbandName").is(name).orOperator(Criteria.where("wifeName").is(name))); - } + query = getQueryByName(query, searchType, name); + String phone = param.getPhone(); - if (StringUtils.isNotEmpty(phone)) { - query.addCriteria(Criteria.where("husbandPhone").is(phone).orOperator(Criteria.where("wifePhone").is(phone))); - } + query = getQueryByPhone(query, searchType, phone); + String number = param.getNumber(); - if (StringUtils.isNotEmpty(number)) { - query.addCriteria(Criteria.where("husbandNo").is(number).orOperator(Criteria.where("wifeNo").is(number))); - } + query = getQueryByNumber(query, searchType, number); + String hospitalId = param.getHospitalId(); if (StringUtils.isNotEmpty(hospitalId)) { query.addCriteria(Criteria.where("hospitalId").is(hospitalId)); } + String createUser = param.getCreateUser(); if (StringUtils.isNotEmpty(createUser)) { query.addCriteria(Criteria.where("createUser").is(createUser)); @@ -171,38 +170,8 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen query.addCriteria(Criteria.where("createUser").gte(dayFirstSecond).lte(dayLastSecond)); } - String provinceId = param.getProvince(); - if (StringUtils.isNotEmpty(provinceId)) { - query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) - .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId)) - .orOperator(Criteria.where("wifeAccountProvince").is(provinceId)) - .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId)) - ); - String cityId = param.getCity(); - if (StringUtils.isNotEmpty(cityId)) { - query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) - .orOperator(Criteria.where("husbandCurrentCity").is(cityId)) - .orOperator(Criteria.where("wifeAccountCity").is(cityId)) - .orOperator(Criteria.where("wifeCurrentCity").is(cityId)) - ); - String areaId = param.getArea(); - if (StringUtils.isNotEmpty(areaId)) { - query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) - .orOperator(Criteria.where("husbandCurrentArea").is(areaId)) - .orOperator(Criteria.where("wifeAccountArea").is(areaId)) - .orOperator(Criteria.where("wifeCurrentArea").is(areaId)) - ); - String streetId = param.getStreet(); - if (StringUtils.isNotEmpty(streetId)) { - query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) - .orOperator(Criteria.where("husbandCurrentStreet").is(streetId)) - .orOperator(Criteria.where("wifeAccountStreet").is(streetId)) - .orOperator(Criteria.where("wifeCurrentStreet").is(streetId)) - ); - } - } - } - } + query = getQueryByAddress(param, searchType, query); + query.with(new Sort(Sort.Direction.DESC, "created")); long count = mongoTemplate.count(query, PreEugenicsBaseModel.class); param.mysqlBuild((int) count); @@ -219,13 +188,132 @@ public class PreEugebicsServiceImpl extends BaseServiceImpl implements IPreEugen return baseListResponse; } + private Query getQueryByAddress(PreEugenicsBaseListRequest param, String searchType, Query query) { + String provinceId = param.getProvince(); + if (StringUtils.isNotEmpty(provinceId)) { + if ("1".equals(searchType)) { + query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) + .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId))); + } else if ("2".equals(searchType)) { + query.addCriteria(Criteria.where("wifeAccountProvince").is(provinceId) + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId))); + } else { + query.addCriteria(Criteria.where("husbandAccountCity").is(provinceId) + .orOperator(Criteria.where("husbandCurrentProvince").is(provinceId)) + .orOperator(Criteria.where("wifeAccountProvince").is(provinceId)) + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId))); + } + String cityId = param.getCity(); + if (StringUtils.isNotEmpty(cityId)) { + if ("1".equals(searchType)) { + query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) + .orOperator(Criteria.where("husbandCurrentCity").is(cityId))); + } else if ("2".equals(searchType)) { + query.addCriteria(Criteria.where("wifeAccountProvince").is(provinceId) + .orOperator(Criteria.where("wifeCurrentProvince").is(provinceId))); + } else { + query.addCriteria(Criteria.where("husbandAccountCity").is(cityId) + .orOperator(Criteria.where("husbandCurrentCity").is(cityId)) + .orOperator(Criteria.where("wifeAccountCity").is(cityId)) + .orOperator(Criteria.where("wifeCurrentCity").is(cityId))); + } + String areaId = param.getArea(); + if (StringUtils.isNotEmpty(areaId)) { + if ("1".equals(searchType)) { + query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) + .orOperator(Criteria.where("husbandCurrentArea").is(areaId))); + } else if ("2".equals(searchType)) { + query.addCriteria(Criteria.where("wifeAccountArea").is(areaId) + .orOperator(Criteria.where("wifeCurrentArea").is(areaId))); + } else { + query.addCriteria(Criteria.where("husbandAccountArea").is(areaId) + .orOperator(Criteria.where("husbandCurrentArea").is(areaId)) + .orOperator(Criteria.where("wifeAccountArea").is(areaId)) + .orOperator(Criteria.where("wifeCurrentArea").is(areaId))); + } + String streetId = param.getStreet(); + if (StringUtils.isNotEmpty(streetId)) { + if ("1".equals(searchType)) { + query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) + .orOperator(Criteria.where("husbandCurrentStreet").is(streetId))); + } else if ("2".equals(searchType)) { + query.addCriteria(Criteria.where("wifeAccountStreet").is(streetId) + .orOperator(Criteria.where("wifeCurrentStreet").is(streetId)));; + } else { + query.addCriteria(Criteria.where("husbandAccountStreet").is(streetId) + .orOperator(Criteria.where("husbandCurrentStreet").is(streetId)) + .orOperator(Criteria.where("wifeAccountStreet").is(streetId)) + .orOperator(Criteria.where("wifeCurrentStreet").is(streetId))); + } + } + } + } + } + return query; + } + + private Query getQueryByNumber(Query query, String searchType, String number) { + if (StringUtils.isNotEmpty(number)) { + if ("1".equals(searchType)) { + return query.addCriteria(Criteria.where("husbandNo").is(number)); + } + if ("2".equals(searchType)) { + return query.addCriteria(Criteria.where("wifeNo").is(number)); + } + return query.addCriteria(Criteria.where("husbandNo").is(number).orOperator(Criteria.where("wifeNo").is(number))); + } + return query; + } + + private Query getQueryByPhone(Query query, String searchType, String phone) { + if (StringUtils.isNotEmpty(phone)) { + if ("1".equals(searchType)) { + return query.addCriteria(Criteria.where("husbandPhone").is(phone)); + } + if ("2".equals(searchType)) { + return query.addCriteria(Criteria.where("wifePhone").is(phone)); + } + return query.addCriteria(Criteria.where("husbandPhone").is(phone).orOperator(Criteria.where("wifePhone").is(phone))); + } + return query; + } + + private Query getQueryByName(Query query, String searchType, String name) { + if (StringUtils.isNotEmpty(name)) { + if ("1".equals(searchType)) { + return query.addCriteria(Criteria.where("husbandName").is(name)); + } + if ("2".equals(searchType)) { + return query.addCriteria(Criteria.where("wifeName").is(name)); + } + return query.addCriteria(Criteria.where("husbandName").is(name).orOperator(Criteria.where("wifeName").is(name))); + } + return query; + } + + private Query getQueryByIdCardNo(Query query, String searchType, String idCardNo) { + if (StringUtils.isNotEmpty(idCardNo)) { + if (StringUtils.isNotEmpty(searchType)) { + if ("1".equals(searchType)) { + return query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo)); + } + if ("2".equals(searchType)) { + return query.addCriteria(Criteria.where("wifeCardNo").is(idCardNo)); + } + } + return query.addCriteria(Criteria.where("husbandCardNo").is(idCardNo).orOperator(Criteria.where("wifeCardNo").is(idCardNo))); + } + return query; + } + /** * 添加 丈夫户口所在地/丈夫现住址/妻子户口所在地/妻子现住地址 省市区街道详细地址 * @param model * @return */ private PreEugenicsBaseListResult getPreEugenicsBaseListResult(PreEugenicsBaseModel model) { - PreEugenicsBaseListResult result = (PreEugenicsBaseListResult) model; + PreEugenicsBaseListResult result = new PreEugenicsBaseListResult(); + BeanUtils.copyProperties(model, result); result.setHusbandAccountAddressStr(CommonsHelper.getResidence(model.getHusbandAccountProvince(), model.getHusbandAccountCity(), model.getHusbandAccountArea(),