From ac4ec827e7ec1279ba4e982324dcf697bbd875cf Mon Sep 17 00:00:00 2001 From: litao Date: Mon, 15 May 2017 19:31:54 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E6=83=A0=E5=88=B8=E6=97=B6=E9=97=B4?= =?UTF-8?q?=E5=AF=B9=E6=AF=94=E8=A7=84=E5=88=99=E6=9B=B4=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../lyms/platform/permission/model/CouponInfo.java | 13 +++++ .../permission/service/impl/CouponServiceImpl.java | 61 ++++++++++------------ .../main/resources/mainOrm/master/CouponMapper.xml | 3 +- .../operate/web/controller/CouponController.java | 3 +- .../operate/web/facade/BookbuildingFacade.java | 2 +- 5 files changed, 45 insertions(+), 37 deletions(-) diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java index 2437845..f9c3d0e 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/model/CouponInfo.java @@ -56,6 +56,11 @@ public class CouponInfo { private Integer status; /** + * 使用时的id,比如建档id、儿保id,通过type判断是什么id + */ + private String usedId; + + /** * 使用优惠券时操作人的id */ private String operatorUseId; @@ -143,4 +148,12 @@ public class CouponInfo { public void setOperatorUseId(String operatorUseId) { this.operatorUseId = operatorUseId; } + + public String getUsedId() { + return usedId; + } + + public void setUsedId(String usedId) { + this.usedId = usedId; + } } diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java index 715ff66..cd8c203 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java @@ -116,7 +116,7 @@ public class CouponServiceImpl implements CouponService { if(CollectionUtils.isEmpty(temps)) { return RespBuilder.buildErro(ResponseCode.COUPON_TEMP_NOT_FOUND); } - sendCoupon(temps, hospitalId, createUserId, userId); + sendCoupon(temps, hospitalId, createUserId, userId, person.getType()); return RespBuilder.buildSuccess(); } @@ -128,7 +128,7 @@ public class CouponServiceImpl implements CouponService { return CollectionUtils.isNotEmpty(list); } - private void sendCoupon(List> temps, String hospitalId, Integer createUserId, String userId) { + private void sendCoupon(List> temps, String hospitalId, Integer createUserId, String userId, Integer personType) { for (Map temp : temps) { Object sendType = temp.get("send_type"); if(sendType != null) {/** 1=全部发放 2=按有效时间发放 */ @@ -146,18 +146,22 @@ public class CouponServiceImpl implements CouponService { Object type = temp.get("type"); if(type != null && typeMap.get(PUT_ON_RECORD).contains(Integer.parseInt(type.toString()))) { couponInfo.setStatus(2); - Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), Patients.class); - if(patients == null) { /** 不是孕妇就是儿童 */ + + /** 1=孕妇 2=儿童 3=产妇 */ + if(1 == personType || 3 == personType) { + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), Patients.class); + if(patients != null){ + couponInfo.setUseDate(patients.getBookbuildingDate()); + couponInfo.setOperatorUseId(patients.getBookbuildingDoctor()); + couponInfo.setUsedHospitalId(patients.getHospitalId()); + } + } else { BabyModel baby = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), BabyModel.class); if(baby != null) { couponInfo.setUseDate(baby.getBuildDate()); couponInfo.setOperatorUseId(baby.getBuildDoctor()); couponInfo.setUsedHospitalId(baby.getHospitalId()); } - } else if(patients != null){ - couponInfo.setUseDate(patients.getBookbuildingDate()); - couponInfo.setOperatorUseId(patients.getBookbuildingDoctor()); - couponInfo.setUsedHospitalId(patients.getHospitalId()); } } @@ -169,7 +173,7 @@ public class CouponServiceImpl implements CouponService { Object unitType = temp.get("unit_type"); if(actualStart != null && actualEnd != null && unitType != null && type != null) { if(validateDate(userId, Integer.parseInt(actualStart.toString()), Integer.parseInt(actualEnd.toString()), - Integer.parseInt(unitType.toString()), hospitalId, Integer.parseInt(type.toString()), 1)) { + Integer.parseInt(unitType.toString()), hospitalId, Integer.parseInt(type.toString()), 1, personType)) { couponMapper.save(couponInfo); } } @@ -245,9 +249,11 @@ public class CouponServiceImpl implements CouponService { return RespBuilder.buildErro(ResponseCode.COUPON_NOT_AVAILABLE, patientsInfo); } + PersonModel person = mongoTemplate.findById(couponInfo.getId(), PersonModel.class); + /** 验证时间 */ if(!validateDate(couponInfo.getUserId(), Integer.parseInt(data.get("actual_start").toString()), Integer.parseInt(data.get("actual_end").toString()), Integer.parseInt(data.get("unit_type").toString()), - data.get("create_hospital_id").toString(), Integer.parseInt(data.get("type").toString()), 2)) + data.get("create_hospital_id").toString(), Integer.parseInt(data.get("type").toString()), 2, person.getType())) return RespBuilder.buildErro(ResponseCode.COUPON_TIME_OUT, patientsInfo); /** 验证区域 */ @@ -356,39 +362,30 @@ public class CouponServiceImpl implements CouponService { * @param hospitalId 医院id * @param couponType 产检券类型 1=孕妇 2=产妇 3=儿童 * @param validateType 验证类型 1=创建 2=使用 + * @param personType 1=孕妇 2=儿童 3=产妇 * @return */ - private boolean validateDate(String userId, Integer start, Integer end, Integer unitType, String hospitalId, Integer couponType, Integer validateType) { + private boolean validateDate(String userId, Integer start, Integer end, Integer unitType, String hospitalId, Integer couponType, Integer validateType, Integer personType) { Date midDate = null; Date startDate = null; Date endDate = null; - List patients = null; - if(typeMap.get(PREGNANT_WOMAN).contains(couponType)) {/** 孕妇: 根据末次月经对比 midDate = 末次月经时间 */ - patients = mongoTemplate.find(Query.query(Criteria.where("pid").is(userId)), Patients.class); - if(CollectionUtils.isEmpty(patients)) { - BabyModel baby = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), BabyModel.class); - if(baby != null) {/** 孕妇没查到就查儿童 */ - midDate = baby.getBirth(); - } else { - logger.info("未找到pid: " + userId + ", hospitalId: " + hospitalId + ", type: 1 的信息"); - return false; - } - } - midDate = patients.get(0).getFmDate(); - } else {/** 产妇或者儿童:根据分娩时间对比 midDate = 分娩时间 */ - patients = mongoTemplate.find(Query.query(Criteria.where("type").is(3).and("hospitalId").is(hospitalId).and("pid").is(userId)) - .with(new Sort(Sort.Direction.DESC, "fmDate")), Patients.class); - if(CollectionUtils.isEmpty(patients)) { - logger.info("未找到pid: " + userId + ", hospitalId: " + hospitalId + ", type: 3 的孕妇信息"); + if(personType == 2) { /** 儿童根据生日对比 */ + BabyModel baby = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), BabyModel.class); + midDate = baby.getBirth(); + } else { + Patients patient = mongoTemplate.findOne(Query.query(Criteria.where("pid").is(userId)), Patients.class); + if(personType == 1) { /** 孕妇根据末次月经对比 */ + midDate = patient.getLastMenses(); + } else if(personType == 3) { /** 产妇根据分娩时间对比 */ + midDate = patient.getFmDate(); + } else { return false; } - midDate = patients.get(0).getFmDate(); } if(midDate != null) { if(unitType == 1) { /** 孕周: startDate = lastMenses + start*7、 endDate = lastMenses + end*7 + 6*/ - midDate = patients.get(0).getLastMenses(); startDate = DateUtils.addDays(midDate, start * 7); endDate = DateUtils.addDays(midDate, end * 7 + 6); } else if(unitType == 2) { /** 天数 stratDate = 孕妇:fmDate/儿童:birth + start、 endDate = lastMenses + end */ @@ -403,7 +400,7 @@ public class CouponServiceImpl implements CouponService { return true; } } else if(validateType == 1) { - return DateUtil.isLtOrEq(new Date(), startDate); + return DateUtil.isLtOrEq(new Date(), endDate); } } return false; diff --git a/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml index ffdd4b6..b13320a 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml @@ -14,10 +14,9 @@ + - - sequence_id,create_date,use_date, operator_use_id, user_id,create_user_id,coupon_template_id,create_hospital_id,used_hospital_id,status diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java index 65224f2..007699f 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/CouponController.java @@ -46,7 +46,6 @@ public class CouponController extends BaseController { public BaseObjectResponse create(String userId, String hospitalId, HttpServletRequest request) { LoginContext loginState = (LoginContext) request.getAttribute("loginContext"); return couponService.create(userId, hospitalId, loginState.getId()); -// return couponService.create(userId, hospitalId, 200); } /** @@ -76,7 +75,7 @@ public class CouponController extends BaseController { * @param request * @return */ - @RequestMapping(method = RequestMethod.PUT, value = "/use/{code}/{hospitalId}") + @RequestMapping(method = RequestMethod.PUT, value = "/test") @TokenRequired @ResponseBody public BaseObjectResponse testUse(@PathVariable String code, @PathVariable String hospitalId, HttpServletRequest request) { diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java index d0e2624..9a8b050 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/facade/BookbuildingFacade.java @@ -308,7 +308,7 @@ public class BookbuildingFacade { ticket.setCreated(new Date()); ticket.setId(areaCode.getAreaCode() + ticketPid + i); ticket.setPid(p.getPid()); - patientCheckTicketService.addTicket(ticket); +// patientCheckTicketService.addTicket(ticket); } } } -- 1.8.3.1