diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/LogAspect.java b/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/LogAspect.java index 105e2908..7a43de2e 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/LogAspect.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/LogAspect.java @@ -49,7 +49,9 @@ public class LogAspect { } - @Pointcut("execution(* com.ccsens.tall.web..*(..)) || execution(* com.ccsens.ht.api..*(..))") + @Pointcut("execution(* com.ccsens.tall.web..*(..)) || execution(* com.ccsens.ht.api..*(..))" + + " || execution(* com.ccsens.mt.api..*(..)) || execution(* com.ccsens.game.api..*(..))" + + " || execution(* com.ccsens.health.api..*(..)) || execution(* com.ccsens.pims.api..*(..))") public void logAdvice(){ } diff --git a/game/src/main/java/com/ccsens/game/service/ScreenService.java b/game/src/main/java/com/ccsens/game/service/ScreenService.java index 46140ccf..8d7c2ad4 100644 --- a/game/src/main/java/com/ccsens/game/service/ScreenService.java +++ b/game/src/main/java/com/ccsens/game/service/ScreenService.java @@ -131,18 +131,21 @@ public class ScreenService implements IScreenService { gameRecord.setUrl(gameUrl + gameType.getScreenUrl() + "?id=" + gameRecord.getId()); // gameRecord.setQrCodeUrl(gameUrl + gameRecord.getId() + File.separator + gameType.getClientUrl()); - if("1".equalsIgnoreCase(PropUtil.openWx)){ +// if("1".equalsIgnoreCase(PropUtil.openWx)){ //生成二维码 String fileName = "/gameQrCode/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".png"; String path = WebConstant.UPLOAD_PATH_BASE + fileName; - WxXcxUtil.getWxCode(WebConstant.QRCODE_GAME, "id=" + gameRecord.getId() + "&type=" + gameType.getCode(), null, path, gameType.getCode()); +// WxXcxUtil.getWxCode(WebConstant.QRCODE_GAME, "id=" + gameRecord.getId() + "&type=" + gameType.getCode(), null, path, gameType.getCode()); + WxXcxUtil.getWxCodeC(WebConstant.QRCODE_GAME+"?id=" + gameRecord.getId() + "&type=" + gameType.getCode(), path, gameType.getCode()); + gameRecord.setQrCodeUrl(PropUtil.qrCode + fileName); log.info("调用微信生成二维码"); - } else { - log.info("测试环境,不调用生成二维码"); - //给一个默认测试的 - gameRecord.setQrCodeUrl(PropUtil.qrCode + "/gameQrCode/2020-08-19/1597822577181.png"); - } + +// } else { +// log.info("测试环境,不调用生成二维码"); +// //给一个默认测试的 +// gameRecord.setQrCodeUrl(PropUtil.qrCode + "/gameQrCode/2020-08-19/1597822577181.png"); +// } //查找此任务下的游戏配置表 byte businessType = 8; diff --git a/mt/src/main/java/com/ccsens/mt/api/DepartmentController.java b/mt/src/main/java/com/ccsens/mt/api/DepartmentController.java new file mode 100644 index 00000000..c1a5c84f --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/api/DepartmentController.java @@ -0,0 +1,68 @@ +package com.ccsens.mt.api; + +import com.ccsens.cloudutil.annotation.MustLogin; +import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.service.IDepartmentService; +import com.ccsens.util.JsonResponse; +import com.ccsens.util.bean.dto.QueryDto; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import lombok.extern.slf4j.Slf4j; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestMethod; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; +import java.util.List; + +/** + * @author 逗 + */ +@Slf4j +@Api(tags = "线上体育竞技比赛(校内报名)", description = "") +@RestController +@RequestMapping("/department") +public class DepartmentController { + @Resource + private IDepartmentService departmentService; + + @MustLogin + @ApiOperation(value = "查看院系信息", notes = "") + @RequestMapping(value = "/company", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getCompany(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查看院系信息:{}",params); + List competeCompanyList = departmentService.getCompany(params); + return JsonResponse.newInstance().ok(competeCompanyList); + } + + @MustLogin + @ApiOperation(value = "查看参赛项目信息", notes = "") + @RequestMapping(value = "/project", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse> queryCompeteProject(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查看参赛项目信息:{}",params); + List competeProjects = departmentService.queryCompeteProject(params); + return JsonResponse.newInstance().ok(competeProjects); + } + + @MustLogin + @ApiOperation(value = "院系提交报名信息", notes = "") + @RequestMapping(value = "/save/department", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse saveDepartment(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查看参赛项目信息:{}",params); + CompeteVo.DepartmentInfo department = departmentService.saveDepartment(params); + return JsonResponse.newInstance().ok(department); + } + + @MustLogin + @ApiOperation(value = "查看院系报名信息", notes = "") + @RequestMapping(value = "/get/department", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) + public JsonResponse getDepartment(@ApiParam @Validated @RequestBody QueryDto params) { + log.info("查看参赛项目信息:{}",params); + CompeteVo.DepartmentInfo department = departmentService.getDepartment(params); + return JsonResponse.newInstance().ok(department); + } +} diff --git a/mt/src/main/java/com/ccsens/mt/api/LevelController.java b/mt/src/main/java/com/ccsens/mt/api/LevelController.java index 204d2f79..81d5aec2 100644 --- a/mt/src/main/java/com/ccsens/mt/api/LevelController.java +++ b/mt/src/main/java/com/ccsens/mt/api/LevelController.java @@ -6,6 +6,7 @@ import com.ccsens.mt.bean.vo.LevelVo; import com.ccsens.mt.service.ILevelUpService; import com.ccsens.util.JsonResponse; import com.ccsens.util.bean.dto.QueryDto; +import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -17,13 +18,12 @@ import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; -import java.util.List; /** * @author 逗 */ @Slf4j -@Api(tags = "线上体育竞技比赛", description = "") +@Api(tags = "晋级系统", description = "") @RestController @RequestMapping("/level") public class LevelController { @@ -43,9 +43,9 @@ public class LevelController { @MustLogin @ApiOperation(value = "查找晋级选手信息", notes = "") @RequestMapping(value = "/userInfo", method = RequestMethod.POST, produces = {"application/json;charset=UTF-8"}) - public JsonResponse> queryLevelUserInfo(@ApiParam @Validated @RequestBody QueryDto params) { + public JsonResponse> queryLevelUserInfo(@ApiParam @Validated @RequestBody QueryDto params) { log.info("手动晋级:{}",params); - List levelUserInfoList = levelUpService.queryLevelUserInfo(params); + PageInfo levelUserInfoList = levelUpService.queryLevelUserInfo(params); return JsonResponse.newInstance().ok(levelUserInfoList); } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java index a2309c3a..1424d088 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/CompeteDto.java @@ -6,6 +6,7 @@ import lombok.Data; import javax.validation.constraints.NotEmpty; import javax.validation.constraints.NotNull; +import java.util.List; /** * @author 逗 @@ -16,7 +17,7 @@ public class CompeteDto { @ApiModel public static class CompeteType{ @NotNull - @ApiModelProperty("比赛的类型,0跳绳比赛") + @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛") private int type; } @@ -105,4 +106,56 @@ public class CompeteDto { @ApiModelProperty("团队ID") private Long id; } + + @Data + @ApiModel("院系提交报名信息") + public static class DepartmentInfo{ + @NotNull(message="请选择院系信息") + @ApiModelProperty("院系id") + private Long id; + @NotNull + @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛") + private int type; + @ApiModelProperty("填表人裁判等信息") + private List roleList; + @ApiModelProperty("每个比赛项目的参赛名单") + private List projectList; + } + @Data + @ApiModel("填表人裁判等信息") + public static class DepartmentRole{ + @NotEmpty + @ApiModelProperty("名字") + private String name; + @NotEmpty + @ApiModelProperty("手机号") + private String phone; + @NotNull + @ApiModelProperty("担任的角色 0领队 1裁判 2填表人") + private int role; + } + + @Data + @ApiModel("每个比赛项目的参赛名单") + public static class DepartmentProject{ + @NotNull + @ApiModelProperty("比赛项目id(二级的)") + private Long competeProjectId; + @NotEmpty + @ApiModelProperty("参赛人员名单,名字中间用逗号隔开") + private String names; + @ApiModelProperty("性别组 0女 1男 2混合") + private int genderGroup; + } + + @Data + @ApiModel("获取院系提交的报名信息") + public static class GetDepartmentInfo{ +// @NotNull(message="请选择院系信息") +// @ApiModelProperty("院系id") +// private Long id; + @NotNull + @ApiModelProperty("比赛的类型,0跳绳省赛 1跳绳校内比赛") + private int type; + } } diff --git a/mt/src/main/java/com/ccsens/mt/bean/dto/LevelDto.java b/mt/src/main/java/com/ccsens/mt/bean/dto/LevelDto.java index d06f2ceb..7f8263d9 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/dto/LevelDto.java +++ b/mt/src/main/java/com/ccsens/mt/bean/dto/LevelDto.java @@ -68,12 +68,6 @@ public class LevelDto { public static class ManualLevelUpPlayer{ @ApiModelProperty("选手id") private Long playerId; -// @ApiModelProperty("分数") -// private int score; -// @ApiModelProperty("附加分数") -// private int additionScore; -// @ApiModelProperty("名次") -// private int ranking; } @Data @ApiModel("查询晋级信息") diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCompanyRole.java b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCompanyRole.java new file mode 100644 index 00000000..f3392174 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCompanyRole.java @@ -0,0 +1,95 @@ +package com.ccsens.mt.bean.po; + +import java.io.Serializable; +import java.util.Date; + +public class CompeteCompanyRole implements Serializable { + private Long id; + + private Long playerId; + + private Long competeCompanyId; + + private Byte type; + + private Date createdAt; + + private Date updatedAt; + + private Byte recStatus; + + private static final long serialVersionUID = 1L; + + public Long getId() { + return id; + } + + public void setId(Long id) { + this.id = id; + } + + public Long getPlayerId() { + return playerId; + } + + public void setPlayerId(Long playerId) { + this.playerId = playerId; + } + + public Long getCompeteCompanyId() { + return competeCompanyId; + } + + public void setCompeteCompanyId(Long competeCompanyId) { + this.competeCompanyId = competeCompanyId; + } + + public Byte getType() { + return type; + } + + public void setType(Byte type) { + this.type = type; + } + + public Date getCreatedAt() { + return createdAt; + } + + public void setCreatedAt(Date createdAt) { + this.createdAt = createdAt; + } + + public Date getUpdatedAt() { + return updatedAt; + } + + public void setUpdatedAt(Date updatedAt) { + this.updatedAt = updatedAt; + } + + public Byte getRecStatus() { + return recStatus; + } + + public void setRecStatus(Byte recStatus) { + this.recStatus = recStatus; + } + + @Override + public String toString() { + StringBuilder sb = new StringBuilder(); + sb.append(getClass().getSimpleName()); + sb.append(" ["); + sb.append("Hash = ").append(hashCode()); + sb.append(", id=").append(id); + sb.append(", playerId=").append(playerId); + sb.append(", competeCompanyId=").append(competeCompanyId); + sb.append(", type=").append(type); + sb.append(", createdAt=").append(createdAt); + sb.append(", updatedAt=").append(updatedAt); + sb.append(", recStatus=").append(recStatus); + sb.append("]"); + return sb.toString(); + } +} \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCompanyRoleExample.java b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCompanyRoleExample.java new file mode 100644 index 00000000..6b40a8a9 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/bean/po/CompeteCompanyRoleExample.java @@ -0,0 +1,621 @@ +package com.ccsens.mt.bean.po; + +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + +public class CompeteCompanyRoleExample { + protected String orderByClause; + + protected boolean distinct; + + protected List oredCriteria; + + public CompeteCompanyRoleExample() { + oredCriteria = new ArrayList(); + } + + public void setOrderByClause(String orderByClause) { + this.orderByClause = orderByClause; + } + + public String getOrderByClause() { + return orderByClause; + } + + public void setDistinct(boolean distinct) { + this.distinct = distinct; + } + + public boolean isDistinct() { + return distinct; + } + + public List getOredCriteria() { + return oredCriteria; + } + + public void or(Criteria criteria) { + oredCriteria.add(criteria); + } + + public Criteria or() { + Criteria criteria = createCriteriaInternal(); + oredCriteria.add(criteria); + return criteria; + } + + public Criteria createCriteria() { + Criteria criteria = createCriteriaInternal(); + if (oredCriteria.size() == 0) { + oredCriteria.add(criteria); + } + return criteria; + } + + protected Criteria createCriteriaInternal() { + Criteria criteria = new Criteria(); + return criteria; + } + + public void clear() { + oredCriteria.clear(); + orderByClause = null; + distinct = false; + } + + protected abstract static class GeneratedCriteria { + protected List criteria; + + protected GeneratedCriteria() { + super(); + criteria = new ArrayList(); + } + + public boolean isValid() { + return criteria.size() > 0; + } + + public List getAllCriteria() { + return criteria; + } + + public List getCriteria() { + return criteria; + } + + protected void addCriterion(String condition) { + if (condition == null) { + throw new RuntimeException("Value for condition cannot be null"); + } + criteria.add(new Criterion(condition)); + } + + protected void addCriterion(String condition, Object value, String property) { + if (value == null) { + throw new RuntimeException("Value for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value)); + } + + protected void addCriterion(String condition, Object value1, Object value2, String property) { + if (value1 == null || value2 == null) { + throw new RuntimeException("Between values for " + property + " cannot be null"); + } + criteria.add(new Criterion(condition, value1, value2)); + } + + public Criteria andIdIsNull() { + addCriterion("id is null"); + return (Criteria) this; + } + + public Criteria andIdIsNotNull() { + addCriterion("id is not null"); + return (Criteria) this; + } + + public Criteria andIdEqualTo(Long value) { + addCriterion("id =", value, "id"); + return (Criteria) this; + } + + public Criteria andIdNotEqualTo(Long value) { + addCriterion("id <>", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThan(Long value) { + addCriterion("id >", value, "id"); + return (Criteria) this; + } + + public Criteria andIdGreaterThanOrEqualTo(Long value) { + addCriterion("id >=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThan(Long value) { + addCriterion("id <", value, "id"); + return (Criteria) this; + } + + public Criteria andIdLessThanOrEqualTo(Long value) { + addCriterion("id <=", value, "id"); + return (Criteria) this; + } + + public Criteria andIdIn(List values) { + addCriterion("id in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdNotIn(List values) { + addCriterion("id not in", values, "id"); + return (Criteria) this; + } + + public Criteria andIdBetween(Long value1, Long value2) { + addCriterion("id between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andIdNotBetween(Long value1, Long value2) { + addCriterion("id not between", value1, value2, "id"); + return (Criteria) this; + } + + public Criteria andPlayerIdIsNull() { + addCriterion("player_id is null"); + return (Criteria) this; + } + + public Criteria andPlayerIdIsNotNull() { + addCriterion("player_id is not null"); + return (Criteria) this; + } + + public Criteria andPlayerIdEqualTo(Long value) { + addCriterion("player_id =", value, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdNotEqualTo(Long value) { + addCriterion("player_id <>", value, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdGreaterThan(Long value) { + addCriterion("player_id >", value, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdGreaterThanOrEqualTo(Long value) { + addCriterion("player_id >=", value, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdLessThan(Long value) { + addCriterion("player_id <", value, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdLessThanOrEqualTo(Long value) { + addCriterion("player_id <=", value, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdIn(List values) { + addCriterion("player_id in", values, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdNotIn(List values) { + addCriterion("player_id not in", values, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdBetween(Long value1, Long value2) { + addCriterion("player_id between", value1, value2, "playerId"); + return (Criteria) this; + } + + public Criteria andPlayerIdNotBetween(Long value1, Long value2) { + addCriterion("player_id not between", value1, value2, "playerId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdIsNull() { + addCriterion("compete_company_id is null"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdIsNotNull() { + addCriterion("compete_company_id is not null"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdEqualTo(Long value) { + addCriterion("compete_company_id =", value, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdNotEqualTo(Long value) { + addCriterion("compete_company_id <>", value, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdGreaterThan(Long value) { + addCriterion("compete_company_id >", value, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdGreaterThanOrEqualTo(Long value) { + addCriterion("compete_company_id >=", value, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdLessThan(Long value) { + addCriterion("compete_company_id <", value, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdLessThanOrEqualTo(Long value) { + addCriterion("compete_company_id <=", value, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdIn(List values) { + addCriterion("compete_company_id in", values, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdNotIn(List values) { + addCriterion("compete_company_id not in", values, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdBetween(Long value1, Long value2) { + addCriterion("compete_company_id between", value1, value2, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andCompeteCompanyIdNotBetween(Long value1, Long value2) { + addCriterion("compete_company_id not between", value1, value2, "competeCompanyId"); + return (Criteria) this; + } + + public Criteria andTypeIsNull() { + addCriterion("type is null"); + return (Criteria) this; + } + + public Criteria andTypeIsNotNull() { + addCriterion("type is not null"); + return (Criteria) this; + } + + public Criteria andTypeEqualTo(Byte value) { + addCriterion("type =", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotEqualTo(Byte value) { + addCriterion("type <>", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThan(Byte value) { + addCriterion("type >", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeGreaterThanOrEqualTo(Byte value) { + addCriterion("type >=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThan(Byte value) { + addCriterion("type <", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeLessThanOrEqualTo(Byte value) { + addCriterion("type <=", value, "type"); + return (Criteria) this; + } + + public Criteria andTypeIn(List values) { + addCriterion("type in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotIn(List values) { + addCriterion("type not in", values, "type"); + return (Criteria) this; + } + + public Criteria andTypeBetween(Byte value1, Byte value2) { + addCriterion("type between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andTypeNotBetween(Byte value1, Byte value2) { + addCriterion("type not between", value1, value2, "type"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNull() { + addCriterion("created_at is null"); + return (Criteria) this; + } + + public Criteria andCreatedAtIsNotNull() { + addCriterion("created_at is not null"); + return (Criteria) this; + } + + public Criteria andCreatedAtEqualTo(Date value) { + addCriterion("created_at =", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotEqualTo(Date value) { + addCriterion("created_at <>", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThan(Date value) { + addCriterion("created_at >", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("created_at >=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThan(Date value) { + addCriterion("created_at <", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtLessThanOrEqualTo(Date value) { + addCriterion("created_at <=", value, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtIn(List values) { + addCriterion("created_at in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotIn(List values) { + addCriterion("created_at not in", values, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtBetween(Date value1, Date value2) { + addCriterion("created_at between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andCreatedAtNotBetween(Date value1, Date value2) { + addCriterion("created_at not between", value1, value2, "createdAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNull() { + addCriterion("updated_at is null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIsNotNull() { + addCriterion("updated_at is not null"); + return (Criteria) this; + } + + public Criteria andUpdatedAtEqualTo(Date value) { + addCriterion("updated_at =", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotEqualTo(Date value) { + addCriterion("updated_at <>", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThan(Date value) { + addCriterion("updated_at >", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtGreaterThanOrEqualTo(Date value) { + addCriterion("updated_at >=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThan(Date value) { + addCriterion("updated_at <", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtLessThanOrEqualTo(Date value) { + addCriterion("updated_at <=", value, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtIn(List values) { + addCriterion("updated_at in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotIn(List values) { + addCriterion("updated_at not in", values, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtBetween(Date value1, Date value2) { + addCriterion("updated_at between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andUpdatedAtNotBetween(Date value1, Date value2) { + addCriterion("updated_at not between", value1, value2, "updatedAt"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNull() { + addCriterion("rec_status is null"); + return (Criteria) this; + } + + public Criteria andRecStatusIsNotNull() { + addCriterion("rec_status is not null"); + return (Criteria) this; + } + + public Criteria andRecStatusEqualTo(Byte value) { + addCriterion("rec_status =", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotEqualTo(Byte value) { + addCriterion("rec_status <>", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThan(Byte value) { + addCriterion("rec_status >", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusGreaterThanOrEqualTo(Byte value) { + addCriterion("rec_status >=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThan(Byte value) { + addCriterion("rec_status <", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusLessThanOrEqualTo(Byte value) { + addCriterion("rec_status <=", value, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusIn(List values) { + addCriterion("rec_status in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotIn(List values) { + addCriterion("rec_status not in", values, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusBetween(Byte value1, Byte value2) { + addCriterion("rec_status between", value1, value2, "recStatus"); + return (Criteria) this; + } + + public Criteria andRecStatusNotBetween(Byte value1, Byte value2) { + addCriterion("rec_status not between", value1, value2, "recStatus"); + return (Criteria) this; + } + } + + public static class Criteria extends GeneratedCriteria { + + protected Criteria() { + super(); + } + } + + public static class Criterion { + private String condition; + + private Object value; + + private Object secondValue; + + private boolean noValue; + + private boolean singleValue; + + private boolean betweenValue; + + private boolean listValue; + + private String typeHandler; + + public String getCondition() { + return condition; + } + + public Object getValue() { + return value; + } + + public Object getSecondValue() { + return secondValue; + } + + public boolean isNoValue() { + return noValue; + } + + public boolean isSingleValue() { + return singleValue; + } + + public boolean isBetweenValue() { + return betweenValue; + } + + public boolean isListValue() { + return listValue; + } + + public String getTypeHandler() { + return typeHandler; + } + + protected Criterion(String condition) { + super(); + this.condition = condition; + this.typeHandler = null; + this.noValue = true; + } + + protected Criterion(String condition, Object value, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.typeHandler = typeHandler; + if (value instanceof List) { + this.listValue = true; + } else { + this.singleValue = true; + } + } + + protected Criterion(String condition, Object value) { + this(condition, value, null); + } + + protected Criterion(String condition, Object value, Object secondValue, String typeHandler) { + super(); + this.condition = condition; + this.value = value; + this.secondValue = secondValue; + this.typeHandler = typeHandler; + this.betweenValue = true; + } + + protected Criterion(String condition, Object value, Object secondValue) { + this(condition, value, secondValue, null); + } + } +} \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java index ba978e1a..f30e8bf4 100644 --- a/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java +++ b/mt/src/main/java/com/ccsens/mt/bean/vo/CompeteVo.java @@ -195,7 +195,7 @@ public class CompeteVo { private String parentProjectName; @ApiModelProperty("比赛的类型,0跳绳比赛") private byte type; - @ApiModelProperty("比赛的类型,0跳绳比赛") + @ApiModelProperty("二级项目信息") private List secondProjects; } @Data @@ -253,4 +253,58 @@ public class CompeteVo { private String proveImg; } + + @Data + @ApiModel("院系报名信息表") + public static class DepartmentInfo { + @ApiModelProperty("院系id") + private Long id; + @ApiModelProperty("院系名") + private String name; + @ApiModelProperty("返回的填表人裁判等信息") + private List departmentRoles; + @ApiModelProperty("返回每个比赛项目的参赛名单") + private List departmentProjects; + } + @Data + @ApiModel("返回的填表人裁判等信息") + public static class DepartmentRole{ + @ApiModelProperty("人员的id") + private String id; + @ApiModelProperty("名字") + private String name; + @ApiModelProperty("手机号") + private String phone; + @ApiModelProperty("担任的角色 0领队 1裁判 2填表人") + private int role; + } + @Data + @ApiModel("查找比赛项目报名信息") + public static class DepartmentProject { + @ApiModelProperty("一级项目id") + private Long parentProjectId; + @ApiModelProperty("一级项目名字") + private String parentProjectName; + @ApiModelProperty("比赛的类型,0跳绳比赛") + private byte type; + @ApiModelProperty("二级项目报名人员信息") + private List secondProjects; + } + @Data + @ApiModel("返回每个比赛项目的参赛名单") + public static class DepartmentSecondProject{ + @ApiModelProperty("比赛项目id(二级的)") + private Long competeProjectId; + @ApiModelProperty("比赛项目名字") + private String competeProjectName; + @ApiModelProperty("是否是团队项目 0否 1是") + private byte team; + @ApiModelProperty("男子参赛名单") + private String manName; + @ApiModelProperty("女子参赛名单") + private String womanName; + @ApiModelProperty("混合名单") + private String mixedName; + } + } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java index 5b0796ff..28c31040 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/CompetePlayerDao.java @@ -4,6 +4,8 @@ import com.ccsens.mt.bean.vo.CompeteVo; import com.ccsens.mt.persist.mapper.CompetePlayerMapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * 参赛选手信息 */ @@ -14,4 +16,33 @@ public interface CompetePlayerDao extends CompetePlayerMapper { * @return 选手信息 */ CompeteVo.GetPlayerInfo getInfo(@Param("userId") Long userId); + + /** + * 查询院系信息和裁判领队填表人的信息 + * @param id 院系id + * @return 返回 + */ + CompeteVo.DepartmentInfo getDepartment(@Param("id") Long id); + + /** + * 查询项目信息 + * @param type + * @return + */ + List getDepartmentProject(@Param("type")int type); + + /** + * 获取单人项目参赛人员名单(用逗号分隔) + * @param competeProjectId 项目id + * @return 返回名字 + */ + String getMemberNamesByProjectId(@Param("companyId")Long companyId,@Param("competeProjectId")Long competeProjectId,@Param("genderGroup")int genderGroup); + /** + * 获取团队项目参赛人员名单(用逗号分隔) + * @param competeProjectId 项目id + * @return 返回名字 + */ + String getTeamMemberNamesByProjectId(@Param("companyId")Long companyId,@Param("competeProjectId")Long competeProjectId,@Param("genderGroup")int genderGroup); + + Long getCompanyIdByUser(@Param("userId")Long userId); } diff --git a/mt/src/main/java/com/ccsens/mt/persist/dao/LevelUpDao.java b/mt/src/main/java/com/ccsens/mt/persist/dao/LevelUpDao.java index 40357e43..2c416b27 100644 --- a/mt/src/main/java/com/ccsens/mt/persist/dao/LevelUpDao.java +++ b/mt/src/main/java/com/ccsens/mt/persist/dao/LevelUpDao.java @@ -1,9 +1,12 @@ package com.ccsens.mt.persist.dao; +import com.ccsens.mt.bean.vo.LevelVo; import com.ccsens.mt.persist.mapper.LevelUpMapper; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; +import java.util.List; + /** * @author 逗 */ @@ -16,4 +19,12 @@ public interface LevelUpDao extends LevelUpMapper{ * @return 返回晋级信息id */ Long getByLevelUserIdAndCode(@Param("levelUserId") Long levelUserId, @Param("competeCode")String competeCode); + + /** + * 查找项目的晋级人员信息 + * @param competeCode 比赛code + * @param competeTimeId competeTimeId + * @return 返回晋级的人员信息 + */ + List queryLevelUserInfo(@Param("competeCode") String competeCode, @Param("competeTimeId") Long competeTimeId); } diff --git a/mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteCompanyRoleMapper.java b/mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteCompanyRoleMapper.java new file mode 100644 index 00000000..6df59e25 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/persist/mapper/CompeteCompanyRoleMapper.java @@ -0,0 +1,30 @@ +package com.ccsens.mt.persist.mapper; + +import com.ccsens.mt.bean.po.CompeteCompanyRole; +import com.ccsens.mt.bean.po.CompeteCompanyRoleExample; +import java.util.List; +import org.apache.ibatis.annotations.Param; + +public interface CompeteCompanyRoleMapper { + long countByExample(CompeteCompanyRoleExample example); + + int deleteByExample(CompeteCompanyRoleExample example); + + int deleteByPrimaryKey(Long id); + + int insert(CompeteCompanyRole record); + + int insertSelective(CompeteCompanyRole record); + + List selectByExample(CompeteCompanyRoleExample example); + + CompeteCompanyRole selectByPrimaryKey(Long id); + + int updateByExampleSelective(@Param("record") CompeteCompanyRole record, @Param("example") CompeteCompanyRoleExample example); + + int updateByExample(@Param("record") CompeteCompanyRole record, @Param("example") CompeteCompanyRoleExample example); + + int updateByPrimaryKeySelective(CompeteCompanyRole record); + + int updateByPrimaryKey(CompeteCompanyRole record); +} \ No newline at end of file diff --git a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java index c00e3c50..3b472b03 100644 --- a/mt/src/main/java/com/ccsens/mt/service/CompeteService.java +++ b/mt/src/main/java/com/ccsens/mt/service/CompeteService.java @@ -215,7 +215,9 @@ public class CompeteService implements ICompeteService{ team.setCompeteTimeId(params.getParam().getCompeteTimeId()); team.setCertificate(params.getParam().getCertificate()); team.setGenderGroup(player.getGender()); - String qrCode = PropUtil.signUpUrl + "home?teamId=" + team.getId(); + String url = PropUtil.signUpUrl + "home?teamId=" + team.getId(); + String qrCode = WebConstant.Wx.getAuthedUrl(url,WebConstant.WxGzhAuthType.SNSAPI_USERINFO + , (String) redisUtil.get(WebConstant.Wx.ACCOUNT_WX_APPID)); String qrCodeVisit = QrCodeUtil.urlToQRCode(qrCode, PropUtil.path); team.setQrCode(qrCodeVisit); competeTeamDao.insertSelective(team); diff --git a/mt/src/main/java/com/ccsens/mt/service/DepartmentService.java b/mt/src/main/java/com/ccsens/mt/service/DepartmentService.java new file mode 100644 index 00000000..63fd6903 --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/service/DepartmentService.java @@ -0,0 +1,220 @@ +package com.ccsens.mt.service; + +import cn.hutool.core.collection.CollectionUtil; +import cn.hutool.core.lang.Snowflake; +import cn.hutool.core.util.ObjectUtil; +import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.po.*; +import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.mt.persist.dao.CompetePlayerDao; +import com.ccsens.mt.persist.dao.CompeteTeamDao; +import com.ccsens.mt.persist.dao.CompeteTimeDao; +import com.ccsens.mt.persist.mapper.*; +import com.ccsens.util.CodeEnum; +import com.ccsens.util.StringUtil; +import com.ccsens.util.bean.dto.QueryDto; +import com.ccsens.util.exception.BaseException; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; + +/** + * @author 逗 + */ +@Slf4j +@Service +@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class) +public class DepartmentService implements IDepartmentService{ + @Resource + private CompeteCompanyMapper competeCompanyMapper; + @Resource + private CompeteTimeDao competeTimeDao; + @Resource + private Snowflake snowflake; + @Resource + private CompetePlayerDao competePlayerDao; + @Resource + private CompeteCompanyRoleMapper competeCompanyRoleMapper; + @Resource + private CompeteProjectMapper competeProjectMapper; + @Resource + private CompeteProjectPlayerMapper competeProjectPlayerMapper; + @Resource + private CompeteTeamDao competeTeamDao; + @Resource + private CompeteTeamMemberMapper competeTeamMemberMapper; + + /** + * 查看院系信息 + */ + @Override + public List getCompany(QueryDto params) { + CompeteDto.CompeteType competeType = params.getParam(); + + List competeCompanyList = new ArrayList<>(); + //根据类型查找所有单位(院系)信息 + CompeteCompanyExample competeCompanyExample = new CompeteCompanyExample(); + competeCompanyExample.createCriteria().andTypeEqualTo((byte) competeType.getType()); + List companyList = competeCompanyMapper.selectByExample(competeCompanyExample); + if(CollectionUtil.isNotEmpty(companyList)){ + companyList.forEach(company -> { + CompeteVo.CompeteCompany competeCompany = new CompeteVo.CompeteCompany(); + competeCompany.setGroupId(company.getId()); + competeCompany.setGroupName(company.getName()); + competeCompanyList.add(competeCompany); + }); + } + return competeCompanyList; + } + + /** + * 查看比赛项目 + */ + @Override + public List queryCompeteProject(QueryDto params) { + CompeteDto.CompeteType competeType = params.getParam(); + return competeTimeDao.queryCompeteProjectByType(competeType.getType()); + } + + @Override + public CompeteVo.DepartmentInfo saveDepartment(QueryDto params) { + CompeteDto.DepartmentInfo departmentInfo = params.getParam(); + Long userId = params.getUserId(); + //查看该院系的报名信息 + Long companyId = competePlayerDao.getCompanyIdByUser(params.getUserId()); + if(ObjectUtil.isNotNull(companyId)){ + throw new BaseException(CodeEnum.PLAYER_INFO_ALREADY); + } + CompeteCompanyRoleExample companyRoleExample = new CompeteCompanyRoleExample(); + companyRoleExample.createCriteria().andCompeteCompanyIdEqualTo(departmentInfo.getId()).andTypeEqualTo((byte)2); + if(competeCompanyRoleMapper.countByExample(companyRoleExample) == 0) { + //添加裁判领队等信息 + if (CollectionUtil.isNotEmpty(departmentInfo.getRoleList())) { + departmentInfo.getRoleList().forEach(departmentRole -> { + //添加player信息 + CompetePlayer competePlayer = new CompetePlayer(); + competePlayer.setId(snowflake.nextId()); + competePlayer.setName(departmentRole.getName()); + competePlayer.setPhone(departmentRole.getPhone()); + competePlayer.setCompanyId(departmentInfo.getId()); + if (departmentRole.getRole() == 2) { + competePlayer.setUserId(userId); + } + competePlayerDao.insertSelective(competePlayer); + //添加院系内担任的角色信息 + CompeteCompanyRole competeCompanyRole = new CompeteCompanyRole(); + competeCompanyRole.setId(snowflake.nextId()); + competeCompanyRole.setType((byte) departmentRole.getRole()); + competeCompanyRole.setCompeteCompanyId(departmentInfo.getId()); + competeCompanyRole.setPlayerId(competePlayer.getId()); + competeCompanyRoleMapper.insertSelective(competeCompanyRole); + }); + } + //添加比赛报名信息 + if (CollectionUtil.isNotEmpty(departmentInfo.getProjectList())) { + departmentInfo.getProjectList().forEach(departmentProject -> { + CompeteProject competeProject = competeProjectMapper.selectByPrimaryKey(departmentProject.getCompeteProjectId()); + if (ObjectUtil.isNotNull(competeProject)) { + if (competeProject.getTeam() == 0) { + //不是团队比赛 + String names = StringUtil.replaceComma(departmentProject.getNames()); + String[] playerNames = names.split(","); + if (ObjectUtil.isNotNull(playerNames)) { + for (String playerName : playerNames) { + //直接添加选手 + CompetePlayer competePlayer = new CompetePlayer(); + competePlayer.setId(snowflake.nextId()); + competePlayer.setName(playerName); + competePlayer.setCompanyId(departmentInfo.getId()); + competePlayerDao.insertSelective(competePlayer); + //添加选手比赛关联信息 + CompeteProjectPlayer competeProjectPlayer = new CompeteProjectPlayer(); + competeProjectPlayer.setId(snowflake.nextId()); + competeProjectPlayer.setProjectId(departmentProject.getCompeteProjectId()); + competeProjectPlayer.setPlayerId(competePlayer.getId()); + competeProjectPlayer.setGenderGroup((byte) departmentProject.getGenderGroup()); + competeProjectPlayerMapper.insertSelective(competeProjectPlayer); + } + } + } else if (competeProject.getTeam() == 1) { + //创建一个团队 + CompeteTeam competeTeam = new CompeteTeam(); + competeTeam.setId(snowflake.nextId()); + competeTeam.setProjectId(departmentProject.getCompeteProjectId()); + competeTeam.setGenderGroup((byte) departmentProject.getGenderGroup()); + competeTeamDao.insertSelective(competeTeam); + + String names = StringUtil.replaceComma(departmentProject.getNames()); + String[] playerNames = names.split(","); + if(playerNames.length > competeProject.getMemberMax()){ + throw new BaseException(CodeEnum.TEAM_MEMBER_ERROR); + } + if (ObjectUtil.isNotNull(playerNames)) { + for (String playerName : playerNames) { + //直接添加选手 + CompetePlayer competePlayer = new CompetePlayer(); + competePlayer.setId(snowflake.nextId()); + competePlayer.setName(playerName); + competePlayer.setCompanyId(departmentInfo.getId()); + competePlayerDao.insertSelective(competePlayer); + //将选手加进团队 + CompeteTeamMember competeTeamMember = new CompeteTeamMember(); + competeTeamMember.setId(snowflake.nextId()); + competeTeamMember.setPlayerId(competePlayer.getId()); + competeTeamMember.setCompeteTeamId(competeTeam.getId()); + competeTeamMemberMapper.insertSelective(competeTeamMember); + } + } + } + } + }); + } + } + + return getDepartmentInfo(departmentInfo.getId(),departmentInfo.getType()); + } + + @Override + public CompeteVo.DepartmentInfo getDepartment(QueryDto params) { + CompeteDto.GetDepartmentInfo getDepartmentInfo = params.getParam(); + + //查询该用户的院系,默认用户只提交了一个院系的信息,只取一条数据 + Long companyId = competePlayerDao.getCompanyIdByUser(params.getUserId()); + //查询院系信息和裁判领队填表人的信息 + return getDepartmentInfo(companyId,getDepartmentInfo.getType()); + } + + + private CompeteVo.DepartmentInfo getDepartmentInfo(Long companyId,int competeType) { + CompeteVo.DepartmentInfo departmentInfo = competePlayerDao.getDepartment(companyId); + if(ObjectUtil.isNotNull(departmentInfo)) { + //查找每个项目的参赛人员 + List departmentProject = competePlayerDao.getDepartmentProject(competeType); + if (CollectionUtil.isNotEmpty(departmentProject)) { + departmentProject.forEach(project -> { + if (CollectionUtil.isNotEmpty(project.getSecondProjects())) { + project.getSecondProjects().forEach(secondProject -> { + if (secondProject.getTeam() == 0) { + //不是团队比赛 + secondProject.setManName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 0)); + secondProject.setWomanName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 1)); + secondProject.setMixedName(competePlayerDao.getMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 2)); + } else { + secondProject.setManName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 0)); + secondProject.setWomanName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 1)); + secondProject.setMixedName(competePlayerDao.getTeamMemberNamesByProjectId(companyId,secondProject.getCompeteProjectId(), 2)); + } + }); + } + }); + } + departmentInfo.setDepartmentProjects(departmentProject); + } + return departmentInfo; + } +} diff --git a/mt/src/main/java/com/ccsens/mt/service/IDepartmentService.java b/mt/src/main/java/com/ccsens/mt/service/IDepartmentService.java new file mode 100644 index 00000000..fbc6030f --- /dev/null +++ b/mt/src/main/java/com/ccsens/mt/service/IDepartmentService.java @@ -0,0 +1,41 @@ +package com.ccsens.mt.service; + +import com.ccsens.mt.bean.dto.CompeteDto; +import com.ccsens.mt.bean.vo.CompeteVo; +import com.ccsens.util.bean.dto.QueryDto; + +import java.util.List; + +/** + * @author 逗 + */ +public interface IDepartmentService { + + /** + * 查询院系信息 + * @param params 比赛类型 + * @return 返回院系信息 + */ + List getCompany(QueryDto params); + + /** + * 查看参赛项目 + * @param params 比赛类型 + * @return 返回比赛项目 + */ + List queryCompeteProject(QueryDto params); + + /** + * 提交院系报名信息 + * @param params 院系报名信息 + * @return 返回报名信息 + */ + CompeteVo.DepartmentInfo saveDepartment(QueryDto params); + + /** + * 获取院系报名的信息 + * @param params 院系id和比赛类型id + * @return 返回报名信息 + */ + CompeteVo.DepartmentInfo getDepartment(QueryDto params); +} diff --git a/mt/src/main/java/com/ccsens/mt/service/ILevelUpService.java b/mt/src/main/java/com/ccsens/mt/service/ILevelUpService.java index f2d78327..21e48d8a 100644 --- a/mt/src/main/java/com/ccsens/mt/service/ILevelUpService.java +++ b/mt/src/main/java/com/ccsens/mt/service/ILevelUpService.java @@ -3,8 +3,7 @@ package com.ccsens.mt.service; import com.ccsens.mt.bean.dto.LevelDto; import com.ccsens.mt.bean.vo.LevelVo; import com.ccsens.util.bean.dto.QueryDto; - -import java.util.List; +import com.github.pagehelper.PageInfo; /** * @author 逗 @@ -40,5 +39,5 @@ public interface ILevelUpService { * @param params 比赛id和分页信息 * @return 返回查到的比赛下所有晋级的选手的信息 */ - List queryLevelUserInfo(QueryDto params); + PageInfo queryLevelUserInfo(QueryDto params); } diff --git a/mt/src/main/java/com/ccsens/mt/service/LevelUpService.java b/mt/src/main/java/com/ccsens/mt/service/LevelUpService.java index 43fd1631..172acefa 100644 --- a/mt/src/main/java/com/ccsens/mt/service/LevelUpService.java +++ b/mt/src/main/java/com/ccsens/mt/service/LevelUpService.java @@ -12,6 +12,8 @@ import com.ccsens.mt.persist.mapper.LevelUserMapper; import com.ccsens.mt.util.Constant; import com.ccsens.util.RedisUtil; import com.ccsens.util.bean.dto.QueryDto; +import com.github.pagehelper.PageHelper; +import com.github.pagehelper.PageInfo; import lombok.extern.slf4j.Slf4j; import org.springframework.data.redis.core.ZSetOperations; import org.springframework.stereotype.Service; @@ -103,28 +105,55 @@ public class LevelUpService implements ILevelUpService{ levelRule = ruleList.get(0); } log.info("查找到的比赛晋级规则:{}",levelRule); + //查找redis内的数据 String key = Constant.Redis.COMPETE_LEVEL + autoLevelUpDto.getCompeteTimeId() + "_" + autoLevelUpDto.getCompeteCode(); + Set> typedTuples = redisUtil.zsRevGetWithScore(key, 0, -1); + AtomicInteger index = new AtomicInteger(); + LevelRule finalLevelRule = levelRule; switch (levelRule.getRule()){ case Constant.LevelUp.RULE_RANK_NO_REPEAT : log.info("根据排名(不重复)晋级"); - Set> typedTuples = redisUtil.zsRevGetWithScore(key, 0, -1); - AtomicInteger index = new AtomicInteger(0); + index.set(0); typedTuples.forEach(type ->{ index.set(index.get() + 1); // 更新数据库分数 LevelUser levelUser = (LevelUser) type.getValue(); - Long levelUpId = levelUpDao.getByLevelUserIdAndCode(levelUser.getId(),autoLevelUpDto.getCompeteCode()); - LevelUp levelUp = new LevelUp(); - levelUp.setId(levelUpId); - levelUp.setScore(Objects.requireNonNull(type.getScore()).intValue()); -// levelUp.setRanking(); + updateLevelUpScore(autoLevelUpDto.getCompeteCode(), index.get(), Objects.requireNonNull(type.getScore()).intValue(), levelUser.getId()); + //如果是符合晋级条件,添加新的晋级信息 + if(index.get() <= finalLevelRule.getLevelCondition()){ + insertLevelUp(autoLevelUpDto.getCompeteTimeId(), finalLevelRule.getCompeteCodeLevelUp(), levelUser.getId(), (byte) 0); + } }); break; case Constant.LevelUp.RULE_RANK_REPEAT : log.info("根据排名(可以重复)晋级"); + index.set(0); + AtomicInteger score = new AtomicInteger(0); + typedTuples.forEach(type ->{ + index.set(index.get() + 1); + // 更新数据库分数 + LevelUser levelUser = (LevelUser) type.getValue(); + updateLevelUpScore(autoLevelUpDto.getCompeteCode(), index.get(), Objects.requireNonNull(type.getScore()).intValue(), levelUser.getId()); + //如果是符合晋级条件,添加新的晋级信息 + if(index.get() <= finalLevelRule.getLevelCondition() || score.get() == Objects.requireNonNull(type.getScore()).intValue()){ + insertLevelUp(autoLevelUpDto.getCompeteTimeId(), finalLevelRule.getCompeteCodeLevelUp(), levelUser.getId(), (byte) 0); + } + score.set(Objects.requireNonNull(type.getScore()).intValue()); + }); break; case Constant.LevelUp.RULE_SCORE : log.info("根据分数晋级"); + index.set(0); + typedTuples.forEach(type ->{ + index.set(index.get() + 1); + // 更新数据库分数 + LevelUser levelUser = (LevelUser) type.getValue(); + updateLevelUpScore(autoLevelUpDto.getCompeteCode(), index.get(), Objects.requireNonNull(type.getScore()).intValue(), levelUser.getId()); + //如果是符合晋级条件,添加新的晋级信息 + if(Objects.requireNonNull(type.getScore()).intValue() >= finalLevelRule.getLevelCondition()){ + insertLevelUp(autoLevelUpDto.getCompeteTimeId(), finalLevelRule.getCompeteCodeLevelUp(), levelUser.getId(), (byte) 0); + } + }); break; case Constant.LevelUp.RULE_APPOINT : case Constant.LevelUp.RULE_TEAM_RANK : @@ -132,9 +161,40 @@ public class LevelUpService implements ILevelUpService{ default: break; } - //在redis中查找需要晋级的人 + } - //将选手和晋级信息添加至数据库 + /** + * 将晋级信息添加进数据库,存入redis + */ + private void insertLevelUp(Long competeTimeId, String competeCode, Long levelUser,byte levelUpType) { + LevelUp levelUp = new LevelUp(); + levelUp.setId(snowflake.nextId()); + levelUp.setLevelUserId(levelUser); + levelUp.setCompeteCode(competeCode); + levelUp.setCompeteTimeId(competeTimeId); + levelUp.setScore(0); + levelUp.setRanking(0); + levelUp.setLevelUpType(levelUpType); + levelUpDao.insertSelective(levelUp); + //存入redis + String keyNew = Constant.Redis.COMPETE_LEVEL + competeTimeId + "_" + competeCode; + redisUtil.zsSet(keyNew, levelUp, 0); + } + + /** + * 查找晋级信息,更新晋级信息里的分数和排名 + * @param competeCode 比赛code + * @param index 排名 + * @param score 分数 + * @param levelUserId levelUserId + */ + private void updateLevelUpScore(String competeCode, int index, int score, Long levelUserId) { + Long levelUpId = levelUpDao.getByLevelUserIdAndCode(levelUserId, competeCode); + LevelUp levelUpOld = new LevelUp(); + levelUpOld.setId(levelUpId); + levelUpOld.setScore(score); + levelUpOld.setRanking(index); + levelUpDao.updateByPrimaryKeySelective(levelUpOld); } /** @@ -143,7 +203,35 @@ public class LevelUpService implements ILevelUpService{ */ @Override public void manualLevelUpPlayer(QueryDto params) { - + LevelDto.ManualLevelUpDto manualLevelUp = params.getParam(); + //查找晋级规则, + LevelRule levelRule = new LevelRule(); + LevelRuleExample levelRuleExample = new LevelRuleExample(); + levelRuleExample.createCriteria().andCompeteCodeNowEqualTo(manualLevelUp.getCompeteCode()) + .andCompeteTimeIdEqualTo(manualLevelUp.getCompeteTimeId()); + List ruleList = levelRuleMapper.selectByExample(levelRuleExample); + if(CollectionUtil.isNotEmpty(ruleList)){ + levelRule = ruleList.get(0); + } + //查找redis内的数据 + String key = Constant.Redis.COMPETE_LEVEL + manualLevelUp.getCompeteTimeId() + "_" + manualLevelUp.getCompeteCode(); + Set> typedTuples = redisUtil.zsRevGetWithScore(key, 0, -1); + AtomicInteger index = new AtomicInteger(0); + LevelRule finalLevelRule = levelRule; + typedTuples.forEach(type ->{ + index.set(index.get() + 1); + // 更新数据库分数 + LevelUser levelUser = (LevelUser) type.getValue(); + updateLevelUpScore(manualLevelUp.getCompeteCode(), index.get(), Objects.requireNonNull(type.getScore()).intValue(), levelUser.getId()); + //如果是符合晋级条件,添加新的晋级信息 + if(CollectionUtil.isNotEmpty(manualLevelUp.getManualLevelUpPlayers())){ + manualLevelUp.getManualLevelUpPlayers().forEach(player -> { + if(player.getPlayerId().equals(levelUser.getPlayerId())){ + insertLevelUp(manualLevelUp.getCompeteTimeId(), finalLevelRule.getCompeteCodeLevelUp(), levelUser.getId(), (byte) 1); + } + }); + } + }); } /** @@ -152,8 +240,13 @@ public class LevelUpService implements ILevelUpService{ * @return 返回查到的比赛下所有晋级的选手的信息 */ @Override - public List queryLevelUserInfo(QueryDto params) { + public PageInfo queryLevelUserInfo(QueryDto params) { + LevelDto.QueryLevelUserInfo levelUserInfo = params.getParam(); + if(levelUserInfo.getPage() != -1){ + PageHelper.startPage(levelUserInfo.getPage(), levelUserInfo.getPageSize()); + } + List vos = levelUpDao.queryLevelUserInfo(levelUserInfo.getCompeteCode(),levelUserInfo.getCompeteTimeId()); - return null; + return new PageInfo<>(vos); } } diff --git a/mt/src/main/resources/application-prod.yml b/mt/src/main/resources/application-prod.yml index 41a2460b..a262e849 100644 --- a/mt/src/main/resources/application-prod.yml +++ b/mt/src/main/resources/application-prod.yml @@ -35,5 +35,5 @@ notGatewayUrl: https://www.tall.wiki/ file: path: /home/cloud/mt/uploads/ signUpUrl: https://www.tall.wiki/compete/ - domain: https://test.tall.wiki/gateway/mt/ - imgDomain: https://test.tall.wiki/gateway/mt/uploads/ \ No newline at end of file + domain: https://www.tall.wiki/gateway/mt/ + imgDomain: https://www.tall.wiki/gateway/mt/uploads/ \ No newline at end of file diff --git a/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml b/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml index a943bcff..ce96149f 100644 --- a/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml +++ b/mt/src/main/resources/mapper_dao/CompetePlayerDao.xml @@ -2,6 +2,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/mt/src/main/resources/mapper_dao/LevelUpDao.xml b/mt/src/main/resources/mapper_dao/LevelUpDao.xml index 6d69d7b4..497a7405 100644 --- a/mt/src/main/resources/mapper_dao/LevelUpDao.xml +++ b/mt/src/main/resources/mapper_dao/LevelUpDao.xml @@ -2,8 +2,25 @@ - SELECT id FROM `t_level_up` WHERE level_user_id = #{levelUserId} and compete_code = #{competeCode} + \ No newline at end of file diff --git a/mt/src/main/resources/mapper_raw/CompeteCompanyRoleMapper.xml b/mt/src/main/resources/mapper_raw/CompeteCompanyRoleMapper.xml new file mode 100644 index 00000000..4a354c5d --- /dev/null +++ b/mt/src/main/resources/mapper_raw/CompeteCompanyRoleMapper.xml @@ -0,0 +1,243 @@ + + + + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + + + + + + + + and ${criterion.condition} + + + and ${criterion.condition} #{criterion.value} + + + and ${criterion.condition} #{criterion.value} and #{criterion.secondValue} + + + and ${criterion.condition} + + #{listItem} + + + + + + + + + + + id, player_id, compete_company_id, type, created_at, updated_at, rec_status + + + + + delete from t_compete_company_role + where id = #{id,jdbcType=BIGINT} + + + delete from t_compete_company_role + + + + + + insert into t_compete_company_role (id, player_id, compete_company_id, + type, created_at, updated_at, + rec_status) + values (#{id,jdbcType=BIGINT}, #{playerId,jdbcType=BIGINT}, #{competeCompanyId,jdbcType=BIGINT}, + #{type,jdbcType=TINYINT}, #{createdAt,jdbcType=TIMESTAMP}, #{updatedAt,jdbcType=TIMESTAMP}, + #{recStatus,jdbcType=TINYINT}) + + + insert into t_compete_company_role + + + id, + + + player_id, + + + compete_company_id, + + + type, + + + created_at, + + + updated_at, + + + rec_status, + + + + + #{id,jdbcType=BIGINT}, + + + #{playerId,jdbcType=BIGINT}, + + + #{competeCompanyId,jdbcType=BIGINT}, + + + #{type,jdbcType=TINYINT}, + + + #{createdAt,jdbcType=TIMESTAMP}, + + + #{updatedAt,jdbcType=TIMESTAMP}, + + + #{recStatus,jdbcType=TINYINT}, + + + + + + update t_compete_company_role + + + id = #{record.id,jdbcType=BIGINT}, + + + player_id = #{record.playerId,jdbcType=BIGINT}, + + + compete_company_id = #{record.competeCompanyId,jdbcType=BIGINT}, + + + type = #{record.type,jdbcType=TINYINT}, + + + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{record.recStatus,jdbcType=TINYINT}, + + + + + + + + update t_compete_company_role + set id = #{record.id,jdbcType=BIGINT}, + player_id = #{record.playerId,jdbcType=BIGINT}, + compete_company_id = #{record.competeCompanyId,jdbcType=BIGINT}, + type = #{record.type,jdbcType=TINYINT}, + created_at = #{record.createdAt,jdbcType=TIMESTAMP}, + updated_at = #{record.updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{record.recStatus,jdbcType=TINYINT} + + + + + + update t_compete_company_role + + + player_id = #{playerId,jdbcType=BIGINT}, + + + compete_company_id = #{competeCompanyId,jdbcType=BIGINT}, + + + type = #{type,jdbcType=TINYINT}, + + + created_at = #{createdAt,jdbcType=TIMESTAMP}, + + + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + + + rec_status = #{recStatus,jdbcType=TINYINT}, + + + where id = #{id,jdbcType=BIGINT} + + + update t_compete_company_role + set player_id = #{playerId,jdbcType=BIGINT}, + compete_company_id = #{competeCompanyId,jdbcType=BIGINT}, + type = #{type,jdbcType=TINYINT}, + created_at = #{createdAt,jdbcType=TIMESTAMP}, + updated_at = #{updatedAt,jdbcType=TIMESTAMP}, + rec_status = #{recStatus,jdbcType=TINYINT} + where id = #{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/tall/src/main/java/com/ccsens/tall/scheduled/ScheduledService.java b/tall/src/main/java/com/ccsens/tall/scheduled/ScheduledService.java index 79e8967f..c838931e 100644 --- a/tall/src/main/java/com/ccsens/tall/scheduled/ScheduledService.java +++ b/tall/src/main/java/com/ccsens/tall/scheduled/ScheduledService.java @@ -8,6 +8,7 @@ import com.ccsens.tall.service.IProjectMessageService; import com.ccsens.tall.service.IRobotService; import lombok.extern.slf4j.Slf4j; import org.springframework.scheduling.annotation.EnableScheduling; +import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; @@ -38,7 +39,7 @@ public class ScheduledService { public static final String AFTER_END = "您在项目's'中的任务's'已经在's'结束了"; public static final String USER_DEFINED = "来自项目's'中的任务's'的提醒"; -// @Scheduled(cron = "*/60 * * * * ?") + @Scheduled(cron = "*/60 * * * * ?") public void runfirst(){ long now = System.currentTimeMillis(); // long now = 1594611047000L; diff --git a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java index 1acfc957..44338890 100644 --- a/tall/src/main/java/com/ccsens/tall/service/ProjectService.java +++ b/tall/src/main/java/com/ccsens/tall/service/ProjectService.java @@ -127,14 +127,15 @@ public class ProjectService implements IProjectService { Calendar max = Calendar.getInstance(); min.setTime(s); max.setTime(e); - Calendar curr = min; - while (curr.before(max)) { - for (String str : dateList) { - if (!sdf.format(min.getTime()).equalsIgnoreCase(str)) { - dateList.add(sdf.format(min.getTime())); - } + while (min.before(max)) { +// for (String str : dateList) { +// if (!sdf.format(min.getTime()).equalsIgnoreCase(str)) { + if(!dateList.contains(sdf.format(min.getTime()))) { + dateList.add(sdf.format(min.getTime())); } - curr.add(Calendar.DATE, 1); +// } +// } + min.add(Calendar.DATE, 1); } } diff --git a/tall/src/main/java/com/ccsens/tall/service/UserService.java b/tall/src/main/java/com/ccsens/tall/service/UserService.java index 4f357332..3c5d662f 100644 --- a/tall/src/main/java/com/ccsens/tall/service/UserService.java +++ b/tall/src/main/java/com/ccsens/tall/service/UserService.java @@ -1237,17 +1237,6 @@ public class UserService implements IUserService { return null; } } -// -// private SysWx getSysWx(String unionId) { -// SysWx sysWx = null; -// SysWxExample sysWxExample = new SysWxExample(); -// sysWxExample.createCriteria().andUnionIdEqualTo(unionId); -// List sysWxList = sysWxDao.selectByExample(sysWxExample); -// if (CollectionUtil.isNotEmpty(sysWxList)) { -// sysWx = sysWxList.get(0); -// } -// return sysWx; -// } /** * 合并账号 @@ -1304,8 +1293,25 @@ public class UserService implements IUserService { List authList = authDao.selectByExample(authExample); if (CollectionUtil.isNotEmpty(authList)) { SysAuth auth = authList.get(0); - auth.setUserId(currentUserId); + //查找这个手机号以前的用户,并删除 + SysUser user = userDao.selectByPrimaryKey(auth.getUserId()); + user.setRecStatus((byte) 2); + userDao.updateByPrimaryKeySelective(user); + //删除这个手机号的认证方式 + auth.setRecStatus((byte) 2); authDao.updateByPrimaryKeySelective(auth); + //将当前的用户手机号改为新的手机号 + SysAuthExample sysAuthExample = new SysAuthExample(); + sysAuthExample.createCriteria().andUserIdEqualTo(currentUserId) + .andIdentifyTypeEqualTo((byte) WebConstant.IDENTIFY_TYPE.Phone.value); + List sysAuthList = authDao.selectByExample(authExample); + if (CollectionUtil.isNotEmpty(sysAuthList)) { + SysAuth sysAuth = sysAuthList.get(0); + sysAuth.setIdentifier(wxPhone.getPhone()); + authDao.updateByPrimaryKeySelective(sysAuth); + } +// auth.setUserId(currentUserId); +// authDao.updateByPrimaryKeySelective(auth); } } diff --git a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java index 5d315f5f..7a46480e 100644 --- a/tall/src/main/java/com/ccsens/tall/web/ProjectController.java +++ b/tall/src/main/java/com/ccsens/tall/web/ProjectController.java @@ -1,6 +1,5 @@ package com.ccsens.tall.web; -import cn.hutool.core.util.ObjectUtil; import com.ccsens.tall.bean.dto.ProjectDto; import com.ccsens.tall.bean.vo.ProjectVo; import com.ccsens.tall.bean.vo.TaskVo; @@ -40,7 +39,7 @@ public class ProjectController { @Resource private IProTaskDetailService taskDetailService; - @ApiOperation(value = "获取日历上哪天有小红点",notes = "按照优先级倒序+时间正序排序") + @ApiOperation(value = "获取日历上哪天有小红点",notes = "") @ApiImplicitParams({ @ApiImplicitParam(name = "date", value = "日期(格式:yy-[MM]-[dd])", required = true, paramType = "query",dataType = "string",example = "2019-02-13") }) diff --git a/util/src/main/java/com/ccsens/util/CodeEnum.java b/util/src/main/java/com/ccsens/util/CodeEnum.java index 58a523a8..210fd984 100644 --- a/util/src/main/java/com/ccsens/util/CodeEnum.java +++ b/util/src/main/java/com/ccsens/util/CodeEnum.java @@ -150,6 +150,7 @@ public enum CodeEnum { PLAYER_INFO_ALREADY(127,"您已经有了报名信息,请不要重复提交", true), GAME_TIME_DUE(128,"您的游戏已到期,请重新购买", true), + TEAM_MEMBER_ERROR(129,"参赛人数不符合,请重新填写", true), ; diff --git a/util/src/main/java/com/ccsens/util/QrCodeUtil.java b/util/src/main/java/com/ccsens/util/QrCodeUtil.java index ce7b5256..c6e93cf8 100644 --- a/util/src/main/java/com/ccsens/util/QrCodeUtil.java +++ b/util/src/main/java/com/ccsens/util/QrCodeUtil.java @@ -24,7 +24,7 @@ public class QrCodeUtil { */ public static String urlToQRCode(String url, String parentPath) throws IOException { String fileName = "qrCode/" + DateUtil.today() + "/" + System.currentTimeMillis() + ".png"; - ByteArrayOutputStream stream = QRCode.from(url).to(ImageType.BMP).stream(); + ByteArrayOutputStream stream = QRCode.from(url).to(ImageType.BMP).withSize(500,500).stream(); byte[] codeByte = stream.toByteArray(); File file = new File(parentPath, fileName); if (!file.getParentFile().exists()) { diff --git a/util/src/main/java/com/ccsens/util/UploadFileUtil_Servlet3.java b/util/src/main/java/com/ccsens/util/UploadFileUtil_Servlet3.java index af725210..4d55ff52 100644 --- a/util/src/main/java/com/ccsens/util/UploadFileUtil_Servlet3.java +++ b/util/src/main/java/com/ccsens/util/UploadFileUtil_Servlet3.java @@ -5,7 +5,6 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.util.CharsetUtil; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.StrUtil; -import cn.hutool.crypto.SecureUtil; import lombok.extern.slf4j.Slf4j; import javax.servlet.http.HttpServletResponse; @@ -100,6 +99,7 @@ public class UploadFileUtil_Servlet3 { File file = new File(path); // 如果文件存在,则进行下载 if (!file.exists()) { + log.info("该路径不存在:{}",path); return; } // 配置文件下载 diff --git a/util/src/main/java/com/ccsens/util/WebConstant.java b/util/src/main/java/com/ccsens/util/WebConstant.java index c39d32f1..de5dc1fb 100644 --- a/util/src/main/java/com/ccsens/util/WebConstant.java +++ b/util/src/main/java/com/ccsens/util/WebConstant.java @@ -1,6 +1,9 @@ package com.ccsens.util; import cn.hutool.core.codec.Base64; +import cn.hutool.core.util.URLUtil; +import lombok.Getter; +import lombok.Setter; import java.io.File; @@ -19,6 +22,37 @@ public class WebConstant { } + public static class Wx{ + public static final String ACCESS_TOKEN = "tall_wx_access_token_"; + public static final long EXPIRE_TIME = 1 * 60 * 60; + public static final String DOMAIN = PropUtil.wxPrefix; + public static final String TEMPLATE_SEND = DOMAIN + "template/send"; + + public static final String GZH_AUTH_URL + = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=%1$s&redirect_uri=%2$s&response_type=code&scope=%3$s&state=STATE#wechat_redirect"; + public static final String ACCOUNT_WX_APPID = "account_wx_appId"; + + public static String getAuthedUrl(String url, WxGzhAuthType wxGzhAuthType,String appId){ + return String.format(GZH_AUTH_URL,appId, URLUtil.encode(url),wxGzhAuthType.getText()); + } + + } + + public enum WxGzhAuthType { + //基本授权类型,静默,只能获取openId + SNSAPI_BASE("snsapi_base"), + //信息授权类型,弹出提示框,可以获取openId,unionId,nickanme,city等用户信息 + SNSAPI_USERINFO("snsapi_userinfo"); + + @Getter + @Setter + private String text; + + private WxGzhAuthType(String text){ + this.text = text; + } + } + public static enum TemplateParam { Operator("{{operator}}", "操作者"), @@ -112,12 +146,6 @@ public class WebConstant { } } - public static final class Wx { - public static final String ACCESS_TOKEN = "tall_wx_access_token_"; - public static final long EXPIRE_TIME = 1 * 60 * 60; - public static final String DOMAIN = PropUtil.wxPrefix; - public static final String TEMPLATE_SEND = DOMAIN + "template/send"; - } /**注册来源*/ public static final class Regist { diff --git a/util/src/main/java/com/ccsens/util/wx/WxXcxUtil.java b/util/src/main/java/com/ccsens/util/wx/WxXcxUtil.java index 34d4d9ba..da7968dd 100644 --- a/util/src/main/java/com/ccsens/util/wx/WxXcxUtil.java +++ b/util/src/main/java/com/ccsens/util/wx/WxXcxUtil.java @@ -255,6 +255,30 @@ public class WxXcxUtil { } + + /** + * 获取小程序二维码/小程序码(小程序码) 使用C方法 + * @param code 不同的小程序的code + * @return + * @throws Exception + */ + public static void getWxCodeC(String page,String path,String code) throws Exception { + + File file = new File(path); + if(!file.getParentFile().exists()){ + file.getParentFile().mkdirs(); + } + String url = String.format(URL_GET_WX_CODE_C, WxGzhUtil.getAccessToken(appId(code),secret(code))); + + WechatCodeA wechatCode = new WechatCodeA(); + wechatCode.path = page; + + String postStr = JacksonUtil.beanToJson(wechatCode); + System.out.println(postStr); + HttpsUtil.httpsRequest(url,"POST",postStr,path); + + } + // /** // * 获取小程序二维码/小程序码(长度128,有数量限制)(二维码) // * @return diff --git a/util/src/test/java/com/ccsens/util/TestQrCord.java b/util/src/test/java/com/ccsens/util/TestQrCord.java index 88479ac4..fbe73ecf 100644 --- a/util/src/test/java/com/ccsens/util/TestQrCord.java +++ b/util/src/test/java/com/ccsens/util/TestQrCord.java @@ -29,7 +29,7 @@ public class TestQrCord { // String text = "https://www.tall.wiki/pt-dev/respond?groupId="+i+"&groupName="+i+"组"; // String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=http://www.tall.wiki/pt-dev/vote&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; - String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=http://www.tall.wiki/compete&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; + String text = "https://open.weixin.qq.com/connect/oauth2/authorize?appid=wx7af1bf1e14facf82&redirect_uri=http://test.tall.wiki/compete&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect"; String fileName = "zzz/" + "远程比赛.png"; QRCodeWriter qrCodeWriter = new QRCodeWriter();