ActivityService.java 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. package com.yihu.jw.service;/**
  2. * Created by nature of king on 2018/4/27.
  3. */
  4. import com.yihu.base.mysql.query.BaseJpaService;
  5. import com.yihu.jw.dao.ActivityDao;
  6. import com.yihu.jw.entity.health.bank.ActivityDO;
  7. import com.yihu.jw.restmodel.common.Envelop;
  8. import com.yihu.jw.rm.health.bank.HealthBankMapping;
  9. import com.yihu.jw.util.ISqlUtils;
  10. import org.springframework.beans.factory.annotation.Autowired;
  11. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  12. import org.springframework.jdbc.core.JdbcTemplate;
  13. import org.springframework.stereotype.Service;
  14. import javax.transaction.Transactional;
  15. import java.text.ParseException;
  16. import java.util.Date;
  17. import java.util.List;
  18. import java.util.Map;
  19. /**
  20. * @author wangzhinan
  21. * @create 2018-04-27 14:38
  22. * @desc health activity Service
  23. **/
  24. @Service
  25. @Transactional
  26. public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
  27. @Autowired
  28. private ActivityDao activityDao;
  29. @Autowired
  30. private JdbcTemplate jdbcTemplate;
  31. /**
  32. * insert activityDO
  33. *
  34. * @param activityDO 活动参数对象
  35. * @return
  36. */
  37. public Envelop<Boolean> insert(ActivityDO activityDO){
  38. activityDO.setCreateTime(new Date());
  39. activityDO.setUpdateTime(new Date());
  40. activityDao.save(activityDO);
  41. Envelop<Boolean> envelop = new Envelop<>();
  42. envelop.setObj(true);
  43. return envelop;
  44. }
  45. /**
  46. * find by condition
  47. *
  48. * @param activityDO 活动参数对象
  49. * @param page 页码
  50. * @param size 每页大小
  51. * @return
  52. * @throws ParseException
  53. */
  54. public Envelop<ActivityDO> findByCondition(ActivityDO activityDO,Integer page, Integer size) throws ParseException {
  55. String sql = new ISqlUtils().getSql(activityDO,page,size,"*");
  56. List<ActivityDO> activityDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ActivityDO.class));
  57. String sqlcount = new ISqlUtils().getSql(activityDO,0,0,"count");
  58. List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlcount);
  59. Long count = 0L;
  60. if(rstotal!=null&&rstotal.size()>0){
  61. count = (Long) rstotal.get(0).get("total");
  62. }
  63. return Envelop.getSuccessListWithPage(HealthBankMapping.api_success,activityDOS,page,size,count);
  64. }
  65. /**
  66. * update activityDO
  67. *
  68. * @param activityDO 活动参数对象
  69. * @return
  70. */
  71. public Envelop<Boolean> update(ActivityDO activityDO){
  72. activityDao.save(activityDO);
  73. Envelop<Boolean> envelop = new Envelop<>();
  74. envelop.setObj(true);
  75. return envelop;
  76. }
  77. /**
  78. * 获取参与的活动
  79. *
  80. * @param activityDO 活动对象
  81. * @param page 页码
  82. * @param size 分页大小
  83. * @return
  84. */
  85. public Envelop<ActivityDO> selectByPatient(ActivityDO activityDO,Integer page,Integer size){
  86. String sql ="SELECT * " +
  87. " FROM wlyy_health_bank_activity " +
  88. "WHERE " +
  89. "id IN ( " +
  90. "SELECT bt.transaction_id " +
  91. "FROM wlyy_health_bank_task bt " +
  92. "WHERE id IN (" +
  93. " SELECT task_id FROM " +
  94. "wlyy_health_bank_task_patient_detail" +
  95. " WHERE " +
  96. " patient_openid = '"+activityDO.getOpenId()+ "' )" +
  97. " )" +
  98. " LIMIT "+(page-1)*size +","+size;
  99. List<ActivityDO> activityDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ActivityDO.class));
  100. String sqlcount = "SELECT count(1) AS total" +
  101. " FROM wlyy_health_bank_activity " +
  102. "WHERE " +
  103. "id IN ( " +
  104. "SELECT bt.transaction_id " +
  105. "FROM wlyy_health_bank_task bt " +
  106. "WHERE id IN (" +
  107. " SELECT task_id FROM " +
  108. "wlyy_health_bank_task_patient_detail" +
  109. " WHERE " +
  110. " patient_openid = '"+activityDO.getOpenId()+ "' )" +
  111. " )";
  112. List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlcount);
  113. Long count = 0L;
  114. if(rstotal!=null&&rstotal.size()>0){
  115. count = (Long) rstotal.get(0).get("total");
  116. }
  117. return Envelop.getSuccessListWithPage(HealthBankMapping.api_success,activityDOS,page,size,count);
  118. }
  119. }