diff --git a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java index 65dafb8..12ad182 100644 --- a/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java +++ b/platform-biz-service/src/main/java/com/lyms/platform/permission/dao/master/CouponMapper.java @@ -102,4 +102,8 @@ public interface CouponMapper { Map findHospitalInfoById(String hospitalId); List> findHospitalInfoByIds(List hospitalIds); + + List> findUnUsedInfo(Map param); + + Integer findUnUsedInfoCount(Map param); } 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 9f337ba..756b530 100644 --- a/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml +++ b/platform-biz-service/src/main/resources/mainOrm/master/CouponMapper.xml @@ -532,4 +532,55 @@ and yn = 1 + + + + \ No newline at end of file diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java index 5cfffe2..1ed11cd 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/controller/ReportController.java @@ -60,6 +60,36 @@ public class ReportController extends BaseController { return reportService.unSendInfo(startDate, endDate, provinceId, cityId, areaId, hospitalId, page, limit, getUserId(request)); } + /** + * 未使用优惠券统计 + */ + @RequestMapping(value = "/coupon/unUsed", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseObjectResponse unUsed(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, HttpServletRequest request) { + return reportService.unUsed(startDate, endDate, provinceId, cityId, areaId, hospitalId, page, limit, getUserId(request)); + } + + /** + * 未使用优惠券统计导出 + */ + @RequestMapping(value = "/coupon/unUsed/export", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public void unUsedExport(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, HttpServletRequest request, HttpServletResponse response) { + reportService.unSendExport(startDate, endDate, provinceId, cityId, areaId, hospitalId, getUserId(request), response); + } + + /** + * 未使用优惠券统计详情 + */ + @RequestMapping(value = "/coupon/unUsed/info", method = RequestMethod.GET) + @ResponseBody + @TokenRequired + public BaseObjectResponse unUsedInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, HttpServletRequest request) { + return reportService.unUsedInfo(startDate, endDate, provinceId, cityId, areaId, hospitalId, page, limit, getUserId(request)); + } + /** * 产检次数分布统计(已废弃 采用 getCheckNumber) diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java index c31b0e8..5257784 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/IReportService.java @@ -89,4 +89,8 @@ public interface IReportService extends IBaseService { BaseObjectResponse unSendInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId); void unSendExport(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer userId, HttpServletResponse response); + + BaseObjectResponse unUsedInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId); + + BaseObjectResponse unUsed(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId); } diff --git a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java index 0bd622f..0dddb46 100644 --- a/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java +++ b/platform-operate-api/src/main/java/com/lyms/platform/operate/web/service/impl/ReportServiceImpl.java @@ -30,6 +30,7 @@ import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; import org.springframework.util.Assert; +import scala.annotation.target.param; import javax.servlet.http.HttpServletResponse; import java.sql.PreparedStatement; @@ -512,7 +513,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService Map hospitalPatientCount = new HashMap<>(); if(CollectionUtils.isNotEmpty(hospitalIds)) { - List patients = getPatients(hospitalIds, datas, startDate, endDate, provinceId, cityId, areaId, hospitalId, userId); + List patients = getPatients(hospitalIds, datas, startDate, endDate, provinceId, cityId, areaId, false); for (Patients patient : patients) { if(hospitalPatientCount.containsKey(patient.getHospitalId())) { hospitalPatientCount.put(patient.getHospitalId(), hospitalPatientCount.get(patient.getHospitalId()) + 1); @@ -567,27 +568,65 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService ResponseUtil.responseExcel(cnames, results, response); } + @Override + public BaseObjectResponse unUsedInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId) { + List hospitalIds = getHospitalIds(userId, hospitalId); + if(CollectionUtils.isNotEmpty(hospitalIds)) { + List> datas = couponMapper.findHospitalInfoByIds(hospitalIds); + List patients = getPatients(hospitalIds, datas, startDate, endDate, provinceId, cityId, areaId, false); + Set userIds = new HashSet<>(); + for (Patients patient : patients) { + userIds.add(patient.getPid()); + } + Map param = CollectionUtils.createMap("hospitalIds", hospitalIds, "userIds", userIds, "provinceId", provinceId, "cityId", cityId, "areaId", areaId, "page", page, "limit", limit); + List> restList = couponMapper.findUnUsedInfo(param); + Integer count = couponMapper.findUnUsedInfoCount(param); + return RespBuilder.buildSuccess(new PageResult(count, page, limit, restList)); + } + return RespBuilder.buildSuccess(new PageResult(0, page, limit, null)); + } + + @Override + public BaseObjectResponse unUsed(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId) { + List hospitalIds = getHospitalIds(userId, hospitalId); + if(CollectionUtils.isNotEmpty(hospitalIds)) { + List> datas = couponMapper.findHospitalInfoByIds(hospitalIds); + List patients = getPatients(hospitalIds, datas, startDate, endDate, provinceId, cityId, areaId, true); + Set userIds = new HashSet<>(); + for (Patients patient : patients) { + userIds.add(patient.getPid()); + } + Map param = CollectionUtils.createMap("hospitalIds", hospitalIds, "userIds", userIds, "provinceId", provinceId, "cityId", cityId, "areaId", areaId, "page", page, "limit", limit); + System.out.println(param); + List> restList = couponMapper.findUnUsedInfo(param); + Integer count = couponMapper.findUnUsedInfoCount(param); + return RespBuilder.buildSuccess(new PageResult(count, page, limit, restList)); + } + return RespBuilder.buildSuccess(new PageResult(0, page, limit, null)); + } + @Override public BaseObjectResponse unSendInfo(Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer page, Integer limit, Integer userId) { List hospitalIds = getHospitalIds(userId, hospitalId); List> datas = couponMapper.findHospitalInfoByIds(hospitalIds); if(CollectionUtils.isNotEmpty(hospitalIds)) { - List patients = getPatients(hospitalIds, datas, startDate, endDate, provinceId, cityId, areaId, hospitalId, userId); + List patients = getPatients(hospitalIds, datas, startDate, endDate, provinceId, cityId, areaId, false); List> restList = new ArrayList<>(); List pageRows = CollectionUtils.getPageIds(patients, page, limit); for (Patients patient : pageRows) { Map temp = new HashMap<>(); temp.put("username", patient.getUsername()); temp.put("phone", com.lyms.platform.common.utils.StringUtils.encryPhone(patient.getPhone())); + temp.put("cardNo", com.lyms.platform.common.utils.StringUtils.encryCardNo(patient.getCardNo())); String residenceAddress = findName(patient.getProvinceRegisterId()) + findName(patient.getCityRegisterId()) + findName(patient.getAreaRegisterId()) + findName(patient.getStreetRegisterId()) + patient.getAddressRegister(); temp.put("residenceAddress", residenceAddress.replace("null", "")); /** 居住地 */ String householdAddress = findName(patient.getProvinceId()) + findName(patient.getCityId()) + findName(patient.getAreaId()) + findName(patient.getStreetId()) + patient.getAddress(); temp.put("householdAddress", householdAddress.replace("null", "")); /** 户籍地 */ temp.put("lastMenses", DateUtil.getyyyy_MM_dd(patient.getLastMenses())); - temp.put("week", DateUtil.getWeekDesc(patient.getLastMenses(), new Date())); - temp.put("buildWeek", DateUtil.getWeekDesc(patient.getBookbuildingDate(), new Date())); - temp.put("buildWeek", DateUtil.getyyyy_MM_dd(patient.getBookbuildingDate())); + temp.put("week", DateUtil.getWeekDesc(patient.getLastMenses(), new Date())); /** 当前孕周 */ + temp.put("buildWeek", DateUtil.getWeekDesc(patient.getBookbuildingDate(), new Date())); /** 建档孕周 */ + temp.put("buildDate", DateUtil.getyyyy_MM_dd(patient.getBookbuildingDate())); /** 建档日期 */ temp.put("doctorName", couponMapper.getUserName(patient.getBookbuildingDoctor())); temp.put("hospitalName", couponMapper.findHospitalNameById(patient.getHospitalId())); restList.add(temp); @@ -597,7 +636,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } return RespBuilder.buildSuccess("hospitalIds为null"); } - private List getPatients(List hospitalIds, List> datas, Date startDate, Date endDate, String provinceId, String cityId, String areaId, String hospitalId, Integer userId) { + private List getPatients(List hospitalIds, List> datas, Date startDate, Date endDate, String provinceId, String cityId, String areaId, boolean isSendCoupon) { Iterator iterator = hospitalIds.iterator(); while (iterator.hasNext()) { String id = iterator.next(); @@ -621,7 +660,7 @@ public class ReportServiceImpl extends BaseServiceImpl implements IReportService } } Criteria c = new Criteria(); - c.and("hospitalId").in(hospitalIds).and("isSendCoupon").ne(true).and("yn").ne(0); + c.and("hospitalId").in(hospitalIds).and("isSendCoupon").ne(!isSendCoupon).and("yn").ne(0); if(startDate != null && endDate != null) { c.and("bookbuildingDate").gte(startDate).lt(DateUtil.addDay(endDate, 1)); }