wangzhinan пре 6 година
родитељ
комит
3232553982

+ 47 - 11
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/ActivityDO.java

@ -80,8 +80,8 @@ public class ActivityDO extends UuidIdentityEntityWithOperator implements Serial
    @Column(name="limit_register")
    private Integer limitRegister;//报名限制 0、所有居民可以报名,1、仅当前居民账号可报名
    @Column(name = "count")
    private Long count;//报名人数
    @Column(name = "registration_number")
    private String registrationNumber;//报名人数
    @Column(name = "globel_template")
    private String globelTemplate;//通用模板
@ -105,6 +105,12 @@ public class ActivityDO extends UuidIdentityEntityWithOperator implements Serial
    @Column(name = "area_name")
    private String areaName;
    @Column(name = "introduction")
    private String introduction;
    @Column(name = "sort")
    private Integer sort;
    @Transient
    private String patientId;//居民id
@ -142,6 +148,9 @@ public class ActivityDO extends UuidIdentityEntityWithOperator implements Serial
    @Transient
    private List<TaskGoodsDO> taskGoodsDOS;//活动奖品
    @Transient
    private Integer flag;//标识是否为正在进行的活动 1、正在进行0,还未开始
    @Column(name = "saas_id")
    public String getSaasId() {
@ -387,15 +396,6 @@ public class ActivityDO extends UuidIdentityEntityWithOperator implements Serial
        this.info = info;
    }
    @Column(name = "count")
    public Long getCount() {
        return count;
    }
    public void setCount(Long count) {
        this.count = count;
    }
    @Transient
    public ActivityRuleDO getActivityRuleDO() {
@ -461,6 +461,42 @@ public class ActivityDO extends UuidIdentityEntityWithOperator implements Serial
        this.areaName = areaName;
    }
    @Column(name = "registration_number")
    public String getRegistrationNumber() {
        return registrationNumber;
    }
    public void setRegistrationNumber(String registrationNumber) {
        this.registrationNumber = registrationNumber;
    }
    @Column(name = "introduction")
    public String getIntroduction() {
        return introduction;
    }
    public void setIntroduction(String introduction) {
        this.introduction = introduction;
    }
    @Column(name = "sort")
    public Integer getSort() {
        return sort;
    }
    public void setSort(Integer sort) {
        this.sort = sort;
    }
    @Transient
    public Integer getFlag() {
        return flag;
    }
    public void setFlag(Integer flag) {
        this.flag = flag;
    }
