搭建学校oj平台-后端创建比赛用户

后端创建比赛用户

gitee仓库代码在文章尾部

Mysql新建competiton_user表

create table competition_user
(
	id int auto_increment,
	competition_id int null,
	user_id int null,
	user_name varchar(100) not null,
	user_photo varchar(1000) null,
	score int default 0 null,
	score1 int default 0 null,
	score2 int default 0 null,
	score3 int default 0 null,
	score4 int default 0 null,
	score5 int default 0 null,
	score6 int default 0 null,
	score7 int default 0 null,
	score8 int default 0 null,
	score9 int default 0 null,
	score10 int default 0 null,
	constraint competition_User_id_uindex
		unique (id)
);

alter table competition_user
	add primary key (id);

后端SpringBoot 创建competitionUser

pojo层

package com.OJ.backend.pojo;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class CompetitionUser {
    @TableId(type = IdType.AUTO)
    private Integer id;
    private Integer competitionId;
    private Integer userId;
    private String userName;
    private String userPhoto;
    private Integer score;
    private Integer score1;
    private Integer score2;
    private Integer score3;
    private Integer score4;
    private Integer score5;
    private Integer score6;
    private Integer score7;
    private Integer score8;
    private Integer score9;
    private Integer score10;
}

mapper层建立

package com.OJ.backend.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.OJ.backend.pojo.CompetitionUser;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface CompetitionUserMapper extends BaseMapper<CompetitionUser> {
}

service层

add操作
package com.OJ.backend.service.competitionUser;

import java.util.Map;

public interface AddCompetitionUserService {
    Map<String,String>addCompetitionUser(Map<String,String>data);
}
getList操作
package com.OJ.backend.service.competitionUser;

import com.alibaba.fastjson2.JSONObject;
import org.springframework.util.MultiValueMap;


public interface GetListCompetitionUserService {
    JSONObject getListCompetitionUser(Integer page, MultiValueMap<String,String> data);
}

service层impl实现

add操作
package com.OJ.backend.service.impl.competitionUser;

import com.OJ.backend.mapper.CompetitionUserMapper;
import com.OJ.backend.pojo.CompetitionUser;
import com.OJ.backend.service.competitionUser.AddCompetitionUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class AddCompetitionUserServiceImpl implements AddCompetitionUserService {
    @Autowired
    private CompetitionUserMapper competitionUserMapper;
    @Override
    public Map<String, String> addCompetitionUser(Map<String, String> data) {
        Map<String,Object>hashmap = new HashMap<>();
        hashmap.put("competition_id", data.get("competition_id"));
        hashmap.put("user_id", data.get("user_id"));
        List<CompetitionUser> list = competitionUserMapper.selectByMap(hashmap);
        Map<String, String> map = new HashMap<>();
        if(list.size()>0){
            map.put("error_message","已经参加比赛");
            return map;
        }
        Integer competitionId = Integer.parseInt(data.get("competition_id"));
        Integer userId = Integer.parseInt(data.get("user_id"));
        CompetitionUser competitionUser = new CompetitionUser();
        competitionUser.setCompetitionId(competitionId);
        competitionUser.setUserId(userId);
        competitionUserMapper.insert(competitionUser);
        map.put("error_message","success");
        return map;
    }
}

getList操作
package com.OJ.backend.service.impl.competitionUser;

import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.OJ.backend.mapper.CompetitionUserMapper;
import com.OJ.backend.pojo.CompetitionUser;
import com.OJ.backend.service.competitionUser.GetListCompetitionUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.MultiValueMap;

import java.util.List;


@Service
public class GetListCompetitionUserServiceImpl implements GetListCompetitionUserService {
    @Autowired
    private CompetitionUserMapper competitionUserMapper;
    @Override
    public JSONObject getListCompetitionUser(Integer page, MultiValueMap<String, String> data) {
        IPage<CompetitionUser> competitionUserIPage = new Page<>(page, 25);
        QueryWrapper<CompetitionUser> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("competition_id",data.getFirst("competition_id")).orderByDesc("score");
        List<CompetitionUser> competitionUsers = competitionUserMapper.selectPage(competitionUserIPage,queryWrapper).getRecords();
        JSONObject resp = new JSONObject();
        resp.put("competitionUsers",competitionUsers);
        resp.put("competitionUsers_count",competitionUserMapper.selectList(queryWrapper).size());
        return resp;
    }
}

controller层

add操作
package com.OJ.backend.controller.competitionUser;

import com.OJ.backend.service.competitionUser.AddCompetitionUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Map;

@RestController
public class AddCompetitionUserController {
    @Autowired
    private AddCompetitionUserService addCompetitionUserService;
    @PostMapping("/api/competition/user/add/")
    public Map<String ,String>addCompetitionUser(@RequestParam Map<String,String>data){
        return addCompetitionUserService.addCompetitionUser(data);
    }
}

getList操作
package com.OJ.backend.controller.competitionUser;

import com.alibaba.fastjson2.JSONObject;
import com.OJ.backend.service.competitionUser.GetListCompetitionUserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.MultiValueMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

import java.util.Objects;

@RestController
public class GetListCompetitionUserController {
    @Autowired
    private GetListCompetitionUserService getListCompetitionUserService;
    @GetMapping("/api/competition/user/getlist/")
    public JSONObject getListCompetitionUser(@RequestParam MultiValueMap<String,String> data){
        Integer page = Integer.parseInt(Objects.requireNonNull(data.getFirst("page")));
        return getListCompetitionUserService.getListCompetitionUser(page,data);
    }
}

完结

上传git

https://gitee.com/wanhzhaoxuan0/oj/tree/3481023c77115a6d15067f02adc28f6b62211be6/

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值