Commit ab6e26fe7ed1407afad2fa24675b69f68867aec4
1 parent
477e3891ca
Exists in
master
and in
6 other branches
产检券
Showing 2 changed files with 103 additions and 4 deletions
platform-biz-service/src/main/java/com/lyms/platform/permission/service/impl/CouponServiceImpl.java
View file @
ab6e26f
| ... | ... | @@ -2,6 +2,7 @@ | 
| 2 | 2 | |
| 3 | 3 | import com.alibaba.fastjson.JSON; | 
| 4 | 4 | import com.lyms.platform.biz.SequenceConstant; | 
| 5 | +import com.lyms.platform.biz.dal.IPatientDao; | |
| 5 | 6 | import com.lyms.platform.biz.service.GenSequenceIdService; | 
| 6 | 7 | import com.lyms.platform.common.result.BaseObjectResponse; | 
| 7 | 8 | import com.lyms.platform.common.result.RespBuilder; | 
| ... | ... | @@ -51,6 +52,9 @@ | 
| 51 | 52 | /** 2 = 儿童 */ | 
| 52 | 53 | private static final String CHILDREN = "2"; | 
| 53 | 54 | |
| 55 | + @Autowired | |
| 56 | + private IPatientDao iPatientDao; | |
| 57 | + | |
| 54 | 58 | /** 3_{?} = 产妇 */ | 
| 55 | 59 | /** 产妇没有分娩记录且没有出院小结 */ | 
| 56 | 60 | private static final String MATERNAL_NCHILDBIRTH_NHOSPITAL = "3_1"; | 
| ... | ... | @@ -62,7 +66,7 @@ | 
| 62 | 66 | /** 建档 */ | 
| 63 | 67 | private static final String PUT_ON_RECORD = "4"; | 
| 64 | 68 | |
| 65 | -@Autowired | |
| 69 | + @Autowired | |
| 66 | 70 | private WeixinQrcodeConfigService weixinQrcodeConfigService; | 
| 67 | 71 | @Autowired | 
| 68 | 72 | private CouponMapper couponMapper; | 
| 69 | 73 | |
| ... | ... | @@ -119,8 +123,92 @@ | 
| 119 | 123 | Map<String, Object> param = new HashMap<>(); | 
| 120 | 124 | param.put("types", types); | 
| 121 | 125 | param.put("hospitalId", hospitalId); | 
| 126 | + | |
| 127 | + Integer start = null; | |
| 128 | + if (person.getType() == 1 || person.getType() == 3) | |
| 129 | + { | |
| 130 | + Patients patients = mongoTemplate.findOne(Query.query(Criteria.where("id").is(patientId)), Patients.class); | |
| 131 | + if (patients != null && patients.getType() == 3) | |
| 132 | + { | |
| 133 | + Date fmDate = patients.getFmDate(); | |
| 134 | + if (fmDate != null) | |
| 135 | + { | |
| 136 | + start = DateUtil.getDays(fmDate,new Date()); | |
| 137 | + } | |
| 138 | + } | |
| 139 | + else if (patients != null && patients.getType() == 1) | |
| 140 | + { | |
| 141 | + start = DateUtil.getWeek(patients.getLastMenses(),new Date()); | |
| 142 | + } | |
| 143 | + } | |
| 144 | + else if (person.getType() == 2) | |
| 145 | + { | |
| 146 | + BabyModel babyModel = mongoTemplate.findOne(Query.query(Criteria.where("id").is(patientId)), BabyModel.class); | |
| 147 | + if (babyModel != null && babyModel.getBirth() != null) | |
| 148 | + { | |
| 149 | + start = DateUtil.getMonth(babyModel.getBirth(), new Date()); | |
| 150 | + | |
| 151 | + } | |
| 152 | + } | |
| 153 | + | |
| 122 | 154 | List<Map<String,Object>> temps = couponMapper.findTemp(param); | 
| 123 | - if(CollectionUtils.isEmpty(temps)) { | |
| 155 | + | |
| 156 | + List<Map<String,Object>> list = new ArrayList<>(); | |
| 157 | + //滦平县妇幼保健院 | |
| 158 | + if ("2100001377".equals(hospitalId)) | |
| 159 | + { | |
| 160 | + if (CollectionUtils.isNotEmpty(temps)) | |
| 161 | + { | |
| 162 | + for (Map<String,Object> map : temps) | |
| 163 | + { | |
| 164 | + Integer type = Integer.parseInt(map.get("type").toString()); | |
| 165 | + if (person.getType() == 1) | |
| 166 | + { | |
| 167 | + if (type != 2) | |
| 168 | + { | |
| 169 | + list.add(map); | |
| 170 | + } | |
| 171 | + } | |
| 172 | + else if (person.getType() == 3) | |
| 173 | + { | |
| 174 | + if (type != 6) | |
| 175 | + { | |
| 176 | + list.add(map); | |
| 177 | + } | |
| 178 | + } | |
| 179 | + } | |
| 180 | + | |
| 181 | + for (Map<String,Object> map : temps) | |
| 182 | + { | |
| 183 | + if (person.getType() == 1) | |
| 184 | + { | |
| 185 | + Integer type = Integer.parseInt(map.get("type").toString()); | |
| 186 | + Integer showStart = Integer.parseInt(map.get("show_start").toString()); | |
| 187 | + if (type == 2 && showStart >= start) | |
| 188 | + { | |
| 189 | + list.add(map); | |
| 190 | + } | |
| 191 | + } | |
| 192 | + else if (person.getType() == 3) | |
| 193 | + { | |
| 194 | + Integer type = Integer.parseInt(map.get("type").toString()); | |
| 195 | + Integer showStart = Integer.parseInt(map.get("show_start").toString()); | |
| 196 | + if (type == 6 && showStart >= start) | |
| 197 | + { | |
| 198 | + list.add(map); | |
| 199 | + } | |
| 200 | + } | |
| 201 | + } | |
| 202 | + } | |
| 203 | + | |
| 204 | + } | |
| 205 | + else | |
| 206 | + { | |
| 207 | + list.addAll(temps); | |
| 208 | + } | |
| 209 | + | |
| 210 | + | |
| 211 | + if(CollectionUtils.isEmpty(list)) { | |
| 124 | 212 | return RespBuilder.buildErro(ResponseCode.COUPON_TEMP_NOT_FOUND); | 
| 125 | 213 | } | 
| 126 | 214 | |
| ... | ... | @@ -129,7 +217,7 @@ | 
| 129 | 217 | return RespBuilder.buildErro(ResponseCode.OUPON_HOSPITAL_NOT_BOUND_AREA); | 
| 130 | 218 | } | 
| 131 | 219 | |
| 132 | - sendCoupon(temps, hospitalId, createUserId, userId, person.getType(), areaCode); | |
| 220 | + sendCoupon(list, hospitalId, createUserId, userId, person.getType(), areaCode); | |
| 133 | 221 | |
| 134 | 222 | /** 记录为已经发放过优惠券 */ | 
| 135 | 223 | mongoTemplate.updateFirst(Query.query(Criteria.where("id").is(patientId)), Update.update("isSendCoupon", true), Patients.class); | 
| ... | ... | @@ -685,6 +773,17 @@ | 
| 685 | 773 | map.put("url", findUrl(map.get("sequence_id").toString(),type)); | 
| 686 | 774 | if(StringUtils.isNotEmpty(peopleNum)) { | 
| 687 | 775 | map.put("peopleNum", peopleNum); | 
| 776 | + } | |
| 777 | + map.put("days",0); | |
| 778 | + //滦平县妇幼保健院2100001377 | |
| 779 | + //滦平县妇幼保健院首次产检券 孕0-12周 改为 孕0-12周+6天 | |
| 780 | + if ("2100001377".equals(hospitalId)) | |
| 781 | + { | |
| 782 | + Integer show_end = Integer.parseInt(String.valueOf(map.get("show_end"))); | |
| 783 | + if (show_end == 12) | |
| 784 | + { | |
| 785 | + map.put("days",6); | |
| 786 | + } | |
| 688 | 787 | } | 
| 689 | 788 | } | 
| 690 | 789 | restMap.put("couponInfos", couponInfos); | 
platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml
View file @
ab6e26f
| ... | ... | @@ -59,7 +59,7 @@ | 
| 59 | 59 | </insert> | 
| 60 | 60 | |
| 61 | 61 | <select id="findTemp" parameterType="map" resultType="map"> | 
| 62 | - select b.id, b.id as coupon_template_id, b.actual_start, b.actual_end, b.unit_type, c.send_type, c.type from | |
| 62 | + select b.id, b.id as coupon_template_id, b.actual_start, b.actual_end, b.unit_type,b.show_start, c.send_type, c.type from | |
| 63 | 63 | hospital_coupon_template_group a, coupon_template b, coupon_type c | 
| 64 | 64 | where a.hospital_id = #{hospitalId} and a.coupon_template_group_id = b.group_id and b.type_id = c.id and c.type in | 
| 65 | 65 | <foreach collection="types" open="(" close=")" separator="," item="type"> |