TaskPatientDtailService.java 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. package com.yihu.jw.service;/**
  2. * Created by nature of king on 2018/6/8.
  3. */
  4. import com.yihu.base.mysql.query.BaseJpaService;
  5. import com.yihu.jw.dao.ActivityDao;
  6. import com.yihu.jw.dao.TaskDao;
  7. import com.yihu.jw.dao.TaskPatientDetailDao;
  8. import com.yihu.jw.entity.health.bank.TaskDO;
  9. import com.yihu.jw.entity.health.bank.TaskPatientDetailDO;
  10. import com.yihu.jw.entity.health.bank.TaskRangDO;
  11. import com.yihu.jw.restmodel.common.Envelop;
  12. import com.yihu.jw.rm.health.bank.HealthBankMapping;
  13. import com.yihu.jw.util.ISqlUtils;
  14. import org.springframework.beans.factory.annotation.Autowired;
  15. import org.springframework.jdbc.core.BeanPropertyRowMapper;
  16. import org.springframework.jdbc.core.JdbcTemplate;
  17. import org.springframework.stereotype.Service;
  18. import javax.transaction.Transactional;
  19. import java.util.Date;
  20. import java.util.List;
  21. import java.util.Map;
  22. /**
  23. * @author wangzhinan
  24. * @create 2018-06-08 15:43
  25. * @desc 任务参与 Service
  26. **/
  27. @Service
  28. @Transactional
  29. public class TaskPatientDtailService extends BaseJpaService<TaskPatientDetailDO,TaskPatientDetailDao> {
  30. @Autowired
  31. private TaskPatientDetailDao taskPatientDetailDao;
  32. @Autowired
  33. private JdbcTemplate jdbcTemplate;
  34. @Autowired
  35. private TaskDao taskDao;
  36. @Autowired
  37. private ActivityDao activityDao;
  38. /**
  39. * 查看任务参与情况
  40. *
  41. * @param taskPatientDetailDO 任务参与对象
  42. *
  43. * @param page 页码
  44. * @param size 分页大小
  45. * @return
  46. */
  47. public Envelop<TaskRangDO> selectByCondition(TaskPatientDetailDO taskPatientDetailDO, Integer page, Integer size){
  48. String sql = new ISqlUtils().getSql(taskPatientDetailDO,page,size,"*");
  49. List<TaskPatientDetailDO> taskPatientDetailDOS = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
  50. String sqlcount = new ISqlUtils().getSql(taskPatientDetailDO,0,0,"count");
  51. List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlcount);
  52. Long count = 0L;
  53. if(rstotal!=null&&rstotal.size()>0){
  54. count = (Long) rstotal.get(0).get("total");
  55. }
  56. return Envelop.getSuccessListWithPage(HealthBankMapping.api_success, taskPatientDetailDOS,page,size,count);
  57. }
  58. /**
  59. * 添加任务参与
  60. *
  61. * @param taskPatientDetailDO 任务参与对象
  62. * @return
  63. */
  64. public Envelop<Boolean> insert(TaskPatientDetailDO taskPatientDetailDO) throws Exception{
  65. Envelop<Boolean> envelop = new Envelop<>();
  66. taskPatientDetailDO.setCreateTime(new Date());
  67. taskPatientDetailDO.setUpdateTime(new Date());
  68. taskPatientDetailDO.setStatus(Integer.parseInt("0"));
  69. String activitySql = "select * from wlyy_health_bank_task where transaction_id = '" + taskPatientDetailDO.getActivityId() +"'";
  70. List<TaskDO> taskDOList = jdbcTemplate.query(activitySql,new BeanPropertyRowMapper(TaskDO.class));
  71. StringBuffer buffer = new StringBuffer();
  72. buffer.append(" and task_id IN (");
  73. for (TaskDO taskDO : taskDOList){
  74. buffer.append("'"+taskDO.getId()+"'").append(",");
  75. }
  76. buffer.deleteCharAt(buffer.length()-1);
  77. buffer.append(")");
  78. String sql = "select * from wlyy_health_bank_task_patient_detail where patient_openid = '"+taskPatientDetailDO.getPatientOpenid()+"' " +
  79. "AND patient_idcard = '"+taskPatientDetailDO.getPatientIdcard()+"' AND union_id = '"+taskPatientDetailDO.getUnionId()+"'"+buffer;
  80. List<TaskPatientDetailDO> taskPatientDetailDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(TaskPatientDetailDO.class));
  81. if (taskPatientDetailDOList != null && taskPatientDetailDOList.size() !=0){
  82. throw new Exception("该微信账号已报名过!");
  83. }
  84. for (TaskDO taskDO : taskDOList){
  85. taskPatientDetailDO.setTotal(Long.parseLong("0"));
  86. taskPatientDetailDO.setTaskId(taskDO.getId());
  87. taskPatientDetailDao.save(taskPatientDetailDO);
  88. }
  89. envelop.setObj(true);
  90. return envelop;
  91. }
  92. /**
  93. * 更新任务参与
  94. *
  95. * @param taskPatientDetailDO 任务参与对象
  96. * @return
  97. */
  98. public Envelop<Boolean> update(TaskPatientDetailDO taskPatientDetailDO){
  99. Envelop<Boolean> envelop = new Envelop<>();
  100. String sql = ISqlUtils.getUpdateSql(taskPatientDetailDO);
  101. jdbcTemplate.update(sql);
  102. envelop.setObj(true);
  103. return envelop;
  104. }
  105. }