cloud-server-account/src/main/java/com/dsh/account/controller/AppUserController.java
@@ -18,6 +18,7 @@ import com.dsh.account.model.LoginSMSCodeVo; import com.dsh.account.model.LoginWeChatVo; import com.dsh.account.model.QueryByNamePhone; import com.dsh.account.model.query.UserDetailsOfSearch; import com.dsh.account.model.query.appUserQuery.QueryAppUser; import com.dsh.account.model.vo.QueryAppUserVO; import com.dsh.account.service.IVipPaymentService; @@ -751,4 +752,22 @@ List<TAppUser> list = appUserService.list(queryWrapper); return list.stream().map(TAppUser::getId).collect(Collectors.toList()); } @PostMapping("/appUser/queryAppUserByIds") @ResponseBody public List<TAppUser> queryAppUserByIds(@RequestBody UserDetailsOfSearch search){ LambdaQueryWrapper<TAppUser> tAppUserLambdaQueryWrapper = new LambdaQueryWrapper<>(); if(ToolUtil.isNotEmpty(search.getIdCard())){ tAppUserLambdaQueryWrapper.eq(TAppUser::getIdCard, search.getIdCard()); } if(ToolUtil.isNotEmpty(search.getPhone())){ tAppUserLambdaQueryWrapper.eq(TAppUser::getPhone, search.getPhone()); } if(ToolUtil.isNotEmpty(search.getName())){ tAppUserLambdaQueryWrapper.eq(TAppUser::getName, search.getName()); } tAppUserLambdaQueryWrapper.in(TAppUser::getId,search.getUseIds()); return appUserService.list(tAppUserLambdaQueryWrapper); } } cloud-server-account/src/main/java/com/dsh/account/model/query/UserDetailsOfSearch.java
New file @@ -0,0 +1,17 @@ package com.dsh.account.model.query; import lombok.Data; import java.util.List; @Data public class UserDetailsOfSearch { private String name; private String phone; private String idCard; private List<Integer> useIds; } cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -109,6 +109,16 @@ detail.setConsumeName("社区世界杯调整比分"); detail.setDetailsType(1); break; case 9: detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral())); detail.setConsumeName("社区世界杯平场"); detail.setDetailsType(2); break; case 10: detail.setConsumeAmount("" + (userIntegralChange.getNewIntegral() - userIntegralChange.getOldIntegral())); detail.setConsumeName("社区世界杯败场"); detail.setDetailsType(2); break; default: break; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/controller/WorldCupController.java
@@ -3,11 +3,18 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.dsh.communityWorldCup.entity.*; import com.dsh.communityWorldCup.feignclient.account.AppUserClient; import com.dsh.communityWorldCup.feignclient.account.StudentClient; import com.dsh.communityWorldCup.feignclient.account.StudentHonorClient; import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient; import com.dsh.communityWorldCup.feignclient.account.model.AppUser; import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo; import com.dsh.communityWorldCup.feignclient.account.model.StudentHonor; import com.dsh.communityWorldCup.feignclient.account.model.TStudent; import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; import com.dsh.communityWorldCup.feignclient.competition.model.Participant; @@ -19,10 +26,7 @@ import com.dsh.communityWorldCup.feignclient.other.model.TGame; import com.dsh.communityWorldCup.model.*; import com.dsh.communityWorldCup.service.*; import com.dsh.communityWorldCup.util.GDMapGeocodingUtil; import com.dsh.communityWorldCup.util.PayMoneyUtil; import com.dsh.communityWorldCup.util.ResultUtil; import com.dsh.communityWorldCup.util.TokenUtil; import com.dsh.communityWorldCup.util.*; import com.dsh.communityWorldCup.util.wx.WxV3PayConfig; import com.wechat.pay.contrib.apache.httpclient.util.AesUtil; import groovy.util.logging.Log4j; @@ -43,7 +47,9 @@ import java.io.IOException; import java.io.PrintWriter; import java.nio.charset.StandardCharsets; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; @@ -102,6 +108,12 @@ @Resource private GameClient gameClient; @Autowired private UserIntegralChangesClient userIntegralChangesClient; @Autowired private StudentHonorClient studentHonorClient; /** @@ -275,6 +287,16 @@ if(0 == isStudent){ isStudent = 2; } WorldCup worldCup = worldCupService.getById(worldCupPeople.getWorldCupId()); if(null == worldCup){ return ResultUtil.error("当前比赛不存在"); } if(worldCup.getStartTime().getTime()>System.currentTimeMillis() || worldCup.getEndTime().getTime()<System.currentTimeMillis()){ return ResultUtil.error("二维码仅支持在赛事有效期使用"); } WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>() .eq("worldCupId", worldCupPeople.getWorldCupId()).eq("participantId", id).eq("participantType", isStudent) .orderByDesc("createTime").last(" limit 0, 1")); @@ -352,6 +374,18 @@ }) public ResultUtil startWorldCup(StartWorldCup startWorldCup){ return worldCupService.startWorldCup(startWorldCup); } @ResponseBody @PostMapping("/api/worldCup/endWorldCup") @ApiOperation(value = "裁判结束比赛【3.1】", tags = {"APP-个人中心"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9....."), @ApiImplicitParam(name = "redScore", value = "红队得分", required = true, dataType = "Integer"), @ApiImplicitParam(name = "blueScore", value = "蓝队得分", required = true, dataType = "Integer"), @ApiImplicitParam(name = "custom", value = "自定义参数 列表中是数组 ,拼接传过来", required = true, dataType = "String") }) public ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore){ return worldCupService.endWorldCup(custom,redScore,blueScore); } @@ -687,6 +721,45 @@ } worldCupRank.setAppUserId(uid); List<WorldCupRankVo> worldCupRank1 = worldCupCompetitorService.getWorldCupRank(worldCupRank); return ResultUtil.success(worldCupRank1); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/worldCup/getWorldCupListFromRank") @ApiOperation(value = "获取报名的赛事 排名使用【3.1】", tags = {"APP-个人中心"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<List<WorldCupListVo>> getWorldCupListFromRank(MyWorldCupList myWorldCupList){ try { Integer uid = tokenUtil.getUserIdFormRedis(); if(null == uid){ return ResultUtil.tokenErr(); } List<WorldCupListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupListFromRank(myWorldCupList); return ResultUtil.success(worldCupRank1); }catch (Exception e){ e.printStackTrace(); return ResultUtil.runErr(); } } @ResponseBody @PostMapping("/api/worldCup/getWorldCupCodeListId") @ApiOperation(value = "获取赛事的赛点 非智慧比赛用 【3.1】", tags = {"APP-个人中心"}) @ApiImplicitParams({ @ApiImplicitParam(name = "Authorization", value = "用户token(Bearer +token)", required = true, dataType = "String", paramType = "header", defaultValue = "Bearer eyJhbGciOiJIUzUxMiJ9.....") }) public ResultUtil<List<WorldCupCodeListVo>> getWorldCupCodeListId(Integer worldCupId){ try { Integer uid = tokenUtil.getUserIdFormRedis(); if(null == uid){ return ResultUtil.tokenErr(); } List<WorldCupCodeListVo> worldCupRank1 = worldCupCompetitorService.getWorldCupCodeListId(worldCupId); return ResultUtil.success(worldCupRank1); }catch (Exception e){ e.printStackTrace(); @@ -1160,4 +1233,201 @@ .last(" and createTime between '" + sdf.format(getWorldCupPayment.getStartTime()) + "' and '" + sdf.format(getWorldCupPayment.getEndTime()) + "' order by createTime desc")); return list; } @PostMapping("/worldCup/userDetailsOfSearch") @ResponseBody public List<WorldCupUserListVo> userDetailsOfSearch(@RequestBody UserDetailsOfSearch search){ // 已报名的用户 List<WorldCupPaymentParticipant> list = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().eq(WorldCupPaymentParticipant::getWorldCupId, search.getId()) .eq(WorldCupPaymentParticipant::getAlreadyEntered, 0)); ArrayList<WorldCupUserListVo> worldCupUserListVos = new ArrayList<>(); if(list.size()>0){ List<Integer> collect = list.stream().map(WorldCupPaymentParticipant::getAppUserId).collect(Collectors.toList()); search.setUseIds(collect); List<AppUser> appUsers = appUserClient.queryAppUserByIds(search); for (AppUser appUser : appUsers) { WorldCupUserListVo worldCupUserListVo = new WorldCupUserListVo(); WorldCupPaymentParticipant worldCupPaymentParticipant = list.stream().filter(e -> e.getAppUserId().equals(appUser.getId())).findFirst().orElse(null); if(worldCupPaymentParticipant!=null){ worldCupUserListVo.setId(worldCupPaymentParticipant.getId()); worldCupUserListVo.setName(appUser.getName()); worldCupUserListVo.setSex(appUser.getGender() !=null && appUser.getGender()==2?"女":"男"); worldCupUserListVo.setPhone(appUser.getPhone()); worldCupUserListVo.setIdCard(appUser.getIdCard()); // 当前日期和生日计算年龄 Date birthday = appUser.getBirthday(); LocalDate now = LocalDate.now(); if(birthday!=null){ int age = now.getYear() - birthday.getYear(); worldCupUserListVo.setAge(age); } worldCupUserListVos.add(worldCupUserListVo); } } } return worldCupUserListVos; } @PostMapping("/worldCup/savaData1") public void savaData1(@RequestBody SaveData saveData) throws ParseException { WorldCup worldCup = worldCupService.getById(saveData.getId()); String redStr = saveData.getRedStr(); String blueStr = saveData.getBlueStr(); String[] red = redStr.split(","); String[] blue = blueStr.split(","); ArrayList<String> list = new ArrayList<>(red.length+blue.length); list.addAll(Arrays.asList(red)); list.addAll(Arrays.asList(blue)); String time = saveData.getTime(); String[] split = time.split(" - "); SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date startTime = simpleDateFormat.parse(split[0]); Date endTime = simpleDateFormat.parse(split[1]); Integer blueScore = saveData.getBlueScore(); Integer redScore = saveData.getRedScore(); List<WorldCupPaymentParticipant> list1 = worldCupPaymentParticipantService.list(new LambdaQueryWrapper<WorldCupPaymentParticipant>().in(WorldCupPaymentParticipant::getId, list)); String code = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3); ArrayList<WorldCupCompetitor> worldCupCompetitors = new ArrayList<>(red.length + blue.length); for (String s : blue) { WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null); if(worldCupPaymentParticipant!=null){ WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor(); worldCupCompetitor.setCode(code); worldCupCompetitor.setWorldCupId(saveData.getId().intValue()); worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType()); worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId()); worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId()); worldCupCompetitor.setParticipant(1); worldCupCompetitor.setStartTime(startTime); worldCupCompetitor.setEndTime(endTime); if(blueScore>redScore){ worldCupCompetitor.setMatchResult(1); worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); } if(blueScore.equals(redScore)){ worldCupCompetitor.setMatchResult(0); worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(9); userIntegralChangesClient.saveUserIntegralChanges(vo); } if(blueScore<redScore){ worldCupCompetitor.setMatchResult(-1); worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } worldCupCompetitor.setOpponentScore(redScore); worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getParticipationIntegral()); vo.setType(6); userIntegralChangesClient.saveUserIntegralChanges(vo); worldCupCompetitorService.save(worldCupCompetitor); worldCupCompetitors.add(worldCupCompetitor); } } for (String s : red) { WorldCupPaymentParticipant worldCupPaymentParticipant = list1.stream().filter(e -> e.getId().equals(s)).findFirst().orElse(null); if(worldCupPaymentParticipant!=null){ WorldCupCompetitor worldCupCompetitor =new WorldCupCompetitor(); worldCupCompetitor.setCode(code); worldCupCompetitor.setWorldCupId(saveData.getId().intValue()); worldCupCompetitor.setParticipantType(worldCupPaymentParticipant.getParticipantType()); worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId()); worldCupCompetitor.setParticipantId(worldCupPaymentParticipant.getParticipantId()); worldCupCompetitor.setParticipant(1); worldCupCompetitor.setStartTime(startTime); worldCupCompetitor.setEndTime(endTime); if(redScore>blueScore){ worldCupCompetitor.setMatchResult(1); worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); } if(blueScore.equals(redScore)){ worldCupCompetitor.setMatchResult(0); worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(9); userIntegralChangesClient.saveUserIntegralChanges(vo); } if(redScore<blueScore){ worldCupCompetitor.setMatchResult(-1); worldCupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } worldCupCompetitor.setOpponentScore(redScore); worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getParticipationIntegral()); vo.setType(6); userIntegralChangesClient.saveUserIntegralChanges(vo); worldCupCompetitorService.save(worldCupCompetitor); worldCupCompetitors.add(worldCupCompetitor); } } //添加勋章 for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) { Integer appUserId = worldCupCompetitor.getAppUserId(); //常胜将军 if(1 == worldCupCompetitor.getMatchResult()){ int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId).eq("matchResult", 1)); StudentHonor studentHonor = new StudentHonor(); studentHonor.setAppUserId(appUserId); studentHonor.setHonorType(5); studentHonor.setNumber(count); studentHonorClient.saveStudentHonor(studentHonor); } //越战越勇 int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId)); StudentHonor studentHonor = new StudentHonor(); studentHonor.setAppUserId(appUserId); studentHonor.setHonorType(6); studentHonor.setNumber(count); studentHonorClient.saveStudentHonor(studentHonor); } } } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCup.java
@@ -101,6 +101,24 @@ */ @TableField("winIntegral") private Integer winIntegral; /** * 类型(1=智慧赛事,2=非智慧赛事) */ @TableField("type") private Integer type; /** * 平场获得积分 */ @TableField("drawIntegral") private Integer drawIntegral; /** * 失败获得积分 */ @TableField("loseIntegral") private Integer loseIntegral; /** * 省 */ @@ -162,6 +180,11 @@ @TableField("content") private String content; /** * 参赛协议 */ @TableField("contentOne") private String contentOne; /** * 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消) */ @TableField("status") cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/entity/WorldCupCompetitor.java
@@ -76,6 +76,16 @@ @TableField("winIntegral") private Integer winIntegral; /** * 平场奖励 */ @TableField("drawIntegral") private Integer drawIntegral; /** * 败场奖励 */ @TableField("loseIntegral") private Integer loseIntegral; /** * 比赛开始时间 */ @TableField("startTime") cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/AppUserClient.java
@@ -2,6 +2,7 @@ import com.dsh.communityWorldCup.feignclient.account.model.AppUser; import com.dsh.communityWorldCup.feignclient.account.model.AppUserIdsByCityName; import com.dsh.communityWorldCup.model.UserDetailsOfSearch; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -57,4 +58,7 @@ @PostMapping("/appUser/getAppUserIdsByCityName") List<Integer> getAppUserIdsByCityName(AppUserIdsByCityName appUserIdsByCityName); @PostMapping("/appUser/queryAppUserByIds") List<AppUser> queryAppUserByIds(UserDetailsOfSearch search); } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/feignclient/account/model/SaveUserIntegralChangesVo.java
@@ -13,7 +13,7 @@ */ private Integer appUserId; /** * 积分类型(1=赠送积分,2=兑换商品,3=完成课后练习,4=观看教学视频,5=参与世界杯,6=世界杯获胜) * 积分类型(1=赠送积分,2=兑换商品,3=完成课后练习,4=观看教学视频,6=参与世界杯,7=世界杯获胜 8该份 9平场世界杯 10败场世界杯) */ private Integer type; /** cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/mapper/WorldCupCompetitorMapper.java
@@ -35,10 +35,10 @@ * @param worldCupRank * @return */ List<Map<String, Object>> getWorldCupRank(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds); List<Map<String, Object>> getWorldCupRank(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime); List<Map<String, Object>> getWorldCupRank1(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds); List<Map<String, Object>> getWorldCupRank1(@Param("item") WorldCupRank worldCupRank, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime); /** @@ -46,14 +46,14 @@ * @param worldCupRecords * @return */ List<Map<String, Object>> worldCupRecordsList(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds); List<Map<String, Object>> worldCupRecordsList(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime); /** * 获取比赛排行榜列表数据 * @param worldCupRecords * @return */ List<Map<String, Object>> worldCupRecordsList1(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds); List<Map<String, Object>> worldCupRecordsList1(@Param("item") WorldCupRecords worldCupRecords, @Param("appUserIds") List<Integer> appUserIds, @Param("sTime") String sTime, @Param("eTime") String eTime); int worldCupRecordsListCount(@Param("appUserIds") List<Integer> appUserIds); @@ -87,4 +87,8 @@ * @return */ int getMatchTime(@Param("worldCupId") Integer worldCupId); List<WorldCupListVo> getWorldCupListFromRank(@Param("item")MyWorldCupList myWorldCupList); } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/EndWorldCup.java
New file @@ -0,0 +1,20 @@ package com.dsh.communityWorldCup.model; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zhibing.pu * @Date 2024/2/19 15:24 */ @Data @ApiModel public class EndWorldCup { @ApiModelProperty(value = "世界杯id", required = true, dataType = "int") private Integer worldCupId; @ApiModelProperty(value = "结果", required = true, dataType = "String") private String result; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MatchRecordList.java
@@ -19,7 +19,7 @@ private Integer opponentScore; @ApiModelProperty("比赛时间") private String startTime; @ApiModelProperty("比赛结果(1=胜,-1=负)") @ApiModelProperty("比赛结果(1=胜,0平 -1=负)") private Integer matchResult; @ApiModelProperty("获得积分") private Integer award; cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/MyWorldCupList.java
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @author zhibing.pu * @Date 2024/2/28 16:25 @@ -22,4 +23,6 @@ @ApiModelProperty(value = "状态(1=未开始,2=进行中)") private Integer state; private Integer appUserId; private String name; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/SaveData.java
New file @@ -0,0 +1,29 @@ package com.dsh.communityWorldCup.model; import lombok.Data; /** * @author zhibing.pu * @Date 2024/3/6 20:00 */ @Data public class SaveData { /** * 参赛数据id */ private Long id; /** * 蓝方得分 */ private String blueStr; /** * 红方得分 */ private String redStr; private String time; private Integer blueScore; private Integer redScore; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserDetailsOfSearch.java
New file @@ -0,0 +1,19 @@ package com.dsh.communityWorldCup.model; import lombok.Data; import java.util.List; @Data public class UserDetailsOfSearch { private Integer id; private String name; private String phone; private String idCard; private List<Integer> useIds; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/UserVo.java
New file @@ -0,0 +1,12 @@ package com.dsh.communityWorldCup.model; import lombok.Data; @Data public class UserVo { private String userName; private String avatar; private Integer age=0; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupCodeListVo.java
New file @@ -0,0 +1,36 @@ package com.dsh.communityWorldCup.model; import com.alipay.api.domain.UserDetail; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.Date; import java.util.List; /** * @author zhibing.pu * @Date 2024/2/19 16:45 */ @Data @ApiModel public class WorldCupCodeListVo { @ApiModelProperty("世界杯id") private Integer worldCupId; @ApiModelProperty("世界杯名称") private String name; @ApiModelProperty("编号") private String code; @ApiModelProperty("开始时间") private Date startTime; @ApiModelProperty("自定义信息 结束接口需要") private List<Long> customs; @ApiModelProperty("红队") private List<UserVo> red; @ApiModelProperty("蓝队") private List<UserVo> blue; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupInfo.java
@@ -50,6 +50,10 @@ private String intro; @ApiModelProperty("富文本") private String content; @ApiModelProperty("参赛协议") private String contentOne; @ApiModelProperty("1or null智慧赛事 2非智慧赛事") private Integer type; @ApiModelProperty("门店信息") private List<Map<String, Object>> storeInfos; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListAll.java
@@ -25,6 +25,10 @@ */ private Integer status; /** * 1=智慧赛事,2= 非智慧赛事, */ private Integer type; /** * 页码 */ private Integer offset; cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupListCoachVo.java
@@ -24,4 +24,7 @@ private String lon; private String lat; private Double distance; @ApiModelProperty("1智慧赛事 2非智慧赛事") private Integer type; private Integer nowNum=0; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRank.java
@@ -21,5 +21,12 @@ private Integer radius; @ApiModelProperty(value = "排序,1=场次,2=胜率", required = true, dataType = "int") private Integer sort; @ApiModelProperty("赛事id") private Integer worldCupId; @ApiModelProperty("季度时间2020-01-01 - 2022-03-31") private String time; private Integer appUserId; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRankVo.java
@@ -21,6 +21,8 @@ private Integer totalSession; @ApiModelProperty("胜率") private Double winRate; @ApiModelProperty("积分") private Integer integral; @ApiModelProperty("是否是自己(0=否,1=是)") private Integer oneself; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupRecords.java
@@ -16,6 +16,11 @@ * 市名称 */ private String city; /** * 时间 */ private String time; /** * 页码 */ cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/model/WorldCupUserListVo.java
New file @@ -0,0 +1,27 @@ package com.dsh.communityWorldCup.model; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class WorldCupUserListVo { @ApiModelProperty("报名id") private Long id; @ApiModelProperty("姓名") private String name; @ApiModelProperty("性别") private String sex; @ApiModelProperty("年龄") private int age=0; @ApiModelProperty("身份证号") private String idCard; @ApiModelProperty("手机号") private String phone; } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupCompetitorService.java
@@ -92,4 +92,11 @@ * @return */ int getMatchTime(Integer worldCupId); List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList); List<WorldCupCodeListVo> getWorldCupCodeListId(Integer worldCupId); } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/IWorldCupService.java
@@ -115,4 +115,8 @@ * @param worldCup */ void updateWorldCupAll(WorldCup worldCup); ResultUtil endWorldCup(String custom, Integer redScore, Integer blueScore); } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupCompetitorServiceImpl.java
@@ -2,6 +2,7 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.communityWorldCup.entity.WorldCup; @@ -29,7 +30,9 @@ import java.math.MathContext; import java.math.RoundingMode; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.util.*; import java.util.stream.Collectors; /** * @author zhibing.pu @@ -168,10 +171,19 @@ AppUser appUser = appUserClient.getAppUser(worldCupRank.getAppUserId()); appUserIds = appUserClient.getAppUserIds(appUser.getCityCode()); } String sTime = null; String eTime = null; if(ToolUtil.isNotEmpty(worldCupRank.getTime())){ sTime = worldCupRank.getTime().split(" - ")[0] + " 00:00:00"; eTime = worldCupRank.getTime().split(" - ")[1] + " 23:59:59"; } //总场次 List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds); List<Map<String, Object>> lists = this.baseMapper.getWorldCupRank(worldCupRank, appUserIds, sTime, eTime); //未负的数据 List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds); List<Map<String, Object>> lists1 = this.baseMapper.getWorldCupRank1(worldCupRank, appUserIds, sTime, eTime); List<Map<String, Object>> mapList = new ArrayList<>(); for (int i = 0; i < lists.size(); i++) { Map<String, Object> map = lists.get(i); @@ -179,6 +191,9 @@ Long participantId = Long.valueOf(map.get("participantId").toString()); Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); Integer num = Integer.valueOf(null == map.get("num") ? "0" : map.get("num").toString()); Integer winIntegral = Integer.valueOf(null == map.get("winIntegral") ? "0" : map.get("winIntegral").toString()); Integer drawIntegral = Integer.valueOf(null == map.get("drawIntegral") ? "0" : map.get("drawIntegral").toString()); Integer loseIntegral = Integer.valueOf(null == map.get("loseIntegral") ? "0" : map.get("loseIntegral").toString()); //学员 if(participantType == 1){ TStudent tStudent = studentClient.queryById(participantId.intValue()); @@ -194,6 +209,7 @@ } } map.put("totalSession", num); map.put("totalIntegral", winIntegral+drawIntegral+loseIntegral); map.put("winRate", "0"); for (Map<String, Object> objectMap : lists1) { Integer participantType1 = Integer.valueOf(objectMap.get("participantType").toString()); @@ -207,22 +223,30 @@ } mapList.add(map); } if(worldCupRank.getSort() == 1){ mapList.sort(new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1; } }); } if(worldCupRank.getSort() == 2){ mapList.sort(new Comparator<Map<String, Object>>() { @Override public int compare(Map<String, Object> o1, Map<String, Object> o2) { return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1; } }); } // if(worldCupRank.getSort() == 1){ // mapList.sort(new Comparator<Map<String, Object>>() { // @Override // public int compare(Map<String, Object> o1, Map<String, Object> o2) { // return Double.valueOf(o1.get("totalSession").toString()).compareTo(Double.valueOf(o2.get("totalSession").toString())) * -1; // } // }); // } // if(worldCupRank.getSort() == 2){ // mapList.sort(new Comparator<Map<String, Object>>() { // @Override // public int compare(Map<String, Object> o1, Map<String, Object> o2) { // return Double.valueOf(o1.get("winRate").toString()).compareTo(Double.valueOf(o2.get("winRate").toString())) * -1; // } // }); // } List<WorldCupRankVo> list = new ArrayList<>(); for (int i = 0; i < mapList.size(); i++) { Map<String, Object> map = mapList.get(i); @@ -230,12 +254,14 @@ Long participantId = Long.valueOf(map.get("participantId").toString()); Integer appUserId = Integer.valueOf(map.get("appUserId").toString()); Integer totalSession = Integer.valueOf(map.get("totalSession").toString()); Integer totalIntegral = Integer.valueOf(map.get("totalIntegral").toString()); Double winRate = Double.valueOf(map.get("winRate").toString()); //自己排名在20内的标识 boolean b = false; if(i <= 19){ WorldCupRankVo worldCupRankVo = new WorldCupRankVo(); worldCupRankVo.setRank(i + 1); worldCupRankVo.setIntegral(totalIntegral); worldCupRankVo.setTotalSession(totalSession); worldCupRankVo.setWinRate(winRate); //学员 @@ -314,6 +340,8 @@ } } } // 排序 list= list.stream().sorted(Comparator.comparing(WorldCupRankVo::getIntegral).reversed().thenComparing(WorldCupRankVo::getTotalSession).reversed().thenComparing(WorldCupRankVo::getWinRate).reversed()).collect(Collectors.toList()); return list; } @@ -346,13 +374,31 @@ worldCupCompetitor.setOpponentScore(red_score); worldCupCompetitor.setEndTime(new Date()); worldCupCompetitor.setWinIntegral(0); if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) >= 0){ worldCupCompetitor.setDrawIntegral(0); worldCupCompetitor.setLoseIntegral(0); if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) > 0){ worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){ worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(9); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){ worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } } @@ -363,13 +409,31 @@ worldCupCompetitor.setOpponentScore(blue_score); worldCupCompetitor.setEndTime(new Date()); worldCupCompetitor.setWinIntegral(0); if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) >= 0){ worldCupCompetitor.setDrawIntegral(0); worldCupCompetitor.setLoseIntegral(0); if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) > 0){ worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){ worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(9); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){ worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } } @@ -416,8 +480,15 @@ appUserIdsByCityName.setProvince(worldCupRecords.getProvince()); appUserIdsByCityName.setCity(worldCupRecords.getCity()); List<Integer> appUserIds = appUserClient.getAppUserIdsByCityName(appUserIdsByCityName); List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds); List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds); String time = worldCupRecords.getTime(); String sTime = null; String eTime = null; if(ToolUtil.isNotEmpty(time)){ sTime = time.split(" - ")[0] + " 00:00:00"; eTime = time.split(" - ")[1] + " 23:59:59"; } List<Map<String, Object>> mapList = this.baseMapper.worldCupRecordsList(worldCupRecords, appUserIds,sTime,eTime); List<Map<String, Object>> mapList1 = this.baseMapper.worldCupRecordsList1(worldCupRecords, appUserIds,sTime,eTime); List<Map<String, Object>> list = new ArrayList<>(); int row_num = 0; for (int i = 0; i < mapList.size(); i++) { @@ -622,8 +693,118 @@ .eq("participant", 1).eq("worldCupId", worldCupCompetitor.getWorldCupId())); WorldCup worldCup = worldCupService.getById(blueList.get(0).getWorldCupId()); for (WorldCupCompetitor cupCompetitor : blueList) { //如果之前输了,现在赢/平了,需要增加积分 if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 || blue.compareTo(red) == 0)){ //如果之前输了,现在赢了,需要增加积分 if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) > 0 )){ //先扣除 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral() * -1); vo.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo); //增加积分明细 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getWinIntegral()); vo1.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo1); cupCompetitor.setMatchResult(1); cupCompetitor.setWinIntegral(worldCup.getWinIntegral()); cupCompetitor.setLoseIntegral(0); } // 输 -> 平 if(cupCompetitor.getMatchResult() == -1 && (blue.compareTo(red) == 0 )){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getLoseIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(0); cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); cupCompetitor.setLoseIntegral(0); } //如果之前赢了,现在输了,需要扣减积分 if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getWinIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(-1); cupCompetitor.setWinIntegral(0); cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); } //如果之前赢了,现在平了,需要扣减积分 if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) == 0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getWinIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(0); cupCompetitor.setWinIntegral(0); cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); } //如果之前平了,现在输了,需要扣减积分 if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) < 0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getDrawIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(-1); cupCompetitor.setDrawIntegral(0); cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); } //如果之前平了,现在赢了,需要扣减积分 if(cupCompetitor.getMatchResult() == 0 && blue>red){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getDrawIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); @@ -632,31 +813,8 @@ userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(1); cupCompetitor.setDrawIntegral(0); cupCompetitor.setWinIntegral(worldCup.getWinIntegral()); } //如果之前赢了,现在输了,需要扣减积分 if(cupCompetitor.getMatchResult() == 1 && blue.compareTo(red) < 0){ //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral() * -1); vo.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(-1); cupCompetitor.setWinIntegral(0); } //如果之前平了,现在输了,需要扣减积分 if(cupCompetitor.getMatchResult() == 0 && blue.compareTo(red) < 0){ //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral() * -1); vo.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(-1); cupCompetitor.setWinIntegral(0); } cupCompetitor.setOurScore(blue); cupCompetitor.setOpponentScore(red); @@ -667,8 +825,15 @@ List<WorldCupCompetitor> redList = this.list(new QueryWrapper<WorldCupCompetitor>().eq("code", worldCupCompetitor.getCode()) .eq("participant", 2).eq("worldCupId", worldCupCompetitor.getWorldCupId())); for (WorldCupCompetitor cupCompetitor : redList) { //如果之前输了,现在赢/平了,需要增加积分 if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0 || red.compareTo(blue) == 0)){ //如果之前输了,现在赢/了,需要增加积分 if(cupCompetitor.getMatchResult() == -1 && (red.compareTo(blue) > 0)){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getLoseIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); @@ -678,30 +843,113 @@ cupCompetitor.setMatchResult(1); cupCompetitor.setWinIntegral(worldCup.getWinIntegral()); cupCompetitor.setLoseIntegral(0); } //如果之前输了,现在平了,需要增加积分 if(cupCompetitor.getMatchResult() == -1 && ( red.compareTo(blue) == 0)){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getLoseIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(0); cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); cupCompetitor.setLoseIntegral(0); } //如果之前赢了,现在输了,需要扣减积分 if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) < 0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getWinIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral() * -1); vo.setType(8); vo.setIntegral(worldCup.getLoseIntegral() ); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(-1); cupCompetitor.setWinIntegral(0); cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); } //如果之前赢了,现在平了,需要扣减积分 if(cupCompetitor.getMatchResult() == 1 && red.compareTo(blue) ==0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getWinIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral() ); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(0); cupCompetitor.setWinIntegral(0); cupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); } //如果之前平了,现在输了,需要扣减积分 if(cupCompetitor.getMatchResult() == 0 && red.compareTo(blue) < 0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getDrawIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral() * -1); vo.setType(8); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(-1); cupCompetitor.setWinIntegral(0); cupCompetitor.setDrawIntegral(0); cupCompetitor.setLoseIntegral(worldCup.getLoseIntegral()); } //如果之前平了,现在赢了,需要扣减积分 if(cupCompetitor.getMatchResult() == 0 && red.compareTo(blue) >0){ //先扣除 SaveUserIntegralChangesVo vo1 = new SaveUserIntegralChangesVo(); vo1.setAppUserId(cupCompetitor.getAppUserId()); vo1.setIntegral(worldCup.getDrawIntegral() * -1); vo1.setType(8); userIntegralChangesClient.saveUserIntegralChanges(vo1); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(cupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); cupCompetitor.setMatchResult(1); cupCompetitor.setDrawIntegral(0); cupCompetitor.setWinIntegral(worldCup.getWinIntegral()); } cupCompetitor.setOurScore(red); cupCompetitor.setOpponentScore(blue); @@ -787,4 +1035,76 @@ public int getMatchTime(Integer worldCupId) { return this.baseMapper.getMatchTime(worldCupId); } @Override public List<WorldCupListVo> getWorldCupListFromRank(MyWorldCupList myWorldCupList) { return this.baseMapper.getWorldCupListFromRank(myWorldCupList); } @Override public List<WorldCupCodeListVo> getWorldCupCodeListId(Integer worldCupId) { List<WorldCupCompetitor> worldCupCompetitors = this.baseMapper.selectList(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupId) .and(w->w.isNull(WorldCupCompetitor::getEndTime).or(s->s.le(WorldCupCompetitor::getStartTime, new Date()).ge(WorldCupCompetitor::getEndTime, new Date())))) ; List<WorldCupCodeListVo> worldCupCodeListVos = new ArrayList<>(); // worldCupCompetitors 通过code分组 Map<String, List<WorldCupCompetitor>> map = worldCupCompetitors.stream().collect(Collectors.groupingBy(WorldCupCompetitor::getCode)); LocalDate now = LocalDate.now(); for (Map.Entry<String, List<WorldCupCompetitor>> entry : map.entrySet()) { WorldCupCodeListVo worldCupCodeListVo = new WorldCupCodeListVo(); String code = entry.getKey(); List<WorldCupCompetitor> value = entry.getValue(); // 蓝队 List<WorldCupCompetitor> collect1 = value.stream().filter(item -> item.getParticipant() == 1).collect(Collectors.toList()); ArrayList<UserVo> objects = new ArrayList<>(); for (WorldCupCompetitor competitor : collect1) { UserVo userVo = new UserVo(); AppUser appUser = appUserClient.getAppUser(competitor.getAppUserId()); userVo.setUserName(appUser.getName()); userVo.setAvatar(appUser.getHeadImg()); // 当前日期和生日计算年龄 Date birthday = appUser.getBirthday(); if(birthday!=null){ int age = now.getYear() - birthday.getYear(); userVo.setAge(age); } objects.add(userVo); } worldCupCodeListVo.setBlue(objects); // 红队 List<WorldCupCompetitor> collect2 = value.stream().filter(item -> item.getParticipant() == 2).collect(Collectors.toList()); ArrayList<UserVo> objects1 = new ArrayList<>(); for (WorldCupCompetitor competitor : collect2) { UserVo userVo = new UserVo(); AppUser appUser = appUserClient.getAppUser(competitor.getAppUserId()); userVo.setUserName(appUser.getName()); userVo.setAvatar(appUser.getHeadImg()); // 当前日期和生日计算年龄 Date birthday = appUser.getBirthday(); if(birthday!=null){ int age = now.getYear() - birthday.getYear(); userVo.setAge(age); } objects1.add(userVo); } worldCupCodeListVo.setRed(objects1); worldCupCodeListVo.setCode(code); worldCupCodeListVo.setStartTime(value.get(0).getStartTime()); Integer worldCupId1 = value.get(0).getWorldCupId(); WorldCup byId = worldCupService.getById(worldCupId1); worldCupCodeListVo.setWorldCupId(worldCupId1); if(byId!=null){ worldCupCodeListVo.setName(byId.getName()); } List<Long> collect = value.stream().map(WorldCupCompetitor::getId).collect(Collectors.toList()); worldCupCodeListVo.setCustoms(collect); worldCupCodeListVos.add(worldCupCodeListVo); } return worldCupCodeListVos; } } cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupPaymentParticipantServiceImpl.java
@@ -411,6 +411,9 @@ userGameRecordList.put("participantType", participantType); userGameRecordList.put("participantId", participantId); AppUser appUser = appUserClient.getAppUser(appUserId); if(appUser==null){ continue; } userGameRecordList.put("province", appUser.getProvince() + appUser.getCity()); if(1 == participantType){ TStudent tStudent = studentClient.queryById(participantId.intValue()); cloud-server-communityWorldCup/src/main/java/com/dsh/communityWorldCup/service/impl/WorldCupServiceImpl.java
@@ -4,14 +4,17 @@ import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.dsh.communityWorldCup.entity.*; import com.dsh.communityWorldCup.feignclient.account.AppUserClient; import com.dsh.communityWorldCup.feignclient.account.StudentClient; import com.dsh.communityWorldCup.feignclient.account.StudentHonorClient; import com.dsh.communityWorldCup.feignclient.account.UserIntegralChangesClient; import com.dsh.communityWorldCup.feignclient.account.model.AppUser; import com.dsh.communityWorldCup.feignclient.account.model.SaveUserIntegralChangesVo; import com.dsh.communityWorldCup.feignclient.account.model.StudentHonor; import com.dsh.communityWorldCup.feignclient.account.model.TStudent; import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient; import com.dsh.communityWorldCup.feignclient.competition.model.Participant; @@ -78,9 +81,10 @@ private GameClient gameClient; @Resource private StudentHonorClient studentHonorClient; @Resource private UserIntegralChangesClient userIntegralChangesClient; @@ -94,14 +98,26 @@ for (WorldCupListCoachVo worldCupListCoachVo : worldCupListCoach1) { String lat = worldCupListCoachVo.getLat(); String lon = worldCupListCoachVo.getLon(); if(ToolUtil.isNotEmpty(worldCupListCoach.getLon()) && ToolUtil.isNotEmpty(worldCupListCoach.getLat())){ if (ToolUtil.isNotEmpty(worldCupListCoach.getLon()) && ToolUtil.isNotEmpty(worldCupListCoach.getLat())) { Map<String, Double> distance2 = GeodesyUtil.getDistance(lon + "," + lat, worldCupListCoach.getLon() + "," + worldCupListCoach.getLat()); Double wgs842 = distance2.get("WGS84"); worldCupListCoachVo.setDistance(wgs842); }else{ } else { worldCupListCoachVo.setDistance(0D); } if(worldCupListCoachVo.getType()!=null && worldCupListCoachVo.getType()==2){ // 获取正在进行的赛事 int size = worldCupCompetitorService.list(new LambdaQueryWrapper<WorldCupCompetitor>().eq(WorldCupCompetitor::getWorldCupId, worldCupListCoachVo.getId()) .and(w->w.isNull(WorldCupCompetitor::getEndTime).or(s->s.le(WorldCupCompetitor::getStartTime, new Date()).ge(WorldCupCompetitor::getEndTime, new Date()))).groupBy(WorldCupCompetitor::getCode)).size(); worldCupListCoachVo.setNowNum(size); } } //对查询结果进行距离排序(直线距离) Collections.sort(worldCupListCoach1, new Comparator<WorldCupListCoachVo>() { @Override @@ -121,28 +137,53 @@ @Override public ResultUtil startWorldCup(StartWorldCup startWorldCup) { WorldCup worldCup = this.getById(startWorldCup.getWorldCupId()); if(worldCup.getStartTime().getTime() > System.currentTimeMillis()){ if (worldCup.getStartTime().getTime() > System.currentTimeMillis()) { return ResultUtil.error("赛事还未开始"); } if(worldCup.getEndTime().getTime() <= System.currentTimeMillis()){ if (worldCup.getEndTime().getTime() <= System.currentTimeMillis()) { return ResultUtil.error("赛事已结束"); } if(worldCup.getStatus() == 4){ if (worldCup.getStatus() == 4) { return ResultUtil.error("赛事已取消"); } //1、通过扫码获取的sutuid查询t_game表中的红蓝方sutuid String code = startWorldCup.getCode(); JSONObject object = JSON.parseObject(code); String sutu_id = object.getString("sutu_id"); TGame tGame = gameClient.getTGameBySutuId(sutu_id); if(null == tGame){ return ResultUtil.error("无效的游戏二维码"); // 智慧需要判断code TGame tGame =new TGame(); if (worldCup.getType() == null || worldCup.getType() == 1) { String code = startWorldCup.getCode(); JSONObject object = JSON.parseObject(code); String sutu_id = object.getString("sutu_id"); tGame = gameClient.getTGameBySutuId(sutu_id); if (null == tGame) { return ResultUtil.error("无效的游戏二维码"); } } String people = startWorldCup.getPeople(); JSONArray jsonArray = JSON.parseArray(people); if(jsonArray.size() != 6){ return ResultUtil.error("参赛人数只能是6人"); int red=0; int blue=0; for (Object o : jsonArray) { JSONObject jsonObject = JSONObject.parseObject(o.toString()); String type = jsonObject.get("type").toString(); if("red".equals( type)){ red++; } if("blue".equals( type)){ blue++; } } if(red==0){ return ResultUtil.error("红方最少要1人参赛"); } if(red>5){ return ResultUtil.error("红方最多5人参赛"); } if(blue==0){ return ResultUtil.error("蓝方最少要1人参赛"); } if(blue>5){ return ResultUtil.error("蓝方最多5人参赛"); } String timeStr = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3); List<Long> ids = new ArrayList<>(); @@ -161,7 +202,7 @@ worldCupCompetitor.setParticipant("blue".equals(type) ? 1 : 2); worldCupCompetitor.setStartTime(new Date()); //添加参赛奖励 if(null != worldCup.getParticipationIntegral() && 0 < worldCup.getParticipationIntegral()){ if (null != worldCup.getParticipationIntegral() && 0 < worldCup.getParticipationIntegral()) { worldCupCompetitor.setParticipationIntegral(worldCup.getParticipationIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); @@ -174,7 +215,7 @@ worldCupCompetitorService.save(worldCupCompetitor); ids.add(worldCupCompetitor.getId()); //已参赛 if(0 == worldCupPaymentParticipant.getAlreadyEntered()){ if (0 == worldCupPaymentParticipant.getAlreadyEntered()) { worldCupPaymentParticipant.setWorldCupId(null); worldCupPaymentParticipant.setAlreadyEntered(1); worldCupPaymentParticipantService.updateById(worldCupPaymentParticipant); @@ -183,26 +224,32 @@ worldCup.setMatchNumber(worldCup.getMatchNumber() + 1); this.updateById(worldCup); //2、调起开启游戏的接口。 JSONObject jsonObject = new JSONObject(); jsonObject.put("gameType", 1); jsonObject.put("ids", ids); //2、调起开启游戏的接口。 HashMap<String, String> map = new HashMap<>(); map.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); map.put("space_id", tGame.getSiteId() + ""); map.put("red_sutu_id", tGame.getRed()); map.put("blue_sutu_id", tGame.getBlue()); map.put("api_url", "https://online.daowepark.com:443/communityWorldCup/base/worldCup/endWorldCupCallback"); map.put("custom", jsonObject.toJSONString()); if (worldCup.getType() == null || worldCup.getType() == 1) { HashMap<String, String> map = new HashMap<>(); map.put("sign", "0DB011836143EEE2C2E072967C9F4E4B"); map.put("space_id", tGame.getSiteId() + ""); map.put("red_sutu_id", tGame.getRed()); map.put("blue_sutu_id", tGame.getBlue()); map.put("api_url", "https://online.daowepark.com:443/communityWorldCup/base/worldCup/endWorldCupCallback"); map.put("custom", jsonObject.toJSONString()); String s = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/quickStart", map); JSONObject jsonObject1 = JSONObject.parseObject(s); Integer code1 = jsonObject1.getInteger("code"); String message = jsonObject1.getString("message"); if (200 == code1) { return ResultUtil.success(); } else { return ResultUtil.error(message); String s = HttpRequestUtil.postRequest("https://port.daowepark.com/v7/user_api/general/quickStart", map); JSONObject jsonObject1 = JSONObject.parseObject(s); Integer code1 = jsonObject1.getInteger("code"); String message = jsonObject1.getString("message"); if (200 == code1) { return ResultUtil.success(jsonObject.toJSONString()); } else { return ResultUtil.error(message); } }else { return ResultUtil.success(jsonObject.toJSONString()); } } @@ -217,11 +264,11 @@ List<WorldCupCompetitor> list = worldCupCompetitorService.list(new QueryWrapper<WorldCupCompetitor>() .eq("appUserId", uid).eq("tips", 0).isNotNull("endTime") .orderByDesc("endTime").last(" limit 0, 1")); list.forEach(v->{ list.forEach(v -> { v.setWorldCupId(null); v.setTips(1); }); if(list.size() > 0){ if (list.size() > 0) { worldCupCompetitorService.updateBatchById(list); } return list.size(); @@ -235,7 +282,7 @@ */ @Override public List<WorldCupListVo> getWorldCupList(WorldCupList worldCupList) { if(null != worldCupList.getGender() && 0 == worldCupList.getGender()){ if (null != worldCupList.getGender() && 0 == worldCupList.getGender()) { worldCupList.setGender(null); } List<WorldCupListVo> worldCupList1 = this.baseMapper.getWorldCupList(worldCupList); @@ -244,36 +291,36 @@ List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id).eq("payStatus", 2).eq("state", 1)); List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); Integer heat = worldCupListVo.getHeat(); if(collect.size() > 0){ if (collect.size() > 0) { int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect)); heat += count; } worldCupListVo.setHeat(heat); String lat = worldCupListVo.getLat(); String lon = worldCupListVo.getLon(); if(ToolUtil.isNotEmpty(lat) && ToolUtil.isNotEmpty(lon)){ if (ToolUtil.isNotEmpty(lat) && ToolUtil.isNotEmpty(lon)) { Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, worldCupList.getLon() + "," + worldCupList.getLat()); worldCupListVo.setDistance(distance.get("WGS84")); }else{ } else { worldCupListVo.setDistance(0D); } } if(null != worldCupList.getSort()){ if (null != worldCupList.getSort()) { Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() { @Override public int compare(WorldCupListVo o1, WorldCupListVo o2) { if(worldCupList.getSort() == 1){ if (worldCupList.getSort() == 1) { return o1.getHeat().compareTo(o2.getHeat()); } if(worldCupList.getSort() == 2){ if (worldCupList.getSort() == 2) { return o1.getHeat().compareTo(o2.getHeat()) * -1; } return 0; } }); }else{ } else { Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() { @Override public int compare(WorldCupListVo o1, WorldCupListVo o2) { @@ -305,7 +352,7 @@ List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id).eq("payStatus", 2).eq("state", 1)); List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); Integer heat = worldCupInfo.getHeat(); if(collect.size() > 0){ if (collect.size() > 0) { int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect)); heat += count; } @@ -316,7 +363,7 @@ String url = jsonArray1.getJSONObject(i).getString("url"); imgs += url + ","; } worldCupInfo.setInfoImg(imgs.substring(0,imgs.length() - 1)); worldCupInfo.setInfoImg(imgs.substring(0, imgs.length() - 1)); worldCupInfo.setHeat(heat); ArrayList<Map<String, Object>> objects = new ArrayList<>(); for (WorldCupStore worldCupStore : worldCupStores) { @@ -350,17 +397,17 @@ String province = worldCupInfo.getProvince(); String city = worldCupInfo.getCity(); int index = address.indexOf("市"); if(index != -1){ if (index != -1) { address = address.substring(index + 1); worldCupInfo.setAddress(address); } index = province.indexOf("省"); if(index != -1){ if (index != -1) { province = province.substring(0, index - 1); worldCupInfo.setProvince(province); } index = city.indexOf("市"); if(index != -1){ if (index != -1) { city = city.substring(0, index - 1); worldCupInfo.setCity(city); } @@ -379,7 +426,7 @@ WorldCup worldCup = this.getById(checkPaymentMethod.getId()); String[] split = worldCup.getPayType().split(","); CheckPaymentMethodVo checkPaymentMethodVo = new CheckPaymentMethodVo(); if(split.length == 1 && "0".equals(split[0])){ if (split.length == 1 && "0".equals(split[0])) { checkPaymentMethodVo.setPaiCoin(0); checkPaymentMethodVo.setClassHour(0); return checkPaymentMethodVo; @@ -387,9 +434,9 @@ JSONArray jsonArray = JSON.parseArray(checkPaymentMethod.getIds()); AppUser appUser = appUserClient.getAppUser(checkPaymentMethod.getUid()); BigDecimal multiply = new BigDecimal(jsonArray.size()).multiply(new BigDecimal(worldCup.getPaiCoin())); if(appUser.getPlayPaiCoins() < multiply.intValue()){ if (appUser.getPlayPaiCoins() < multiply.intValue()) { checkPaymentMethodVo.setPaiCoin(0); }else{ } else { checkPaymentMethodVo.setPaiCoin(1); } @@ -399,13 +446,13 @@ Integer id = jsonObject.getInteger("id"); //是否是学员(0=否,1=是) Integer isStudent = jsonObject.getInteger("isStudent"); if(0 == isStudent){ if (0 == isStudent) { classHour = 0; break; } List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id); int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum(); if(sum < worldCup.getClassHour()){ if (sum < worldCup.getClassHour()) { classHour = 0; break; } @@ -413,9 +460,6 @@ checkPaymentMethodVo.setClassHour(classHour); return checkPaymentMethodVo; } /** @@ -426,13 +470,13 @@ @Override public ResultUtil paymentWorldCup(PaymentWorldCup paymentWorldCup) { WorldCup worldCup = this.getById(paymentWorldCup.getId()); if(null == worldCup){ if (null == worldCup) { return ResultUtil.error("报名数据异常"); } if(null != worldCup.getRegistrationClosingTime() && System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()){ if (null != worldCup.getRegistrationClosingTime() && System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()) { return ResultUtil.error("报名时间已结束,无法完成报名"); } if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){ if (System.currentTimeMillis() > worldCup.getEndTime().getTime()) { return ResultUtil.error("世界杯赛事已结束,无法完成报名"); } @@ -441,14 +485,14 @@ List<WorldCupPayment> payments = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", worldCup.getId()) .eq("payStatus", 2).eq("state", 1)); List<Long> ids = payments.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); if(ids.size() > 0){ if (ids.size() > 0) { int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId()) .eq("worldCupPaymentId", ids)); if((count + jsonArray.size()) >= worldCup.getMaxPeople()){ if ((count + jsonArray.size()) >= worldCup.getMaxPeople()) { return ResultUtil.error("已超出最大报名人数"); } }else{ if(jsonArray.size() > worldCup.getMaxPeople()){ } else { if (jsonArray.size() > worldCup.getMaxPeople()) { return ResultUtil.error("已超出最大报名人数"); } } @@ -462,42 +506,42 @@ Long id = jsonObject.getLong("id"); //是否是学员(0=否,1=是) Integer isStudent = jsonObject.getInteger("isStudent"); if(isStudent == 1){ if (isStudent == 1) { TStudent tStudent = studentClient.queryById(id.intValue()); if(worldCup.getGender() != 0 && !tStudent.getSex().equals(worldCup.getGender())){ if (worldCup.getGender() != 0 && !tStudent.getSex().equals(worldCup.getGender())) { return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加"); } if(collect.size() > 0){ if (collect.size() > 0) { WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId()) .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect)); if(null != one){ if (null != one) { return ResultUtil.error("【" + tStudent.getName() + "】已报过名了"); } } if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))){ if (worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))) { return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求"); } if(worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))){ if (worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(tStudent.getBirthday())))) { return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求"); } }else{ } else { Participant participant = participantClient.getParticipant(id); if(worldCup.getGender() != 0 && !participant.getGender().equals(worldCup.getGender())){ if (worldCup.getGender() != 0 && !participant.getGender().equals(worldCup.getGender())) { return ResultUtil.error("此比赛只能是" + (worldCup.getGender() == 1 ? "男" : "女") + "性参加"); } if(collect.size() > 0){ if (collect.size() > 0) { WorldCupPaymentParticipant one = worldCupPaymentParticipantService.getOne(new QueryWrapper<WorldCupPaymentParticipant>().eq("worldCupId", worldCup.getId()) .eq("participantId", id).eq("participantType", isStudent == 0 ? 2 : 1).in("worldCupPaymentId", collect)); if(null != one){ if (null != one) { return ResultUtil.error("【" + participant.getName() + "】已报过名了"); } } if(worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))){ if (worldCup.getStartAge() > (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))) { return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求"); } if(worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))){ if (worldCup.getEndAge() < (Integer.valueOf(sdf.format(new Date())) - Integer.valueOf(sdf.format(participant.getBirthday())))) { return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求"); } } @@ -536,40 +580,39 @@ int num = JSON.parseArray(paymentWorldCup.getIds()).size(); //不免费 String payType1 = worldCup.getPayType().split(",")[0]; if(!"0".equals(payType1)){ if (!"0".equals(payType1)) { Integer payType = paymentWorldCup.getPayType(); //微信 if(payType == 1){ if (payType == 1) { worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash())); worldCupPayment.setUnitPrice(worldCupPayment.getAmount().divide(new BigDecimal(num))); worldCupPaymentService.save(worldCupPayment); List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list(); if (list.isEmpty()){ return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(), worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", ""); }else{ if (list.isEmpty()) { return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(), worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", ""); } else { Integer storeId = list.get(0).getStoreId(); Store store = storeClient.queryStoreById(storeId); if (store.getOperatorId()==null||store.getOperatorId()==0){ if (store.getOperatorId() == null || store.getOperatorId() == 0) { // 平台 return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(), worldCupPayment.getAmount().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", ""); }else{ } else { String s2 = storeClient.getmerchantNumberByOperatorId(store.getOperatorId()); System.err.println("微信商户号"+s2); if(!StringUtils.hasLength(s2)){ System.err.println("微信商户号" + s2); if (!StringUtils.hasLength(s2)) { return ResultUtil.error("运营商未配置微信商户号,获取支付失败!"); } return payMoneyUtil.weixinpayV3(s2,"社区世界杯报名",worldCupPayment.getCode() ,"/base/worldCup/wxPayWorldCupCallback1",worldCupPayment.getAmount().toString()); return payMoneyUtil.weixinpayV3(s2, "社区世界杯报名", worldCupPayment.getCode() , "/base/worldCup/wxPayWorldCupCallback1", worldCupPayment.getAmount().toString()); } } } //支付宝 if(payType == 2){ if (payType == 2) { String smidRes = smid;// 结算资金到商户号 worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash())); @@ -577,28 +620,28 @@ worldCupPaymentService.save(worldCupPayment); List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCup.getId()).list(); if (list.isEmpty()){ }else{ if (list.isEmpty()) { } else { Integer storeId = list.get(0).getStoreId(); Store store = storeClient.queryStoreById(storeId); if (store.getOperatorId()==null||store.getOperatorId()==0){ }else{ if (store.getOperatorId() == null || store.getOperatorId() == 0) { } else { String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId()); System.err.println("支付宝商户号"+s2); if(!StringUtils.hasLength(s2)){ System.err.println("支付宝商户号" + s2); if (!StringUtils.hasLength(s2)) { return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!"); } smidRes=s2; smidRes = s2; } } return payMoneyUtil.alipay(smidRes, "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(), worldCupPayment.getAmount().toString(), "/base/worldCup/aliPayWorldCupCallback"); } } //玩湃币 if(payType == 3){ if (payType == 3) { AppUser appUser = appUserClient.getAppUser(paymentWorldCup.getUid()); BigDecimal multiply = new BigDecimal(num).multiply(new BigDecimal(worldCup.getPaiCoin())); if(appUser.getPlayPaiCoins() < multiply.intValue()){ if (appUser.getPlayPaiCoins() < multiply.intValue()) { return ResultUtil.error("报名失败,玩湃币不足,请充值!"); } worldCupPayment.setAmount(multiply); @@ -633,7 +676,7 @@ return ResultUtil.success(); } //课时 if(payType == 4){ if (payType == 4) { BigDecimal multiply = new BigDecimal(num).multiply(new BigDecimal(worldCup.getClassHour())); String ids = paymentWorldCup.getIds(); JSONArray jsonArray = JSON.parseArray(ids); @@ -641,7 +684,7 @@ List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderUser(paymentWorldCup.getUid()); int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum(); if(sum < worldCup.getClassHour() * num){ if (sum < worldCup.getClassHour() * num) { return ResultUtil.error("报名失败,课时不足,请续课!"); } @@ -649,7 +692,7 @@ JSONObject jsonObject = jsonArray.getJSONObject(i); //是否是学员(0=否,1=是) Integer isStudent = jsonObject.getInteger("isStudent"); if(0 == isStudent){ if (0 == isStudent) { return ResultUtil.error("非学员无法使用课时报名"); } } @@ -671,12 +714,12 @@ Integer classHour = worldCup.getClassHour(); for (CoursePackageOrderStudent packageOrderStudent : coursePackageOrderStudent) { Integer laveClassHours = packageOrderStudent.getLaveClassHours(); if(laveClassHours == 0){ if (laveClassHours == 0) { continue; } DeductionClassHour deductionClassHour = new DeductionClassHour(); if(classHour.compareTo(laveClassHours) > 0){ if (classHour.compareTo(laveClassHours) > 0) { //不够扣除,轮询直到扣除完 classHour = classHour - laveClassHours; deductionClassHour.setId(packageOrderStudent.getId()); @@ -685,7 +728,7 @@ deductionClassHour.setCoursePackageId(packageOrderStudent.getCoursePackageId()); packageOrderStudent.setLaveClassHours(0); list.add(deductionClassHour); }else{ } else { //够扣除直接跳出进行下个学员 deductionClassHour.setId(packageOrderStudent.getId()); deductionClassHour.setClassHour(classHour); @@ -716,7 +759,7 @@ return ResultUtil.success(); } }else{ } else { worldCupPayment.setPayType(0); worldCupPayment.setAmount(BigDecimal.ZERO); worldCupPayment.setPayStatus(2); @@ -784,20 +827,20 @@ worldCupPaymentParticipant.setCreateTime(new Date()); worldCupPaymentParticipantService.save(worldCupPaymentParticipant); } if (worldCupPayment.getPayType()==2){ if (worldCupPayment.getPayType() == 2) { List<WorldCupStore> list = worldCupStoreService.lambdaQuery().eq(WorldCupStore::getWorldCupId, worldCupPayment.getWorldCupId()).list(); String resSmid = smid; if (!list.isEmpty()){ if (!list.isEmpty()) { Integer storeId = list.get(0).getStoreId(); Store store = storeClient.queryStoreById(storeId); if (store.getOperatorId()==null||store.getOperatorId()==0){ }else{ if (store.getOperatorId() == null || store.getOperatorId() == 0) { } else { String s2 = storeClient.getmerchantNumberAliByOperatorId(store.getOperatorId()); System.err.println("支付宝商户号"+s2); if(!StringUtils.hasLength(s2)){ System.err.println("支付宝商户号" + s2); if (!StringUtils.hasLength(s2)) { return ResultUtil.error("运营商未配置支付宝商户号,获取支付失败!"); } resSmid=s2; resSmid = s2; } } String finalResSmid = resSmid; @@ -807,7 +850,7 @@ try { Thread.sleep(30000); payMoneyUtil.confirm(finalResSmid, code, outTradeNo, worldCupPayment.getAmount().toString()); }catch (Exception e){ } catch (Exception e) { } } }).start(); @@ -832,7 +875,7 @@ List<WorldCupPayment> lists = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id).eq("payStatus", 2).eq("state", 1)); List<Long> collect = lists.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); Integer count = 0; if(collect.size() > 0){ if (collect.size() > 0) { count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect)); } map1.put("maxPeople", maxPeople + " - " + count); @@ -862,17 +905,17 @@ //总支付金额 BigDecimal multiply = worldCupPayment.getUnitPrice().multiply(new BigDecimal(list1.size())); //微信支付 if(worldCupPayment.getPayType() == 1){ if (store.getOperatorId()!=null && store.getOperatorId()!=0){ String smidVx= storeClient.getmerchantNumberByOperatorId(store.getOperatorId()); if (!StringUtils.hasLength(smidVx)){ if (worldCupPayment.getPayType() == 1) { if (store.getOperatorId() != null && store.getOperatorId() != 0) { String smidVx = storeClient.getmerchantNumberByOperatorId(store.getOperatorId()); if (!StringUtils.hasLength(smidVx)) { System.err.println("运营商未配置微信商户号,获取支付失败!"); } SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); String codeRefund = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);// 退款单号 // 运营商退款 payMoneyUtil.weixinRefundV3(smidVx, codeRefund, worldCupPayment.getPayOrderNo(), worldCupPayment.getAmount().toString(), "/base/worldCup/wxRefundWorldCupCallback1"); }else { } else { Map<String, String> map = payMoneyUtil.wxRefund(worldCupPayment.getPayOrderNo(), worldCupPayment.getCode(), worldCupPayment.getAmount().toString(), multiply.toString(), "/base/worldCup/wxRefundWorldCupCallback"); if (!"SUCCESS".equals(map.get("return_code"))) { @@ -885,14 +928,14 @@ } } //支付宝支付 if(worldCupPayment.getPayType() == 2){ if (worldCupPayment.getPayType() == 2) { Map<String, String> map = null; try { map = payMoneyUtil.aliRefund(worldCupPayment.getPayOrderNo(), multiply.toString()); } catch (AlipayApiException e) { throw new RuntimeException(e); } if("10000".equals(map.get("code"))){ if ("10000".equals(map.get("code"))) { String trade_no = map.get("trade_no"); worldCupPayment.setWorldCupId(null); worldCupPayment.setRefundTime(new Date()); @@ -903,7 +946,7 @@ } } //玩湃币支付 if(worldCupPayment.getPayType() == 3){ if (worldCupPayment.getPayType() == 3) { Integer appUserId = worldCupPayment.getAppUserId(); AppUser appUser = appUserClient.getAppUser(appUserId); appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() + multiply.intValue()); @@ -916,7 +959,7 @@ worldCupPaymentService.updateById(worldCupPayment); } //课时支付 if(worldCupPayment.getPayType() == 4){ if (worldCupPayment.getPayType() == 4) { for (WorldCupPaymentParticipant worldCupPaymentParticipant1 : list1) { String content = worldCupPaymentParticipant1.getContent(); DeductionClassHourList deductionClassHourList = JSON.parseObject(content, DeductionClassHourList.class); @@ -947,14 +990,14 @@ for (WorldCup worldCup : worldCups) { worldCup.setStatus(2); } if(worldCups.size() > 0){ if (worldCups.size() > 0) { this.updateBatchById(worldCups); } worldCups = this.list(new QueryWrapper<WorldCup>().eq("status", 2).last(" and endTime <= now()")); for (WorldCup worldCup : worldCups) { worldCup.setStatus(3); } if(worldCups.size() > 0){ if (worldCups.size() > 0) { this.updateBatchById(worldCups); } } @@ -977,9 +1020,9 @@ List<WorldCupPayment> list = worldCupPaymentService.list(new QueryWrapper<WorldCupPayment>().eq("worldCupId", id) .eq("payStatus", 2).eq("state", 1)); List<Long> collect = list.stream().map(WorldCupPayment::getId).collect(Collectors.toList()); if(collect.size() == 0){ if (collect.size() == 0) { stringObjectMap.put("applicants", 0); }else{ } else { int count1 = worldCupPaymentParticipantService.getCount(id, collect); stringObjectMap.put("applicants", count1); } @@ -998,4 +1041,120 @@ public void updateWorldCupAll(WorldCup worldCup) { this.baseMapper.updateWorldCupAll(worldCup); } @Override public ResultUtil endWorldCup(String custom, Integer red_score, Integer blue_score) { String[] split = custom.split(","); ArrayList<Long> ids = new ArrayList<>(); for (String s : split) { ids.add(Long.parseLong(s)); } List<WorldCupCompetitor> worldCupCompetitors = worldCupCompetitorService.listByIds(ids); try { WorldCupCompetitor worldCupCompetitor1 = worldCupCompetitors.get(0); WorldCup worldCup = this.getById(worldCupCompetitor1.getWorldCupId()); if(worldCup.getType()==null || worldCup.getType() == 1){ return ResultUtil.error("非智慧赛事才可以结束比赛"); } for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) { worldCupCompetitor.setWorldCupId(null); //蓝方 if(worldCupCompetitor.getParticipant() == 1){ worldCupCompetitor.setMatchResult(blue_score.compareTo(red_score)); worldCupCompetitor.setOurScore(blue_score); worldCupCompetitor.setOpponentScore(red_score); worldCupCompetitor.setEndTime(new Date()); worldCupCompetitor.setWinIntegral(0); worldCupCompetitor.setDrawIntegral(0); worldCupCompetitor.setLoseIntegral(0); if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && blue_score.compareTo(red_score) > 0){ worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){ worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(9); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){ worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } } //红方 if(worldCupCompetitor.getParticipant() == 2){ worldCupCompetitor.setMatchResult(red_score.compareTo(blue_score)); worldCupCompetitor.setOurScore(red_score); worldCupCompetitor.setOpponentScore(blue_score); worldCupCompetitor.setEndTime(new Date()); worldCupCompetitor.setWinIntegral(0); worldCupCompetitor.setDrawIntegral(0); worldCupCompetitor.setLoseIntegral(0); if(null != worldCup.getWinIntegral() && 0 < worldCup.getWinIntegral() && red_score.compareTo(blue_score) > 0){ worldCupCompetitor.setWinIntegral(worldCup.getWinIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getWinIntegral()); vo.setType(7); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getDrawIntegral() && 0 < worldCup.getDrawIntegral() && blue_score.compareTo(red_score) == 0){ worldCupCompetitor.setDrawIntegral(worldCup.getDrawIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getDrawIntegral()); vo.setType(9); userIntegralChangesClient.saveUserIntegralChanges(vo); }else if(null != worldCup.getLoseIntegral() && 0 < worldCup.getLoseIntegral() && blue_score.compareTo(red_score) < 0){ worldCupCompetitor.setDrawIntegral(worldCup.getLoseIntegral()); //增加积分明细 SaveUserIntegralChangesVo vo = new SaveUserIntegralChangesVo(); vo.setAppUserId(worldCupCompetitor.getAppUserId()); vo.setIntegral(worldCup.getLoseIntegral()); vo.setType(10); userIntegralChangesClient.saveUserIntegralChanges(vo); } } } }catch (Exception e){ e.printStackTrace(); } worldCupCompetitorService.updateBatchById(worldCupCompetitors); //添加勋章 for (WorldCupCompetitor worldCupCompetitor : worldCupCompetitors) { Integer appUserId = worldCupCompetitor.getAppUserId(); //常胜将军 if(1 == worldCupCompetitor.getMatchResult()){ int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId).eq("matchResult", 1)); StudentHonor studentHonor = new StudentHonor(); studentHonor.setAppUserId(appUserId); studentHonor.setHonorType(5); studentHonor.setNumber(count); studentHonorClient.saveStudentHonor(studentHonor); } //越战越勇 int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>().eq("appUserId", appUserId)); StudentHonor studentHonor = new StudentHonor(); studentHonor.setAppUserId(appUserId); studentHonor.setHonorType(6); studentHonor.setNumber(count); studentHonorClient.saveStudentHonor(studentHonor); } return ResultUtil.success(); } } cloud-server-communityWorldCup/src/main/java/com/dsh/config/RedisConfig.java
@@ -10,7 +10,7 @@ @Configuration @PropertySource("classpath:redis.properties") public class RedisConfig { @Value("${spring.redis.host}") @Value("192.168.110.106") private String host; @Value("${spring.redis.port}") cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupCompetitorMapper.xml
@@ -110,11 +110,22 @@ participantType, participantId, appUserId, count(*) as num count(*) as num, winIntegral, drawIntegral, loseIntegral from t_world_cup_competitor where matchResult is not null <if test="null != item.year"> and DATE_FORMAT(startTime, '%Y') = #{item.year} </if> <if test="null != sTime and null != eTime"> and startTime between #{sTime} and #{eTime} </if> <if test="null != item.worldCupId"> and worldCupId =#{item.worldCupId} </if> <if test="null != appUserIds and appUserIds.size() > 0"> and appUserId in @@ -136,6 +147,12 @@ where matchResult is not null and matchResult != -1 <if test="null != item.year"> and DATE_FORMAT(startTime, '%Y') = #{item.year} </if> <if test="null != sTime and null != eTime"> and startTime between #{sTime} and #{eTime} </if> <if test="null != item.worldCupId"> and worldCupId =#{item.worldCupId} </if> <if test="null != appUserIds and appUserIds.size() > 0"> and appUserId in @@ -162,6 +179,9 @@ #{iten} </foreach> </if> <if test="sTime != null and eTime != null"> and startTime between #{sTime} and #{eTime} </if> group by participantType, participantId, appUserId </select> @@ -178,6 +198,9 @@ <foreach collection="appUserIds" item="iten" index="index" open="(" separator="," close=")"> #{iten} </foreach> </if> <if test="sTime != null and eTime != null"> and startTime between #{sTime} and #{eTime} </if> group by participantType, participantId, appUserId </select> @@ -257,7 +280,8 @@ ourScore, opponentScore, matchResult, b.`name` b.`name`, CONCAT(a.id, '') as id from t_world_cup_competitor a left join t_world_cup b on (a.worldCupId = b.id) where matchResult is not null @@ -311,4 +335,22 @@ <select id="getMatchTime" resultType="int"> select count(*) as matchTime from (select code from t_world_cup_competitor where worldCupId = #{worldCupId} group by code) as b </select> <select id="getWorldCupListFromRank" resultType="com.dsh.communityWorldCup.model.WorldCupListVo"> select a.id, b.worldCupId, c.name, c.lon, c.lat, c.basePeople as heat, c.status from t_world_cup_payment_participant a left join t_world_cup_payment b on (a.worldCupPaymentId = b.id) left join t_world_cup c on (b.worldCupId = c.id) where a.participantId = #{item.id} and b.payStatus = 2 and b.refundTime is null and b.state = 1 order by a.createTime desc </select> </mapper> cloud-server-communityWorldCup/src/main/resources/mapper/WorldCupMapper.xml
@@ -12,6 +12,7 @@ status, lon, lat, type, CASE status WHEN 1 THEN 2 WHEN 2 THEN 1 ELSE status END as sort from t_world_cup where status != 3 <if test="null != item.content and '' != item.content"> @@ -69,7 +70,8 @@ a.paiCoin, a.classHour, a.intro, a.content a.content, a.contentOne from t_world_cup a where a.id = #{id} </select> @@ -85,7 +87,8 @@ CONCAT(startAge, '至', endAge) as age, gender, maxPeople, status status, type from t_world_cup where 1 = 1 <if test="null != item.name and '' != item.name"> @@ -100,6 +103,9 @@ <if test="null != item.status"> and status= #{item.status} </if> <if test="null != item.type"> and type= #{item.type} </if> order by createTime desc limit #{item.offset}, #{item.limit} </select> cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/SaveData.java
New file @@ -0,0 +1,29 @@ package com.dsh.course.feignClient.communityWorldCup.Model; import lombok.Data; /** * @author zhibing.pu * @Date 2024/3/6 20:00 */ @Data public class SaveData { /** * 参赛数据id */ private Long id; /** * 蓝方得分 */ private String blueStr; /** * 红方得分 */ private String redStr; private String time; private Integer blueScore; private Integer redScore; } cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCup.java
@@ -88,6 +88,21 @@ * 胜利获得积分 */ private Integer winIntegral; /** * 类型(1=智慧赛事,2=非智慧赛事) */ private Integer type; /** * 平场获得积分 */ private Integer drawIntegral; /** * 失败获得积分 */ private Integer loseIntegral; /** * 省 */ @@ -141,6 +156,10 @@ */ private String content; /** * 参赛协议 */ private String contentOne; /** * 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消) */ private Integer status; cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupListAll.java
@@ -24,6 +24,11 @@ * 比赛状态(1=未开始,2=已开始,3=已结束,4=已取消) */ private Integer status; /** * 1=智慧赛事,2=非智慧赛事 */ private Integer type; /** * 页码 */ cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/Model/WorldCupRecords.java
@@ -17,6 +17,10 @@ */ private String city; /** * 时间 */ private String time; /** * 页码 */ private Integer offset; cloud-server-management/src/main/java/com/dsh/course/feignClient/communityWorldCup/WorldCupClient.java
@@ -1,6 +1,8 @@ package com.dsh.course.feignClient.communityWorldCup; import com.dsh.course.feignClient.communityWorldCup.Model.*; import com.dsh.course.model.dto.UserDetailsOfSearch; import com.dsh.course.model.vo.WorldCupUserListVo; import com.dsh.guns.modular.system.model.WorldCupQuery; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; @@ -149,4 +151,11 @@ */ @PostMapping("/worldCup/getRegisteredNumber") int getRegisteredNumber(Integer worldCupId); @PostMapping("/worldCup/userDetailsOfSearch") List<WorldCupUserListVo> userDetailsOfSearch(UserDetailsOfSearch search); @PostMapping("/worldCup/savaData1") void savaData1(SaveData saveData); } cloud-server-management/src/main/java/com/dsh/course/model/dto/UserDetailsOfSearch.java
New file @@ -0,0 +1,19 @@ package com.dsh.course.model.dto; import lombok.Data; import java.util.List; @Data public class UserDetailsOfSearch { private Integer id; private String name; private String phone; private String idCard; private List<Integer> useIds; } cloud-server-management/src/main/java/com/dsh/course/model/vo/WorldCupUserListVo.java
New file @@ -0,0 +1,27 @@ package com.dsh.course.model.vo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data public class WorldCupUserListVo { @ApiModelProperty("报名id") private Long id; @ApiModelProperty("姓名") private String name; @ApiModelProperty("性别") private String sex; @ApiModelProperty("年龄") private String age; @ApiModelProperty("身份证号") private String idCard; @ApiModelProperty("手机号") private String phone; } cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/OperatorController.java
@@ -96,7 +96,7 @@ @ResponseBody public List<TStore> getStores(Integer id) { payMoneyUtil.getMessage(); // payMoneyUtil.getMessage(); return storeService.list(new QueryWrapper<TStore>() .eq("operatorId",id) .ne("state",3)); cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/TCouponController.java
@@ -417,6 +417,8 @@ if (imgFile != null){ String originalFilename = imgFile.getOriginalFilename(); String newName = originalFilename.substring(imgFile.getOriginalFilename().lastIndexOf(".")); String url = OssUploadUtil.ossUpload("img/",imgFile); Map<String, String> map = new HashMap<String, String>(); //是否上传成功 cloud-server-management/src/main/java/com/dsh/guns/modular/system/controller/code/WorldCupRecordsController.java
@@ -2,15 +2,13 @@ import com.dsh.course.feignClient.communityWorldCup.Model.*; import com.dsh.course.feignClient.communityWorldCup.WorldCupClient; import com.dsh.course.model.dto.UserDetailsOfSearch; import com.dsh.guns.modular.system.util.ExcelUtil; import com.dsh.guns.modular.system.util.ResultUtil; import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; @@ -45,6 +43,25 @@ public String openWorldCupGameStatisticsInfo(Model model, Integer id){ model.addAttribute("id", id); return PREFIX + "worldCupGameStatisticsInfo.html"; } @RequestMapping("/addWorldCupGameStatisticsInfo") public String addWorldCupGameStatisticsInfo(Model model, Integer id){ WorldCup worldCupById = worldCupClient.getWorldCupById(id); model.addAttribute("item", worldCupById); return PREFIX + "addWorldCupGameStatisticsListInfo.html"; } @RequestMapping("/userList") public String userList(Integer id,Model model){ WorldCup worldCupById = worldCupClient.getWorldCupById(id); model.addAttribute("item", worldCupById); return PREFIX + "TUserList.html"; } @RequestMapping("/userList1") public String userList1(Integer id,Model model){ WorldCup worldCupById = worldCupClient.getWorldCupById(id); model.addAttribute("item", worldCupById); return PREFIX + "TUserList1.html"; } @@ -233,4 +250,26 @@ e.printStackTrace(); } } @ResponseBody @PostMapping("/userDetailsOfSearch") public Object storeDetailsOfSearch(Integer id,String name,String phone,String idCard){ UserDetailsOfSearch userDetailsOfSearch = new UserDetailsOfSearch(); userDetailsOfSearch.setId( id); userDetailsOfSearch.setName(name); userDetailsOfSearch.setPhone(phone); userDetailsOfSearch.setIdCard(idCard); // 获取报了名的用户 未产生赛事 return worldCupClient.userDetailsOfSearch(userDetailsOfSearch); } @ResponseBody @PostMapping("/savaData1") public Object savaData1(SaveData saveData){ // 修改WorldCupPaymentParticipant 参赛状态 savet_world_cup_competitor worldCupClient.savaData1(saveData); return ResultUtil.success(); } } cloud-server-management/src/main/java/com/dsh/guns/modular/system/util/PayMoneyUtil.java
@@ -2,13 +2,6 @@ import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.CertAlipayRequest; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.domain.AlipayTradeAppPayModel; import com.alipay.api.msg.AlipayMsgClient; import com.alipay.api.msg.MsgHandler; import com.alipay.api.request.*; import com.alipay.api.response.*; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -343,75 +336,75 @@ /** * 处理直付通审核通过和拒绝消息 */ public void getMessage() { System.err.println("进入"); final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid); try { alipayMsgClient.setConnector(serverHost); } catch (Exception e) { e.printStackTrace(); } alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key); try { alipayMsgClient.connect(); } catch (InterruptedException e) { e.printStackTrace(); } alipayMsgClient.setMessageHandler( new MsgHandler() { /** * 客户端接收到消息后回调此方法 * @param msgApi 接收到的消息的消息api名 * @param msgId 接收到的消息的消息id * @param bizContent 接收到的消息的内容,json格式 */ public void onMessage (String msgApi, String msgId, String bizContent) { // 直付通进件审核通过 if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){ // 修改运营商状态 将返回的商户号填入运营商 System.out.println( "receive message. msgApi:" + msgApi + " msgId:" + msgId + " bizContent:" + bizContent); JSONObject json = JSONObject.parseObject(bizContent); // 商户号 String smid = json.getString("smid"); // 审核备注信息 String memo = json.getString("memo"); // 订单id String orderId = json.getString("order_id"); // 通过订单id查询 OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() .eq("orderNo",orderId)); auth.setSmid(smid); auth.setAuditState(2); auth.setRefuseReason(memo); operatorAuthService.updateById(auth); Integer operatorId = auth.getOperatorId(); OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() .eq("operatorId", operatorId)); operatorId1.setAlipayNum(smid); operatorId1.setAlipayAudit(2); operatorUserService.updateById(operatorId1); } // 直付通进件审核失败 if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){ JSONObject json = JSONObject.parseObject(bizContent); // 商户号 String orderId = json.getString("order_id"); // 官方拒绝理由 String reason = json.getString("reason"); // 通过订单id查询 OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() .eq("orderNo",orderId)); auth.setAuditState(3); auth.setRefuseReason(reason); operatorAuthService.updateById(auth); Integer operatorId = auth.getOperatorId(); OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() .eq("operatorId", operatorId)); operatorId1.setAlipayAudit(3); operatorUserService.updateById(operatorId1); } } }); } // public void getMessage() { // System.err.println("进入"); // final AlipayMsgClient alipayMsgClient = AlipayMsgClient.getInstance(aliAppid); // try { // alipayMsgClient.setConnector(serverHost); // } catch (Exception e) { // e.printStackTrace(); // } // alipayMsgClient.setSecurityConfig(signType, appPrivateKey, alipay_public_key); // try { // alipayMsgClient.connect(); // } catch (InterruptedException e) { // e.printStackTrace(); // } // alipayMsgClient.setMessageHandler( new MsgHandler() { // /** // * 客户端接收到消息后回调此方法 // * @param msgApi 接收到的消息的消息api名 // * @param msgId 接收到的消息的消息id // * @param bizContent 接收到的消息的内容,json格式 // */ // public void onMessage (String msgApi, String msgId, String bizContent) { // // 直付通进件审核通过 // if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.passed")){ // // 修改运营商状态 将返回的商户号填入运营商 // System.out.println( "receive message. msgApi:" + msgApi + " msgId:" + msgId + " bizContent:" + bizContent); // JSONObject json = JSONObject.parseObject(bizContent); // // 商户号 // String smid = json.getString("smid"); // // 审核备注信息 // String memo = json.getString("memo"); // // 订单id // String orderId = json.getString("order_id"); // // 通过订单id查询 // OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() // .eq("orderNo",orderId)); // auth.setSmid(smid); // auth.setAuditState(2); // auth.setRefuseReason(memo); // operatorAuthService.updateById(auth); // Integer operatorId = auth.getOperatorId(); // OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() // .eq("operatorId", operatorId)); // operatorId1.setAlipayNum(smid); // operatorId1.setAlipayAudit(2); // operatorUserService.updateById(operatorId1); // } // // 直付通进件审核失败 // if (StringUtils.equals(msgApi,"ant.merchant.expand.indirect.zft.rejected")){ // JSONObject json = JSONObject.parseObject(bizContent); // // 商户号 // String orderId = json.getString("order_id"); // // 官方拒绝理由 // String reason = json.getString("reason"); // // 通过订单id查询 // OperatorAuthAlipay auth = operatorAuthService.getOne(new QueryWrapper<OperatorAuthAlipay>() // .eq("orderNo",orderId)); // auth.setAuditState(3); // auth.setRefuseReason(reason); // operatorAuthService.updateById(auth); // Integer operatorId = auth.getOperatorId(); // OperatorUser operatorId1 = operatorUserService.getOne(new QueryWrapper<OperatorUser>() // .eq("operatorId", operatorId)); // operatorId1.setAlipayAudit(3); // operatorUserService.updateById(operatorId1); // } // } // }); // } /** * 支付宝支付 */ @@ -468,19 +461,19 @@ // } //实例化客户端 AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。 model.setOutTradeNo(outTradeNo);//商户网站唯一订单号 model.setTimeoutExpress("30m"); model.setTotalAmount(amount);//付款金额 model.setProductCode("QUICK_MSECURITY_PAY"); model.setPassbackParams(passbackParams);//自定义参数 // //实例化客户端 // AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); // //实例化具体API对应的request类,类名称和接口名称对应,当前调用接口名称:alipay.trade.app.pay // AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest(); // //SDK已经封装掉了公共参数,这里只需要传入业务参数。以下方法为sdk的model入参方式(model和biz_content同时存在的情况下取biz_content)。 // AlipayTradeAppPayModel model = new AlipayTradeAppPayModel(); // model.setBody(body);//对一笔交易的具体描述信息。如果是多种商品,请将商品描述字符串累加传给body。 // model.setSubject(subject);//商品的标题/交易标题/订单标题/订单关键字等。 // model.setOutTradeNo(outTradeNo);//商户网站唯一订单号 // model.setTimeoutExpress("30m"); // model.setTotalAmount(amount);//付款金额 // model.setProductCode("QUICK_MSECURITY_PAY"); // model.setPassbackParams(passbackParams);//自定义参数 //分账 @@ -521,42 +514,42 @@ // model.setRoyaltyInfo(royaltyInfo); // System.err.println("=================="+royaltyInfo); // request.setBizModel(model); request.setNotifyUrl(callbackPath + notifyUrl); try { //这里和普通的接口调用不同,使用的是sdkExecute AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); Map<String, String> map = new HashMap<>(); map.put("orderString", response.getBody()); map.put("returnId", passbackParams); System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 return ResultUtil.success(map); } catch (AlipayApiException e) { e.printStackTrace(); } // request.setBizModel(model); // request.setNotifyUrl(callbackPath + notifyUrl); // try { // //这里和普通的接口调用不同,使用的是sdkExecute // AlipayTradeAppPayResponse response = alipayClient.sdkExecute(request); // Map<String, String> map = new HashMap<>(); // map.put("orderString", response.getBody()); // map.put("returnId", passbackParams); // System.out.println(map);//就是orderString 可以直接给客户端请求,无需再做处理。 // return ResultUtil.success(map); // } catch (AlipayApiException e) { // e.printStackTrace(); // } return null; } /** * 支付宝查询订单支付状态 * * @param out_trade_no * @return * @throws Exception */ public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception { AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); request.setBizContent("{" + " \"out_trade_no\":\"" + out_trade_no + "\"" + "}"); AlipayTradeQueryResponse response = alipayClient.execute(request); return response; } // /** // * 支付宝查询订单支付状态 // * // * @param out_trade_no // * @return // * @throws Exception // */ // public AlipayTradeQueryResponse queryALIOrder(String out_trade_no) throws Exception { // AlipayClient alipayClient = new DefaultAlipayClient("https://openapi.alipay.com/gateway.do", aliAppid, appPrivateKey, "json", "UTF-8", alipay_public_key, "RSA2"); // AlipayTradeQueryRequest request = new AlipayTradeQueryRequest(); // request.setBizContent("{" + // " \"out_trade_no\":\"" + out_trade_no + "\"" + // "}"); // AlipayTradeQueryResponse response = alipayClient.execute(request); // return response; // // } cloud-server-management/src/main/webapp/WEB-INF/view/system/tShop/TShop_imgAll.html
@@ -240,7 +240,7 @@ </div> </div> <div style="font-size: x-large;">社区世界杯板块</div> <div style="font-size: x-large;">赛事比赛板块</div> @for(obj in worldCupStores){ <div class="row"> <input hidden name="cupId" value="${obj.id}"> cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup.html
@@ -22,6 +22,20 @@ <div class="input-group"> <div class="input-group-btn open"> <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> 赛事类别: </button> </div> <select class="form-control" id="type"> <option value="">全部</option> <option value="1">智慧赛事</option> <option value="2">非智慧赛事</option> </select> </div> </div> <div class="col-sm-3"> <div class="input-group"> <div class="input-group-btn open"> <button data-toggle="dropdown" class="btn btn-white dropdown-toggle" type="button" aria-expanded="true"> 状态 </button> </div> cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_add.html
@@ -31,6 +31,18 @@ <input class="form-control" id="name"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*赛事类别:</label> <div class="col-sm-3"> <select class="form-control" id="type"> <option value="1">智慧赛事</option> <option value="2">非智慧赛事</option> </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*开始时间:</label> <div class="col-sm-3"> @@ -119,6 +131,20 @@ <input class="form-control" id="winIntegral" type="number" min="0"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">平场可获积分</label> <div class="col-sm-3"> <input class="form-control" id="drawIntegral" type="number" min="0"> </div> <label style="float: left;line-height: 35px;">败场可获积分</label> <div class="col-sm-3"> <input class="form-control" id="loseIntegral" type="number" min="0"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*比赛地点:</label> <div class="col-sm-7"> @@ -224,6 +250,12 @@ <textarea id="content" style="height: 800px;width: 100%;"></textarea> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*参赛协议</label> <div class="col-sm-7" style="padding: 0px;"> <textarea id="contentOne" style="height: 800px;width: 100%;"></textarea> </div> </div> </div> </div> <div class="row btn-group-m-t"> cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_edit.html
@@ -32,6 +32,19 @@ <input class="form-control" id="name" value="${item.name}"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*赛事类别:</label> <div class="col-sm-3"> <select class="form-control" id="type"> <option value="1" ${1 == item.type ? 'selected' : ''}>智慧赛事</option> <option value="2" ${2 == item.type ? 'selected' : ''}>非智慧赛事</option> </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*开始时间:</label> <div class="col-sm-3"> @@ -120,7 +133,20 @@ <input class="form-control" id="winIntegral" type="number" min="0" value="${item.winIntegral}"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">平场可获积分</label> <div class="col-sm-3"> <input class="form-control" id="drawIntegral" type="number" min="0" value="${item.drawIntegral}"> </div> <label style="float: left;line-height: 35px;">败场可获积分</label> <div class="col-sm-3"> <input class="form-control" id="loseIntegral" type="number" min="0" value="${item.loseIntegral}"> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*比赛地点:</label> <div class="col-sm-7"> <input class="form-control" id="address" onchange="WorldCupInfo.searchByStationName(this,1)" value="${item.address}"> @@ -226,6 +252,12 @@ <textarea id="content" style="height: 800px;width: 100%;">${item.content}</textarea> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*参赛协议</label> <div class="col-sm-7" style="padding: 0px;"> <textarea id="contentOne" style="height: 800px;width: 100%;">${item.contentOne}</textarea> </div> </div> </div> </div> <div class="row btn-group-m-t"> cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCup/worldCup_info.html
@@ -29,6 +29,17 @@ <input class="form-control" id="name" value="${item.name}" disabled> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*赛事类别:</label> <div class="col-sm-3"> <select class="form-control" id="type" disabled> <option value="1" ${1 == item.type ? 'selected' : ''}>智慧赛事</option> <option value="2" ${2 == item.type ? 'selected' : ''}>非智慧赛事</option> </select> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*开始时间:</label> <div class="col-sm-3"> @@ -117,6 +128,17 @@ <input class="form-control" id="winIntegral" type="number" min="0" value="${item.winIntegral}" disabled> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">平场可获积分</label> <div class="col-sm-3"> <input class="form-control" id="drawIntegral" type="number" min="0" value="${item.drawIntegral}" disabled> </div> <label style="float: left;line-height: 35px;">败场可获积分</label> <div class="col-sm-3"> <input class="form-control" id="loseIntegral" type="number" min="0" value="${item.loseIntegral}" disabled> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">*比赛地点:</label> <div class="col-sm-7"> @@ -200,6 +222,12 @@ <textarea id="content" style="height: 800px;width: 100%;">${item.content}</textarea> </div> </div> <div class="form-group"> <label class="col-sm-3 control-label">参赛协议</label> <div class="col-sm-7" style="padding: 0px;"> <textarea id="contentOne" style="height: 800px;width: 100%;">${item.contentOne}</textarea> </div> </div> </div> </div> </div> cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList.html
New file @@ -0,0 +1,50 @@ @layout("/common/_container.html"){ <div class="row"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5>参赛人员</h5> </div> <div class="ibox-content"> <div class="row row-lg"> <div class="col-sm-12"> <input type="hidden" id="id" value="${item.id}"></input> <div class="row"> <div class="col-sm-3"> <#NameCon id="userName" name="姓名:" /> </div> <div class="col-sm-3"> <#NameCon id="phone" name="联系电话:" /> </div> <div class="col-sm-3"> <#NameCon id="idCard" name="身份证号:" /> </div> <div class="col-sm-3"> <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/> </div> </div> <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group"> </div> <#table id="TStoreProvinceTable"/> <div style="margin-left: 30%"> <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()" id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;"> <i class="fa fa-check"></i> 关闭 </button> <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores()" id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;"> <i class="fa fa-check"></i> 保存 </button> </div> </div> </div> </div> </div> </div> </div> <script src="${ctxPath}/modular/system/worldCupRecords/TStoreInfo.js"></script> <script src="${ctxPath}/modular/system/worldCupRecords/TCouponInfo.js"></script> @} cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/TUserList1.html
New file @@ -0,0 +1,50 @@ @layout("/common/_container.html"){ <div class="row"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5>参赛人员</h5> </div> <div class="ibox-content"> <div class="row row-lg"> <div class="col-sm-12"> <input type="hidden" id="id" value="${item.id}"></input> <div class="row"> <div class="col-sm-3"> <#NameCon id="userName" name="姓名:" /> </div> <div class="col-sm-3"> <#NameCon id="phone" name="联系电话:" /> </div> <div class="col-sm-3"> <#NameCon id="idCard" name="身份证号:" /> </div> <div class="col-sm-3"> <#button name="搜索" icon="fa-search" clickFun="TStoreProvince.search()"/> </div> </div> <div class="hidden-xs" id="TStoreProvinceTableToolbar" role="group"> </div> <#table id="TStoreProvinceTable"/> <div style="margin-left: 30%"> <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.storeOfClosePage()" id="closePage" style="width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;"> <i class="fa fa-check"></i> 关闭 </button> <button type="button" class="btn btn-info button-margin" onclick="TStoreProvince.saveSelectStores1()" id="submit" style="margin-left: 5%;width: 30%;height: 40px;background: #0d8ddb;color: white;border: none;"> <i class="fa fa-check"></i> 保存 </button> </div> </div> </div> </div> </div> </div> </div> <script src="${ctxPath}/modular/system/worldCupRecords/TStoreInfo.js"></script> <script src="${ctxPath}/modular/system/worldCupRecords/TCouponInfo.js"></script> @} cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/addWorldCupGameStatisticsListInfo.html
New file @@ -0,0 +1,159 @@ @layout("/common/_container.html"){ <div class="row"> <div class="col-sm-12"> <div class="ibox float-e-margins"> <div class="ibox-title"> <h5>比赛详情</h5> </div> <div class="ibox-content"> <div class="row row-lg"> <div class="col-sm-12"> <input type="hidden" id="id" value="${item.id}"></input> <div class="row"> <div class="form-group"> <label class="col-sm-3 control-label">*比赛名称:${item.name}</label> </div> <div class="form-group"> <label class="col-sm-3 control-label">*参赛人:</label> </div> <div class="form-group"> <div class="col-sm-12"> <label class="col-sm-3 control-label">红方: </label> <button onclick="userList()" style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%"> 选择人员 </button> </div> <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px"> <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id="userTableOne"> <thead> <tr> <td>id</td> <td>人员</td> <td>联系电话</td> <td>性别</td> <td>年龄</td> <td>操作</td> </tr> </thead> <tbody id="coun"></tbody> </table> </div> </div> <div class="form-group"> <div class="col-sm-12"> <label class="col-sm-3 control-label">蓝方: </label> <button onclick="userList1()" style="height: 22px;width: 82px;background-color: #4a8ff1;color: white;z-index: 15;position:relative;border: none;margin-top: 1%"> 选择人员 </button> </div> <div class="col-sm-12" style="margin-left: -57px;margin-top: 20px"> <table class="table table-bordered" style="width: 70%;margin-left: 228px;" id="userTableTwo"> <thead> <tr> <td>id</td> <td>人员</td> <td>联系电话</td> <td>性别</td> <td>年龄</td> <td>操作</td> </tr> </thead> <tbody id="coun1"></tbody> </table> </div> </div> <div class="form-group"> <div class="col-sm-12" > <label class="col-sm-1 control-label">*比赛时间:</label> <div class="col-sm-4"> <input type="text" class="form-control" id="time" name="time" placeholder="请选择时间"> </div> </div> </div> <!-- 蓝方得分--> <div class="form-group"> <div class="col-sm-12" style="margin-top: 10px"> <label class="col-sm-1 control-label">*蓝方得分:</label> <div class="col-sm-2"> <input type="text" class="form-control" id="blueScore" name="blueScore" placeholder="请输入蓝方得分"> </div> </div> </div> <div class="form-group"> <div class="col-sm-12" style="margin-top: 10px"> <label class="col-sm-1 control-label">*红方得分:</label> <div class="col-sm-2"> <input type="text" class="form-control" id="redScore" name="redScore" placeholder="请输入红方得分"> </div> </div> </div> </div> </div> <div class="row btn-group-m-t"> <div class="col-sm-10"> <#button btnCss="danger" name="关闭" id="cancel" icon="fa-eraser" clickFun="WorldCupGameStatisticsListInfo.close1()"/> <#button btnCss="info" name="保存" id="ensure" icon="fa-check" clickFun="WorldCupGameStatisticsListInfo.saveData()"/> </div> </div> </div> </div> </div> </div> </div> <script src="${ctxPath}/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js"></script> <script> laydate.render({ elem: '#startTime' }); laydate.render({ elem: '#endTime' }); laydate.render({ elem: '#time' ,type: 'datetime' ,range: true }); function close() { console.log(32323) // 方法2: 使用top级别关闭 } function userList() { var index = layer.open({ type: 2, title: '人员列表', area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, content: Feng.ctxPath + '/worldCupRecords/userList?id=' + $("#id").val() }); this.layerIndex = index; } function userList1() { var index = layer.open({ type: 2, title: '人员列表', area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, content: Feng.ctxPath + '/worldCupRecords/userList1?id=' + $("#id").val() }); this.layerIndex = index; } </script> @} cloud-server-management/src/main/webapp/WEB-INF/view/system/worldCupRecords/worldCupRecords.html
@@ -25,6 +25,9 @@ <#NameCon id="city" name="所在城市:" /> </div> <div class="col-sm-3"> <#NameCon id="time" name="比赛日期:" /> </div> <div class="col-sm-3"> <#button name="搜索" icon="fa-search" clickFun="WorldCupRecords.search1()"/> <#button name="重置" icon="fa-trash" clickFun="WorldCupRecords.resetSearch1()" space="true"/> </div> @@ -45,6 +48,7 @@ </div> <div class="hidden-xs" id="WorldCupRecordsTable2Toolbar" role="group"> <#button name="查看详情" icon="fa-plus" clickFun="WorldCupRecords.openWorldCupRecordsInfo()"/> <#button name="添加赛事记录" icon="fa-plus" clickFun="WorldCupRecords.addWorldCupRecordsInfo()"/> </div> <#table id="WorldCupRecordsTable2"/> </div> @@ -89,5 +93,9 @@ laydate.render({ elem: '#endTime' }); laydate.render({ elem: '#time' ,range: true }); </script> @} cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup.js
@@ -15,6 +15,11 @@ {field: 'selectItem', checkbox: true}, {title: 'id', field: 'id', visible: true, align: 'center', valign: 'middle'}, {title: '比赛名称', field: 'name', visible: true, align: 'center', valign: 'middle',width:'20%',}, {title: '赛事类别', field: 'type', visible: true, align: 'center', valign: 'middle',width:'20%', formatter:function (data) { return {1:"智慧赛事",2:"非智慧赛事"}[data] } }, {title: '开始时间', field: 'startTime', visible: true, align: 'center', valign: 'middle',}, {title: '结束时间', field: 'endTime', visible: true, align: 'center', valign: 'middle'}, {title: '报名条件', field: 'age', visible: true, align: 'center', valign: 'middle', @@ -154,6 +159,7 @@ queryData['startTime'] =$("#startTime").val(); queryData['endTime'] =$("#endTime").val(); queryData['status'] =$("#status").val(); queryData['type'] =$("#type").val(); WorldCup.table.refresh({query: queryData}); }; @@ -162,6 +168,7 @@ $("#startTime").val(""); $("#endTime").val(""); $("#status").val(""); $("#type").val(""); WorldCup.search(); }; cloud-server-management/src/main/webapp/static/modular/system/worldCup/worldCup_info.js
@@ -45,7 +45,11 @@ let intro = $('#intro').val(); let coverImg = $('#coverImg').val(); let homeBackdropImg = $('#homeBackdropImg').val(); let type = $('#type').val(); let drawIntegral = $('#drawIntegral').val(); let loseIntegral = $('#loseIntegral').val(); let content = editor.getContent(); let contentOne = editor1.getContent(); if(null == name || '' == name){ Feng.error("请填写有效的比赛名称"); return @@ -120,20 +124,24 @@ Feng.error("请填写有效的赛事简介"); return } if(null == coverImg || '' == coverImg){ Feng.error("请上传有效的比赛封面图"); return } if(null == homeBackdropImg || '' == homeBackdropImg){ Feng.error("请上传有效的首页默认背景图"); return } if(WorldCupInfo.goodsPicArray1 == 0){ Feng.error("请上传有效的比赛图片"); return } // if(null == coverImg || '' == coverImg){ // Feng.error("请上传有效的比赛封面图"); // return // } // if(null == homeBackdropImg || '' == homeBackdropImg){ // Feng.error("请上传有效的首页默认背景图"); // return // } // if(WorldCupInfo.goodsPicArray1 == 0){ // Feng.error("请上传有效的比赛图片"); // return // } if(null == content || '' == content){ Feng.error("请填写有效的比赛详情"); return } if(null == contentOne || '' == contentOne){ Feng.error("请填写有效的参赛协议"); return } let data = { @@ -159,7 +167,11 @@ 'infoImg': JSON.stringify(WorldCupInfo.goodsPicArray1), 'intro': intro, 'content': content, 'stores': JSON.stringify(WorldCupInfo.stores) 'stores': JSON.stringify(WorldCupInfo.stores), 'type': type, 'drawIntegral': drawIntegral, 'loseIntegral': loseIntegral, 'contentOne': contentOne } if(null != registrationClosingTime && '' != registrationClosingTime){ data.registrationClosingTime = new Date(registrationClosingTime + " 23:59:59"); @@ -208,6 +220,10 @@ let coverImg = $('#coverImg').val(); let homeBackdropImg = $('#homeBackdropImg').val(); let content = editor.getContent(); let type = $('#type').val(); let drawIntegral = $('#drawIntegral').val(); let loseIntegral = $('#loseIntegral').val(); let contentOne = editor1.getContent(); if(null == name || '' == name){ Feng.error("请填写有效的比赛名称"); return @@ -282,22 +298,27 @@ Feng.error("请填写有效的赛事简介"); return } if(null == coverImg || '' == coverImg){ Feng.error("请上传有效的比赛封面图"); return } if(null == homeBackdropImg || '' == homeBackdropImg){ Feng.error("请上传有效的首页默认背景图"); return } if(WorldCupInfo.goodsPicArray1 == 0){ Feng.error("请上传有效的比赛图片"); return } // if(null == coverImg || '' == coverImg){ // Feng.error("请上传有效的比赛封面图1"); // return // } // if(null == homeBackdropImg || '' == homeBackdropImg){ // Feng.error("请上传有效的首页默认背景图"); // return // } // if(WorldCupInfo.goodsPicArray1 == 0){ // Feng.error("请上传有效的比赛图片"); // return // } if(null == content || '' == content){ Feng.error("请填写有效的比赛详情"); return } if(null == contentOne || '' == contentOne){ Feng.error("请填写有效的参赛协议"); return } let data = { 'id': $('#id').val(), 'name': name, @@ -322,7 +343,11 @@ 'infoImg': JSON.stringify(WorldCupInfo.goodsPicArray1), 'intro': intro, 'content': content, 'stores': JSON.stringify(WorldCupInfo.stores) 'stores': JSON.stringify(WorldCupInfo.stores), 'type': type, 'drawIntegral': drawIntegral, 'loseIntegral': loseIntegral, 'contentOne': contentOne } if(null != registrationClosingTime && '' != registrationClosingTime){ data.registrationClosingTime = new Date(registrationClosingTime + " 23:59:59"); @@ -569,7 +594,9 @@ var editor = null; var editor1 = null; $(function () { //初始化编辑器 editor = UE.getEditor('content'); editor1 = UE.getEditor('contentOne'); }); cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TSiteInfo.js
New file @@ -0,0 +1,158 @@ /** * 管理初始化 */ var TStoreProvince = { id: "TStoreProvinceTable", //表格id seItem: null, //选中的条目 table: null, layerIndex: -1, storeList: [] }; /** * 初始化表格的列 */ TStoreProvince.initColumn = function () { return [ {field: 'selectItem', checkbox: true}, {title: '序号', field: 'id', visible: true, align: 'center', valign: 'middle'}, {title: '所在省市', field: 'provinceCity', visible: true, align: 'center', valign: 'middle'}, {title: '所属运营商', field: 'account', visible: true, align: 'center', valign: 'middle'}, {title: '门店名称', field: 'name', visible: true, align: 'center', valign: 'middle'}, {title: '场地名称', field: 'siteName', visible: true, align: 'center', valign: 'middle'}, {title: '闸机ids', field: 'ids', visible: true, align: 'center', valign: 'middle'}, ]; }; /** * 检查是否选中 */ TStoreProvince.check = function () { var selected = $('#' + this.id).bootstrapTable('getSelections'); if(selected.length == 0){ Feng.info("请先选中表格中的某一记录!"); return false; }else{ TStoreProvince.seItem = selected[0]; return true; } }; TStoreProvince.storeOfClosePage = function (){ parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id)); } TStoreProvince.saveSelectSites = function (){ var selected = $('#' + this.id).bootstrapTable('getSelections'); if (selected.length == 0) { Feng.info("请先选中表格中的某一记录!"); return false; } var arr = []; var name =''; for(var i in selected){ if(typeof selected[i].id != "undefined"){ name = selected[0].account if(name!=selected[i].account){ Feng.info("请选择相同运营商场地") return ; } console.log("arr push") console.log(selected[i].id) arr.push({ id: selected[i].id, provinceCity: typeof selected[i].provinceCity != "undefined" ? selected[i].provinceCity : "", accountName: typeof selected[i].account != "undefined" ? selected[i].account : "", name: typeof selected[i].name != "undefined" ? selected[i].name : "", siteName: typeof selected[i].siteName != "undefined" ? selected[i].siteName : "", ids:typeof selected[i].ids != "undefined" ? selected[i].ids : "", }) } } console.log("返回之前的数组") console.log(arr) window.parent.TGoodsInfoDlg.selecUserOpt1(arr); TStoreProvince.storeOfClosePage(); }; /** * 查询列表 */ TStoreProvince.search = function () { var queryData = {}; queryData['provinceId'] = $("#pCode").val(); queryData['cityId'] = $("#cCode").val(); queryData['operatorId'] = $("#account").val(); queryData['storeName'] = $("#storeName").val(); TStoreProvince.table.refresh({query: queryData}); }; /** * 重置搜索 */ TStoreProvince.resetSearch = function () { $("#pCode").val('') $("#cCode").val('') $("#storeName").val('') $("#account").val('') TStoreProvince.search(); }; function queryProvince(){ // 发送AJAX请求到后台获取省份数据 // 假设后台返回的数据格式为一个包含省份ID和名称的数组 var provinceSelect = document.getElementById("province"); var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){ data.forEach(province => { var option = document.createElement("option"); option.value = province.code; // 根据你的数据结构确定省份的id字段 option.text = province.name; // 根据你的数据结构确定省份的name字段 provinceSelect.appendChild(option); }); },function(data){ Feng.error("下拉失败!" + data.responseJSON.message + "!"); }); ajax.start(); provinceSelect.addEventListener("change", queryCity); } // 获取城市数据 function queryCity() { var selectedProvinceId = this.value; // 获取选择的省份ID // 发送AJAX请求到后台获取对应省份的城市数据 // 假设后台返回的数据格式为一个包含城市ID和名称的数组 var citySelect = document.getElementById("city"); citySelect.innerHTML = ""; var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity1", function(data){ data.forEach(province => { var content='<option value="">选择市</option>'; $.each(data, function(k,v) { content += "<option value='"+v.code+"'>"+v.name+"</option>"; }); $("#city").empty().append(content); }); },function(data){ console.log('data:',data) Feng.error("获取失败!" + data.responseJSON.message + "!"); }); ajax.set('province',selectedProvinceId); ajax.start(); } $(function () { var defaultColunms = TStoreProvince.initColumn(); var table = new BSTable(TStoreProvince.id, "/tCouponManage/siteDetailsOfSearch", defaultColunms); table.setPaginationType("client"); TStoreProvince.table = table.init(); queryProvince(); }); cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/TStoreInfo.js
New file @@ -0,0 +1,175 @@ /** * 管理初始化 */ var TStoreProvince = { id: "TStoreProvinceTable", //表格id seItem: null, //选中的条目 table: null, layerIndex: -1, storeList: [] }; /** * 初始化表格的列 */ TStoreProvince.initColumn = function () { return [ {field: 'selectItem', checkbox: true}, {title: '序号', field: 'id', visible: false, align: 'center', valign: 'middle'}, {title: '姓名', field: 'name', visible: true, align: 'center', valign: 'middle'}, {title: '性别', field: 'sex', visible: true, align: 'center', valign: 'middle'}, {title: '年龄', field: 'age', visible: true, align: 'center', valign: 'middle'}, {title: '联系电话', field: 'phone', visible: true, align: 'center', valign: 'middle'}, {title: '身份证号', field: 'idCard', visible: true, align: 'center', valign: 'middle'}, ]; }; /** * 检查是否选中 */ TStoreProvince.check = function () { var selected = $('#' + this.id).bootstrapTable('getSelections'); if(selected.length == 0){ Feng.info("请先选中表格中的某一记录!"); return false; }else{ TStoreProvince.seItem = selected[0]; return true; } }; TStoreProvince.storeOfClosePage = function (){ parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id)); } TStoreProvince.saveSelectStores = function (){ var selected = $('#' + this.id).bootstrapTable('getSelections'); if (selected.length == 0) { Feng.info("请先选中表格中的某一记录!"); return false; } var arr = []; var name =''; for(var i in selected){ if(typeof selected[i].id != "undefined"){ console.log( selected[i].id,55555) name = selected[0].accountName arr.push({ id: selected[i].id, name: typeof selected[i].name != "undefined" ? selected[i].name : "", phone: typeof selected[i].phone != "undefined" ? selected[i].phone : "", sex: typeof selected[i].sex != "undefined" ? selected[i].sex : "", age:typeof selected[i].age != "undefined" ? selected[i].age : "", }) } } window.parent.WorldCupGameStatisticsListInfo.selecUserOpt(arr); TStoreProvince.storeOfClosePage(); } TStoreProvince.saveSelectStores1 = function (){ var selected = $('#' + this.id).bootstrapTable('getSelections'); if (selected.length == 0) { Feng.info("请先选中表格中的某一记录!"); return false; } var arr = []; var name =''; for(var i in selected){ if(typeof selected[i].id != "undefined"){ name = selected[0].accountName arr.push({ id: selected[i].id, name: typeof selected[i].name != "undefined" ? selected[i].name : "", phone: typeof selected[i].phone != "undefined" ? selected[i].phone : "", sex: typeof selected[i].sex != "undefined" ? selected[i].sex : "", age:typeof selected[i].age != "undefined" ? selected[i].age : "", }) } } window.parent.WorldCupGameStatisticsListInfo.selecUserOpt1(arr); TStoreProvince.storeOfClosePage(); } TStoreProvince.storeOfClosePage = function (){ parent.layer.close(parent.layer.getFrameIndex(window.frameElement.id)); } /** * 查询列表 */ TStoreProvince.search = function () { var queryData = {}; queryData['provinceId'] = $("#province").val(); queryData['cityId'] = $("#city").val(); queryData['operatorId'] = $("#account").val(); queryData['storeName'] = $("#storeName").val(); TStoreProvince.table.refresh({query: queryData}); }; /** * 重置搜索 */ TStoreProvince.resetSearch = function () { $("#province").val('') $("#city").val('') $("#storeName").val('') TStoreProvince.search(); }; function queryProvince(){ // 发送AJAX请求到后台获取省份数据 // 假设后台返回的数据格式为一个包含省份ID和名称的数组 var provinceSelect = document.getElementById("province"); var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getProvince", function(data){ data.forEach(province => { var option = document.createElement("option"); option.value = province.code; // 根据你的数据结构确定省份的id字段 option.text = province.name; // 根据你的数据结构确定省份的name字段 provinceSelect.appendChild(option); }); },function(data){ Feng.error("下拉失败!" + data.responseJSON.message + "!"); }); ajax.start(); provinceSelect.addEventListener("change", queryCity); } // 获取城市数据 function queryCity() { var selectedProvinceId = this.value; // 获取选择的省份ID // 发送AJAX请求到后台获取对应省份的城市数据 // 假设后台返回的数据格式为一个包含城市ID和名称的数组 var citySelect = document.getElementById("city"); citySelect.innerHTML = ""; var ajax = new $ax(Feng.ctxPath + "/tCouponManage/getCity1", function(data){ data.forEach(province => { var content='<option value="">选择市</option>'; $.each(data, function(k,v) { content += "<option value='"+v.code+"'>"+v.name+"</option>"; }); $("#city").empty().append(content); }); },function(data){ console.log('data:',data) Feng.error("获取失败!" + data.responseJSON.message + "!"); }); ajax.set('province',selectedProvinceId); ajax.start(); } $(function () { var defaultColunms = TStoreProvince.initColumn(); var table = new BSTable(TStoreProvince.id, "/worldCupRecords/userDetailsOfSearch?id="+$("#id").val(), defaultColunms); table.setPaginationType("client"); TStoreProvince.table = table.init(); }); cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/userGameRecord.js
@@ -18,9 +18,71 @@ {title: '参与比赛', field: 'name', visible: true, align: 'center', valign: 'middle'}, {title: '比赛时间', field: 'startTime', visible: true, align: 'center', valign: 'middle'}, {title: '比分', field: 'score', visible: true, align: 'center', valign: 'middle'}, {title: '结果', field: 'matchResult', visible: true, align: 'center', valign: 'middle'} {title: '结果', field: 'matchResult', visible: true, align: 'center', valign: 'middle'}, {title: '操作', field: 'id', visible: true, align: 'center', valign: 'middle', formatter:function (data, item) { return '<a href="#" onclick="UserGameRecord.changeScore(\'' + data + '\',' + item.blue + ',' + item.red + ')" style="color:blue;">修改比分</a>'; } }, ]; }; UserGameRecord.changeScore = function (id, blue, red) { const str = '<div class="row">\n' + ' <div class="form-group" style="height: 50px;">\n' + ' <label class="col-sm-3 control-label" style="text-align: right;">蓝方得分:</label>' + ' <div class="col-sm-8">\n' + ' <input id="blue" class="form-control" type="number" min="0" value="' + blue + '"/>\n' + ' </div>\n' + ' </div>\n' + ' <div class="form-group" style="height: 50px;">\n' + ' <label class="col-sm-3 control-label" style="text-align: right;">红方得分:</label>' + ' <div class="col-sm-8">\n' + ' <input id="red" class="form-control" type="number" min="0" value="' + red + '"/>\n' + ' </div>\n' + ' </div>\n' + ' </div>' layer.open({ type: 1 ,title: '修改比分' ,area: ['500px', '300px'] ,offset: 'auto' //具体配置参考:http://www.layui.com/doc/modules/layer.html#offset ,id: 'layerDemo' //防止重复弹出 ,content: '<div style="padding: 20px">' + str + '</div>' ,btnAlign: 'c' //按钮居中 ,shade: 0.5 //不显示遮罩 ,btn: ['确认', '关闭'] ,yes: function (){ let blue = $('#blue').val(); let red = $('#red').val(); if(null == blue || '' == blue){ Feng.error("请填写有效的得分"); return } if(null == red || '' == red){ Feng.error("请填写有效的得分"); return } //提交信息 var ajax = new $ax(Feng.ctxPath + "/worldCupRecords/changeScore", function (res) { if (res.code==200){ Feng.success("修改成功!"); WorldCupGameStatisticsListInfo.search(); layer.closeAll(); }else{ Feng.error(res.msg); } }, function (data) { Feng.error("修改失败!" + data.responseJSON.message + "!"); }); ajax.set({ 'id': id, 'blue': blue, 'red': red }); ajax.start(); } }); }; /** * 检查是否选中 cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupGameStatisticsListInfo.js
@@ -6,7 +6,10 @@ seItem: null, //选中的条目 table: null, layerIndex: -1, storeIds: [], storeIds1: [], }; /** * 初始化表格的列 */ @@ -100,8 +103,89 @@ }); }; WorldCupGameStatisticsListInfo.selecUserOpt = function (arrays){ //获取所有的值 var subArr= this.storeIds; $(".timeClass").each(function () { subArr.push($(this).find("input[name*='id']").val()); }); let size = subArr.length console.log(size) var str = ''; for(var i in arrays){ var b = true; for(var j in subArr){ if(arrays[i].id === Number(subArr[j])){ b = false; break } } if(b){ this.storeIds.push(arrays[i].id) str += '<tr class="timeClass">' + '<td><input type="hidden" id="id" name="id" value="'+arrays[i].id+'"><input type="hidden" id="id" name="id" value="'+arrays[i].id+'">' + arrays[i].id + '</td>' + '<td><input type="hidden" id="name" name="name" value="'+arrays[i].name+'">' + arrays[i].name + '</td>' + '<td><input type="hidden" id="phone" name="phone" value="'+arrays[i].phone+'">' + arrays[i].phone + '<td><input type="hidden" id="sex" name="sex" value="'+arrays[i].sex+'">' + arrays[i].sex + '<td><input type="hidden" id="age" name="age" value="'+arrays[i].age+'">' + arrays[i].age + '</td><td><button onclick="deleteSub(this)">移除</button></td></tr>'; } } console.log("添加门店后的场地数组和门店数组") console.log(this.storeIds) console.log(this.siteIds) $("#coun").append(str); } WorldCupGameStatisticsListInfo.selecUserOpt1 = function (arrays){ console.log(this.storeIds1,111) //获取所有的值 var subArr= this.storeIds1; $(".timeClass1").each(function () { subArr.push($(this).find("input[name*='id']").val()); }); var str = ''; for(var i in arrays){ var b = true; for(var j in subArr){ if(arrays[i].id === Number(subArr[j])){ b = false; break } } console.log(b,3333) if(b){ this.storeIds1.push(arrays[i].id) str += '<tr class="timeClass1">' + '<td><input type="hidden" id="id" name="id" value="'+arrays[i].id+'"><input type="hidden" id="id" name="id" value="'+arrays[i].id+'">' + arrays[i].id + '</td>' + '<td><input type="hidden" id="name" name="name" value="'+arrays[i].name+'">' + arrays[i].name + '</td>' + '<td><input type="hidden" id="phone" name="phone" value="'+arrays[i].phone+'">' + arrays[i].phone + '<td><input type="hidden" id="sex" name="sex" value="'+arrays[i].sex+'">' + arrays[i].sex + '<td><input type="hidden" id="age" name="age" value="'+arrays[i].age+'">' + arrays[i].age + '</td><td><button onclick="deleteSub1(this)">移除</button></td></tr>'; } } console.log("添加门店后的场地数组和门店数组") console.log(this.storeIds1) $("#coun1").append(str); } function deleteSub(e) { console.log(e); var row = $(e).closest('tr'); var value = row.find('#id').val(); WorldCupGameStatisticsListInfo.storeIds.splice(WorldCupGameStatisticsListInfo.storeIds.indexOf(parseInt(value)), 1) $(e).parent().parent().remove(); console.log('storeIds',WorldCupGameStatisticsListInfo.storeIds) } function deleteSub1(e) { console.log(e); var row = $(e).closest('tr'); var value = row.find('#id').val(); WorldCupGameStatisticsListInfo.storeIds1.splice(WorldCupGameStatisticsListInfo.storeIds1.indexOf(parseInt(value)), 1) $(e).parent().parent().remove(); console.log('storeIds',WorldCupGameStatisticsListInfo.storeIds1) } /** * 关闭此对话框 @@ -109,6 +193,98 @@ WorldCupGameStatisticsListInfo.close = function() { parent.layer.close(window.parent.WorldCupGameStatisticsInfo.layerIndex); }; WorldCupGameStatisticsListInfo.close1 = function() { // 方法1: 通过parent直接关闭 if (window.parent && window.parent.layer) { var index = window.parent.layer.getFrameIndex(window.name); window.parent.layer.close(index); } }; WorldCupGameStatisticsListInfo.saveData = function() { // 拿到timeClass中的Id var subArr = []; $(".timeClass").each(function () { subArr.push($(this).find("input[name*='id']").val()); }); console.log(subArr) var subArr1 = []; $(".timeClass1").each(function () { subArr1.push($(this).find("input[name*='id']").val()); }); if(subArr.length==0){ Feng.error("请选择红方人员!"); return; } if(subArr1.length==0){ Feng.error("请选择蓝方人员!"); return; } if(subArr.length>6){ Feng.error("每组人员最多5人参赛"); return; } if(subArr1.length>6){ Feng.error("每组人员最多5人参赛"); return; } // 判断2个数组是否有交集 for(var i=0;i<subArr.length;i++){ for(var j=0;j<subArr1.length;j++){ if(subArr[i]==subArr1[j]){ Feng.error("请勿选择相同的人员!"); return; } } } // subArr1 用,拼接 var redStr = subArr.join(","); var blueStr = subArr1.join(","); // 取比赛时间 var time = $("#time").val(); if(time==null||time==""){ Feng.error("请选择比赛时间!"); return; } // 取比分 var blueScore = $("#blueScore").val(); if(blueScore==null||blueScore==""){ Feng.error("请填写蓝方比分!"); return; } var redScore = $("#redScore").val(); if(redScore==null||redScore==""){ Feng.error("请填写红方比分!"); return; } //提交信息 var ajax = new $ax(Feng.ctxPath + "/worldCupRecords/savaData1", function(data){ Feng.success("保存成功!"); window.parent.TVerified.table.refresh(); TVerifiedInfoDlg.close(); },function(data){ Feng.error("保存失败!" + data.responseJSON.message + "!"); }); ajax.set({ 'id': $("#id").val(), 'redStr': redStr, 'blueStr': blueStr, 'time': time, 'blueScore': blueScore, 'redScore': redScore, }); ajax.start(); }; WorldCupGameStatisticsListInfo.search = function () { var queryData = {}; cloud-server-management/src/main/webapp/static/modular/system/worldCupRecords/worldCupRecords.js
@@ -44,6 +44,27 @@ }); this.layerIndex = index; } /** * 新增赛事记录 * @returns {boolean} */ WorldCupRecords.addWorldCupRecordsInfo = function (){ var selected = $('#WorldCupRecordsTable2').bootstrapTable('getSelections'); if(selected.length == 0){ Feng.info("请先选中表格中的某一记录!"); return false; } let seItem2 = selected[0]; var index = layer.open({ type: 2, title: '添加赛事记录', area: ['100%', '100%'], //宽高 fix: false, //不固定 maxmin: true, content: Feng.ctxPath + '/worldCupRecords/addWorldCupGameStatisticsInfo?id=' + seItem2.id }); this.layerIndex = index; } WorldCupRecords.openUserGameRecord = function (){ var index = layer.open({ @@ -77,12 +98,14 @@ var queryData = {}; queryData['province'] = $("#province").val(); queryData['city'] =$("#city").val(); queryData['time'] =$("#time").val(); WorldCupRecords.table1.refresh({query: queryData}); }; WorldCupRecords.resetSearch1 = function () { $("#province").val(""); $("#city").val(""); $("#time").val(""); WorldCupRecords.search1(); };