/*
    @Column(name = "del")

+ 12 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/health/bank/CreditsDetailDO.java

@ -97,6 +97,9 @@ public class CreditsDetailDO extends UuidIdentityEntityWithOperator implements S
    @Transient
    private String uploadTime; //上传时间
    @Transient
    private Integer type;//2平台积分,1签约
    @Column(name = "saas_id")
@ -342,4 +345,13 @@ public class CreditsDetailDO extends UuidIdentityEntityWithOperator implements S
    public void setUploadTime(String uploadTime) {
        this.uploadTime = uploadTime;
    }
    @Transient
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
}

+ 5 - 0
common/common-request-mapping/src/main/java/com/yihu/jw/rm/health/bank/HealthBankMapping.java

@ -75,5 +75,10 @@ public class HealthBankMapping {
        public static final String shareIntegrate = "/shareIntegrate";
        public static final String payIntegrate = "/payIntegrate";
        public static final String refund="/refund";
        public static final String selectActivitys="/selectActivitys";
        public static final String updateSort="/updateSort";
        public static final String selectByUnionId="/selectByUnionId";
        public static final String selectNowByUnionId = "/selectNowByUnionId";
        public static final String selectAppletsRanking = "/selectAppletsRanking";
    }
}

+ 1 - 1
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/AccountController.java

@ -171,7 +171,7 @@ public class AccountController extends EnvelopRestEndpoint {
    public MixEnvelop<AccountDO, AccountDO> selectByPatient(@ApiParam(name = "patientId",value = "居民id")
                                                                   @RequestParam(value = "patientId",required = true)String patientId,
                                                            @ApiParam(name = "name",value = "名字")
                                                            @RequestParam(value = "name",required = true)String name,
                                                            @RequestParam(value = "name",required = false)String name,
                                                            @ApiParam(name = "hospital",value = "机构code")
                                                                @RequestParam(value = "hospital",required = false)String hospital,
                                                            @ApiParam(name = "hospitalName",value = "机构名称")

+ 119 - 2
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/ActivityController.java

@ -52,6 +52,8 @@ public class ActivityController extends EnvelopRestEndpoint {
    @ApiOperation(value = "发布活动")
    public MixEnvelop<Boolean, Boolean> publishActivity(@ApiParam(name = "activity",value = "健康活动JSON")
                                          @RequestParam(value = "activity",required = true)String activity,
                                                        @ApiParam(name = "registrationNumber",value = "报名人数")
                                                        @RequestParam(value = "registrationNumber",required = false)String registrationNumber,
                                                        @ApiParam(name = "value1",value = "积分JSON")
                                                        @RequestParam(value = "value1",required = false)String value1,
                                                        @ApiParam(name = "value2",value = "时间规则")
@ -60,7 +62,7 @@ public class ActivityController extends EnvelopRestEndpoint {
                                                            @RequestParam(value = "value3",required = false)String value3){
        try {
            ActivityDO activityDO = toEntity(activity,ActivityDO.class);
            return service.insert(activityDO,value1,value2,value3);
            return service.insert(activityDO,value1,value2,value3,registrationNumber);
        }catch (Exception e){
            e.printStackTrace();
//            tracer.getCurrentSpan().logEvent(e.getMessage());
@ -105,6 +107,8 @@ public class ActivityController extends EnvelopRestEndpoint {
    @ApiOperation(value = "编辑活动")
    public MixEnvelop<Boolean, Boolean> outActivity(@ApiParam(name = "activity", value = "健康活动JSON")
                                                    @RequestParam(value = "activity", required = true) String activity,
                                                    @ApiParam(name = "registrationNumber",value = "报名人数")
                                                    @RequestParam(value = "registrationNumber",required = false)String registrationNumber,
                                                    @ApiParam(name = "value1", value = "活动币JSON")
                                                    @RequestParam(value = "value1", required = false) String value1,
                                                    @ApiParam(name = "value2", value = "活动时间")
@ -113,7 +117,7 @@ public class ActivityController extends EnvelopRestEndpoint {
                                                    @RequestParam(value = "value3", required = false) String value3) {
        try {
            ActivityDO activityDO = toEntity(activity, ActivityDO.class);
            return service.update(activityDO,value1,value2,value3);
            return service.update(activityDO,value1,value2,value3,registrationNumber);
        } catch (Exception e) {
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
@ -330,6 +334,119 @@ public class ActivityController extends EnvelopRestEndpoint {
    }
    /**
     * 获取排序数据
     * @return
     */
    @PostMapping(value = HealthBankMapping.healthBank.selectActivitys)
    @ApiOperation(value = "获取排序数据")
    public MixEnvelop<ActivityDO,ActivityDO> select() {
        try {
            MixEnvelop<ActivityDO,ActivityDO> envelop = new MixEnvelop<>();
            envelop.setDetailModelList(service.select());
            return  envelop;
        } catch (Exception e) {
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 调整顺序
     * @param activitys
     * @return
     */
    @PostMapping(value = HealthBankMapping.healthBank.updateSort)
    @ApiOperation(value = "调整顺序")
    public MixEnvelop updateSort(String activitys) {
        try {
            JSONArray array = JSONArray.parseArray(activitys);
            return  service.updateSort(array);
        } catch (Exception e) {
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
    @PostMapping(value = HealthBankMapping.healthBank.selectByUnionId)
    @ApiOperation(value = "查询参与的竟步走活动")
    public MixEnvelop<ActivityDO, ActivityDO> selectActivityRanking(@ApiParam(name="unionId",value = "unionId")
                                                                    @RequestParam(value = "unionId",required = true)String unionId,
                                                                    @ApiParam(name="patient",value = "居民id")
                                                                    @RequestParam(value = "patient",required = false)String patient,
                                                                    @ApiParam(name="idCard",value = "身份证")
                                                                        @RequestParam(value = "idCard",required = false)String idCard,
                                                                    @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.selectByUnionId(unionId,patient,idCard,page,size);
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 获取当前居民参加的活动
     * @param unionId
     * @param patient
     * @param idCard
     * @return
     */
    @PostMapping(value = HealthBankMapping.healthBank.selectNowByUnionId)
    @ApiOperation(value = "获取当前居民参加的活动")
    public MixEnvelop<ActivityDO, ActivityDO> selectNowByUnionId(@ApiParam(name="unionId",value = "unionId")
                                                                    @RequestParam(value = "unionId",required = true)String unionId,
                                                                    @ApiParam(name="patient",value = "居民id")
                                                                    @RequestParam(value = "patient",required = false)String patient,
                                                                    @ApiParam(name="idCard",value = "身份证")
                                                                    @RequestParam(value = "idCard",required = false)String idCard){
        try{
            MixEnvelop<ActivityDO,ActivityDO> envelop = new MixEnvelop<>();
            envelop.setDetailModelList(service.selectNowByUnionId(unionId,patient,idCard));
            return envelop;
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }
    /**
     * 小程序-居民积分排行
     * @param patients
     * @param taskId
     * @param size
     * @return
     */
    @PostMapping(value = HealthBankMapping.healthBank.selectAppletsRanking)
    @ApiOperation(value = "小程序-居民积分排行")
    public MixEnvelop selectAppletsRanking(@ApiParam(name="patients",value = "居民code列表")
                                         @RequestParam(value = "patients",required = true)String patients,
                                         @ApiParam(name="taskId",value = "任务id")
                                         @RequestParam(value = "taskId",required = true)String taskId,
                                         @ApiParam(name="size",value = "展示多少列")
                                         @RequestParam(value = "size",required = true)Integer size,
                                         @ApiParam(name="patient",value = "居民code")
                                         @RequestParam(value = "patient",required = true)String patient){
        try{
            MixEnvelop envelop = new MixEnvelop<>();
            JSONArray array = JSONArray.parseArray(patients);
            envelop.setObj(service.selectAppletsRanking(array,taskId,size,patient));
            return envelop;
        }catch (Exception e){
            e.printStackTrace();
            tracer.getCurrentSpan().logEvent(e.getMessage());
            return MixEnvelop.getError(e.getMessage());
        }
    }

+ 0 - 3
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/controller/TaskController.java

@ -154,9 +154,6 @@ public class TaskController extends EnvelopRestEndpoint {
    /**//**
     * patient find health task
     *
     * @param patientId
     * @param page
     * @param size
     * @return
     *//*
    @GetMapping(value = HealthBankMapping.healthBank.findTask)

+ 4 - 0
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/dao/ActivityDao.java

@ -17,4 +17,8 @@ public interface ActivityDao extends PagingAndSortingRepository<ActivityDO,Strin
    @Query("select t from ActivityDO t where t.type=?1 and (t.status=0 or t.status=1) and t.delFlag=1")
    List<ActivityDO> findByIdAndType(String type);
    @Query("select t from ActivityDO t where t.delFlag=1 order by t.sort ASC")
    List<ActivityDO> selectBySort();
}

+ 162 - 2
svr/svr-wlyy-health-bank/src/main/java/com/yihu/jw/service/ActivityService.java

@ -62,7 +62,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
     * @return
     */
    @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
    public MixEnvelop<Boolean, Boolean> insert(ActivityDO activityDO,String value1,String value2,String value3){
    public MixEnvelop<Boolean, Boolean> insert(ActivityDO activityDO,String value1,String value2,String value3,String registrationNumber){
        if (value2 != null && value2 !=""){
            JSONObject object = JSONObject.parseObject(value2);
            activityDO.setActivityOfflineTime(object.getDate("activityOfflineTime"));
@ -72,6 +72,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
        activityDO.setCreateTime(new Date());
        activityDO.setUpdateTime(new Date());
        activityDO.setDelFlag(1);
        activityDO.setRegistrationNumber(registrationNumber);
        activityDO= activityDao.save(activityDO);
        if (value3 !=null && value3 !=""){
            JSONObject object = JSONObject.parseObject(value3);
@ -190,7 +191,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
     * @return
     */
    @org.springframework.transaction.annotation.Transactional(rollbackFor = Exception.class)
    public MixEnvelop<Boolean, Boolean> update(ActivityDO activityDO, String value1, String value2, String value3) throws Exception {
    public MixEnvelop<Boolean, Boolean> update(ActivityDO activityDO, String value1, String value2, String value3,String registrationNumber) throws Exception {
        if (StringUtils.isBlank(activityDO.getId())) {
            throw new Exception("活动id不能为空!");
        }
@ -201,6 +202,7 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
            activityDO.setRegistrationTime(object.getDate("registrationTime"));
            activityDO.setDeadLine(object.getDate("deadLine"));
        }
        activityDO.setRegistrationNumber(registrationNumber);
        activityDO.setUpdateTime(new Date());
        activityDO.setDelFlag(1);
        //删除活动任务与奖品
@ -1046,4 +1048,162 @@ public class ActivityService extends BaseJpaService<ActivityDO,ActivityDao> {
    }
    /**
     * 查询排序
     *
     * @return
     */
    public List<ActivityDO> select(){
        return activityDao.selectBySort();
    }
    /**
     * 调整活动的顺序
     *
     * @param array
     * @return
     */
    public MixEnvelop updateSort(JSONArray array){
        MixEnvelop envelop = new MixEnvelop();
        for (int i=0;i<array.size();i++){
            JSONObject jsonObject = array.getJSONObject(i);
            ActivityDO activityDO = activityDao.selectById(jsonObject.getString("id"));
            activityDO.setSort(jsonObject.getInteger("sort"));
            activityDao.save(activityDO);
        }
        envelop.setObj(true);
        return envelop;
    }
    /**
     *  查询参与的竟步走活动
     *
     * @param unionId
     * @param patient
     * @param page
     * @param size
     * @return
     */
    public MixEnvelop<ActivityDO,ActivityDO> selectByUnionId(String unionId,String patient,String idCard,Integer page,Integer size){
        String sql ="select hba.* from wlyy_health_bank_activity hba right join wlyy_health_bank_task_patient_detail htpd on htpd.activity_id=hba.id " +
                "AND htpd.union_id='"+unionId+"' AND  htpd.patient_id ='"+patient+"' and htpd.patient_idcard ='"+idCard+"' " +
                "where hba.del_flag=1 and hba.type='竞走' order by hba.create_time desc LIMIT " + (page-1)*size+","+size;
        List<ActivityDO> activityDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ActivityDO.class));
        for (ActivityDO activityDO:activityDOList){
            ActivityRuleDO activityRuleDO = activityRuleDao.selectByActivityId(activityDO.getId());
            JSONObject object = JSONObject.parseObject(activityRuleDO.getValue2());
            String activityOfflineTime = object.getString("activityOfflineTime");
            List<String> idList = Arrays.asList(activityOfflineTime.split(","));
            if (idList !=null && idList.size()!=0){
                String startTime = idList.get(0);
                String endTime = idList.get(1);
                String nowTime =  DateUtil.dateToStrLong(DateUtil.getNowDate());
                if((startTime.compareTo(nowTime)==-1&&endTime.compareTo(nowTime)==1)||startTime.compareTo(nowTime)==0||endTime.compareTo(nowTime)==0){
                    activityDO.setFlag(1);
                }else {
                    activityDO.setFlag(0);
                }
            }
            activityDO.setActivityRuleDO(activityRuleDO);
            List<TaskDO> taskDOS = taskDao.selectByActivityId(activityDO.getId());
            if (taskDOS!=null&&taskDOS.size()!=0){
                activityDO.setTaskDOS(taskDOS);
            }
        }
        String sqlCount ="select count(1) AS total from wlyy_health_bank_activity hba right join wlyy_health_bank_task_patient_detail htpd on htpd.activity_id=hba.id " +
                "where hba.del_flag=1 and hba.type='竞走' order by hba.create_time desc ";
        List<Map<String,Object>> rstotal = jdbcTemplate.queryForList(sqlCount);
        Long count = 0L;
        if(rstotal!=null&&rstotal.size()>0){
            count = (Long) rstotal.get(0).get("total");
        }
        return MixEnvelop.getSuccessListWithPage(HealthBankMapping.api_success,activityDOList,page,size,count);
    }
    /**
     *  获取当前居民参加的活动
     *
     * @param unionId
     * @param patient
     * @param idCard
     * @return
     */
    public List<ActivityDO> selectNowByUnionId(String unionId,String patient,String idCard){
        String sql ="select hba.* from wlyy_health_bank_activity hba right join wlyy_health_bank_task_patient_detail htpd on htpd.activity_id=hba.id " +
                "AND htpd.union_id='"+unionId+"' AND  htpd.patient_id ='"+patient+"' and htpd.patient_idcard ='"+idCard+"' " +
                "where hba.del_flag=1 and hba.type='竞走' order by hba.create_time desc " ;
        List<ActivityDO> activityDOList = jdbcTemplate.query(sql,new BeanPropertyRowMapper(ActivityDO.class));
        List<ActivityDO> activityDOS = new ArrayList<>();
        for (ActivityDO activityDO:activityDOList){
            ActivityRuleDO activityRuleDO = activityRuleDao.selectByActivityId(activityDO.getId());
            JSONObject object = JSONObject.parseObject(activityRuleDO.getValue2());
            String activityOfflineTime = object.getString("activityOfflineTime");
            List<String> idList = Arrays.asList(activityOfflineTime.split(","));
            activityDO.setActivityRuleDO(activityRuleDO);
            List<TaskDO> taskDOS = taskDao.selectByActivityId(activityDO.getId());
            if (taskDOS!=null&&taskDOS.size()!=0){
                activityDO.setTaskDOS(taskDOS);
            }
            if (idList !=null && idList.size()!=0){
                String startTime = idList.get(0);
                String endTime = idList.get(1);
                String nowTime =  DateUtil.dateToStrLong(DateUtil.getNowDate());
                if((startTime.compareTo(nowTime)==-1&&endTime.compareTo(nowTime)==1)||startTime.compareTo(nowTime)==0||endTime.compareTo(nowTime)==0){
                    activityDO.setFlag(1);
                    activityDOS.add(activityDO);
                }
            }
        }
        return activityDOS;
    }
    /**
     * 小程序活动排名
     *
     * @param patients
     * @param taskId
     * @param size
     * @return
     */
    public JSONObject selectAppletsRanking(JSONArray patients,String taskId,Integer size,String patient){
        StringBuffer buffer = new StringBuffer();
        if (patients!= null&&patients.size()!=0){
            buffer.append("and bcd.patient_id IN(");
            for (int i=0;i<patients.size();i++){
                buffer.append("'"+patients.getString(i)+"',");
            }
            buffer.deleteCharAt(buffer.length()-1);
            buffer.append(") ");
        }
        String sql = "SELECT @rownum :=@rownum + 1 AS rank, r.sum, r.patient_id AS patient FROM " +
                "(SELECT@rowNum := 0) b," +
                " (SELECT count(bcd.integrate) AS sum, bcd.patient_id, bcd.create_time FROM wlyy_health_bank_credits_detail bcd\n" +
                "WHERE bcd.transaction_id = '"+taskId+"' " +buffer+
                "GROUP BY bcd.patient_id) r ORDER BY r.sum DESC,r.create_time DESC LIMIT 0,"+size;
        List<Map<String,Object>> list = jdbcTemplate.queryForList(sql);
        String sql1= "select s.rank,s.sum,s.patient_id from (SELECT @rownum :=@rownum + 1 AS rank, r.sum, r.patient_id FROM " +
                "(SELECT@rowNum := 0) b," +
                " (SELECT count(bcd.integrate) AS sum, bcd.patient_id, bcd.create_time FROM wlyy_health_bank_credits_detail bcd\n" +
                "WHERE bcd.transaction_id = '"+taskId+"' " +buffer+
                "GROUP BY bcd.patient_id) r ORDER BY r.sum DESC,r.create_time DESC)s where s.patient_id ='"+patient+"'";
        List<Map<String,Object>> list1 = jdbcTemplate.queryForList(sql1);
        JSONObject object = new JSONObject();
        object.put("list",list);
        if (list1!=null&&list1.size()!=0){
            object.put("patient",list1.get(0));
        }else {
            object.put("patient",null);
        }
        return object;
    }
}

+ 1 - 1
svr/svr-wlyy-health-bank/src/main/resources/bootstrap.yml

@ -29,5 +29,5 @@ spring:
  profiles: prod
  cloud:
    config:
      uri: ${wlyy.spring.config.uri:http://172.26.0.107:1221}
      uri: ${wlyy.spring.config.uri:http://192.168.120.153:1221}
      label: ${wlyy.spring.config.label:prod}