package com.dsh.communityWorldCup.service.impl;
|
|
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
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.model.AppUser;
|
import com.dsh.communityWorldCup.feignclient.account.model.TStudent;
|
import com.dsh.communityWorldCup.feignclient.competition.ParticipantClient;
|
import com.dsh.communityWorldCup.feignclient.competition.model.Participant;
|
import com.dsh.communityWorldCup.feignclient.course.CoursePackageOrderStudentClient;
|
import com.dsh.communityWorldCup.feignclient.course.model.CoursePackageOrderStudent;
|
import com.dsh.communityWorldCup.feignclient.other.StoreClient;
|
import com.dsh.communityWorldCup.feignclient.other.model.Store;
|
import com.dsh.communityWorldCup.mapper.WorldCupMapper;
|
import com.dsh.communityWorldCup.model.*;
|
import com.dsh.communityWorldCup.service.*;
|
import com.dsh.communityWorldCup.util.*;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import java.math.BigDecimal;
|
import java.math.RoundingMode;
|
import java.text.SimpleDateFormat;
|
import java.util.*;
|
import java.util.stream.Collectors;
|
|
/**
|
* @author zhibing.pu
|
* @Date 2024/2/18 17:11
|
*/
|
@Service
|
public class WorldCupServiceImpl extends ServiceImpl<WorldCupMapper, WorldCup> implements IWorldCupService {
|
|
@Autowired
|
private IWorldCupCompetitorService worldCupCompetitorService;
|
|
@Autowired
|
private IWorldCupPaymentParticipantService worldCupPaymentParticipantService;
|
|
@Resource
|
private StoreClient storeClient;
|
|
@Autowired
|
private IWorldCupStoreService worldCupStoreService;
|
|
@Resource
|
private StudentClient studentClient;
|
|
@Resource
|
private ParticipantClient participantClient;
|
|
@Autowired
|
private IWorldCupPaymentService worldCupPaymentService;
|
|
@Autowired
|
private PayMoneyUtil payMoneyUtil;
|
|
@Resource
|
private AppUserClient appUserClient;
|
|
@Resource
|
private CoursePackageOrderStudentClient coursePackageOrderStudentClient;
|
|
|
|
|
|
/**
|
* 裁判获取世界杯列表数据
|
* @return
|
*/
|
@Override
|
public List<WorldCupListCoachVo> getWorldCupListCoach(WorldCupListCoach worldCupListCoach) {
|
List<WorldCupListCoachVo> worldCupListCoach1 = this.baseMapper.getWorldCupListCoach(worldCupListCoach);
|
//对查询结果进行距离排序(直线距离)
|
Collections.sort(worldCupListCoach1, new Comparator<WorldCupListCoachVo>() {
|
@Override
|
public int compare(WorldCupListCoachVo o1, WorldCupListCoachVo o2) {
|
Map<String, Double> distance1 = GeodesyUtil.getDistance(o1.getLon() + "," + o1.getLat(), worldCupListCoach.getLon() + "," + worldCupListCoach.getLat());
|
Double wgs841 = distance1.get("WGS84");
|
Map<String, Double> distance2 = GeodesyUtil.getDistance(o2.getLon() + "," + o2.getLat(), worldCupListCoach.getLon() + "," + worldCupListCoach.getLat());
|
Double wgs842 = distance2.get("WGS84");
|
return wgs841.compareTo(wgs842);
|
}
|
});
|
return worldCupListCoach1;
|
}
|
|
|
/**
|
* 开启世界杯赛事
|
* @param startWorldCup
|
* @return
|
*/
|
@Override
|
public ResultUtil startWorldCup(StartWorldCup startWorldCup) {
|
//先检测当前是否已经结束
|
|
WorldCup worldCup = this.getById(startWorldCup.getWorldCupId());
|
if(worldCup.getStartTime().getTime() > System.currentTimeMillis()){
|
return ResultUtil.error("赛事还未开始");
|
}
|
if(worldCup.getEndTime().getTime() <= System.currentTimeMillis()){
|
return ResultUtil.error("赛事已结束");
|
}
|
if(worldCup.getStatus() == 4){
|
return ResultUtil.error("赛事已取消");
|
}
|
String people = startWorldCup.getPeople();
|
JSONArray jsonArray = JSON.parseArray(people);
|
String timeStr = UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(3);
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
Integer participantType = jsonObject.getInteger("participantType");
|
String type = jsonObject.getString("type");
|
WorldCupCompetitor worldCupCompetitor = new WorldCupCompetitor();
|
worldCupCompetitor.setCode(timeStr);
|
worldCupCompetitor.setWorldCupId(startWorldCup.getWorldCupId());
|
worldCupCompetitor.setParticipantType(participantType);
|
WorldCupPaymentParticipant worldCupPaymentParticipant = worldCupPaymentParticipantService.getWorldCupPaymentParticipant(startWorldCup.getWorldCupId(), participantType, id);
|
worldCupCompetitor.setAppUserId(worldCupPaymentParticipant.getAppUserId());
|
worldCupCompetitor.setParticipantId(id);
|
worldCupCompetitor.setParticipant("blue".equals(type) ? 1 : 2);
|
worldCupCompetitor.setStartTime(new Date());
|
worldCupCompetitorService.save(worldCupCompetitor);
|
}
|
//调接口开启游戏
|
|
return ResultUtil.success();
|
}
|
|
|
/**
|
* 获取用户完成赛事没有提示的数据
|
* @param uid
|
* @return
|
*/
|
@Override
|
public Integer getCompletedWorldCupTips(Integer uid) {
|
int count = worldCupCompetitorService.count(new QueryWrapper<WorldCupCompetitor>()
|
.eq("appUserId", uid).eq("tips", 0).isNotNull("endTime"));
|
return count;
|
}
|
|
|
/**
|
* 获取社区世界杯列表
|
* @param worldCupList
|
* @return
|
*/
|
@Override
|
public List<WorldCupListVo> getWorldCupList(WorldCupList worldCupList) {
|
//没有筛选门店,默认使用当前门店
|
if(null == worldCupList.getStoreId()){
|
worldCupList.setStoreId(worldCupList.getStoreId());
|
}
|
List<WorldCupListVo> worldCupList1 = this.baseMapper.getWorldCupList(worldCupList);
|
for (WorldCupListVo worldCupListVo : worldCupList1) {
|
Integer id = Integer.valueOf(worldCupListVo.getId());
|
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){
|
int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
|
heat += count;
|
}
|
worldCupListVo.setHeat(heat);
|
String lat = worldCupListVo.getLat();
|
String lon = worldCupListVo.getLon();
|
Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, worldCupList.getLon() + "," + worldCupList.getLat());
|
worldCupListVo.setDistance(distance.get("WGS84"));
|
}
|
|
|
if(null != worldCupList.getSort()){
|
Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() {
|
@Override
|
public int compare(WorldCupListVo o1, WorldCupListVo o2) {
|
if(worldCupList.getSort() == 1){
|
return o1.getHeat().compareTo(o2.getHeat());
|
}
|
if(worldCupList.getSort() == 2){
|
return o1.getHeat().compareTo(o2.getHeat()) * -1;
|
}
|
return 0;
|
}
|
});
|
}else{
|
Collections.sort(worldCupList1, new Comparator<WorldCupListVo>() {
|
@Override
|
public int compare(WorldCupListVo o1, WorldCupListVo o2) {
|
return o1.getDistance().compareTo(o2.getDistance()) * -1;
|
}
|
});
|
}
|
|
return worldCupList1;
|
}
|
|
|
/**
|
* 获取世界杯详情
|
* @param id
|
* @return
|
*/
|
@Override
|
public WorldCupInfo getWorldCupInfo(Integer id, String lon, String lat) {
|
WorldCupInfo worldCupInfo = this.baseMapper.getWorldCupInfo(id);
|
List<WorldCupStore> worldCupStores = worldCupStoreService.list(new QueryWrapper<WorldCupStore>().eq("worldCupId", id));
|
JSONArray jsonArray = new JSONArray();
|
for (WorldCupStore worldCupStore : worldCupStores) {
|
Store store = storeClient.queryStoreById(worldCupStore.getStoreId());
|
jsonArray.add(store.getName());
|
}
|
worldCupInfo.setStores(jsonArray.toJSONString());
|
|
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){
|
int count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
|
heat += count;
|
}
|
worldCupInfo.setHeat(heat);
|
ArrayList<Map<String, Object>> objects = new ArrayList<>();
|
for (WorldCupStore worldCupStore : worldCupStores) {
|
HashMap<String, Object> map = new HashMap<>();
|
Store store = storeClient.queryStoreById(worldCupStore.getStoreId());
|
map.put("name", store.getName());
|
|
|
String str = store.getAddress();
|
str = str.substring(str.indexOf("省") + 1);
|
|
// 去掉第一个“市”及之前的字符串
|
str = str.substring(str.indexOf("市") + 1);
|
|
// 去掉第一个“区”及之前的字符串
|
str = str.substring(str.indexOf("区") + 1);
|
|
map.put("address", str);
|
map.put("storeLon", store.getLon());
|
map.put("storeLat", store.getLat());
|
map.put("storeCoverDrawing", store.getCoverDrawing());
|
if (ToolUtil.isNotEmpty(lon) && ToolUtil.isNotEmpty(lat)) {
|
Map<String, Double> distance = GeodesyUtil.getDistance(lon + "," + lat, store.getLon() + "," + store.getLat());
|
double wgs84 = new BigDecimal(distance.get("WGS84")).divide(new BigDecimal(1000)).setScale(2, RoundingMode.HALF_EVEN).doubleValue();
|
map.put("distance", wgs84);
|
}
|
objects.add(map);
|
}
|
worldCupInfo.setStoreInfos(objects);
|
return worldCupInfo;
|
}
|
|
|
/**
|
* 报名前校验支付方式
|
* @param checkPaymentMethod
|
* @return
|
*/
|
@Override
|
public CheckPaymentMethodVo checkPaymentMethod(CheckPaymentMethod checkPaymentMethod) {
|
WorldCup worldCup = this.getById(checkPaymentMethod.getId());
|
JSONArray jsonArray = JSON.parseArray(checkPaymentMethod.getIds());
|
CheckPaymentMethodVo checkPaymentMethodVo = new CheckPaymentMethodVo();
|
AppUser appUser = appUserClient.getAppUser(checkPaymentMethod.getUid());
|
BigDecimal multiply = new BigDecimal(jsonArray.size()).multiply(new BigDecimal(worldCup.getPaiCoin()));
|
if(appUser.getPlayPaiCoins() < multiply.intValue()){
|
checkPaymentMethodVo.setPaiCoin(0);
|
}else{
|
checkPaymentMethodVo.setPaiCoin(1);
|
}
|
|
int classHour = 1;
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
//是否是学员(0=否,1=是)
|
Integer isStudent = jsonObject.getInteger("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()){
|
classHour = 0;
|
break;
|
}
|
}
|
checkPaymentMethodVo.setClassHour(classHour);
|
return checkPaymentMethodVo;
|
}
|
|
|
|
|
|
/**
|
* 报名世界杯
|
* @param paymentWorldCup
|
* @return
|
*/
|
@Override
|
public ResultUtil paymentWorldCup(PaymentWorldCup paymentWorldCup) {
|
WorldCup worldCup = this.getById(paymentWorldCup.getId());
|
if(null == worldCup){
|
return ResultUtil.error("报名数据异常");
|
}
|
if(System.currentTimeMillis() > worldCup.getRegistrationClosingTime().getTime()){
|
return ResultUtil.error("报名时间已结束,无法完成报名");
|
}
|
if(System.currentTimeMillis() > worldCup.getEndTime().getTime()){
|
return ResultUtil.error("世界杯赛事已结束,无法完成报名");
|
}
|
String ids = paymentWorldCup.getIds();
|
JSONArray jsonArray = JSON.parseArray(ids);
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy");
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
//是否是学员(0=否,1=是)
|
Integer isStudent = jsonObject.getInteger("isStudent");
|
if(isStudent == 1){
|
TStudent tStudent = studentClient.queryById(id);
|
if(worldCup.getStartAge() > Integer.valueOf(sdf.format(tStudent.getBirthday()))){
|
return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求");
|
}
|
if(worldCup.getEndAge() < Integer.valueOf(sdf.format(tStudent.getBirthday()))){
|
return ResultUtil.error("【" + tStudent.getName() + "】年龄不符合要求");
|
}
|
}else{
|
Participant participant = participantClient.getParticipant(id);
|
if(worldCup.getStartAge() > Integer.valueOf(sdf.format(participant.getBirthday()))){
|
return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求");
|
}
|
if(worldCup.getEndAge() < Integer.valueOf(sdf.format(participant.getBirthday()))){
|
return ResultUtil.error("【" + participant.getName() + "】年龄不符合要求");
|
}
|
}
|
}
|
|
//开始支付操作
|
ResultUtil payment = null;
|
try {
|
payment = payment(worldCup, paymentWorldCup);
|
} catch (Exception e) {
|
throw new RuntimeException(e);
|
}
|
return payment;
|
}
|
|
|
/**
|
* 支付逻辑
|
* @param worldCup
|
* @param paymentWorldCup
|
* @return
|
* @throws Exception
|
*/
|
private ResultUtil payment(WorldCup worldCup, PaymentWorldCup paymentWorldCup) throws Exception {
|
WorldCupPayment worldCupPayment = new WorldCupPayment();
|
worldCupPayment.setCode(UUIDUtil.getTimeStr() + UUIDUtil.getNumberRandom(5));
|
worldCupPayment.setWorldCupId(paymentWorldCup.getId());
|
worldCupPayment.setAppUserId(paymentWorldCup.getUid());
|
worldCupPayment.setPayType(paymentWorldCup.getPayType());
|
worldCupPayment.setPayStatus(1);
|
worldCupPayment.setState(1);
|
worldCupPayment.setCreateTime(new Date());
|
worldCupPayment.setEntrant(paymentWorldCup.getIds());
|
int num = JSON.parseArray(paymentWorldCup.getIds()).size();
|
//不免费
|
if(worldCup.getPayType() != 0){
|
Integer payType = paymentWorldCup.getPayType();
|
//微信
|
if(payType == 1){
|
worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
|
worldCupPaymentService.save(worldCupPayment);
|
return payMoneyUtil.weixinpay("社区世界杯报名", "", worldCupPayment.getCode(),
|
worldCup.getCash().toString(), "/base/worldCup/wxPayWorldCupCallback", "APP", "");
|
}
|
//支付宝
|
if(payType == 2){
|
worldCupPayment.setAmount(new BigDecimal(num).multiply(worldCup.getCash()));
|
worldCupPaymentService.save(worldCupPayment);
|
return payMoneyUtil.alipay("2088330203191220", "社区世界杯报名", "世界杯报名", "", worldCupPayment.getCode(),
|
worldCup.getCash().toString(), "/base/worldCup/aliPayWorldCupCallback");
|
}
|
//玩湃币
|
if(payType == 3){
|
AppUser appUser = appUserClient.getAppUser(paymentWorldCup.getUid());
|
BigDecimal multiply = new BigDecimal(num).multiply(new BigDecimal(worldCup.getPaiCoin()));
|
if(appUser.getPlayPaiCoins() < multiply.intValue()){
|
return ResultUtil.error("报名失败,玩湃币不足,请充值!");
|
}
|
worldCupPayment.setAmount(multiply);
|
worldCupPayment.setPayStatus(2);
|
worldCupPayment.setPayTime(new Date());
|
worldCupPaymentService.save(worldCupPayment);
|
|
appUser.setPlayPaiCoins(appUser.getPlayPaiCoins() - multiply.intValue());
|
appUserClient.updateAppUser(appUser);
|
|
//添加报名明细
|
String ids = paymentWorldCup.getIds();
|
JSONArray jsonArray = JSON.parseArray(ids);
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
//是否是学员(0=否,1=是)
|
Integer isStudent = jsonObject.getInteger("isStudent");
|
|
WorldCupPaymentParticipant worldCupPaymentParticipant = new WorldCupPaymentParticipant();
|
worldCupPaymentParticipant.setWorldCupId(paymentWorldCup.getId());
|
worldCupPaymentParticipant.setWorldCupPaymentId(worldCupPayment.getId());
|
worldCupPaymentParticipant.setAppUserId(paymentWorldCup.getUid());
|
worldCupPaymentParticipant.setParticipantType(isStudent == 0 ? 2 : 1);
|
worldCupPaymentParticipant.setParticipantId(id);
|
worldCupPaymentParticipantService.save(worldCupPaymentParticipant);
|
}
|
return ResultUtil.success();
|
}
|
//课时
|
if(payType == 4){
|
BigDecimal multiply = new BigDecimal(num).multiply(new BigDecimal(worldCup.getClassHour()));
|
String ids = paymentWorldCup.getIds();
|
JSONArray jsonArray = JSON.parseArray(ids);
|
List<DeductionClassHour> list = new ArrayList<>();
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
//是否是学员(0=否,1=是)
|
Integer isStudent = jsonObject.getInteger("isStudent");
|
if(0 == isStudent){
|
return ResultUtil.error("非学员无法使用课时报名");
|
}
|
List<CoursePackageOrderStudent> coursePackageOrderStudent = coursePackageOrderStudentClient.getCoursePackageOrderStudent(id);
|
int sum = coursePackageOrderStudent.stream().mapToInt(CoursePackageOrderStudent::getLaveClassHours).sum();
|
if(sum < worldCup.getClassHour()){
|
return ResultUtil.error("报名失败,课时不足,请续课!");
|
}
|
|
//构建扣减课时数据
|
Integer classHour = worldCup.getClassHour();
|
for (CoursePackageOrderStudent packageOrderStudent : coursePackageOrderStudent) {
|
Integer laveClassHours = packageOrderStudent.getLaveClassHours();
|
|
DeductionClassHour deductionClassHour = new DeductionClassHour();
|
if(classHour.compareTo(laveClassHours) > 0){
|
//不够扣除,轮询直到扣除完
|
classHour = classHour - laveClassHours;
|
deductionClassHour.setId(packageOrderStudent.getId());
|
deductionClassHour.setClassHour(laveClassHours);
|
deductionClassHour.setStudentId(packageOrderStudent.getStudentId());
|
deductionClassHour.setCoursePackageId(packageOrderStudent.getCoursePackageId());
|
list.add(deductionClassHour);
|
}else{
|
//够扣除直接跳出进行下个学员
|
deductionClassHour.setId(packageOrderStudent.getId());
|
deductionClassHour.setClassHour(classHour);
|
deductionClassHour.setStudentId(packageOrderStudent.getStudentId());
|
deductionClassHour.setCoursePackageId(packageOrderStudent.getCoursePackageId());
|
list.add(deductionClassHour);
|
break;
|
}
|
}
|
}
|
|
//扣减课时操作
|
DeductionClassHourList deductionClassHourList = new DeductionClassHourList();
|
deductionClassHourList.setDeductionClassHourList(list);
|
coursePackageOrderStudentClient.deductionClassHour(deductionClassHourList);
|
|
worldCupPayment.setAmount(multiply);
|
worldCupPayment.setPayStatus(2);
|
worldCupPayment.setPayTime(new Date());
|
worldCupPaymentService.save(worldCupPayment);
|
return ResultUtil.success();
|
}
|
}else{
|
worldCupPayment.setPayType(0);
|
worldCupPayment.setAmount(BigDecimal.ZERO);
|
worldCupPayment.setPayStatus(2);
|
worldCupPayment.setPayTime(new Date());
|
worldCupPaymentService.save(worldCupPayment);
|
|
//添加报名明细
|
String ids = paymentWorldCup.getIds();
|
JSONArray jsonArray = JSON.parseArray(ids);
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
//是否是学员(0=否,1=是)
|
Integer isStudent = jsonObject.getInteger("isStudent");
|
|
WorldCupPaymentParticipant worldCupPaymentParticipant = new WorldCupPaymentParticipant();
|
worldCupPaymentParticipant.setWorldCupId(paymentWorldCup.getId());
|
worldCupPaymentParticipant.setWorldCupPaymentId(worldCupPayment.getId());
|
worldCupPaymentParticipant.setAppUserId(paymentWorldCup.getUid());
|
worldCupPaymentParticipant.setParticipantType(isStudent == 0 ? 2 : 1);
|
worldCupPaymentParticipant.setParticipantId(id);
|
worldCupPaymentParticipantService.save(worldCupPaymentParticipant);
|
}
|
return ResultUtil.success();
|
}
|
return ResultUtil.success();
|
}
|
|
|
/**
|
* 第三方支付完成后的处理逻辑
|
* @param code
|
* @param outTradeNo
|
* @return
|
*/
|
@Override
|
public ResultUtil paymentWorldCupCallback(String code, String outTradeNo) {
|
WorldCupPayment worldCupPayment = worldCupPaymentService.getOne(new QueryWrapper<WorldCupPayment>().eq("code", code));
|
worldCupPayment.setPayStatus(2);
|
worldCupPayment.setPayTime(new Date());
|
worldCupPaymentService.updateById(worldCupPayment);
|
|
//添加报名明细
|
String ids = worldCupPayment.getEntrant();
|
JSONArray jsonArray = JSON.parseArray(ids);
|
for (int i = 0; i < jsonArray.size(); i++) {
|
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
Integer id = jsonObject.getInteger("id");
|
//是否是学员(0=否,1=是)
|
Integer isStudent = jsonObject.getInteger("isStudent");
|
|
WorldCupPaymentParticipant worldCupPaymentParticipant = new WorldCupPaymentParticipant();
|
worldCupPaymentParticipant.setWorldCupId(worldCupPayment.getWorldCupId());
|
worldCupPaymentParticipant.setWorldCupPaymentId(worldCupPayment.getId());
|
worldCupPaymentParticipant.setAppUserId(worldCupPayment.getAppUserId());
|
worldCupPaymentParticipant.setParticipantType(isStudent == 0 ? 2 : 1);
|
worldCupPaymentParticipant.setParticipantId(id);
|
worldCupPaymentParticipantService.save(worldCupPaymentParticipant);
|
}
|
return ResultUtil.success();
|
}
|
|
|
/**
|
* 获取比赛管理列表数据
|
* @param worldCupListAll
|
* @return
|
*/
|
@Override
|
public Map<String, Object> getWorldCupListAll(WorldCupListAll worldCupListAll) {
|
Map<String, Object> map = new HashMap<>();
|
List<Map<String, Object>> list = this.baseMapper.getWorldCupListAll(worldCupListAll);
|
for (Map<String, Object> map1 : list) {
|
String maxPeople = map1.get("maxPeople").toString();
|
Integer id = Integer.valueOf(map1.get("id").toString());
|
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){
|
count = worldCupPaymentParticipantService.count(new QueryWrapper<WorldCupPaymentParticipant>().in("worldCupPaymentId", collect));
|
}
|
map1.put("maxPeople", maxPeople + " - " + count);
|
}
|
Integer count = this.baseMapper.getWorldCupListAllCount(worldCupListAll);
|
map.put("rows", list);
|
map.put("total", count);
|
return map;
|
}
|
}
|