Commit 31d8ea4f authored by yangshuxing's avatar yangshuxing

小程序提交成绩版本

parent 5dce0a94
...@@ -294,6 +294,10 @@ ...@@ -294,6 +294,10 @@
<artifactId>geexek-utils</artifactId> <artifactId>geexek-utils</artifactId>
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
</dependency> </dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</dependency>
</dependencies> </dependencies>
<repositories> <repositories>
......
...@@ -31,7 +31,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc; ...@@ -31,7 +31,7 @@ import org.springframework.web.servlet.config.annotation.EnableWebMvc;
@MapperScan(basePackages = "com.dlbridge.jadp.plugins.cmpt.dao.mapper") @MapperScan(basePackages = "com.dlbridge.jadp.plugins.cmpt.dao.mapper")
@EnableAspectJAutoProxy(proxyTargetClass = true) @EnableAspectJAutoProxy(proxyTargetClass = true)
@EnableScheduling @EnableScheduling
@EnableFeignClients(clients = {NewsService.class}) @EnableFeignClients(basePackages="com.dlbridge.feign")
@EnableEurekaClient @EnableEurekaClient
@EnableDiscoveryClient @EnableDiscoveryClient
@EnableCircuitBreaker @EnableCircuitBreaker
......
...@@ -39,7 +39,6 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor ...@@ -39,7 +39,6 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor
if (handler instanceof HandlerMethod) { if (handler instanceof HandlerMethod) {
HandlerMethod handlerMethod = (HandlerMethod) handler; HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod(); Method method = handlerMethod.getMethod();
System.out.println(method.getName());
PageView annotation = method.getAnnotation(PageView.class); PageView annotation = method.getAnnotation(PageView.class);
if (annotation != null) { if (annotation != null) {
......
...@@ -11,7 +11,7 @@ public class FeignConfig { ...@@ -11,7 +11,7 @@ public class FeignConfig {
//自定义重试次数 //自定义重试次数
@Bean @Bean
public Retryer feignRetryer() { public Retryer feignRetryer() {
Retryer retryer = new Retryer.Default(100, 1000, 0); Retryer retryer = new Retryer.Default(10000, 30000, 0);
return retryer; return retryer;
} }
......
package com.dlbridge.jadp.plugins.cmpt.bean; package com.dlbridge.jadp.plugins.cmpt.bean;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import io.swagger.models.auth.In;
import lombok.Builder; import lombok.Builder;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString; import lombok.ToString;
import lombok.experimental.Accessors;
/** /**
* 赛事成绩收集信息字段 * 赛事成绩收集信息字段
...@@ -13,15 +15,18 @@ import lombok.ToString; ...@@ -13,15 +15,18 @@ import lombok.ToString;
@Getter @Getter
@Setter @Setter
@ToString @ToString
@Accessors(chain = true)
public class CmptScoreField { public class CmptScoreField {
@ApiModelProperty(value = "字段信息ID") @ApiModelProperty(value = "字段信息ID")
private int id; private Integer id;
@ApiModelProperty(value = "赛事ID") @ApiModelProperty(value = "赛事ID")
private int cmptId; private Integer cmptId;
@ApiModelProperty(value = "字段信息名字") @ApiModelProperty(value = "字段信息名字")
private int fieldName; private String fieldName;
@ApiModelProperty(value = "字段信息类型") @ApiModelProperty(value = "字段信息类型")
private int fieldType=1; private Integer fieldType=1;
@ApiModelProperty(value = "字段信息序号") @ApiModelProperty(value = "字段信息序号")
private int filedIndex; private Integer filedIndex;
private Integer isDelete;
} }
...@@ -13,13 +13,16 @@ import lombok.ToString; ...@@ -13,13 +13,16 @@ import lombok.ToString;
@ToString @ToString
public class CmptScoreFieldValue { public class CmptScoreFieldValue {
@ApiModelProperty(value = "赛事规则值的自增长ID") @ApiModelProperty(value = "赛事规则值的自增长ID")
private int id; private int id;
private String markNo;
@ApiModelProperty(value = "赛事规则值的字段ID") @ApiModelProperty(value = "赛事规则值的字段ID")
private int scoreFieldId; private int scoreFieldId;
@ApiModelProperty(value = "赛事规则值的字段名字,冗余值") @ApiModelProperty(value = "赛事规则值的字段名字,冗余值")
private String scoreFieldName; private String scoreFieldName;
@ApiModelProperty(value = "赛事规则值的字段的存储值") @ApiModelProperty(value = "赛事规则值的字段的存储值")
private String scoreFieldValue; private String scoreFieldValue;
@ApiModelProperty(value = "赛事规则值的字段对应的赛事ID") @ApiModelProperty(value = "赛事规则值的字段对应的赛事ID")
private int cmptId; private int cmptId;
private int ruleId;
} }
package com.dlbridge.jadp.plugins.cmpt.bean; package com.dlbridge.jadp.plugins.cmpt.bean;
import com.dlbridge.jadp.plugins.cmpt.utils.date.DateDeserializers;
import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
...@@ -13,13 +15,16 @@ import java.util.Date; ...@@ -13,13 +15,16 @@ import java.util.Date;
@ToString @ToString
public class CmptScoreRule { public class CmptScoreRule {
@ApiModelProperty(value = "赛事规则的ID") @ApiModelProperty(value = "赛事规则的ID")
private int id; private int id;
@ApiModelProperty(value = "赛事规则的序号") @ApiModelProperty(value = "赛事规则的序号")
private int index; private int index;
@ApiModelProperty(value = "赛事规则的对应的赛事Id") @ApiModelProperty(value = "赛事规则的对应的赛事Id")
private int cmpt_id; private int cmptId;
@ApiModelProperty(value = "赛事规则的赛事开始时间") @ApiModelProperty(value = "赛事规则的赛事开始时间")
private Date start_time; @JsonDeserialize(using = DateDeserializers.ISO8601Long.class)
private Date startTime;
@ApiModelProperty(value = "赛事规则的赛事结束时间") @ApiModelProperty(value = "赛事规则的赛事结束时间")
private Date end_time; @JsonDeserialize(using = DateDeserializers.ISO8601Long.class)
private Date endTime;
} }
package com.dlbridge.jadp.plugins.cmpt.bean;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class CmptScoreRuleBean extends CmptScoreRule{
private boolean isUploaded;
}
package com.dlbridge.jadp.plugins.cmpt.bean;
import lombok.Data;
import java.util.List;
@Data
public class CmptSettingTemplate {
private int cmptId;
List<SettingTemplate> settingTemplates;
List<SettingTemplate> restSettingTemplates;
}
...@@ -32,5 +32,7 @@ public class EnrollInfo { ...@@ -32,5 +32,7 @@ public class EnrollInfo {
@ApiModelProperty(value = "救援人员电话") @ApiModelProperty(value = "救援人员电话")
private String remark; private String remark;
private String gender;
} }
...@@ -3,6 +3,7 @@ package com.dlbridge.jadp.plugins.cmpt.bean; ...@@ -3,6 +3,7 @@ package com.dlbridge.jadp.plugins.cmpt.bean;
import com.dlbridge.jadp.common.utils.excel.annotation.ExcelField; import com.dlbridge.jadp.common.utils.excel.annotation.ExcelField;
import lombok.Getter; import lombok.Getter;
import lombok.Setter; import lombok.Setter;
import lombok.ToString;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
import java.util.Date; import java.util.Date;
...@@ -10,6 +11,7 @@ import java.util.Date; ...@@ -10,6 +11,7 @@ import java.util.Date;
@Getter @Getter
@Setter @Setter
@Accessors(chain = true) @Accessors(chain = true)
@ToString
public class EnrollUser { public class EnrollUser {
private int cmpt_id; private int cmpt_id;
......
package com.dlbridge.jadp.plugins.cmpt.bean;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class RoadStatistic {
private String enrollCount;
private String roadName;
private String roadId;
}
package com.dlbridge.jadp.plugins.cmpt.bean;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.List;
@Data
public class ScoreExcelBean {
@JsonIgnore
private int id;
// 分段ID
private int ruleId;
private int duration;
private String date;
private List<CmptScoreFieldValue> fieldValues;
}
package com.dlbridge.jadp.plugins.cmpt.bean;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
public class ScoreRuleMap {
// 规则Id
private Integer ruleId;
// 单点成绩id
private Integer scoreItemId;
// 用户名单id
private String markNo;
}
package com.dlbridge.jadp.plugins.cmpt.bean;
import lombok.Data;
@Data
public class SettingTemplate {
private String uuid;
private String name;
private int type;
private int visibility;
private int status;
private String style;
private int seq;
}
package com.dlbridge.jadp.plugins.cmpt.bean;
import lombok.Data;
import java.util.List;
@Data
public class UserScore {
//报名iD
private String markNo;
//报名iD
private Integer cmptId;
private Integer indexId;
List<CmptScoreFieldValue> fields;
Score score;
}
package com.dlbridge.jadp.plugins.cmpt.bean;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Data;
import java.util.List;
public class UserScoreExcelBean {
@JsonIgnore
private int enroll_id;
// 用户基本信息
private EnrollUser user;
private long totalDuration;
private String durationStr;
private int rankNo;
private boolean isDone;
List<ScoreExcelBean> scores;
@JsonIgnore
private boolean hasDuration;
@JsonIgnore
private boolean noDuration;
public int getEnroll_id() {
return enroll_id;
}
public void setEnroll_id(int enroll_id) {
this.enroll_id = enroll_id;
}
public EnrollUser getUser() {
return user;
}
public void setUser(EnrollUser user) {
this.user = user;
}
public long getTotalDuration() {
return totalDuration;
}
public void setTotalDuration(long totalDuration) {
this.totalDuration = totalDuration;
}
public String getDurationStr() {
return durationStr;
}
public void setDurationStr(String durationStr) {
this.durationStr = durationStr;
}
public int getRankNo() {
return rankNo;
}
public void setRankNo(int rankNo) {
this.rankNo = rankNo;
}
public List<ScoreExcelBean> getScores() {
return scores;
}
public void setScores(List<ScoreExcelBean> scores) {
this.scores = scores;
}
public boolean isHasDuration() {
return this.totalDuration > 0;
}
public void setHasDuration(boolean hasDuration) {
this.hasDuration = hasDuration;
}
public boolean isNoDuration() {
return this.totalDuration <= 0;
}
public boolean isDone() {
return isDone;
}
public void setDone(boolean done) {
isDone = done;
}
public void setNoDuration(boolean noDuration) {
this.noDuration = noDuration;
}
@Override
public String toString() {
return "UserScoreExcelBean{" +
"enroll_id=" + enroll_id +
", user=" + user +
", totalDuration=" + totalDuration +
", durationStr='" + durationStr + '\'' +
", rankNo=" + rankNo +
", scores=" + scores +
", hasDuration=" + hasDuration +
", noDuration=" + noDuration +
'}';
}
}
...@@ -2,16 +2,31 @@ ...@@ -2,16 +2,31 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreFieldMapper"> <mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreFieldMapper">
<select id="getCmptScoreFieldsByCmptId" resultType="CmptScoreField"> <select id="getCmptScoreFieldByCmptId" resultType="CmptScoreField">
select id,cmpt_id as cmptId,field_name as fieldName,field_type as fieldType,field_index as fieldIndex from gk_cmpt_score_field where cmpt_id=#{cmptId} order by index select id,cmpt_id as cmptId,field_name as fieldName,field_type as fieldType,field_index as filedIndex
from gk_cmpt_score_field
where cmpt_id=#{cmptId} and is_delete=0 order by field_index
</select> </select>
<insert id="insert"> <insert id="save" keyColumn="id" keyProperty="id" useGeneratedKeys="true">
INSERT INTO gk_cmpt_score_field (cmpt_id,field_name,field_type,field_index) VALUES(#cmptId,#fieldName,#fieldType,#fieldIndex) INSERT INTO gk_cmpt_score_field (cmpt_id,field_name,field_type,field_index,insert_time)
VALUES(#{cmptId},#{fieldName},#{fieldType},#{filedIndex},now())
</insert> </insert>
<update id="update"> <update id="update">
UPDATE gk_cmpt_score_field set cmpt_id=#{cmptId},field_name=#{fieldName},field_type=#{fieldType},field_index=#{fieldIndex} where id=#{id} UPDATE gk_cmpt_score_field
<set>
<if test="fieldName != null">
field_name=#{fieldName},
</if>
<if test="isDelete != null">
is_delete=#{isDelete},
</if>
<if test="true">
update_time = now()
</if>
</set>
where id=#{id}
</update> </update>
</mapper> </mapper>
\ No newline at end of file
package com.dlbridge.jadp.plugins.cmpt.dao.mapper; package com.dlbridge.jadp.plugins.cmpt.dao.mapper;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreFieldValue; import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreFieldValue;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -20,12 +21,17 @@ public interface CmptScoreFieldValueMapper { ...@@ -20,12 +21,17 @@ public interface CmptScoreFieldValueMapper {
* 对赛事成绩收集信息进行存储 * 对赛事成绩收集信息进行存储
* @param cmptScoreFieldValue * @param cmptScoreFieldValue
*/ */
public void save(CmptScoreFieldValue cmptScoreFieldValue); public void save(@Param("cmpt") CmptScoreFieldValue cmptScoreFieldValue);
/** /**
* 对赛事成绩收集信息进行更新 * 对赛事成绩收集信息进行更新
* @param cmptScoreFieldValue * @param cmptScoreFieldValue
*/ */
public void update(CmptScoreFieldValue cmptScoreFieldValue); public void update(@Param("cmpt") CmptScoreFieldValue cmptScoreFieldValue);
List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndMarkNo(@Param("cmptId") Integer cmptId,@Param("markNo") String markNo);
List<CmptScoreFieldValue> getCmptScoreFieldValueByRuleIdAndMarkNo(@Param("ruleId") Integer ruleId,@Param("markNo") String markNo);
void deleteFieldValueByRuleIdAndMarkNo(@Param("ruleId")Integer ruleId,@Param("markNo") String markNo);
} }
...@@ -2,16 +2,41 @@ ...@@ -2,16 +2,41 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreFieldValueMapper"> <mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreFieldValueMapper">
<select id="getCmptScoreFieldValuesByCmptId" resultType="CmptScoreFieldValue"> <select id="getCmptScoreFieldValueByCmptId" resultType="CmptScoreFieldValue">
select id,scoreFieldId,scoreFieldName,scoreFieldValue,cmptId from gk_cmpt_score_field_value where cmptId=#{cmptId} order by id select id,scoreFieldId,scoreFieldName,scoreFieldValue,cmptId
from gk_cmpt_score_field_value
where cmptId=#{cmptId} and isDelete=0 order by id
</select> </select>
<insert id="insert"> <insert id="save">
INNER JOIN gk_cmpt_score_field_value(scoreFieldId,scoreFieldName,scoreFieldValue,cmptId) VALUES(#scoreFieldId,#scoreFieldName,#scoreFieldValue,#cmptId) insert into gk_cmpt_score_field_value(scoreFieldId,scoreFieldName,scoreFieldValue,cmptId,rule_id,markNo,insertTime)
VALUES(#{cmpt.scoreFieldId},#{cmpt.scoreFieldName},#{cmpt.scoreFieldValue},#{cmpt.cmptId},#{cmpt.ruleId},#{cmpt.markNo},now())
</insert> </insert>
<update id="update"> <update id="update">
UPDATE gk_cmpt_score_field_value set cmptId=#{cmptId},scoreFieldName=#{scoreFieldName},scoreFieldValue=#{scoreFieldValue} where scoreFieldId=#{scoreFieldId} UPDATE gk_cmpt_score_field_value set
scoreFieldName=#{cmpt.scoreFieldName},
scoreFieldValue=#{cmpt.scoreFieldValue},
updateTime = now()
where scoreFieldId=#{cmpt.scoreFieldId}
</update> </update>
<select id="getCmptScoreFieldValueByCmptIdAndMarkNo" resultType="CmptScoreFieldValue">
select a.field_name scoreFieldName,a.id scoreFieldId, b.scoreFieldValue,a.cmpt_id cmptId
from gk_cmpt_score_field a
left join gk_cmpt_score_field_value b
on a.id = b.scoreFieldId and b.markNo=#{markNo} and b.isDelete=0
where a.cmpt_id=#{cmptId} and a.is_delete=0 order by a.id
</select>
<select id="getCmptScoreFieldValueByRuleIdAndMarkNo" resultType="CmptScoreFieldValue">
select a.id,a.scoreFieldId,b.field_name scoreFieldName,a.scoreFieldValue,a.cmptId
from gk_cmpt_score_field b
left join gk_cmpt_score_field_value a on a.scoreFieldId=b.id and markNo=#{markNo} and a.isDelete=0
where rule_id=#{ruleId} and b.is_delete=0 order by id
</select>
<update id="deleteFieldValueByRuleIdAndMarkNo">
update gk_cmpt_score_field_value set isDelete=1 where rule_id =#{ruleId} and markNo=#{markNo}
</update>
</mapper> </mapper>
\ No newline at end of file
package com.dlbridge.jadp.plugins.cmpt.dao.mapper; package com.dlbridge.jadp.plugins.cmpt.dao.mapper;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule; import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule;
import com.dlbridge.jadp.plugins.cmpt.bean.ScoreRuleMap;
import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean;
import org.apache.ibatis.annotations.Param;
import java.util.List; import java.util.List;
...@@ -20,12 +23,31 @@ public interface CmptScoreRuleMapper { ...@@ -20,12 +23,31 @@ public interface CmptScoreRuleMapper {
* 对赛事规则进行存储 * 对赛事规则进行存储
* @param cmptScoreRule * @param cmptScoreRule
*/ */
public void save(CmptScoreRule cmptScoreRule); public void save(@Param("cmptScoreRule") CmptScoreRule cmptScoreRule);
/** /**
* 对赛事规则进行更新 * 对赛事规则进行更新
* @param cmptScoreRule * @param cmptScoreRule
*/ */
public void update(CmptScoreRule cmptScoreRule); public void update(@Param("cmptScoreRule") CmptScoreRule cmptScoreRule);
CmptScoreRule getCmptScoreRulesByCmptIdAndIndex(@Param("cmptId") Integer cmptId,@Param("indexId") Integer indexId);
int saveScoreRuleMap(@Param("scoreRuleMap") ScoreRuleMap scoreRuleMap);
Integer getCmptScoreRulesMapBymarkNoAndRuleId(@Param("markNo") String markNo,@Param("ruleId") Integer ruleId);
CmptScoreRule getCmptScoreRulesById(int id);
void delete(int id);
void deleteScoreMap(@Param("markNo") String markNo,@Param("scoreItemId") Integer scoreItemId);
List<ScoreRuleMap> getAllRuleAndScoreItemByMarkNoAndCmptId(Integer cmptId, String markNo);
int getRoadStatistic(@Param("cmptId") Integer cmptId,@Param("roadId") String roadId,@Param("ruleId") int ruleId);
List<UserScoreExcelBean> getRoadStatisticByCmptIdAndRoadId(@Param("cmptId") Integer cmptId,@Param("roadId") String roadId);
Integer getCmptScoreRulesMapByMarkNoAndScoreId(@Param("markNo") String markNo,@Param("scoreItemId") Integer scoreItemId);
} }
<?xml version="1.0" encoding="UTF-8" ?> <?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreFieldValueMapper"> <mapper namespace="com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleMapper">
<select id="getCmptScoreRuleByCmptId" resultType="CmptScoreRule"> <select id="getCmptScoreRuleByCmptId" resultType="CmptScoreRule">
select id,index,cmpt_id as cmptId,start_time as startTime,end_time as endTime from gk_cmpt_score_rule where cmpt_id=#{cmptId} order by index select id,`index`,cmpt_id as cmptId,start_time as startTime,end_time as endTime
from gk_cmpt_score_rule where cmpt_id=#{cmptId} order by `index`
</select> </select>
<insert id="insert"> <insert id="save" useGeneratedKeys="true" keyProperty="id" keyColumn="id">
insert into gk_cmpt_score_rule(id,cmptid,start_time,end_time) VALUES(#id,#cmptId,#startTime,#endTime) insert into gk_cmpt_score_rule(cmpt_id,`index`,start_time,end_time)
VALUES(#{cmptScoreRule.cmptId},#{cmptScoreRule.index},#{cmptScoreRule.startTime},#{cmptScoreRule.endTime})
</insert> </insert>
<update id="update"> <update id="update">
UPDATE gk_cmpt_score_rule SET UPDATE gk_cmpt_score_rule SET
cmptid = #{cmptId}, cmpt_id = #{cmptScoreRule.cmptId},
index=#{index}, `index`=#{cmptScoreRule.index},
start_time = #{startTime}, start_time = #{cmptScoreRule.startTime},
end_time = #{endTime} end_time = #{cmptScoreRule.endTime},
WHERE id = #{id} update_time = now()
WHERE id = #{cmptScoreRule.id}
</update> </update>
<select id="getCmptScoreRulesByCmptIdAndIndex" resultType="CmptScoreRule">
select id,`index`,cmpt_id as cmptId,
start_time as startTime,
end_time as endTime
from gk_cmpt_score_rule
where cmpt_id=#{cmptId} and `index` = #{indexId}
limit 1
</select>
<insert id="saveScoreRuleMap">
insert into gk_cmpt_score_rule_map(
rule_id,
score_item_id,
mark_no
) values (
#{scoreRuleMap.ruleId},
#{scoreRuleMap.scoreItemId},
#{scoreRuleMap.markNo}
)
</insert>
<select id="getCmptScoreRulesMapBymarkNoAndRuleId" resultType="java.lang.Integer">
select score_item_id scoreItemId
from gk_cmpt_score_rule_map
where mark_no=#{markNo} and rule_id=#{ruleId}
</select>
<delete id="delete">
delete from gk_cmpt_score_rule where id = #{id}
</delete>
<select id="getCmptScoreRulesById" resultType="CmptScoreRule">
select id,`index`,cmpt_id as cmptId,start_time as startTime,end_time as endTime
from gk_cmpt_score_rule where id=#{id}
</select>
<delete id="deleteScoreMap">
delete from gk_cmpt_score_rule_map
where score_item_id=#{scoreItemId} and mark_no=#{markNo}
</delete>
<select id="getAllRuleAndScoreItemByMarkNoAndCmptId" resultType="com.dlbridge.jadp.plugins.cmpt.bean.ScoreRuleMap">
select a.id ruleId, b.score_item_id scoreItemId
from gk_cmpt_score_rule a
left join gk_cmpt_score_rule_map b on a.id=b.rule_id and b.mark_no=#{markNo}
where a.cmpt_id=#{cmptId}
</select>
<select id="getRoadStatistic" resultType="int">
select count(1)
from gksite.gk_cmpt_score_rule rule
inner join gksite.gk_cmpt_score_rule_map rulemap on rule.id = rulemap.rule_id
inner join geexekscore.cmpt_subsection_score score on rulemap.score_item_id = score.id
inner join geerunner.cmpt_enroll enroll on rule.cmpt_id=enroll.cmpt_id and rulemap.mark_no=enroll.nick_id and enroll.del_flg=0
where rule.cmpt_id=#{cmptId} and rule.id=#{ruleId}
and enroll.cmpt_item=#{roadId}
</select>
<resultMap id="userMap" type="com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean">
<id column="user_enroll_id" property="enroll_id"></id>
<association property="user" columnPrefix="user_" javaType="com.dlbridge.jadp.plugins.cmpt.bean.EnrollUser">
<id column="enroll_id" property="enroll_id"></id>
<result column="markNo" property="markNo"></result>
<result column="itemName" property="item_name"></result>
<result column="sex" property="sex"></result>
<result column="memberName" property="member_name"></result>
</association>
<collection property="scores" columnPrefix="score_" ofType="com.dlbridge.jadp.plugins.cmpt.bean.ScoreExcelBean">
<id column="scoreId" property="id"></id>
<result column="date" property="date"></result>
<result column="ruleId" property="ruleId"></result>
<result column="duration" property="duration"></result>
<collection property="fieldValues" columnPrefix="field_" ofType="com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreFieldValue">
<id column="fvid" property="id"></id>
<result column="scoreFieldName" property="scoreFieldName"></result>
<result column="scoreFieldValue" property="scoreFieldValue"></result>
</collection>
</collection>
</resultMap>
<select id="getRoadStatisticByCmptIdAndRoadId" resultMap="userMap">
select enroll.enroll_id user_enroll_id,enroll.member_name user_memberName,enroll.sex user_sex,item.item_name user_itemName,
enroll.nick_id user_markNo,rulemap.rule_id score_ruleId,
score.id score_scoreId,score.subsectionscore score_duration,score.subsectionTime score_date,
fv.id score_field_fvid, fv.scoreFieldValue score_field_scoreFieldValue,fv.scoreFieldName score_field_scoreFieldName
from geerunner.cmpt_enroll enroll
left join gksite.gk_cmpt_score_rule rule on rule.cmpt_id=enroll.cmpt_id
LEFT join gksite.gk_cmpt_score_rule_map rulemap on rule.id = rulemap.rule_id and enroll.nick_id=rulemap.mark_no
left join geexekscore.cmpt_subsection_score score on rulemap.score_item_id = score.id
left join geerunner.cmpt_item item on item.item_id = enroll.cmpt_item
left join gksite.gk_cmpt_score_field_value fv on fv.rule_id=rule.id and fv.markNo=enroll.nick_id
where enroll.cmpt_id=#{cmptId}
and enroll.cmpt_item=#{roadId} and enroll.del_flg=0
</select>
<select id="getCmptScoreRulesMapByMarkNoAndScoreId" resultType="java.lang.Integer">
select rule_id
from gk_cmpt_score_rule_map
where mark_no =#{markNo} and score_item_id=#{scoreItemId}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -3,7 +3,9 @@ package com.dlbridge.jadp.plugins.cmpt.dao.mapper; ...@@ -3,7 +3,9 @@ package com.dlbridge.jadp.plugins.cmpt.dao.mapper;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.Func; import com.dlbridge.jadp.plugins.cmpt.bean.Func;
import com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting; import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting;
...@@ -32,4 +34,10 @@ public interface CmptSettingMapper { ...@@ -32,4 +34,10 @@ public interface CmptSettingMapper {
CmptSetting getCmptSettingById(String id); CmptSetting getCmptSettingById(String id);
Integer getCommonEnrollCmptId(int cmptId); Integer getCommonEnrollCmptId(int cmptId);
List<SettingTemplate> queryAllSettingTemplate();
List<CmptSettingTemplate> queryAllCmptSetting();
void insert(CmptSetting setting);
} }
...@@ -59,11 +59,9 @@ ...@@ -59,11 +59,9 @@
type, type,
status, status,
visibility, visibility,
style,
seq, seq,
create_by,
create_date, create_date,
update_by,
update_date,
del_flag del_flag
) VALUES ( ) VALUES (
#{id}, #{id},
...@@ -72,12 +70,10 @@ ...@@ -72,12 +70,10 @@
#{type}, #{type},
#{status}, #{status},
#{visibility}, #{visibility},
#{style},
#{seq}, #{seq},
#{createBy}, now(),
#{createDate}, 0
#{updateBy},
#{updateDate},
#{delFlag}
) )
</insert> </insert>
...@@ -145,4 +141,23 @@ ...@@ -145,4 +141,23 @@
<select id="getCommonEnrollCmptId" resultType="java.lang.Integer"> <select id="getCommonEnrollCmptId" resultType="java.lang.Integer">
select gcmptid from common.neucmpt where gtcmptid=#{cmptId} select gcmptid from common.neucmpt where gtcmptid=#{cmptId}
</select> </select>
<select id="queryAllSettingTemplate" resultType="com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate">
select * from gk_cmptsetting_template
</select>
<resultMap id="cmptSettingMap" type="com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate">
<id column="cmptid" property="cmptId"></id>
<collection property="settingTemplates" columnPrefix="cmpt_" ofType="com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate">
<id column="cmptid" property="cmptId"></id>
<result column="name" property="name"></result>
<result column="type" property="type"></result>
</collection>
</resultMap>
<select id="queryAllCmptSetting" resultMap="cmptSettingMap">
select cmptid,name cmpt_name,type cmpt_type
from gk_cmptsetting
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -7,6 +7,7 @@ import com.dlbridge.jadp.common.persistence.JaapRecord; ...@@ -7,6 +7,7 @@ import com.dlbridge.jadp.common.persistence.JaapRecord;
import java.util.List; import java.util.List;
public class CmptSetting extends JaapRecord<CmptSetting> { public class CmptSetting extends JaapRecord<CmptSetting> {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -88,4 +89,6 @@ public class CmptSetting extends JaapRecord<CmptSetting> { ...@@ -88,4 +89,6 @@ public class CmptSetting extends JaapRecord<CmptSetting> {
public void setStatus(int status) { public void setStatus(int status) {
this.status = status; this.status = status;
} }
} }
...@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service; ...@@ -8,6 +8,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collections;
import java.util.List; import java.util.List;
/** /**
...@@ -25,7 +26,7 @@ public class CmptScoreFieldService { ...@@ -25,7 +26,7 @@ public class CmptScoreFieldService {
*/ */
public int saveOrUpdate(List<CmptScoreField> cmptScoreFields){ public int saveOrUpdate(List<CmptScoreField> cmptScoreFields){
for(CmptScoreField cmptScoreField:cmptScoreFields){ for(CmptScoreField cmptScoreField:cmptScoreFields){
if(cmptScoreField.getId()==0){ if(cmptScoreField.getId() == null){
cmptScoreFieldMapper.save(cmptScoreField); cmptScoreFieldMapper.save(cmptScoreField);
}else{ }else{
cmptScoreFieldMapper.update(cmptScoreField); cmptScoreFieldMapper.update(cmptScoreField);
...@@ -40,8 +41,10 @@ public class CmptScoreFieldService { ...@@ -40,8 +41,10 @@ public class CmptScoreFieldService {
* @return * @return
*/ */
public List<CmptScoreField> getCmptScoreFieldByCmptId(int cmptId){ public List<CmptScoreField> getCmptScoreFieldByCmptId(int cmptId){
List<CmptScoreField> cmptScoreFieldList=null; return cmptScoreFieldMapper.getCmptScoreFieldByCmptId(cmptId);
cmptScoreFieldList=cmptScoreFieldMapper.getCmptScoreFieldByCmptId(cmptId); }
return cmptScoreFieldList;
public void saveOrUpdate(CmptScoreField cmptScoreField) {
saveOrUpdate(Collections.singletonList(cmptScoreField));
} }
} }
...@@ -39,9 +39,18 @@ public class CmptScoreFieldValueService { ...@@ -39,9 +39,18 @@ public class CmptScoreFieldValueService {
* @return * @return
*/ */
public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptId(int cmptId){ public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptId(int cmptId){
List<CmptScoreFieldValue> cmptScoreFieldValueList=null; return cmptScoreFieldValueMapper.getCmptScoreFieldValueByCmptId(cmptId);
cmptScoreFieldValueList=cmptScoreFieldValueMapper.getCmptScoreFieldValueByCmptId(cmptId);
return cmptScoreFieldValueList;
} }
public List<CmptScoreFieldValue> getCmptScoreFieldValueByCmptIdAndMarkNo(Integer cmptId, String markNo) {
return cmptScoreFieldValueMapper.getCmptScoreFieldValueByCmptIdAndMarkNo(cmptId,markNo);
}
public List<CmptScoreFieldValue> getCmptScoreFieldValueByRuleIdAndMarkNo(Integer ruleId, String markNo) {
return cmptScoreFieldValueMapper.getCmptScoreFieldValueByRuleIdAndMarkNo(ruleId,markNo);
}
public void deleteFieldValueByRuleIdAndMarkNo(Integer ruleId, String markNo) {
cmptScoreFieldValueMapper.deleteFieldValueByRuleIdAndMarkNo(ruleId,markNo);
}
} }
package com.dlbridge.jadp.plugins.cmpt.service; package com.dlbridge.jadp.plugins.cmpt.service;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule; import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule;
import com.dlbridge.jadp.plugins.cmpt.bean.ScoreRuleMap;
import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean;
import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleMapper; import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptScoreRuleMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -37,8 +39,46 @@ public class CmptScoreRuleService { ...@@ -37,8 +39,46 @@ public class CmptScoreRuleService {
* @return * @return
*/ */
public List<CmptScoreRule> getCmptScoreRulesByCmptId(int cmptId){ public List<CmptScoreRule> getCmptScoreRulesByCmptId(int cmptId){
List<CmptScoreRule> cmptScoreRuleList=null; return cmptScoreRuleMapper.getCmptScoreRuleByCmptId(cmptId);
cmptScoreRuleList=cmptScoreRuleMapper.getCmptScoreRuleByCmptId(cmptId); }
return cmptScoreRuleList;
public CmptScoreRule getCmptScoreRulesByCmptIdAndIndex(Integer cmptId, Integer indexId) {
return cmptScoreRuleMapper.getCmptScoreRulesByCmptIdAndIndex(cmptId,indexId);
}
public int saveScoreRuleMap(ScoreRuleMap scoreRuleMap) {
return cmptScoreRuleMapper.saveScoreRuleMap(scoreRuleMap);
}
public Integer getCmptScoreRulesMapByMarkNoAndRuleId(String markNo, Integer ruleid) {
return cmptScoreRuleMapper.getCmptScoreRulesMapBymarkNoAndRuleId(markNo,ruleid);
}
public CmptScoreRule getCmptScoreRulesById(int id) {
return cmptScoreRuleMapper.getCmptScoreRulesById(id);
}
public void delete(int id) {
cmptScoreRuleMapper.delete(id);
}
public void deleteScoreMap(String markNo, Integer scoreItemId) {
cmptScoreRuleMapper.deleteScoreMap(markNo,scoreItemId);
}
public List<ScoreRuleMap> getAllRuleAndScoreItemByMarkNoAndCmptId(Integer cmptId, String markNo) {
return cmptScoreRuleMapper.getAllRuleAndScoreItemByMarkNoAndCmptId(cmptId,markNo);
}
public int getRoadStatistic(Integer cmptId, String roadId, int ruleId) {
return cmptScoreRuleMapper.getRoadStatistic(cmptId,roadId,ruleId);
}
public List<UserScoreExcelBean> getRoadStatisticByCmptIdAndRoadId(Integer cmptId, String roadId) {
return cmptScoreRuleMapper.getRoadStatisticByCmptIdAndRoadId(cmptId,roadId);
}
public Integer getCmptScoreRulesMapByMarkNoAndScoreId(String markNo, Integer scoreItemId) {
return cmptScoreRuleMapper.getCmptScoreRulesMapByMarkNoAndScoreId(markNo,scoreItemId);
} }
} }
...@@ -3,7 +3,9 @@ package com.dlbridge.jadp.plugins.cmpt.service; ...@@ -3,7 +3,9 @@ package com.dlbridge.jadp.plugins.cmpt.service;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.Func; import com.dlbridge.jadp.plugins.cmpt.bean.Func;
import com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptSettingMapper; import com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptSettingMapper;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
...@@ -44,7 +46,8 @@ public class CmptSettingService { ...@@ -44,7 +46,8 @@ public class CmptSettingService {
cmptSettingMapper.updateById(cmptSetting); cmptSettingMapper.updateById(cmptSetting);
} }
public void save(CmptSetting cmptSetting1) { public void save(CmptSetting setting) {
cmptSettingMapper.insert(setting);
} }
public List<Func> queryFuncs(int cmpId) { public List<Func> queryFuncs(int cmpId) {
...@@ -56,7 +59,6 @@ public class CmptSettingService { ...@@ -56,7 +59,6 @@ public class CmptSettingService {
for (int i = 0; i < split.length; i++) { for (int i = 0; i < split.length; i++) {
cmptSettingMapper.updateSettingOrder(split[i], i + 1); cmptSettingMapper.updateSettingOrder(split[i], i + 1);
} }
} }
public List<Func> queryAllFuncs(int cmpId) { public List<Func> queryAllFuncs(int cmpId) {
...@@ -70,4 +72,14 @@ public class CmptSettingService { ...@@ -70,4 +72,14 @@ public class CmptSettingService {
public Integer getCommonEnrollCmptId(int cmptId) { public Integer getCommonEnrollCmptId(int cmptId) {
return cmptSettingMapper.getCommonEnrollCmptId(cmptId); return cmptSettingMapper.getCommonEnrollCmptId(cmptId);
} }
public List<SettingTemplate> queryAllSettingTemplate() {
return cmptSettingMapper.queryAllSettingTemplate();
}
public List<CmptSettingTemplate> queryAllCmptSetting() {
return cmptSettingMapper.queryAllCmptSetting();
}
} }
...@@ -130,6 +130,7 @@ public class RemoteService { ...@@ -130,6 +130,7 @@ public class RemoteService {
info.setEnrollId(content.getString("enrollId")); info.setEnrollId(content.getString("enrollId"));
info.setPhone(content.getString("phone")); info.setPhone(content.getString("phone"));
info.setRemark(content.getString("remark")); info.setRemark(content.getString("remark"));
info.setGender("0".equals(content.getString("gender")) ? "男":"女");
return info; return info;
} else { } else {
return null; return null;
...@@ -195,6 +196,7 @@ public class RemoteService { ...@@ -195,6 +196,7 @@ public class RemoteService {
info.setUserName(content.getString("name")); info.setUserName(content.getString("name"));
info.setEnrollId(content.getString("enrollId")); info.setEnrollId(content.getString("enrollId"));
info.setPhone(content.getString("phone")); info.setPhone(content.getString("phone"));
info.setGender("0".equals(content.getString("gender")) ? "男":"女");
return info; return info;
} else { } else {
return null; return null;
...@@ -274,4 +276,40 @@ public class RemoteService { ...@@ -274,4 +276,40 @@ public class RemoteService {
return null; return null;
} }
} }
public List<RoadStatistic> getRoadsStatistic(Integer cmptId) {
ResponseEntity<String> forEntity = restTemplate.getForEntity(timerURL + "getCmptItemList.do?cmptId="+ cmptId + "&checkCountFlg=1", String.class);
if (forEntity.getStatusCode() == HttpStatus.OK) {
List<RoadStatistic> users = new ArrayList<>();
String resultString = forEntity.getBody();
log.info("报名的信息:" + resultString);
JSONObject object = JSONObject.parseObject(resultString);
JSONArray result = object.getJSONArray("content");
if (result == null || result.isEmpty()) return null;
for (int i = 0; i < result.size(); i++) {
RoadStatistic user = new RoadStatistic();
JSONObject o = (JSONObject) result.get(i);
String enrollCount = o.getString("enrollCount");
String roadName = o.getString("roadName");
String roadId = o.getString("roadId");
user.setEnrollCount(enrollCount).setRoadId(roadId).setRoadName(roadName);
users.add(user);
}
return users;
} else {
return null;
}
}
public String checkCert(String cmptId, String keyword) {
ResponseEntity<String> forEntity = restTemplate.getForEntity(timerURL + "checkCert.do?cmptId="+ cmptId + "&keyword="+keyword, String.class);
if (forEntity.getStatusCode() == HttpStatus.OK) {
return forEntity.getBody();
}else{
return null;
}
}
} }
package com.dlbridge.jadp.plugins.cmpt.utils.date; import com.fasterxml.jackson.core.JsonParser;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.DeserializationContext;import com.fasterxml.jackson.databind.JsonDeserializer;import org.apache.log4j.Logger; import java.io.IOException;import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.Date; /** * DateSerializers2 for Jackson2 * * @author Erich * * */public class DateDeserializers { private static Logger logger = Logger.getLogger(DateDeserializers.class); private static final SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); /** * yyyy-MM-dd HH:mm:ss * */ public static final class ISO8601Long extends JsonDeserializer<Date> { @Override public Date deserialize(JsonParser jp, DeserializationContext ctxt) throws IOException, JsonProcessingException { try { return date.parse(jp.getValueAsString()); } catch (ParseException e) { logger.error(e.getMessage(),e); return null; } } } }
\ No newline at end of file
package com.dlbridge.jadp.plugins.cmpt.utils.date; import com.fasterxml.jackson.core.JsonGenerator;import com.fasterxml.jackson.core.JsonProcessingException;import com.fasterxml.jackson.databind.JsonSerializer;import com.fasterxml.jackson.databind.SerializerProvider;import org.apache.commons.lang3.time.DateFormatUtils; import java.io.IOException;import java.util.Date; /** * DateSerializers2 for Jackson2 * * */public class DateSerializers { /** * yyyy-MM-dd HH:mm:ss * */ public static final class ISO8601Long extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { DateSerializers.serialize(jgen, value, "yyyy-MM-dd HH:mm:ss"); } } /** * yyyy-MM-dd * */ public static final class ISO8601Short extends JsonSerializer<Date> { @Override public void serialize(Date value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { DateSerializers.serialize(jgen, value, "yyyy-MM-dd"); } } /** * LongString to ISO8601Long * * @author Erich * */ public static final class LongStringToISO8601Long extends JsonSerializer<String> { @Override public void serialize(String value, JsonGenerator jgen, SerializerProvider provider) throws IOException, JsonProcessingException { Date date = null; if (value != null) {//long string date = new Date(Long.parseLong(value)); } DateSerializers.serialize(jgen, date, "yyyy-MM-dd HH:mm:ss"); } } /** * serialize * * @param jgen * @param value * @param format * @throws IOException */ private static void serialize(JsonGenerator jgen, Date value, String format) throws IOException { if (value == null) { jgen.writeNull(); } else { jgen.writeString(DateFormatUtils.format(value, format)); } } }
\ No newline at end of file
package com.dlbridge.jadp.plugins.cmpt.utils.date;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang3.math.NumberUtils;
import org.apache.commons.lang3.time.DateUtils;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.TimeZone;
public class DateUtil extends org.apache.commons.lang3.time.DateUtils {
public static final String DEFAULT_PATTERN = "yyyy-MM-dd HH:mm:ss";
public static final String SHORT_PATTERN = "yyyy-MM-dd";
private static final TimeZone GMT = TimeZone.getTimeZone("GMT");
private DateUtil() {
}
public static String formatDate(long date){
int hour = (int) (date / 3600);
int min = (int) (date/ 60 % 60);
int ms = (int) (date % 60 % 60);
return String.format("%02d",hour)+":"+String.format("%02d",min)+":"+String.format("%02d",ms);
}
public static TimeZone getGMTTimeZone() {
return GMT;
}
public static String dateString(Date date) {
return format("yyyyMMdd", date);
}
public static String dateString() {
return dateString(new Date());
}
private static TimeZone getDefaultTimeZone() {
return null;
}
public static Date parseE(String dateText) throws ParseException {
SimpleDateFormat sdf = new SimpleDateFormat();
TimeZone timeZone = getDefaultTimeZone();
if (timeZone != null) {
sdf.setTimeZone(timeZone);
}
return sdf.parse(dateText);
}
public static Date parse(String format, String dateText) throws ParseException {
if(StringUtils.isBlank(dateText)){
return DateUtils.addYears(new Date(), 20);
}
SimpleDateFormat sdf = new SimpleDateFormat(format);
TimeZone timeZone = getDefaultTimeZone();
if (timeZone != null) {
sdf.setTimeZone(timeZone);
}
return sdf.parse(dateText);
}
public static String format(Date date) {
SimpleDateFormat sdf = new SimpleDateFormat();
TimeZone timeZone = getDefaultTimeZone();
if (timeZone != null) {
sdf.setTimeZone(timeZone);
}
return sdf.format(date);
}
public static String format(String format, Date date) {
SimpleDateFormat sdf = new SimpleDateFormat(format);
TimeZone timeZone = getDefaultTimeZone();
if (timeZone != null) {
sdf.setTimeZone(timeZone);
}
return sdf.format(date);
}
/**
* @param startTime
* @param end
* @return
*/
public static boolean isBetweenTwoDates(Date startTime, Date end) {
Date current = new Date();
if(startTime.after(current)){
return false;
}
if(end.before(current)){
return false;
}
return true;
}
public static long dateStrToMs70(String dateStr){
try{
SimpleDateFormat sdf = new SimpleDateFormat(DEFAULT_PATTERN);
return sdf.parse(dateStr).getTime();
}catch(Exception e){
return System.currentTimeMillis();
}
}
/**
* 把时间时分秒变成固定00:00:00
*/
public static String dateHourBegin(String dateStr){
try{
SimpleDateFormat sdf = new SimpleDateFormat(SHORT_PATTERN);
Date testDate = sdf.parse(dateStr);
String hourbegin = sdf.format(testDate)+" 00:00:00";
return hourbegin;
}catch(Exception e){
return dateStr;
}
}
/**
* 把时间时分秒变成固定23:59:59
*/
public static String dateHourEnd(String dateStr){
try{
SimpleDateFormat sdf = new SimpleDateFormat(SHORT_PATTERN);
Date testDate = sdf.parse(dateStr);
String hourend = sdf.format(testDate)+" 23:59:59";
return hourend;
}catch(Exception e){
return dateStr;
}
}
/**
* 计算两个时间相差的天数
*/
public static int DifDays(Date date1, Date date2){
int days = 0;
if(null !=date1 && null !=date2){
days = (int) ((date2.getTime() - date1.getTime()) / (1000*3600*24));
}
return days;
}
/**
* 计算当前时间的年份 以及当前年的月份有几天
*/
public static Integer getMonthDays(Integer month){
Calendar cal = Calendar.getInstance();
Integer year = cal.get(Calendar.YEAR);
cal.set(Calendar.YEAR,year);
cal.set(Calendar.MONTH, month - 1);//Java月份才0开始算
Integer dateOfMonth = cal.getActualMaximum(Calendar.DATE);
return dateOfMonth;
}
/**
* 字符串转Date
* @param str
* @param pattern
* @return
*/
public static Date converDate(String str, String pattern) {
if (StringUtils.isBlank(pattern)) {
pattern = DEFAULT_PATTERN;
}
DateFormat df = new SimpleDateFormat(pattern);
if ((str == null) || (str.equals(""))) {
return new Date();
}
try {
return df.parse(str);
} catch (Exception e) {
e.printStackTrace();
}
return new Date();
}
/**
* 与系统当前时间比较
* 若小返回1
* @return
* @throws ParseException
*/
public static int compareNowDate(String dateStr) throws ParseException {
SimpleDateFormat formatt = new SimpleDateFormat("yyyy-MM-dd HH:mm");
Date date = new Date();
if(!StringUtils.isBlank(dateStr) && formatt.parse(dateStr).getTime()<date.getTime()){
return 1;
}
else{
return 0;
}
}
/**
* 倒计时(返回end到start距离的X天X小时X分钟)
* endDateStr < startDateStr 时返回0-0-0
* @param startDateStr 空白为系统时间
* @param endDateStr 空白为系统时间
* @return x-x-x
* @throws ParseException
*/
public static String getCountDownDay(String startDateStr, String endDateStr) throws ParseException {
Date stDate = new Date();
Date edDate = new Date();
SimpleDateFormat formatt = new SimpleDateFormat(DEFAULT_PATTERN);
if (!StringUtils.isBlank(startDateStr)) {
stDate = formatt.parse(startDateStr);
}
if (!StringUtils.isBlank(endDateStr)) {
edDate = formatt.parse(endDateStr);
}
if (edDate.getTime() < stDate.getTime()) return "0-0-0";
long ms = edDate.getTime() - stDate.getTime();
int day = (int) ( ms / 1000 / 60 / 60 / 24 );
int hour = (int) ( ms / 1000 / 60 / 60 % 24 );
int minute = (int) ( ms / 1000 / 60 % 60 );
return day +"-"+ hour +"-"+ minute;
}
/**
* 支持负数,支持大于24小时
* @param timespan hh:mm:ss.SSS/hh:mm:ss
* @return 毫秒数
*/
public static long timespanToMs(String timespan){
int sign = 1;
if (timespan.indexOf('.')==-1){
timespan = timespan+".000";
}
if (timespan.indexOf('-')==0){
timespan = timespan.substring(1);
sign = -1;
}
SimpleDateFormat sdf=new SimpleDateFormat("HH:mm:ss.SSS");
Date d = null;
try {
sdf.setTimeZone(TimeZone.getTimeZone("GMT"));
d = sdf.parse(timespan);
} catch (ParseException e) {
e.printStackTrace();
return 0;
}
return d.getTime()*sign;
}
/**
* 1970至今ms转yyyy-MM-dd HH:mm:ss
* @param ms70 1970至今ms
* @return yyyy-MM-dd HH:mm:ss
*/
public static String ms70ToDateTimeStr(long ms70) {
return ms70ToDateTimeStr(ms70, DEFAULT_PATTERN);
}
/**
* 1970至今ms转pattern,如果.SSS为.000则自动隐藏
* @param ms70
* @param pattern
* @return
*/
public static String ms70ToDateTimeStr(long ms70, String pattern){
String str = "";
Date date = new Date(ms70);
DateFormat dateFormat = new SimpleDateFormat(pattern);
str = dateFormat.format(date);
if (str.contains(".000")){
str = str.replace(".000", "");
}
return str;
}
//根据日期获取星期
public static String getWeek(Date date){
String[] weeks = {"周日","周一","周二","周三","周四","周五","周六"};
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int week_index = cal.get(Calendar.DAY_OF_WEEK) - 1;
if(week_index<0){
week_index = 0;
}
return weeks[week_index];
}
public static boolean isValidDate(String str, boolean checkBirthday){
if(StringUtils.isBlank(str) || str.split("-").length != 3){
return false;
}
String[] dates = str.split("-");
for(String s : dates){
if(!NumberUtils.isDigits(s)) return false;
}
if(checkBirthday){
if(NumberUtils.toInt(dates[0], 9999) > Calendar.getInstance().get(Calendar.YEAR))return false;
if(NumberUtils.toInt(dates[0], 9999) < 1900) return false;
}
if(NumberUtils.toInt(dates[1], 99) > 12)return false;
if(NumberUtils.toInt(dates[2], 99) > 31)return false;
try{
Date date = DateUtils.parseDate(str, "yyyy-MM-dd");
DateFormat formater = new SimpleDateFormat("yyyy-MM-dd");
formater.format(date);
}catch (Exception e) {
return false;
}
return true;
}
/**
* 测试
* @param args
* @throws ParseException
*/
public static void main(String[] args) throws ParseException {
System.out.println(formatDate(7531));
}
}
...@@ -64,8 +64,8 @@ public class GpxParserUtil { ...@@ -64,8 +64,8 @@ public class GpxParserUtil {
place = new PlaceMark(); place = new PlaceMark();
String placeName = elm.elementText("name"); String placeName = elm.elementText("name");
place.setName(placeName); place.setName(placeName);
String longitude = elm.attribute(0).getText().trim(); String latitude = elm.attribute(0).getText().trim();
String latitude = elm.attribute(1).getText().trim(); String longitude = elm.attribute(1).getText().trim();
String altitude = elm.elementText("ele"); String altitude = elm.elementText("ele");
altitude = altitude == null || altitude.trim().length() == 0 ? "0" : altitude.trim(); altitude = altitude == null || altitude.trim().length() == 0 ? "0" : altitude.trim();
place.setLongitude(Double.parseDouble(longitude)); place.setLongitude(Double.parseDouble(longitude));
......
...@@ -5,8 +5,14 @@ import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule; ...@@ -5,8 +5,14 @@ import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule;
import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreFieldService; import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreFieldService;
import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreRuleService; import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreRuleService;
import com.neusoft.www.utils.web.Result; import com.neusoft.www.utils.web.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiResponse;
import io.swagger.annotations.ApiResponses;
import io.swagger.annotations.ApiSort;
import io.swagger.models.auth.In;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
...@@ -15,8 +21,10 @@ import javax.annotation.Resource; ...@@ -15,8 +21,10 @@ import javax.annotation.Resource;
import java.util.List; import java.util.List;
@Controller @Controller
@RequestMapping(value = "/gk/cmptScoreField/") @RequestMapping(value = "/api/cmptScoreField/")
@Log4j2 @Log4j2
@Api(value = "提交成绩", tags = "提交成绩")
@ApiSort(1)
public class CmptScoreFieldController { public class CmptScoreFieldController {
@Resource @Resource
...@@ -33,14 +41,32 @@ public class CmptScoreFieldController { ...@@ -33,14 +41,32 @@ public class CmptScoreFieldController {
return Result.success().setContent(cmptScoreFields); return Result.success().setContent(cmptScoreFields);
} }
@RequestMapping("saveOrUpdate")
@ResponseBody
private Result saveOrUpdate(CmptScoreField cmptScoreField){
cmptScoreFieldService.saveOrUpdate(cmptScoreField);
return Result.success().setContent(cmptScoreField);
}
@RequestMapping("del/{id}")
@ResponseBody
private Result del(@PathVariable("id") Integer id){
cmptScoreFieldService.saveOrUpdate(new CmptScoreField().setId(id).setIsDelete(1));
return Result.success();
}
/** /**
* 根据赛事Id获取赛事规则信息 * 根据赛事Id获取赛事规则信息
* @param cmptId * @param cmptId
* @return * @return
*/ */
@ResponseBody @ResponseBody
@RequestMapping("getCmptScoreFieldByCmptId") @RequestMapping("getCmptScoreField/{cmptId}")
private Result getCmptScoreFieldByCmptId(int cmptId){ @ApiResponses({
@ApiResponse(code = 200, message = "成功"),
@ApiResponse(code = -1, message = "失败"),
@ApiResponse(code = 200, message = "成功", response = Result.class)})
private Result getCmptScoreFieldByCmptId(@PathVariable("cmptId") int cmptId){
List<CmptScoreField> cmptScoreField=cmptScoreFieldService.getCmptScoreFieldByCmptId(cmptId); List<CmptScoreField> cmptScoreField=cmptScoreFieldService.getCmptScoreFieldByCmptId(cmptId);
return Result.success().setContent(cmptScoreField); return Result.success().setContent(cmptScoreField);
} }
......
...@@ -15,7 +15,7 @@ import javax.annotation.Resource; ...@@ -15,7 +15,7 @@ import javax.annotation.Resource;
import java.util.List; import java.util.List;
@Controller @Controller
@RequestMapping(value = "/gk/cmptScoreFieldValue/") @RequestMapping(value = "/api/cmptScoreFieldValue/")
@Log4j2 @Log4j2
public class CmptScoreFieldValueController { public class CmptScoreFieldValueController {
......
package com.dlbridge.jadp.plugins.cmpt.web; package com.dlbridge.jadp.plugins.cmpt.web;
import com.dlbridge.feign.ScoreService;
import com.dlbridge.feign.bean.ScoreItem;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule; import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRule;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptScoreRuleBean;
import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreRuleService; import com.dlbridge.jadp.plugins.cmpt.service.CmptScoreRuleService;
import com.neusoft.www.utils.web.Result; import com.neusoft.www.utils.web.Result;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
@Controller @Controller
@RequestMapping(value = "/gk/cmptScoreRule/") @RequestMapping(value = "/api/cmptScoreRule")
@Log4j2 @Log4j2
public class CmptScoreRuleController { public class CmptScoreRuleController {
@Resource @Resource
CmptScoreRuleService cmptScoreRuleService; CmptScoreRuleService cmptScoreRuleService;
@Resource
ScoreService scoreService;
/** /**
* 更新赛事规则信息 * 更新赛事规则信息
* @param cmptScoreRules * @param cmptScoreRules
...@@ -28,7 +37,7 @@ public class CmptScoreRuleController { ...@@ -28,7 +37,7 @@ public class CmptScoreRuleController {
*/ */
@RequestMapping("saveCmptScoreRule") @RequestMapping("saveCmptScoreRule")
@ResponseBody @ResponseBody
private Result updateCmptScoreRule(@RequestBody List<CmptScoreRule> cmptScoreRules){ private Result saveCmptScoreRule(@RequestBody List<CmptScoreRule> cmptScoreRules){
cmptScoreRuleService.saveOrUpdate(cmptScoreRules); cmptScoreRuleService.saveOrUpdate(cmptScoreRules);
return Result.success().setContent(cmptScoreRules); return Result.success().setContent(cmptScoreRules);
} }
...@@ -39,35 +48,71 @@ public class CmptScoreRuleController { ...@@ -39,35 +48,71 @@ public class CmptScoreRuleController {
* @param cmptId * @param cmptId
* @return * @return
*/ */
@RequestMapping("getCmptScoreRuleByCmptId") @RequestMapping("getCmptScoreRule/{cmptId}")
@ResponseBody @ResponseBody
private Result getCmptScoreRuleByCmptId(int cmptId){ private Result getCmptScoreRule(@PathVariable("cmptId") int cmptId, HttpServletRequest request) {
List<CmptScoreRule> cmptScoreRules=cmptScoreRuleService.getCmptScoreRulesByCmptId(cmptId); String markNo = request.getParameter("markNo");
return Result.success().setContent(cmptScoreRules);
List<CmptScoreRule> cmptScoreRules = cmptScoreRuleService.getCmptScoreRulesByCmptId(cmptId);
List<CmptScoreRuleBean> beans = new ArrayList<>(cmptScoreRules.size());
for(CmptScoreRule rule : cmptScoreRules){
CmptScoreRuleBean bean = new CmptScoreRuleBean();
bean.setCmptId(rule.getCmptId());
bean.setStartTime(rule.getStartTime());
bean.setEndTime(rule.getEndTime());
bean.setIndex(rule.getIndex());
Integer scoreItemId = cmptScoreRuleService.getCmptScoreRulesMapByMarkNoAndRuleId(markNo, rule.getId());
if(scoreItemId != null){
Result<ScoreItem> scoreItem = scoreService.getScoreItem(scoreItemId);
if(scoreItem.isStatus() && scoreItem.getContent() != null){
bean.setUploaded(true);
}else{
bean.setUploaded(false);
}
}else{
bean.setUploaded(false);
}
beans.add(bean);
}
return Result.success().setContent(beans);
} }
/** /**
* 根据赛事Id获取赛事规则是单条还是多条 * 根据赛事Id获取赛事规则是单条还是多条
* @param cmptId * @param cmptId
* @return * @return
*/ */
private Result isCmptScoreRuleSingleByCmptId(int cmptId){ @ResponseBody
List<CmptScoreRule> cmptScoreRules=cmptScoreRuleService.getCmptScoreRulesByCmptId(cmptId); @RequestMapping("isCmptScoreRuleSingle/{cmptId}")
boolean isCmptScoreRuleSingle=false; private Result isCmptScoreRuleSingle(@PathVariable("cmptId") int cmptId) {
int cmptScoreRuleSingle=0; List<CmptScoreRule> cmptScoreRules = cmptScoreRuleService.getCmptScoreRulesByCmptId(cmptId);
if(cmptScoreRules.size()==1){ boolean isCmptScoreRuleSingle = false;
isCmptScoreRuleSingle=true; if (cmptScoreRules.size() == 1) {
cmptScoreRuleSingle=cmptScoreRules.size(); isCmptScoreRuleSingle = true;
}else{ } else {
isCmptScoreRuleSingle=false; isCmptScoreRuleSingle = false;
cmptScoreRuleSingle=cmptScoreRules.size();
} }
HashMap<String,Object> result=new HashMap<String,Object>(); HashMap<String, Object> result = new HashMap<String, Object>();
result.put("isCmptScoreRuleSingle",isCmptScoreRuleSingle); result.put("isCmptScoreRuleSingle", isCmptScoreRuleSingle);
result.put("cmptScoreRuleSingle",cmptScoreRuleSingle); result.put("cmptScoreRuleSingle", cmptScoreRules);
return Result.success().setContent(result); return Result.success().setContent(result);
} }
/**
* 根据赛事Id获取赛事规则是单条还是多条
* @param cmptId
* @return
*/
@ResponseBody
@RequestMapping("del/{id}")
private Result del(@PathVariable("id") int id) {
CmptScoreRule rule = cmptScoreRuleService.getCmptScoreRulesById(id);
log.info("删除的规则:"+rule);
cmptScoreRuleService.delete(id);
return Result.success();
}
} }
package com.dlbridge.jadp.plugins.cmpt.web; package com.dlbridge.jadp.plugins.cmpt.web;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
import java.util.stream.Collectors;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.dlbridge.jadp.common.interceptor.PageView; import com.dlbridge.jadp.common.interceptor.PageView;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.FuncSetting; import com.dlbridge.jadp.plugins.cmpt.bean.FuncSetting;
import com.dlbridge.jadp.plugins.cmpt.bean.Road; import com.dlbridge.jadp.plugins.cmpt.bean.Road;
import com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.dao.model.Manual; import com.dlbridge.jadp.plugins.cmpt.dao.model.Manual;
import com.dlbridge.jadp.plugins.cmpt.service.*; import com.dlbridge.jadp.plugins.cmpt.service.*;
import com.neusoft.www.utils.web.RequestParamHelper; import com.neusoft.www.utils.web.RequestParamHelper;
...@@ -80,6 +85,50 @@ public class CmptSettingController { ...@@ -80,6 +85,50 @@ public class CmptSettingController {
return mv; return mv;
} }
/**
* 去功能管理页面
*
* @return
*/
@RequestMapping(value = "updateSetting")
@ResponseBody
public String updateSetting() {
List<SettingTemplate> templates = cmptSettingService.queryAllSettingTemplate();
List<CmptSettingTemplate> cmptSettingTemplates = cmptSettingService.queryAllCmptSetting();
List<CmptSettingTemplate> needTemplate = new ArrayList<>();
cmptSettingTemplates.forEach(setting -> {
List<SettingTemplate> collect = templates.stream().filter(item -> !setting.getSettingTemplates().stream()
.map(st -> st.getType()).collect(Collectors.toList()).contains(item.getType())).collect(Collectors.toList());
if(collect.size() > 0){
CmptSettingTemplate template = new CmptSettingTemplate();
template.setCmptId(setting.getCmptId());
template.setRestSettingTemplates(collect);
needTemplate.add(template);
}
});
needTemplate.forEach(item -> {
item.getRestSettingTemplates().forEach(it->{
CmptSetting setting = new CmptSetting();
setting.setCmptId(item.getCmptId()+"");
setting.setId(UUID.randomUUID().toString().replace("-",""));
setting.setName(it.getName()+"");
setting.setSeq(it.getSeq()+"");
setting.setStatus(it.getStatus());
setting.setStyle(it.getStyle());
setting.setType(it.getType());
setting.setVisibility(it.getVisibility()+"");
System.out.println("补齐菜单:"+setting);
cmptSettingService.save(setting);
});
});
return "ok";
}
/** /**
* 修改赛事活动启用状态 * 修改赛事活动启用状态
*/ */
...@@ -124,6 +173,8 @@ public class CmptSettingController { ...@@ -124,6 +173,8 @@ public class CmptSettingController {
count = equipmentService.queryEquipments(cmptId).size(); count = equipmentService.queryEquipments(cmptId).size();
} else if (type == 11) { // 赛事报名 } else if (type == 11) { // 赛事报名
count = remoteService.getEnrollCmptAuditStatus(cmptId + ""); count = remoteService.getEnrollCmptAuditStatus(cmptId + "");
}else if (type == 12) { // 赛事报名
count = remoteService.getCmptEnrollCount(cmptId);
} else { } else {
return Result.success(); return Result.success();
} }
......
package com.dlbridge.jadp.plugins.cmpt.web; package com.dlbridge.jadp.plugins.cmpt.web;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.dlbridge.feign.NewsService; import com.dlbridge.feign.NewsService;
import com.dlbridge.feign.ScoreService;
import com.dlbridge.feign.bean.ScoreItem;
import com.dlbridge.jadp.common.service.JService; import com.dlbridge.jadp.common.service.JService;
import com.dlbridge.jadp.common.utils.DateUtils;
import com.dlbridge.jadp.job.CountJob; import com.dlbridge.jadp.job.CountJob;
import com.dlbridge.jadp.plugins.cmpt.bean.*; import com.dlbridge.jadp.plugins.cmpt.bean.*;
import com.dlbridge.jadp.plugins.cmpt.bean.Contact; import com.dlbridge.jadp.plugins.cmpt.bean.Contact;
...@@ -17,11 +21,9 @@ import com.google.gson.Gson; ...@@ -17,11 +21,9 @@ import com.google.gson.Gson;
import com.dlbridge.feign.bean.News; import com.dlbridge.feign.bean.News;
import com.neusoft.www.utils.web.Result; import com.neusoft.www.utils.web.Result;
import io.swagger.annotations.*; import io.swagger.annotations.*;
import lombok.extern.log4j.Log4j;
import lombok.extern.log4j.Log4j2; import lombok.extern.log4j.Log4j2;
import org.apache.commons.lang3.ObjectUtils; import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.bouncycastle.ocsp.Req;
import org.springframework.beans.factory.annotation.Value; import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.domain.Pageable; import org.springframework.data.domain.Pageable;
import org.springframework.data.redis.core.HashOperations; import org.springframework.data.redis.core.HashOperations;
...@@ -33,13 +35,12 @@ import org.springframework.web.client.RestTemplate; ...@@ -33,13 +35,12 @@ import org.springframework.web.client.RestTemplate;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.servlet.ServletInputStream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import java.io.BufferedReader; import java.io.*;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection; import java.net.HttpURLConnection;
import java.net.URL; import java.net.URL;
import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
...@@ -51,6 +52,8 @@ import java.util.*; ...@@ -51,6 +52,8 @@ import java.util.*;
public class MicroApiController { public class MicroApiController {
private static final String SIGNING_CODE = "1"; private static final String SIGNING_CODE = "1";
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
@Resource @Resource
private RestTemplate restTemplate; private RestTemplate restTemplate;
...@@ -81,6 +84,15 @@ public class MicroApiController { ...@@ -81,6 +84,15 @@ public class MicroApiController {
@Resource @Resource
RemoteService remoteService; RemoteService remoteService;
@Resource
private ScoreService scoreService;
@Resource
private CmptScoreFieldValueService cmptScoreFieldValueService;
@Resource
CmptScoreRuleService cmptScoreRuleService;
@Value("${geexek.user.url}") @Value("${geexek.user.url}")
private String geexekURL; private String geexekURL;
...@@ -798,4 +810,135 @@ public class MicroApiController { ...@@ -798,4 +810,135 @@ public class MicroApiController {
return Result.success(); return Result.success();
} }
/**
* 微信手机信息绑定赛事
*
* @return
*/
@PostMapping(value = "/uploadScore")
@ApiResponses({
@ApiResponse(code = 200, message = "成功"),
@ApiResponse(code = -1, message = "失败"),
@ApiResponse(code = 200, message = "成功", response = Result.class)})
@ApiOperation(value = "上传成绩", notes = "上传成绩", response = Result.class, tags = "上传成绩")
public Result uploadScore(HttpServletRequest request) throws IOException {
String contentType = request.getContentType();
//1.获取字符流
BufferedReader br = request.getReader();
//2.读取数据
String line = null;
StringBuilder sb = new StringBuilder();
while((line = br.readLine()) != null){
sb.append(line);
}
log.info("contentType:"+contentType+",body:"+sb.toString());
UserScore score = JSONObject.parseObject(sb.toString(), UserScore.class);
log.info(score);
CmptScoreRule rule = cmptScoreRuleService.getCmptScoreRulesByCmptIdAndIndex(score.getCmptId(),score.getIndexId());
if(rule == null) return Result.fail().setMsg("未找到规则");
Integer scoreId = cmptScoreRuleService.getCmptScoreRulesMapByMarkNoAndRuleId(score.getMarkNo(), rule.getId());
if(scoreId != null){
return Result.fail().setMsg("已经上传过成绩!");
}
ScoreItem scoreItem = new ScoreItem()
.setSubsectionscore(score.getScore().getDuration())
.setSubsectionTime(score.getScore().getDate())
.setCmptId(score.getCmptId())
.setCmptScoreId(1);
String date = score.getScore().getDate()+" 12:00:00";
Date date1 = DateUtils.parseDate(date);
Date endTime = rule.getEndTime();
Date startTime = rule.getStartTime();
if(date1.before(startTime) || date1.after(endTime)){
return Result.fail().setMsg("上传的时间不符合设定的时间范围,需上传时间范围:"+format.format(startTime)+"~"+format.format(endTime));
}
// 保存成绩
Result<ScoreItem> scoreItemResult = scoreService.saveItem(scoreItem);
log.info(scoreItemResult);
if(!scoreItemResult.isStatus()){
log.info("调用失败");
return Result.fail().setMsg("feign fail");
}
// 保存成绩和用户关系
cmptScoreRuleService.saveScoreRuleMap(new ScoreRuleMap()
.setMarkNo(score.getMarkNo())
.setRuleId(rule.getId())
.setScoreItemId(scoreItemResult.getContent().getId()));
for(CmptScoreFieldValue value : score.getFields()){
value.setCmptId(score.getCmptId());
value.setMarkNo(score.getMarkNo());
value.setRuleId(rule.getId());
}
// 保存设置附加项
cmptScoreFieldValueService.saveOrUpdate(score.getFields());
return Result.success().setContent(score);
}
@GetMapping(value = "/getScore")
@ApiResponses({
@ApiResponse(code = 200, message = "成功"),
@ApiResponse(code = -1, message = "失败"),
@ApiResponse(code = 200, message = "成功", response = Result.class)})
@ApiOperation(value = "上传成绩", notes = "上传成绩", response = Result.class, tags = "上传成绩")
public Result getScore(UserScore score) {
CmptScoreRule rule = cmptScoreRuleService.getCmptScoreRulesByCmptIdAndIndex(score.getCmptId(),score.getIndexId());
if(rule == null) return Result.fail().setContent("未找到匹配的规则");
EnrollInfo userInfo = remoteService.getUserInfoByMarkNo(score.getMarkNo(), score.getCmptId());
log.info("用户信息:"+userInfo);
Map<String,Object> result = new HashMap<>();
result.put("user",userInfo);
Integer scoreItemId = cmptScoreRuleService.getCmptScoreRulesMapByMarkNoAndRuleId(userInfo.getMarkNo(),rule.getId());
if(scoreItemId != null){
Result<ScoreItem> scoreItem = scoreService.getScoreItem(scoreItemId);
ScoreItem content = scoreItem.getContent();
result.put("score",new Score().setDate(content.getSubsectionTime().substring(0,10)).setDuration(content.getSubsectionscore()));
}
List<CmptScoreFieldValue> list= cmptScoreFieldValueService.getCmptScoreFieldValueByCmptIdAndMarkNo(score.getCmptId(),score.getMarkNo());
result.put("items",list);
return Result.success().setContent(result);
}
@GetMapping(value = "/checkCert.do")
@ApiResponses({
@ApiResponse(code = 200, message = "成功"),
@ApiResponse(code = -1, message = "失败"),
@ApiResponse(code = 200, message = "成功", response = Result.class)})
@ApiOperation(value = "上传成绩", notes = "上传成绩", response = Result.class, tags = "上传成绩")
public Result getScore(HttpServletRequest request) {
String cmptId = request.getParameter("cmptId");
String keyword = request.getParameter("keyword");
String result = remoteService.checkCert(cmptId,keyword);
if(request != null){
JSONObject obj = JSONObject.parseObject(result);
Integer status = obj.getIntValue("status");
if(status != null){
if(status == 0){
return Result.success().setMsg(obj.getString("message"));
}else if(status == 101){
return Result.fail().setMsg("您尚未完赛,无法查看完赛证书");
}else if(status == 102){
return Result.fail().setMsg("证书未发布,无法查看完赛证书");
}else{
return Result.fail().setMsg(obj.getString("message"));
}
}
return Result.fail().setMsg(obj.getString("message"));
}else{
return Result.fail().setMsg("网络异常");
}
}
} }
...@@ -53,6 +53,7 @@ weixin.micro.appid=wx96ce27826f39cdb3 ...@@ -53,6 +53,7 @@ weixin.micro.appid=wx96ce27826f39cdb3
weixin.micro.secret=11bfc4902e7c992b57a2cdcfeded623f weixin.micro.secret=11bfc4902e7c992b57a2cdcfeded623f
geexek.user.url=http://test.geexek.com.cn/ geexek.user.url=http://test.geexek.com.cn/
geexek.cmpt.url=http://testtimerbackend.geexek.cn/ geexek.cmpt.url=http://testtimerbackend.geexek.cn/
geexek.shamus.url=http://shamus.geexek.com.cn/ geexek.shamus.url=http://shamus.geexek.com.cn/
timer.url=http://testtimer.geexek.cn/ timer.url=http://testtimer.geexek.cn/
server.url=http://testzs.geexek.com.cn/ server.url=http://testzs.geexek.com.cn/
...@@ -70,11 +71,11 @@ spring.application.name=micro-gksite ...@@ -70,11 +71,11 @@ spring.application.name=micro-gksite
eureka.client.service-url.defaultZone=http://eureka.geexek.com.cn/eureka/ eureka.client.service-url.defaultZone=http://eureka.geexek.com.cn/eureka/
eureka.client.instance.instance-id=gksite eureka.client.instance.instance-id=gksite
#feign调用连接超时时间 #feign调用连接超时时间
feign.client.config.default.connect-timeout=1000 feign.client.config.default.connect-timeout=30000
#feign调用读取超时时间 #feign调用读取超时时间
feign.client.config.default.readTimeout=1000 feign.client.config.default.readTimeout=30000
#feign调用的log 等级 #feign调用的log 等级
feign.client.config.default.loggerLevel=basic feign.client.config.default.loggerLevel=full
feign.okhttp.enabled=true feign.okhttp.enabled=true
feign.hystrix.enabled=true feign.hystrix.enabled=true
#feign.compression.request.enabled=true #feign.compression.request.enabled=true
......
...@@ -93,7 +93,11 @@ ...@@ -93,7 +93,11 @@
line-height: 90px; line-height: 90px;
text-align: left; text-align: left;
} }
.opt-text {
font-size: 14px;
color: rgba(153, 153, 153, 1);
height: 20px;
}
.del, .edit { .del, .edit {
display: inline-block; display: inline-block;
...@@ -103,11 +107,7 @@ ...@@ -103,11 +107,7 @@
margin-right: 8px; margin-right: 8px;
} }
.opt-text {
font-size: 14px;
color: rgba(153, 153, 153, 1);
height: 20px;
}
.icon-edit { .icon-edit {
width: 16px; width: 16px;
......
<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8" %>
<%@ include file="/WEB-INF/views/include/taglib.jsp" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
<!doctype html>
<html>
<head>
<title>提交成绩</title>
<!-- Bootstrap CSS-->
<link rel="stylesheet" href="${ctxStatic}/newdermon/vendor/bootstrap/css/bootstrap.min.css">
<!-- Font Awesome CSS-->
<link rel="stylesheet" href="${ctxStatic}/newdermon/vendor/font-awesome/css/font-awesome.min.css">
<!-- Fontastic Custom icon font-->
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/fontastic.css">
<!-- Google fonts - Poppins -->
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/font-css.css">
<!-- theme stylesheet-->
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/style.default.css" id="theme-stylesheet">
<!-- Custom stylesheet - for your changes-->
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/custom.css">
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/juery-ui-1.12.css">
<!-- Favicon-->
<link rel="shortcut icon" href="img/favicon.ico">
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/custom.css">
<link rel="stylesheet" href="${ctxStatic}/newdermon/css/main.css">
<link rel="stylesheet" href="${ctxStatic}/cmpt/setting.css">
<link rel="stylesheet" href="${ctxStatic}/leaflet/css/leaflet.css?v=<%=System.currentTimeMillis()%>"/>
<link rel="stylesheet" href="${ctxStatic}/leaflet/css/leaflet_label.css"/>
<link rel="stylesheet" href="${ctxStatic}/cmpt/road.css"/>
<link rel="stylesheet" href="${ctxStatic}/cmpt/road-new.css"/>
<script src="${ctxStatic}/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
<script src="${ctxStatic}/newdermon/vendor/jquery/jquery.min.js"></script>
<script src="${ctxStatic}/newdermon/js/jquery-ui.js"></script>
<script src="http://cdn.highcharts.com.cn/highcharts/8.0.4/highcharts.js"></script>
<script type="text/javascript" charset="utf-8" src="${ctxStatic}/layer/layer.js"></script>
<link rel="stylesheet" href="${ctxStatic}/layer/skin/layer.css">
<link rel="stylesheet" href="/static/cmpt/score.css?<%=System.currentTimeMillis()%>">
</head>
<body>
<jsp:include page="../common/header.jsp"></jsp:include>
<div class="page-content d-flex align-items-stretch main-body">
<jsp:include page="../common/menu.jsp"></jsp:include>
<div class="rght">
<div class="title-new">
<span class="title">提交成绩</span>
<div style="line-height: 22px">
<span class="road-notice"></span>
<span class="road-notice-txt">此功能仅适用于自助赛事的成绩提交,比赛开始后不可修改</span>
</div>
</div>
<div class="section">
<h3 class="title">上传次数</h3>
<div>
<label for="" class="tip">比赛期间上传成绩次数</label>
<input type="number" class="count-input" placeholder="请填写上传次数" value="${fn:length(rules)}">
</div>
<div id="rule-section" style="margin-bottom: 15px">
<c:forEach var="item" items="${rules}" varStatus="vs">
<div class="rule-item" data-id="${item.id}">
<label for="">第${vs.index+1}次上传成绩的起止时间</label>
<div class="input-group">
<input type="text" ${isClose ? 'disabled':''} class="time-input" readonly name="start"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})"
value="<fmt:formatDate value='${item.startTime}' pattern='yyyy-MM-dd'></fmt:formatDate>" >
<span class="down-arrow"></span>
</div>
<div class="line"></div>
<div class="input-group">
<input type="text" ${isClose ? 'disabled':''} class="time-input" readonly name="end"
onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})"
value="<fmt:formatDate value='${item.endTime}' pattern='yyyy-MM-dd'></fmt:formatDate>">
<span class="down-arrow"></span>
</div>
</div>
</c:forEach>
<div class="clear"></div>
</div>
<c:if test="${!isClose}">
<div style="text-align: center;" >
<span class="save-btn">保存</span>
<div class="clear"></div>
</div>
</c:if>
</div>
<div class="section">
<h3 class="title">已上传成绩统计</h3>
<span class="export">名单导出</span>
<div id="container"></div>
</div>
<div class="section" >
<div style="display: flex;justify-content: space-between">
<h3 class="title">成绩管理</h3>
<div class="search-group">
<input type="text" class="search" placeholder="请输入号码牌">
<span id="search" class="search-btn">查询</span>
</div>
</div>
<table id="data" style="width: 100%;display: none">
<colgroup>
<col width="18%">
<col width="18%">
<col width="10%">
<col width="20%">
<col width="12%">
<col width="25%">
</colgroup>
<thead>
<tr>
<th>姓名</th>
<th>项目</th>
<th>参赛号</th>
<th>完赛时间</th>
<th>成绩</th>
<th style="text-align: right"></th>
</tr>
</thead>
<tbody id="score-body">
</tbody>
</table>
</div>
<div class="section">
<h3 class="title">成绩照片</h3>
<div style="line-height: 22px">
<span class="road-notice"></span>
<span class="road-notice-txt">每一个照片均为必填项,请谨慎添加;最多可添加5个照片项目</span>
</div>
<div class="add-btn">
<span>+</span>
<span>添加照片项</span>
</div>
</div>
<div style="margin-top: -10px;margin-bottom: 50px">
<table style="width: 100%" class="rule-field">
<colgroup>
<col width="90%">
<col width="10%">
</colgroup>
<thead>
<tr>
<th style="padding-left: 25px">照片</th>
<th style="padding-left: 36px">操作</th>
</tr>
</thead>
<tbody>
<c:forEach var="item" items="${fields}">
<tr data-id="${item.id}" data-index="${item.filedIndex}">
<td class="name">${item.fieldName}</td>
<td style="text-align: right">
<div>
<div class="opt edit.opt">
<span class="icon-edit"></span><span class="edit">编辑</span>
</div>
<div class="opt del">
<span class="icon-del"></span><span class="del">删除</span>
</div>
</div>
</td>
</tr>
</c:forEach>
</tbody>
</table>
</div>
</div>
</div>
<script src="${ctxStatic}/newdermon/vendor/popper.js/umd/popper.min.js"></script>
<script src="${ctxStatic}/js/qikoo.js"></script>
<script src="${ctxStatic}/js/score.js?<%=System.currentTimeMillis()%>"></script>
</body>
<div class="mask">
<div class="dialog">
<h3>照片名称</h3>
<input type="text" placeholder="请输入照片名称,最多10个字">
<div style=" margin: 70px 0px 0px 0px;text-align: right;">
<span class="btn cancel" style="margin-right: 30px">取消</span>
<span class="btn sure">保存</span>
</div>
</div>
</div>
<div class="rule-item template" style="display: none">
<label for="">第1次上传成绩的起止时间</label>
<div class="input-group">
<input type="text" class="time-input" readonly name="start" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})" value="${ cmpt.startTime}">
<span class="down-arrow"></span>
</div>
<div class="line"></div>
<div class="input-group">
<input type="text" class="time-input" readonly name="end" onclick="WdatePicker({dateFmt:'yyyy-MM-dd'})" value="${ cmpt.startTime}">
<span class="down-arrow"></span>
</div>
</div>
</html>
...@@ -142,11 +142,19 @@ ...@@ -142,11 +142,19 @@
<span class="menu-txt">赛事广告</span> <span class="menu-txt">赛事广告</span>
</a> </a>
</li> </li>
<li class="score menu-item">
<a href="/gk/score/index/${cmpt.cmptId}?uId=${uId}&cId=${cId}&timestamp=${timestamp}&sign=${sign}">
<span class="menuico left-arrow"></span>
<span class="menu-txt">提交成绩</span>
</a>
</li>
</ul> </ul>
</ul> </ul>
</nav> </nav>
<script> <script>
var classes = ['cmptSetting', 'nameList', 'manual', 'contact', 'route', 'road', 'equip', 'photo', 'news','banner']; var classes = ['cmptSetting', 'nameList', 'manual', 'contact',
'route', 'road', 'equip', 'photo', 'news',
'banner','score'];
let url = document.location.href; let url = document.location.href;
var done = false; var done = false;
for (var i in classes) { for (var i in classes) {
......
.section{
width: 910px;
background: white;
padding: 20px 25px;
margin: 10px 0px;
position: relative;
}
.title{
font-size: 24px;
color: #333;
font-weight: normal;
margin-bottom: 0px;
height: 50px;
line-height: 50px;
}
.count-input{
width: 670px;
height: 50px;
}
input{
background: rgba(247,247,247,1);
border-radius: 4px;
border: 1px solid rgba(229,229,229,1);
padding-left: 10px;
}
.tip{
font-size: 16px;
color: #333;
margin-right: 10px;;
}
.rule-item{
border-radius: 4px;
border: 1px solid rgba(229,229,229,1);
display: flex;
justify-content: space-between;
align-items: center;
height: 50px;
width: 670px;
float: right;
margin-right: 17px;
padding: 0px 10px;
margin-top: 10px;
}
.search-group{
position: relative;
}
.search{
width:317px;
height:50px;
background:rgba(247,247,247,1);
border-radius:4px;
border:1px solid rgba(229,229,229,1);
}
.clear{
clear: both;
}
.search-btn{
position: absolute;
right: 0px;
line-height: 50px;
height: 50px;
display: inline-block;
width: 60px;
text-align: center;
background: #ce3939;
color: white;
font-size: 16px;
border-radius: 0px 4px 4px 0pc;
cursor: pointer;
}
thead tr th{
font-size: 16px;
color:#999;
height: 50px;
line-height: 50px;
font-weight: normal;
}
tbody tr td{
font-size: 20px;
color:#333;
font-weight: 400;
}
.add-btn{
width: 146px;
height: 40px;
background: rgba(206,57,57,1);
border-radius: 4px;
color: white;
position: absolute;
right: 24px;
top: 24px;
justify-content: center;
display: flex;
align-items: center;
cursor: pointer;
}
.rule-field{
background: white;
}
.rule-field tr{
height: 60px;
line-height: 60px;
}
.rule-field tbody tr td:first-child{
padding-left: 25px;
}
.rule-field tbody tr td:nth-child(2n){
padding-right: 25px;
}
.rule-field tbody tr:nth-child(odd){
background:rgba(247,247,247,1);
}
.del, .edit {
height: 40px;
line-height: 40px;;
font-size: 14px;
margin-right: 0px;
}
.edit{
color: #ce3939;
}
#score-body tr{
height: 60px;
}
.opt{
display: flex;
width: 104px;
height: 60px;
align-items: center;
cursor: pointer;
justify-content: center;
}
.rule-field .opt{
height: 40px;
}
.icon-edit {
width: 16px;
height: 18px;
background-image: url(/static/images/icons-edit.png);
transform: none;
display: inline-block;
background-position: center;
background-size: 100%;
background-repeat: no-repeat;
margin-right: 8px;
}
.icon-del {
width: 16px;
height: 16px;
background-image: url("/static/images/icon-delete.png");
display: inline-block;
background-position: center;
background-size: 100%;
background-repeat: no-repeat;
margin-right: 8px;
margin-top: -9px;
}
.line-tr{
background: rgba(247,247,247,1);
height: 60px;
border-bottom: 2px rgba(229,229,229,1) solid;
}
.line-tr:last-child{
border-bottom: none;
}
label{
margin-bottom: 0px;
}
.save-btn{
color: white;
background: #ce3939;
display: inline-block;
font-size: 18px;
border-radius: 4px;
line-height: 40px;
text-align: center;
cursor: pointer;
width: 146px;
height: 40px;
background: rgba(206,57,57,1);
border-radius: 4px;
float: right;
margin-right: 16px;
}
.input-group{
position: relative;
width: 156px;
}
.time-input{
width: 156px;
height: 38px;
cursor: pointer;
}
.down-arrow{
width: 18px;
height: 10px;
display: inline-block;
background: url(/static/images/down_arrow.png);
background-position: center;
background-repeat: no-repeat;
position: absolute;
top: 15px;
right: 10px;
background-size: contain;
}
.line{
width: 100px;
height: 1px;
background: #E5E5E5;
margin: 0px 10px;
}
.export{
width: 146px;
height: 40px;
background: #ce3939;
text-align: center;
font-size: 18px;
color: white;
position: absolute;
line-height: 40px;
right: 30px;
top: 30px;
border-radius: 4px;
cursor: pointer;
}
.mask{
width: 100%;
height: 100%;
position: fixed;
left: 0px;
top: 0px;
background: rgba(0,0,0,0.3);
z-index: 99;
display: none;
}
.dialog{
padding: 30px 40px;
height: 300px;
width: 680px;
top: 100px;
left: 50%;
margin-left: -340px;
z-index: 100;
position: absolute;
background: white;
}
.dialog h3{
width:138px;
height:30px;
font-size:22px;
font-weight:400;
color:rgba(206,57,57,1);
line-height:30px;
}
.dialog input{
width:610px;
height:50px;
background:rgba(247,247,247,1);
border-radius:4px;
border:1px solid rgba(229,229,229,1);
}
.btn{
color: white;
cursor: pointer;
font-size: 20px;
}
.cancel{
width:146px;
height:42px;
background:rgba(148,148,148,1);
border-radius:4px;
}
.sure{
width:146px;
height:42px;
background:rgba(206,57,57,1);
border-radius:4px;
}
\ No newline at end of file
...@@ -62,6 +62,8 @@ $(function () { ...@@ -62,6 +62,8 @@ $(function () {
layer.alert("要启用此功能,需要先上传比赛路线"); layer.alert("要启用此功能,需要先上传比赛路线");
} else if (type == 11) { } else if (type == 11) {
layer.alert("要启用此功能,需要先联系管理员通过赛事审核"); layer.alert("要启用此功能,需要先联系管理员通过赛事审核");
} else if (type == 12){
layer.alert("要启用此功能,请先在计时管理页面完成名单导入");
} }
} else { } else {
if (type == 2 || type == 5) { if (type == 2 || type == 5) {
......
This diff is collapsed.
import org.bouncycastle.crypto.digests.MD5Digest; package com.dlbridge.jadp;
import com.dlbridge.feign.ScoreService;
import com.dlbridge.jadp.plugins.cmpt.bean.CmptSettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.RoadStatistic;
import com.dlbridge.jadp.plugins.cmpt.bean.SettingTemplate;
import com.dlbridge.jadp.plugins.cmpt.bean.UserScoreExcelBean;
import com.dlbridge.jadp.plugins.cmpt.dao.model.CmptSetting;
import com.dlbridge.jadp.plugins.cmpt.service.*;
import com.dlbridge.jadp.plugins.cmpt.web.MicroApiController;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringRunner; import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.util.DigestUtils; import org.springframework.util.DigestUtils;
import org.springframework.web.client.RestTemplate; import org.springframework.web.client.RestTemplate;
import javax.annotation.Resource;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
//@SpringBootTest
@RunWith(SpringRunner.class) @RunWith(SpringRunner.class)
@SpringBootTest
public class ContextTest { public class ContextTest {
@Resource
private CmptService cmptService;
@Resource
private CmptScoreFieldService cmptScoreFieldService;
@Resource
private CmptScoreFieldValueService cmptScoreFieldValueService;
@Resource
private CmptScoreRuleService ruleService;
@Resource
private ScoreService scoreService;
@Resource
CmptScoreRuleService cmptScoreRuleService;
@Resource
RemoteService remoteService;
@Resource
private CmptSettingService cmptSettingService;
@Test @Test
public void testHttp(){ public void testHttp(){
RestTemplate restTemplate = new RestTemplate(); RestTemplate restTemplate = new RestTemplate();
...@@ -54,4 +87,52 @@ public class ContextTest { ...@@ -54,4 +87,52 @@ public class ContextTest {
System.out.println(stringResponseEntity.getBody()); System.out.println(stringResponseEntity.getBody());
} }
@Test
public void test1(){
// 获取所有组别的报名情况
List<RoadStatistic> roadsStatistic = remoteService.getRoadsStatistic(11843);
roadsStatistic.forEach(road -> {
List<UserScoreExcelBean> excelsBean = cmptScoreRuleService.getRoadStatisticByCmptIdAndRoadId(11843,road.getRoadId());
System.out.println(excelsBean);
});
}
@Test
public void test(){
List<SettingTemplate> templates = cmptSettingService.queryAllSettingTemplate();
List<CmptSettingTemplate> cmptSettingTemplates = cmptSettingService.queryAllCmptSetting();
List<CmptSettingTemplate> needTemplate = new ArrayList<>();
cmptSettingTemplates.forEach(setting -> {
List<SettingTemplate> collect = templates.stream().filter(item -> !setting.getSettingTemplates().stream()
.map(st -> st.getType()).collect(Collectors.toList()).contains(item.getType())).collect(Collectors.toList());
if(collect.size() > 0){
CmptSettingTemplate template = new CmptSettingTemplate();
template.setCmptId(setting.getCmptId());
template.setRestSettingTemplates(collect);
needTemplate.add(template);
}
});
needTemplate.forEach(item -> {
item.getRestSettingTemplates().forEach(it->{
CmptSetting setting = new CmptSetting();
setting.setCmptId(item.getCmptId()+"");
setting.setId(UUID.randomUUID().toString().replace("-",""));
setting.setName(it.getType()+"");
setting.setSeq(it.getSeq()+"");
setting.setStatus(it.getStatus());
setting.setStyle(it.getStyle());
setting.setType(it.getType());
setting.setVisibility(it.getVisibility()+"");
System.out.println("补齐菜单:"+setting);
cmptSettingService.save(setting);
});
});
}
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment