package com.yihu.jw.controller;/** * Created by nature of king on 2018/4/27. */ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yihu.jw.entity.health.bank.AccountDO; import com.yihu.jw.entity.health.bank.CreditsDetailDO; import com.yihu.jw.entity.health.bank.TaskPatientDetailDO; import com.yihu.jw.restmodel.web.MixEnvelop; import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint; import com.yihu.jw.rm.health.bank.HealthBankMapping; import com.yihu.jw.service.CreditsDetailService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.cloud.sleuth.Tracer; import org.springframework.web.bind.annotation.*; import java.util.ArrayList; import java.util.List; /** * @author wangzhinan * @create 2018-04-27 16:51 * @desc credits log info **/ @RestController @RequestMapping(HealthBankMapping.api_health_bank_common) @Api(tags = "健康积分相关操作",description = "健康积分相关操作") public class CreditsDetailController extends EnvelopRestEndpoint { @Autowired private Tracer tracer; @Autowired private CreditsDetailService service; /** * 查看积分记录 * * @param creditsDetail 积分对象 * @param page 页码 * @param size 分页大小 * @return */ @PostMapping(value = HealthBankMapping.healthBank.findCreditsLogInfo) @ApiOperation(value = "查看积分记录") public MixEnvelop selectCreditsLogInfo(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = false)String creditsDetail, @ApiParam(name = "page", value = "第几页,从1开始") @RequestParam(value = "page", defaultValue = "1",required = false)Integer page, @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小") @RequestParam(value = "size", required = false)Integer size){ try{ CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.findByCondition(creditsDetailDO,page,size); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 查看积分记录 带排序 * * @param creditsDetail 积分对象 * @param OrderType 排序类型:0默认排序;1扣分排序;2加分排序 * @param page 页码 * @param size 分页大小 * @return */ @PostMapping(value = HealthBankMapping.healthBank.findCreditsLogInfoWithOrder) @ApiOperation(value = "查看积分记录") public MixEnvelop selectCreditsLogInfoWithOeder(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = false)String creditsDetail, @ApiParam(name = "OrderType",defaultValue = "0",value = "排序类型:0默认排序;1扣分排序;2加分排序") @RequestParam(value = "OrderType", required = false)Integer OrderType, @ApiParam(name = "page", value = "第几页,从1开始") @RequestParam(value = "page", defaultValue = "1",required = false)Integer page, @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小") @RequestParam(value = "size", required = false)Integer size){ try{ CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.findByConditionWithOrder(creditsDetailDO,OrderType,page,size); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 添加积分 * * @param creditsDetail 积分对象 * @return */ @PostMapping(value = HealthBankMapping.healthBank.createCreditsDetail) @ApiOperation(value = "添加积分记录") public MixEnvelop insert(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.insert(creditsDetailDO); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 根据活动查找积分 * * @param activityId 活动id * * @param patientId 居民id * * @param page 页码 * * @param size 分页大小 * * @return */ @PostMapping(value = HealthBankMapping.healthBank.selectByActivity) @ApiOperation(value = "根据活动查找积分") public MixEnvelop seletcByActivity(@ApiParam(name = "activityId",value = "活动id") @RequestParam(value = "activityId",required = true)String activityId, @ApiParam(name = "patientId",value = "居民id") @RequestParam(value = "patientId",required = true) String patientId, @ApiParam(name = "page", value = "第几页,从1开始") @RequestParam(value = "page", defaultValue = "1",required = false)Integer page, @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小") @RequestParam(value = "size", required = false)Integer size){ try{ return service.selectByActivity(activityId,patientId,page,size); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 查看积分排行 * * @param object {"filter":[""],"page":"","size":""} * @return */ @PostMapping(value = HealthBankMapping.healthBank.selectByRanking) @ApiOperation(value = "查询积分排名") public MixEnvelop selectByRanking(@RequestBody JSONObject object){ try{ JSONArray array = object.getJSONArray("filter"); Integer page = object.getInteger("page"); Integer size = object.getInteger("size"); List patientIds = new ArrayList<>(); for (int i=0;array != null && array.size()!=0&& i selectByActivityRanking(@RequestBody JSONObject object){ try{ JSONArray array = object.getJSONArray("filter"); String activityId = object.getString("activityId"); Integer page = object.getInteger("page"); Integer size = object.getInteger("size"); List ids = new ArrayList<>(); for (int i=0;array != null && array.size()!=0&& i selectByActivityRanking1(@ApiParam(name = "activityId",value = "活动id") @RequestParam(value = "activityId",required = true)String activityId, @ApiParam(name = "patientId",value = "居民id") @RequestParam(value = "patientId",required = true)String patientId, @ApiParam(name = "page", value = "第几页,从1开始") @RequestParam(value = "page", defaultValue = "1",required = false)Integer page, @ApiParam(name = "size",defaultValue = "10",value = ",每页分页大小") @RequestParam(value = "size", required = false)Integer size){ try{ return service.selectByActivityRanking1(activityId,patientId,page,size); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } @PostMapping(value = HealthBankMapping.healthBank.doctorAddIntegrate) @ApiOperation(value = "添加积分记录") public MixEnvelop doctorAddIntegrate(@RequestBody JSONObject object){ try { JSONArray array = object.getJSONArray("patient"); String ruleId = object.getString("ruleId"); String description = object.getString("description"); return service.doctorAddIntegrate(array,ruleId,description); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 步数获取积分 * * @param creditsDetail 积分对象 * @return */ @PostMapping(value = HealthBankMapping.healthBank.addStepIntegrate) @ApiOperation(value = "步数获取积分") public MixEnvelop addStepIntegrate(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.stepAddIntegrate(creditsDetailDO); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } @PostMapping(value = HealthBankMapping.healthBank.weekReward) @ApiOperation(value = "周奖励") public MixEnvelop weekReward(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.weekReward(creditsDetailDO); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 医生手动减积分 * @param ruleId * @param patientId * @param hospital * @param hospitalName * @param integrate * @param reason * @param doctorId * @return */ @PostMapping(value = HealthBankMapping.healthBank.doctorDescreaseIntegrate) @ApiOperation(value = "医生手动减积分") public MixEnvelop doctorDescreaseIntegrate(@ApiParam(name = "ruleId",value = "规则id") @RequestParam(value = "ruleId",required = false)String ruleId, @ApiParam(name = "patientId",value = "居民id") @RequestParam(value = "patientId",required = false)String patientId, @ApiParam(name = "hospital",value = "机构code") @RequestParam(value = "hospital",required = false)String hospital, @ApiParam(name = "hospitalName",value = "机构名称") @RequestParam(value = "hospitalName",required = false)String hospitalName, @ApiParam(name = "integrate",value = "扣减的积分") @RequestParam(value = "integrate",required = false)Integer integrate, @ApiParam(name = "reason",value = "扣减的原因") @RequestParam(value = "reason",required = false)String reason, @ApiParam(name = "doctorId",value = "医生code") @RequestParam(value = "doctorId",required = false)String doctorId){ try { return service.doctorDescreaseIntegrate(ruleId,patientId,doctorId,hospital,hospitalName,integrate,reason,null,null,null); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 医生手动加积分 * @param ruleId * @param patientId * @param hospital * @param hospitalName * @param integrate * @param reason * @param doctorId * @return */ @PostMapping(value = HealthBankMapping.healthBank.doctorIncreaseIntegrate) @ApiOperation(value = "医生手动加积分") public MixEnvelop doctorIncreaseIntegrate(@ApiParam(name = "ruleId",value = "规则id") @RequestParam(value = "ruleId",required = false)String ruleId, @ApiParam(name = "patientId",value = "居民id") @RequestParam(value = "patientId",required = false)String patientId, @ApiParam(name = "hospital",value = "机构code") @RequestParam(value = "hospital",required = false)String hospital, @ApiParam(name = "hospitalName",value = "机构名称") @RequestParam(value = "hospitalName",required = false)String hospitalName, @ApiParam(name = "integrate",value = "增加的积分") @RequestParam(value = "integrate",required = false)Integer integrate, @ApiParam(name = "reason",value = "增加的原因") @RequestParam(value = "reason",required = false)String reason, @ApiParam(name = "doctorId",value = "医生code") @RequestParam(value = "doctorId",required = false)String doctorId, @ApiParam(name = "name",value = "名字") @RequestParam(value = "name",required = false)String name, @ApiParam(name = "idcard",value = "身份证") @RequestParam(value = "idcard",required = false)String idcard){ try { return service.doctorDescreaseIntegrate(ruleId,patientId,doctorId,hospital,hospitalName,integrate,reason,"add",name,idcard); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 居民获取积分 * * @param creditsDetail * @return */ @PostMapping(value = HealthBankMapping.healthBank.patientGetInteger) @ApiOperation(value = "居民获取积分") public MixEnvelop patientGetInteger(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.patientGetInteger(creditsDetailDO); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 获取当日积分 * * @param patient * @param transactionId * @return */ @PostMapping(value = HealthBankMapping.healthBank.selectByPatientAndDate) @ApiOperation(value = "健康问答--获取当日积分") public MixEnvelop patientGetInteger(@ApiParam(name = "patient",value = "居民code") @RequestParam(value = "patient",required = true)String patient, @ApiParam(name = "transactionId",value = "任务id") @RequestParam(value = "transactionId",required = true)String transactionId){ try { return service.selectByDate(patient,transactionId); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 分享获取积分 * @param creditsDetail * @return */ @PostMapping(value = HealthBankMapping.healthBank.shareIntegrate) @ApiOperation(value = "分享获取积分") public MixEnvelop shareIntegrate(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.shareIntegrate(creditsDetailDO); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 分享活动链接获取积分 * @param creditsDetail * @return */ @PostMapping(value = HealthBankMapping.healthBank.share) @ApiOperation(value = "分享活动链接获取积分") public MixEnvelop share(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); List creditsDetailDOS = service.share(creditsDetailDO); MixEnvelop envelop = new MixEnvelop<>(); envelop.setDetailModelList(creditsDetailDOS); return envelop; }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 商城积分支付 * * @param patient 居民code * @param total 订单总积分 * @param hospital 社区code * @param hospitalName 社区名称 * @param orders 订单集合[{orders:,integrate}] * @return */ @PostMapping(value = HealthBankMapping.healthBank.payIntegrate) @ApiOperation(value = "商城积分支付") public MixEnvelop payIntegrate(@ApiParam(name = "patient",value = "居民code") @RequestParam(value = "patient",required = false)String patient, @ApiParam(name = "total",value = "需要支付的总积分") @RequestParam(value = "total",required = false)Double total, @ApiParam(name = "hospital",value = "社区code") @RequestParam(value = "hospital",required = false)String hospital, @ApiParam(name = "hospitalName",value = "社区名称") @RequestParam(value = "hospitalName",required = false)String hospitalName, @ApiParam(name = "orders",value = "订单集合") @RequestParam(value = "orders",required = false)String orders){ try { JSONArray array = JSONArray.parseArray(orders); return service.payIntegrate(patient,total,hospital,hospitalName,array); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 商城退款 * @param orders * @return */ @PostMapping(value = HealthBankMapping.healthBank.refund) @ApiOperation(value = "商城退款") public MixEnvelop refund(@ApiParam(name = "orders",value = "订单集合") @RequestParam(value = "orders",required = false)String orders){ try { JSONArray array = JSONArray.parseArray(orders); return service.refundIntegrate(array); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 周奖励-连续/间断 * @param creditsDetail * @param flag 1连续/2间断 * @return */ @PostMapping(value = HealthBankMapping.healthBank.weekRewardAndIntegrate) @ApiOperation(value = "周奖励-连续/间断") public MixEnvelop weekRewardAndIntegrate(@ApiParam(name = "creditsDetail",value = "积分记录JSON") @RequestParam(value = "creditsDetail",required = true)String creditsDetail, @ApiParam(name = "flag",value = "积分记录JSON") @RequestParam(value = "flag",required = true)Integer flag){ try { CreditsDetailDO creditsDetailDO = toEntity(creditsDetail,CreditsDetailDO.class); return service.weekRewardAndIntegrate(creditsDetailDO,flag); }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } /** * 查询周奖励 * @param patient * @param taskId * @param monday * @param sunday * @return */ @PostMapping(value = HealthBankMapping.healthBank.selectWeekReward) @ApiOperation(value = "查询周奖励") public MixEnvelop selectWeekReward(@ApiParam(name = "patient",value = "居民code") @RequestParam(value = "patient",required = false)String patient, @ApiParam(name = "taskId",value = "任务id") @RequestParam(value = "taskId",required = false)String taskId, @ApiParam(name = "monday",value = "本周星期一") @RequestParam(value = "monday",required = false)String monday, @ApiParam(name = "sunday",value = "本周星期日") @RequestParam(value = "sunday",required = false)String sunday){ try { List creditsDetailDOS = service.selectWeekReward(patient,taskId,monday,sunday); MixEnvelop envelop = new MixEnvelop<>(); envelop.setDetailModelList(creditsDetailDOS); return envelop; }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } @PostMapping(value = HealthBankMapping.healthBank.reduceIntegrate) @ApiOperation(value ="失效积分") public MixEnvelop reduceIntegrate(@ApiParam(name = "hospital",value = "社区code" ) @RequestParam(value = "hospital",required = false)String hospital, @ApiParam(name = "startTime",value = "开始时间") @RequestParam(value = "startTime",required = false)String startTime, @ApiParam(name = "endTime",value = "结束时间") @RequestParam(value = "endTime",required = false)String endTime, @ApiParam(name = "year",value = "年份") @RequestParam(value = "year",required = false)Integer year){ try { service.reduceIntegrate(hospital,startTime,endTime,year); MixEnvelop envelop = new MixEnvelop<>(); return envelop; }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } @PostMapping(value = HealthBankMapping.healthBank.completePlan) @ApiOperation(value ="完成计划获取积分") public MixEnvelop completePlan(@ApiParam(name = "hospital",value = "社区code" ) @RequestParam(value = "hospital",required = false)String hospital, @ApiParam(name = "hospitalName",value = "社区名称") @RequestParam(value = "hospitalName",required = false)String hospitalName, @ApiParam(name = "patient",value = "居民code") @RequestParam(value = "patient",required = true)String patient, @ApiParam(name = "planCode",value = "计划code") @RequestParam(value = "planCode",required = true)String planCode, @ApiParam(name = "idcard",value = "身份证") @RequestParam(value = "idcard",required = false)String idcard, @ApiParam(name = "integrate",value = "积分") @RequestParam(value = "integrate",required = true)Integer integrate){ try { CreditsDetailDO creditsDetailDO =service.completePlan(planCode,patient,idcard,integrate,hospital,hospitalName); MixEnvelop envelop = new MixEnvelop<>(); envelop.setObj(creditsDetailDO); return envelop; }catch (Exception e){ e.printStackTrace(); tracer.getCurrentSpan().logEvent(e.getMessage()); return MixEnvelop.getError(e.getMessage()); } } }