CreditsDetailController.java 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350
  1. package com.yihu.jw.controller;/**
  2. * Created by nature of king on 2018/4/27.
  3. */
  4. import com.alibaba.fastjson.JSONArray;
  5. import com.alibaba.fastjson.JSONObject;
  6. import com.yihu.jw.entity.health.bank.AccountDO;
  7. import com.yihu.jw.entity.health.bank.CreditsDetailDO;
  8. import com.yihu.jw.entity.health.bank.TaskPatientDetailDO;
  9. import com.yihu.jw.restmodel.web.MixEnvelop;
  10. import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
  11. import com.yihu.jw.rm.health.bank.HealthBankMapping;
  12. import com.yihu.jw.service.CreditsDetailService;
  13. import io.swagger.annotations.Api;
  14. import io.swagger.annotations.ApiOperation;
  15. import io.swagger.annotations.ApiParam;
  16. import org.springframework.beans.factory.annotation.Autowired;
  17. import org.springframework.cloud.sleuth.Tracer;
  18. import org.springframework.web.bind.annotation.*;
  19. import java.util.ArrayList;
  20. import java.util.List;
  21. /**
  22. * @author wangzhinan
  23. * @create 2018-04-27 16:51
  24. * @desc credits log info
  25. **/
  26. @RestController
  27. @RequestMapping(HealthBankMapping.api_health_bank_common)
  28. @Api(tags = "健康积分相关操作",description = "健康积分相关操作")
  29. public class CreditsDetailController extends EnvelopRestEndpoint {
  30. @Autowired
  31. private Tracer tracer;
  32. @Autowired
  33. private CreditsDetailService service;
  34. /**
  35. * 查看积分记录
  36. *
  37. * @param creditsDetail 积分对象
  38. * @param page 页码
  39. * @param size 分页大小
  40. * @return
  41. */
  42. @PostMapping(value = HealthBankMapping.healthBank.findCreditsLogInfo)
  43. @ApiOperation(value = "查看积分记录")
  44. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> selectCreditsLogInfo(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
  45. @RequestParam(value = "creditsDetail",required = false)String creditsDetail,
  46. @ApiParam(name = "page", value = "第几页,从1开始")
  47. @RequestParam(value = "page", defaultValue = "1",required = false)Integer page,
  48. @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小")
  49. @RequestParam(value = "size", required = false)Integer size){
  50. try{
  51. CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
  52. return service.findByCondition(creditsDetailDO,page,size);
  53. }catch (Exception e){
  54. e.printStackTrace();
  55. tracer.getCurrentSpan().logEvent(e.getMessage());
  56. return MixEnvelop.getError(e.getMessage());
  57. }
  58. }
  59. /**
  60. * 添加积分
  61. *
  62. * @param creditsDetail 积分对象
  63. * @return
  64. */
  65. @PostMapping(value = HealthBankMapping.healthBank.createCreditsDetail)
  66. @ApiOperation(value = "添加积分记录")
  67. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> insert(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
  68. @RequestParam(value = "creditsDetail",required = true)String creditsDetail){
  69. try {
  70. CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
  71. return service.insert(creditsDetailDO);
  72. }catch (Exception e){
  73. e.printStackTrace();
  74. tracer.getCurrentSpan().logEvent(e.getMessage());
  75. return MixEnvelop.getError(e.getMessage());
  76. }
  77. }
  78. /**
  79. * 根据活动查找积分
  80. *
  81. * @param activityId 活动id
  82. *
  83. * @param patientId 居民id
  84. *
  85. * @param page 页码
  86. *
  87. * @param size 分页大小
  88. *
  89. * @return
  90. */
  91. @PostMapping(value = HealthBankMapping.healthBank.selectByActivity)
  92. @ApiOperation(value = "根据活动查找积分")
  93. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> seletcByActivity(@ApiParam(name = "activityId",value = "活动id")
  94. @RequestParam(value = "activityId",required = true)String activityId,
  95. @ApiParam(name = "patientId",value = "居民id")
  96. @RequestParam(value = "patientId",required = true) String patientId,
  97. @ApiParam(name = "page", value = "第几页,从1开始")
  98. @RequestParam(value = "page", defaultValue = "1",required = false)Integer page,
  99. @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小")
  100. @RequestParam(value = "size", required = false)Integer size){
  101. try{
  102. return service.selectByActivity(activityId,patientId,page,size);
  103. }catch (Exception e){
  104. e.printStackTrace();
  105. tracer.getCurrentSpan().logEvent(e.getMessage());
  106. return MixEnvelop.getError(e.getMessage());
  107. }
  108. }
  109. /**
  110. * 查看积分排行
  111. *
  112. * @param object {"filter":[""],"page":"","size":""}
  113. * @return
  114. */
  115. @PostMapping(value = HealthBankMapping.healthBank.selectByRanking)
  116. @ApiOperation(value = "查询积分排名")
  117. public MixEnvelop<AccountDO, AccountDO> selectByRanking(@RequestBody JSONObject object){
  118. try{
  119. JSONArray array = object.getJSONArray("filter");
  120. Integer page = object.getInteger("page");
  121. Integer size = object.getInteger("size");
  122. List<String> patientIds = new ArrayList<>();
  123. for (int i=0;array != null && array.size()!=0&& i<array.size();i++){
  124. patientIds.add(array.getString(i));
  125. }
  126. return service.selectByRanking(patientIds,page,size);
  127. }catch (Exception e){
  128. e.printStackTrace();
  129. tracer.getCurrentSpan().logEvent(e.getMessage());
  130. return MixEnvelop.getError(e.getMessage());
  131. }
  132. }
  133. /**
  134. * 活动排名
  135. * @param object
  136. * @return
  137. */
  138. @PostMapping(value = HealthBankMapping.healthBank.selectByActivityRanking)
  139. @ApiOperation(value = "活动排名")
  140. public MixEnvelop<TaskPatientDetailDO, TaskPatientDetailDO> selectByActivityRanking(@RequestBody JSONObject object){
  141. try{
  142. JSONArray array = object.getJSONArray("filter");
  143. String activityId = object.getString("activityId");
  144. Integer page = object.getInteger("page");
  145. Integer size = object.getInteger("size");
  146. List<String> ids = new ArrayList<>();
  147. for (int i=0;array != null && array.size()!=0&& i<array.size();i++){
  148. ids.add(array.getString(i));
  149. }
  150. return service.selectByActivityRanking(activityId,ids,page,size);
  151. }catch (Exception e){
  152. e.printStackTrace();
  153. tracer.getCurrentSpan().logEvent(e.getMessage());
  154. return MixEnvelop.getError(e.getMessage());
  155. }
  156. }
  157. /**
  158. * 根据活动id查找全部活动
  159. *
  160. * @param activityId 活动ID
  161. * @param page 页码
  162. * @param size 分页大小
  163. * @return
  164. */
  165. @PostMapping(value = HealthBankMapping.healthBank.selectByActivityRanking1)
  166. @ApiOperation(value = "根据活动id查找全部排行")
  167. public MixEnvelop<TaskPatientDetailDO, TaskPatientDetailDO> selectByActivityRanking1(@ApiParam(name = "activityId",value = "活动id")
  168. @RequestParam(value = "activityId",required = true)String activityId,
  169. @ApiParam(name = "patientId",value = "居民id")
  170. @RequestParam(value = "patientId",required = true)String patientId,
  171. @ApiParam(name = "page", value = "第几页,从1开始")
  172. @RequestParam(value = "page", defaultValue = "1",required = false)Integer page,
  173. @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小")
  174. @RequestParam(value = "size", required = false)Integer size){
  175. try{
  176. return service.selectByActivityRanking1(activityId,patientId,page,size);
  177. }catch (Exception e){
  178. e.printStackTrace();
  179. tracer.getCurrentSpan().logEvent(e.getMessage());
  180. return MixEnvelop.getError(e.getMessage());
  181. }
  182. }
  183. @PostMapping(value = HealthBankMapping.healthBank.doctorAddIntegrate)
  184. @ApiOperation(value = "添加积分记录")
  185. public MixEnvelop<Boolean, Boolean> doctorAddIntegrate(@RequestBody JSONObject object){
  186. try {
  187. JSONArray array = object.getJSONArray("patient");
  188. String ruleId = object.getString("ruleId");
  189. String description = object.getString("description");
  190. return service.doctorAddIntegrate(array,ruleId,description);
  191. }catch (Exception e){
  192. e.printStackTrace();
  193. tracer.getCurrentSpan().logEvent(e.getMessage());
  194. return MixEnvelop.getError(e.getMessage());
  195. }
  196. }
  197. /**
  198. * 步数获取积分
  199. *
  200. * @param creditsDetail 积分对象
  201. * @return
  202. */
  203. @PostMapping(value = HealthBankMapping.healthBank.addStepIntegrate)
  204. @ApiOperation(value = "步数获取积分")
  205. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> addStepIntegrate(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
  206. @RequestParam(value = "creditsDetail",required = true)String creditsDetail){
  207. try {
  208. CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
  209. return service.stepAddIntegrate(creditsDetailDO);
  210. }catch (Exception e){
  211. e.printStackTrace();
  212. tracer.getCurrentSpan().logEvent(e.getMessage());
  213. return MixEnvelop.getError(e.getMessage());
  214. }
  215. }
  216. @PostMapping(value = HealthBankMapping.healthBank.weekReward)
  217. @ApiOperation(value = "周奖励")
  218. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> weekReward(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
  219. @RequestParam(value = "creditsDetail",required = true)String creditsDetail){
  220. try {
  221. CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
  222. return service.weekReward(creditsDetailDO);
  223. }catch (Exception e){
  224. e.printStackTrace();
  225. tracer.getCurrentSpan().logEvent(e.getMessage());
  226. return MixEnvelop.getError(e.getMessage());
  227. }
  228. }
  229. /**
  230. * 医生手动减积分
  231. * @param ruleId
  232. * @param patientId
  233. * @param hospital
  234. * @param hospitalName
  235. * @param integrate
  236. * @param reason
  237. * @param doctorId
  238. * @return
  239. */
  240. @PostMapping(value = HealthBankMapping.healthBank.doctorDescreaseIntegrate)
  241. @ApiOperation(value = "医生手动减积分")
  242. public MixEnvelop<Boolean, Boolean> doctorDescreaseIntegrate(@ApiParam(name = "ruleId",value = "规则id")
  243. @RequestParam(value = "ruleId",required = false)String ruleId,
  244. @ApiParam(name = "patientId",value = "居民id")
  245. @RequestParam(value = "patientId",required = false)String patientId,
  246. @ApiParam(name = "hospital",value = "机构code")
  247. @RequestParam(value = "hospital",required = false)String hospital,
  248. @ApiParam(name = "hospitalName",value = "机构名称")
  249. @RequestParam(value = "hospitalName",required = false)String hospitalName,
  250. @ApiParam(name = "integrate",value = "扣减的积分")
  251. @RequestParam(value = "integrate",required = false)Integer integrate,
  252. @ApiParam(name = "reason",value = "扣减的原因")
  253. @RequestParam(value = "reason",required = false)String reason,
  254. @ApiParam(name = "doctorId",value = "医生code")
  255. @RequestParam(value = "doctorId",required = false)String doctorId){
  256. try {
  257. return service.doctorDescreaseIntegrate(ruleId,patientId,doctorId,hospital,hospitalName,integrate,reason);
  258. }catch (Exception e){
  259. e.printStackTrace();
  260. tracer.getCurrentSpan().logEvent(e.getMessage());
  261. return MixEnvelop.getError(e.getMessage());
  262. }
  263. }
  264. /**
  265. * 居民获取积分
  266. *
  267. * @param creditsDetail
  268. * @return
  269. */
  270. @PostMapping(value = HealthBankMapping.healthBank.patientGetInteger)
  271. @ApiOperation(value = "居民获取积分")
  272. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> patientGetInteger(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
  273. @RequestParam(value = "creditsDetail",required = true)String creditsDetail){
  274. try {
  275. CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
  276. return service.patientGetInteger(creditsDetailDO);
  277. }catch (Exception e){
  278. e.printStackTrace();
  279. tracer.getCurrentSpan().logEvent(e.getMessage());
  280. return MixEnvelop.getError(e.getMessage());
  281. }
  282. }
  283. /**
  284. * 获取当日积分
  285. *
  286. * @param patient
  287. * @param transactionId
  288. * @return
  289. */
  290. @PostMapping(value = HealthBankMapping.healthBank.selectByPatientAndDate)
  291. @ApiOperation(value = "健康问答--获取当日积分")
  292. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> patientGetInteger(@ApiParam(name = "patient",value = "居民code")
  293. @RequestParam(value = "patient",required = true)String patient,
  294. @ApiParam(name = "transactionId",value = "任务id")
  295. @RequestParam(value = "transactionId",required = true)String transactionId){
  296. try {
  297. return service.selectByDate(patient,transactionId);
  298. }catch (Exception e){
  299. e.printStackTrace();
  300. tracer.getCurrentSpan().logEvent(e.getMessage());
  301. return MixEnvelop.getError(e.getMessage());
  302. }
  303. }
  304. /**
  305. * 分享获取积分
  306. * @param creditsDetail
  307. * @return
  308. */
  309. @PostMapping(value = HealthBankMapping.healthBank.shareIntegrate)
  310. @ApiOperation(value = "分享获取积分")
  311. public MixEnvelop<CreditsDetailDO, CreditsDetailDO> shareIntegrate(@ApiParam(name = "creditsDetail",value = "积分记录JSON")
  312. @RequestParam(value = "creditsDetail",required = true)String creditsDetail){
  313. try {
  314. CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class);
  315. return service.shareIntegrate(creditsDetailDO);
  316. }catch (Exception e){
  317. e.printStackTrace();
  318. tracer.getCurrentSpan().logEvent(e.getMessage());
  319. return MixEnvelop.getError(e.getMessage());
  320. }
  321. }
  322. }