赛会控制权

pull/371/head
wuyibo 2 years ago
parent d14ad66f3a
commit 7eefb42ca4

@ -10,6 +10,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.io.IOException;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.bean.BeanUtil;
@ -69,9 +70,9 @@ public class CompetitionController extends BaseController
@Autowired
private ICompetitionService competitionService;
@Autowired
private ICompetitionOfTeamService competitionOfTeamService;
private IUserRoleService userRoleService;
@Autowired
private ICompetitionMembersService competitionMembersService;
private ICompetitionSharePermissionsService competitionSharePermissionsService;
@Autowired
private IWxUserService wxUserService;
@ -132,9 +133,30 @@ public class CompetitionController extends BaseController
@ResponseBody
@ApiOperation(value = ApiTerminal.wxMiniProgram+"分页获取我参与过的比赛列表")
public TableDataInfo getMyJoinCompetition(@RequestBody CompetitionVo entity) {
startPage();
//关键字word包含球队名称、地点名称、球馆名称支持模糊搜索
entity.setIsDeleted(0);
LoginUser user = SecurityUtils.getLoginUser();
List<UserRole> userRoleList = userRoleService.selectRoleByUserId(user.getUserid());
//查询登录用户的系统角色
if(ObjectUtil.isNotNull(userRoleList) && userRoleList.size()>0) {
List<String> roles = userRoleList.stream().map(UserRole::getRoleCode).collect(Collectors.toList());
//如果是管理员就直接可以查看所有的赛事
if (roles.contains("admin")) {
entity.setUserId(null);
entity.setFounder(null);
}else {
//todo 查询是否有分享的控制权赛会
CompetitionSharePermissions permissions = new CompetitionSharePermissions();
permissions.setUserId(user.getUserid());
permissions.setIsDeleted(0);
List<CompetitionSharePermissions> permissionsList = competitionSharePermissionsService.selectCompetitionSharePermissionsList(permissions);
if(ObjectUtil.isNotNull(permissionsList)&&permissionsList.size()>0){
List<Long> competitionIds = permissionsList.stream().map(CompetitionSharePermissions::getCompetitionId).collect(Collectors.toList());
entity.setCompetitionIds(competitionIds);
}
}
}
startPage();
List<Competition> list = competitionService.getMyJoinCompetition(entity);
return getDataTable(list);
}

@ -155,7 +155,14 @@ public class CompetitionOfTeamController extends BaseController
{
return toAjax(competitionOfTeamService.deleteCompetitionOfTeamByIds(ids));
}
@PostMapping("/getMyJoinCompetitionTeam")
@ResponseBody
@ApiOperation(value = ApiTerminal.wxMiniProgram+"分页获取【我】参与比赛的球队列表")
public TableDataInfo getMyJoinCompetitionTeam(@RequestBody CompetitionOfTeamVo entity){
startPage();
List<CompetitionOfTeamVo> list =competitionOfTeamService.getMyJoinCompetitionTeam(entity);
return getDataTable(list);
}
@ApiOperation(ApiTerminal.wxMiniProgram+"新增")
@PostMapping("/add")
@ResponseBody

@ -0,0 +1,131 @@
package com.ruoyi.system.controller;
import java.util.List;
import java.io.IOException;
import javax.servlet.http.HttpServletResponse;
import com.ruoyi.common.swagger.apiConstants.ApiTerminal;
import com.ruoyi.system.domain.vo.CompetitionSharePermissionsVo;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.ruoyi.common.log.annotation.Log;
import com.ruoyi.common.log.enums.BusinessType;
import com.ruoyi.common.security.annotation.RequiresPermissions;
import com.ruoyi.system.domain.CompetitionSharePermissions;
import com.ruoyi.system.service.ICompetitionSharePermissionsService;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.page.TableDataInfo;
/**
* -Controller
*
* @author ruoyi
* @date 2023-07-20
*/
@RestController
@RequestMapping("/competitionPermissions")
public class CompetitionSharePermissionsController extends BaseController
{
@Autowired
private ICompetitionSharePermissionsService competitionSharePermissionsService;
/**
* -
*/
@RequiresPermissions("system:competitionPermissions:list")
@GetMapping("/list")
public TableDataInfo list(CompetitionSharePermissions competitionSharePermissions)
{
startPage();
List<CompetitionSharePermissions> list = competitionSharePermissionsService.selectCompetitionSharePermissionsList(competitionSharePermissions);
return getDataTable(list);
}
/**
* -
*/
@RequiresPermissions("system:competitionPermissions:export")
@Log(title = "赛会-权限分享", businessType = BusinessType.EXPORT)
@PostMapping("/export")
public void export(HttpServletResponse response, CompetitionSharePermissions competitionSharePermissions)
{
List<CompetitionSharePermissions> list = competitionSharePermissionsService.selectCompetitionSharePermissionsList(competitionSharePermissions);
ExcelUtil<CompetitionSharePermissions> util = new ExcelUtil<CompetitionSharePermissions>(CompetitionSharePermissions.class);
util.exportExcel(response, list, "赛会-权限分享数据");
}
/**
* -
*/
@RequiresPermissions("system:competitionPermissions:query")
@GetMapping(value = "/{id}")
public AjaxResult getInfo(@PathVariable("id") Long id)
{
return AjaxResult.success(competitionSharePermissionsService.selectCompetitionSharePermissionsById(id));
}
/**
* -
*/
@RequiresPermissions("system:competitionPermissions:add")
@Log(title = "赛会-权限分享", businessType = BusinessType.INSERT)
@PostMapping
public AjaxResult add(@RequestBody CompetitionSharePermissions competitionSharePermissions)
{
return toAjax(competitionSharePermissionsService.insertCompetitionSharePermissions(competitionSharePermissions));
}
@ApiOperation(value = ApiTerminal.wxMiniProgram+"分页查询分享数据")
@PostMapping("/getList")
public TableDataInfo getList(@RequestBody CompetitionSharePermissions competitionSharePermissions)
{
startPage();
List<CompetitionSharePermissions> list = competitionSharePermissionsService.getList(competitionSharePermissions);
return getDataTable(list);
}
/**
* -
*/
@RequiresPermissions("system:competitionPermissions:edit")
@Log(title = "赛会-权限分享", businessType = BusinessType.UPDATE)
@PutMapping
public AjaxResult edit(@RequestBody CompetitionSharePermissions competitionSharePermissions)
{
return toAjax(competitionSharePermissionsService.updateCompetitionSharePermissions(competitionSharePermissions));
}
/**
* -
*/
@RequiresPermissions("system:competitionPermissions:remove")
@Log(title = "赛会-权限分享", businessType = BusinessType.DELETE)
@DeleteMapping("/{ids}")
public AjaxResult remove(@PathVariable Long[] ids)
{
return toAjax(competitionSharePermissionsService.deleteCompetitionSharePermissionsByIds(ids));
}
@Log(title = ApiTerminal.wxMiniProgram+"赛会-批量分享赛会的控制权限", businessType = BusinessType.INSERT)
@ApiOperation(value = ApiTerminal.wxMiniProgram+"批量分享赛会的控制权限")
@PostMapping("/shareCompetitionPermissions")
public AjaxResult shareCompetitionPermissions(@RequestBody CompetitionSharePermissions vo)
{
return AjaxResult.success(competitionSharePermissionsService.shareCompetitionPermissions(vo));
}
@Log(title = ApiTerminal.wxMiniProgram+"赛会-批量删除分享赛会的控制权限", businessType = BusinessType.DELETE)
@ApiOperation(value = ApiTerminal.wxMiniProgram+"批量删除分享赛会的控制权限")
@PostMapping("/delShareCompetitionPermissions")
public AjaxResult delShareCompetitionPermissions(@RequestBody Long[] ids)
{
return AjaxResult.success(competitionSharePermissionsService.delShareCompetitionPermissions(ids));
}
}

@ -128,6 +128,15 @@ public class WxUserController extends BaseController
return AjaxResult.success(wxUserService.updateWxUser(wxUser));
}
@ApiOperation(ApiTerminal.wxMiniProgram+"根据用户手机号查询个人数据")
@PostMapping(value = "/getUserInfoBy")
@ResponseBody
public AjaxResult getUserInfoBy(@RequestBody WxUser wxUser)
{
return AjaxResult.success(wxUserService.getUserInfoBy(wxUser));
}
@ApiOperation(ApiTerminal.wxMiniProgram+"根据用户id查询个人中心详情")
@PostMapping("/detail/{userId}")
@ResponseBody

@ -0,0 +1,52 @@
package com.ruoyi.system.domain;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;
/**
* - competition_share_permissions
*
* @author ruoyi
* @date 2023-07-20
*/
@Data
public class CompetitionSharePermissions extends BaseEntity
{
private static final long serialVersionUID = 1L;
/** id */
private Long id;
/** 赛事id(competition的ID) */
@Excel(name = "赛事id(competition的ID)")
private Long competitionId;
/** 用户ID */
@Excel(name = "用户ID")
private Long userId;
/** 用户手机号 */
@Excel(name = "用户手机号")
private String userTel;
/** 用户姓名 */
@Excel(name = "用户姓名")
private String userName;
/** 状态(sys_data_status) */
@Excel(name = "状态(sys_data_status)")
private Long status;
/** 是否删除 */
@Excel(name = "是否删除")
private Integer isDeleted;
/** 能操作的功能 */
@Excel(name = "能操作的功能")
private String canSetType;
}

@ -0,0 +1,21 @@
package com.ruoyi.system.domain.vo;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.system.domain.CompetitionSharePermissions;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @author
* @date 20230720 17:47
* @Description
*/
@Data
public class CompetitionSharePermissionsVo {
@ApiModelProperty(name = "赛事id(competition的ID)")
private Long competitionId;
@ApiModelProperty(name = "分享的人")
List<CompetitionSharePermissions> sharePermissionList;
}

@ -2,6 +2,9 @@ package com.ruoyi.system.domain.vo;
import com.ruoyi.system.domain.Competition;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import java.util.List;
@Data
@NoArgsConstructor
@AllArgsConstructor
@ -16,4 +19,6 @@ public class CompetitionVo extends Competition {
@ApiModelProperty(value = "短信验证码", required = false)
private String captcha;
@ApiModelProperty(value = "赛会ID集合", required = false)
private List<Long> competitionIds;
}

@ -74,4 +74,6 @@ public interface CompetitionOfTeamMapper
CompetitionOfTeam selectOneByUserId(@Param("competitionId") Long competitionId,@Param("userId") String userId);
List<CompetitionOfTeamVo> getJoinCompetitionGroupTeam(CompetitionOfTeam ofTeam);
List<CompetitionOfTeamVo> getMyJoinCompetitionTeam(CompetitionOfTeamVo entity);
}

@ -0,0 +1,63 @@
package com.ruoyi.system.mapper;
import java.util.List;
import com.ruoyi.system.domain.CompetitionSharePermissions;
/**
* -Mapper
*
* @author ruoyi
* @date 2023-07-20
*/
public interface CompetitionSharePermissionsMapper
{
/**
* -
*
* @param id -
* @return -
*/
public CompetitionSharePermissions selectCompetitionSharePermissionsById(Long id);
/**
* -
*
* @param competitionSharePermissions -
* @return -
*/
public List<CompetitionSharePermissions> selectCompetitionSharePermissionsList(CompetitionSharePermissions competitionSharePermissions);
/**
* -
*
* @param competitionSharePermissions -
* @return
*/
public int insertCompetitionSharePermissions(CompetitionSharePermissions competitionSharePermissions);
/**
* -
*
* @param competitionSharePermissions -
* @return
*/
public int updateCompetitionSharePermissions(CompetitionSharePermissions competitionSharePermissions);
/**
* -
*
* @param id -
* @return
*/
public int deleteCompetitionSharePermissionsById(Long id);
/**
* -
*
* @param ids
* @return
*/
public int deleteCompetitionSharePermissionsByIds(Long[] ids);
List<CompetitionSharePermissions> getList(CompetitionSharePermissions competitionSharePermissions);
}

@ -60,4 +60,6 @@ public interface UserRoleMapper
public int deleteUserRoleByIds(Long[] ids);
UserRole selectByCode(String roleCode);
List<UserRole> selectRoleByUserId(Long userid);
}

@ -63,4 +63,6 @@ public interface WxUserMapper
WxUser selectByOpenId(String openId);
List<WxUser> listByIds(@Param("userIds") List<Long> userIds);
WxUser getUserInfoBy(WxUser wxUser);
}

@ -80,4 +80,6 @@ public interface ICompetitionOfTeamService
Boolean edit(CompetitionOfTeam entity);
List<CompetitionOfTeamVo> getJoinCompetitionGroupTeam(CompetitionOfTeam ofTeam);
List<CompetitionOfTeamVo> getMyJoinCompetitionTeam(CompetitionOfTeamVo entity);
}

@ -0,0 +1,68 @@
package com.ruoyi.system.service;
import java.util.List;
import com.ruoyi.system.domain.CompetitionSharePermissions;
import com.ruoyi.system.domain.vo.CompetitionSharePermissionsVo;
/**
* -Service
*
* @author ruoyi
* @date 2023-07-20
*/
public interface ICompetitionSharePermissionsService
{
/**
* -
*
* @param id -
* @return -
*/
public CompetitionSharePermissions selectCompetitionSharePermissionsById(Long id);
/**
* -
*
* @param competitionSharePermissions -
* @return -
*/
public List<CompetitionSharePermissions> selectCompetitionSharePermissionsList(CompetitionSharePermissions competitionSharePermissions);
/**
* -
*
* @param competitionSharePermissions -
* @return
*/
public int insertCompetitionSharePermissions(CompetitionSharePermissions competitionSharePermissions);
/**
* -
*
* @param competitionSharePermissions -
* @return
*/
public int updateCompetitionSharePermissions(CompetitionSharePermissions competitionSharePermissions);
/**
* -
*
* @param ids -
* @return
*/
public int deleteCompetitionSharePermissionsByIds(Long[] ids);
/**
* -
*
* @param id -
* @return
*/
public int deleteCompetitionSharePermissionsById(Long id);
Boolean shareCompetitionPermissions(CompetitionSharePermissions vo);
Boolean delShareCompetitionPermissions(Long[] ids);
List<CompetitionSharePermissions> getList(CompetitionSharePermissions competitionSharePermissions);
}

@ -35,6 +35,8 @@ public interface IUserRoleService
*/
public int insertUserRole(UserRole userRole);
List<UserRole> selectRoleByUserId(Long userid);
/**
*
*

@ -58,4 +58,6 @@ public interface IWxUserService
* @return
*/
public int deleteWxUserById(Long id);
WxUser getUserInfoBy(WxUser wxUser);
}

@ -144,4 +144,12 @@ public class CompetitionOfTeamServiceImpl implements ICompetitionOfTeamService
public List<CompetitionOfTeamVo> getJoinCompetitionGroupTeam(CompetitionOfTeam ofTeam) {
return competitionOfTeamMapper.getJoinCompetitionGroupTeam(ofTeam);
}
@Override
public List<CompetitionOfTeamVo> getMyJoinCompetitionTeam(CompetitionOfTeamVo entity) {
LoginUser user = SecurityUtils.getLoginUser();
entity.setUserId(user.getUserid());
List<CompetitionOfTeamVo> list=competitionOfTeamMapper.getMyJoinCompetitionTeam(entity);
return list;
}
}

@ -344,17 +344,6 @@ public class CompetitionServiceImpl implements ICompetitionService
@Override
public List<Competition> getMyJoinCompetition(CompetitionVo competition) {
LoginUser user = SecurityUtils.getLoginUser();
//查询登录用户的系统角色
List<UserRole> userRoles = userRoleMapper.selectUserRoleList(UserRole.builder().roleCode(UserRoles.ADMIN.code()).build());
if(!StringUtils.isEmpty(userRoles) && userRoles.size()>0) {
List<Long> userIds = userRoles.stream().map(UserRole::getUserId).collect(Collectors.toList());
//如果是管理员就直接可以查看所有的赛事
if (userIds.contains(user.getUserid())) {
competition.setUserId(null);
competition.setFounder(null);
}
}
List<Competition> list=competitionMapper.getMyJoinCompetition(competition);
for (Competition comp:list){
if(competition.getCompetitionNature()==0){

@ -0,0 +1,134 @@
package com.ruoyi.system.service.impl;
import java.util.Arrays;
import java.util.List;
import cn.hutool.core.util.ObjectUtil;
import com.ruoyi.common.core.exception.CheckedException;
import com.ruoyi.system.domain.vo.CompetitionSharePermissionsVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.ruoyi.system.mapper.CompetitionSharePermissionsMapper;
import com.ruoyi.system.domain.CompetitionSharePermissions;
import com.ruoyi.system.service.ICompetitionSharePermissionsService;
import org.springframework.transaction.annotation.Transactional;
/**
* -Service
*
* @author ruoyi
* @date 2023-07-20
*/
@Service
public class CompetitionSharePermissionsServiceImpl implements ICompetitionSharePermissionsService
{
@Autowired
private CompetitionSharePermissionsMapper competitionSharePermissionsMapper;
/**
* -
*
* @param id -
* @return -
*/
@Override
public CompetitionSharePermissions selectCompetitionSharePermissionsById(Long id)
{
return competitionSharePermissionsMapper.selectCompetitionSharePermissionsById(id);
}
/**
* -
*
* @param competitionSharePermissions -
* @return -
*/
@Override
public List<CompetitionSharePermissions> selectCompetitionSharePermissionsList(CompetitionSharePermissions competitionSharePermissions)
{
return competitionSharePermissionsMapper.selectCompetitionSharePermissionsList(competitionSharePermissions);
}
/**
* -
*
* @param competitionSharePermissions -
* @return
*/
@Override
public int insertCompetitionSharePermissions(CompetitionSharePermissions competitionSharePermissions)
{
return competitionSharePermissionsMapper.insertCompetitionSharePermissions(competitionSharePermissions);
}
/**
* -
*
* @param competitionSharePermissions -
* @return
*/
@Override
public int updateCompetitionSharePermissions(CompetitionSharePermissions competitionSharePermissions)
{
return competitionSharePermissionsMapper.updateCompetitionSharePermissions(competitionSharePermissions);
}
/**
* -
*
* @param ids -
* @return
*/
@Override
public int deleteCompetitionSharePermissionsByIds(Long[] ids)
{
return competitionSharePermissionsMapper.deleteCompetitionSharePermissionsByIds(ids);
}
/**
* -
*
* @param id -
* @return
*/
@Override
public int deleteCompetitionSharePermissionsById(Long id)
{
return competitionSharePermissionsMapper.deleteCompetitionSharePermissionsById(id);
}
@Transactional
@Override
public Boolean shareCompetitionPermissions(CompetitionSharePermissions vo) {
if(ObjectUtil.isNull(vo.getCompetitionId())){
throw new CheckedException("competitionId不能为空");
}if(ObjectUtil.isNull(vo.getUserId())){
throw new CheckedException("userId不能为空");
}if(ObjectUtil.isNull(vo.getUserTel())){
throw new CheckedException("userTel不能为空");
}
CompetitionSharePermissions permissions= new CompetitionSharePermissions();
permissions.setIsDeleted(0);
permissions.setCompetitionId(vo.getCompetitionId());
permissions.setUserTel(vo.getUserTel());
permissions.setUserId(vo.getUserId());
List<CompetitionSharePermissions> list = competitionSharePermissionsMapper.selectCompetitionSharePermissionsList(permissions);
if(list.size()>0) {
throw new CheckedException("手机号授权重复");
}else {
competitionSharePermissionsMapper.insertCompetitionSharePermissions(vo);
}
return Boolean.TRUE;
}
@Override
public Boolean delShareCompetitionPermissions(Long[] ids) {
competitionSharePermissionsMapper.deleteCompetitionSharePermissionsByIds(ids);
return Boolean.TRUE;
}
@Override
public List<CompetitionSharePermissions> getList(CompetitionSharePermissions competitionSharePermissions) {
return competitionSharePermissionsMapper.getList(competitionSharePermissions);
}
}

@ -55,6 +55,11 @@ public class UserRoleServiceImpl implements IUserRoleService
return userRoleMapper.insertUserRole(userRole);
}
@Override
public List<UserRole> selectRoleByUserId(Long userid) {
return userRoleMapper.selectRoleByUserId(userid);
}
/**
*
*

@ -90,4 +90,9 @@ public class WxUserServiceImpl implements IWxUserService
{
return wxUserMapper.deleteWxUserById(id);
}
@Override
public WxUser getUserInfoBy(WxUser wxUser) {
return wxUserMapper.getUserInfoBy(wxUser);
}
}

@ -5,11 +5,11 @@ spring:
nacos:
discovery:
# 服务注册地址
server-addr: 10.0.1.91:30005
server-addr: 182.43.49.98:30005
namespace: prod
config:
# 配置中心地址
server-addr: 10.0.1.91:30005
server-addr: 182.43.49.98:30005
# 配置文件格式
file-extension: yml
namespace: prod

@ -207,7 +207,62 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="userId != null ">
AND EXISTS (select 1 from competition_members c WHERE c.user_id=#{userId} and t.id=c.competition_id)
</if>
order by t.competition_time desc
<if test="competitionIds != null and competitionIds.size() > 0">
union
select * from competition t where 1=1
<if test="competitionIds != null and competitionIds.size() > 0">
and t.id in
<foreach collection="competitionIds" item="competitionId" open=" (" separator="," close=")">
#{competitionId}
</foreach>
</if>
<if test="status != null ">
AND t.status =#{status}
</if>
<if test="competitionNature != null ">
AND t.competition_nature =#{competitionNature}
</if>
<if test="cityCode != null and cityCode != ''">
AND t.city_code like CONCAT('%',#{cityCode},'%')
</if>
<if test="cityName != null and cityName != ''">
AND t.city_name like CONCAT('%',#{cityName},'%')
</if>
<if test="mainTeamName != null and mainTeamName != ''">
AND t.main_team_name like CONCAT('%',#{mainTeamName},'%')
</if>
<if test="guestTeamName != null and guestTeamName != ''">
AND t.guest_team_name like CONCAT('%',#{guestTeamName},'%')
</if>
<if test="designated != null ">
AND t.designated=#{designated}
</if>
<if test="competitionAddress != null and competitionAddress != '' ">
AND t.competition_address like CONCAT('%',#{competitionAddress},'%')
</if>
<if test="buildingName != null and buildingName != '' ">
AND t.building_name like CONCAT('%',#{buildingName},'%')
</if>
<if test="id != null ">
AND t.id=#{id}
</if>
<if test="auditStatus != null ">
AND t.audit_status = #{auditStatus}
</if>
<if test="isDeleted != null ">
AND t.is_deleted = #{isDeleted}
</if>
<if test="word != null and word != ''">
AND (t.main_team_name like CONCAT('%',#{word},'%')
or t.guest_team_name like CONCAT('%',#{word},'%')
or t.building_name like CONCAT('%',#{word},'%')
or t.competition_address like CONCAT('%',#{word},'%')
)
</if>
<if test="userId != null ">
AND EXISTS (select 1 from competition_members c WHERE c.user_id=#{userId} and t.id=c.competition_id)
</if>
</if>
</select>
<insert id="insertCompetition" parameterType="Competition" useGeneratedKeys="true" keyProperty="id">

@ -173,6 +173,43 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</if>
order by t.created_time desc
</select>
<select id="getMyJoinCompetitionTeam" resultType="com.ruoyi.system.domain.vo.CompetitionOfTeamVo">
select t.* from competition_of_team t where t.is_deleted = 0
<if test="id != null ">
AND t.id=#{id}
</if>
<if test="competitionId != null ">
AND t.competition_id=#{competitionId}
</if>
<if test="status != null ">
AND t.status =#{status}
</if>
<if test="teamId != null ">
AND t.team_id =#{teamId}
</if>
<if test="competitionGroup != null ">
AND t.competition_group =#{competitionGroup}
</if>
<if test="teamName != null and teamName != ''">
AND t.team_name like CONCAT('%',#{teamName},'%')
</if>
<if test="contacts != null and contacts != ''">
AND t.contacts like CONCAT('%',#{contacts},'%')
</if>
<if test="contactsTel != null and contactsTel != ''">
AND t.contacts_tel like CONCAT('%',#{contactsTel},'%')
</if>
<if test="contactsAreaCode != null and contactsAreaCode != ''">
AND t.contacts_area_code like CONCAT('%',#{contactsAreaCode},'%')
</if>
<if test="isDeleted != null ">
AND t.is_deleted = #{isDeleted}
</if>
<if test="userId != null ">
AND EXISTS (select 1 from competition_members c WHERE c.user_id=#{userId} and t.competition_id = c.competition_id and t.id=c.competition_of_team_id)
</if>
order by t.created_time desc
</select>
<insert id="insertCompetitionOfTeam" parameterType="CompetitionOfTeam" useGeneratedKeys="true" keyProperty="id">
insert into competition_of_team

@ -0,0 +1,119 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ruoyi.system.mapper.CompetitionSharePermissionsMapper">
<resultMap type="CompetitionSharePermissions" id="CompetitionSharePermissionsResult">
<result property="id" column="id" />
<result property="createTime" column="create_time" />
<result property="competitionId" column="competition_id" />
<result property="userId" column="user_id" />
<result property="userTel" column="user_tel" />
<result property="userName" column="user_name" />
<result property="status" column="status" />
<result property="updateTime" column="update_time" />
<result property="createBy" column="create_by" />
<result property="updateBy" column="update_by" />
<result property="isDeleted" column="is_deleted" />
<result property="remark" column="remark" />
<result property="canSetType" column="can_set_type" />
</resultMap>
<sql id="selectCompetitionSharePermissionsVo">
select id, create_time, competition_id, user_id, user_tel, user_name, status, update_time, create_by, update_by, is_deleted, remark, can_set_type from competition_share_permissions
</sql>
<select id="selectCompetitionSharePermissionsList" parameterType="CompetitionSharePermissions" resultMap="CompetitionSharePermissionsResult">
<include refid="selectCompetitionSharePermissionsVo"/>
<where>
<if test="competitionId != null "> and competition_id = #{competitionId}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="userTel != null and userTel != ''"> and user_tel = #{userTel}</if>
<if test="userName != null and userName != ''"> and user_name like concat('%', #{userName}, '%')</if>
<if test="status != null "> and status = #{status}</if>
<if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
<if test="canSetType != null and canSetType != ''"> and can_set_type = #{canSetType}</if>
</where>
</select>
<select id="selectCompetitionSharePermissionsById" parameterType="Long" resultMap="CompetitionSharePermissionsResult">
<include refid="selectCompetitionSharePermissionsVo"/>
where id = #{id}
</select>
<insert id="insertCompetitionSharePermissions" parameterType="CompetitionSharePermissions" useGeneratedKeys="true" keyProperty="id">
insert into competition_share_permissions
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="createTime != null">create_time,</if>
<if test="competitionId != null">competition_id,</if>
<if test="userId != null">user_id,</if>
<if test="userTel != null and userTel != ''">user_tel,</if>
<if test="userName != null and userName != ''">user_name,</if>
<if test="status != null">status,</if>
<if test="updateTime != null">update_time,</if>
<if test="createBy != null">create_by,</if>
<if test="updateBy != null">update_by,</if>
<if test="isDeleted != null">is_deleted,</if>
<if test="remark != null">remark,</if>
<if test="canSetType != null">can_set_type,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="createTime != null">#{createTime},</if>
<if test="competitionId != null">#{competitionId},</if>
<if test="userId != null">#{userId},</if>
<if test="userTel != null and userTel != ''">#{userTel},</if>
<if test="userName != null and userName != ''">#{userName},</if>
<if test="status != null">#{status},</if>
<if test="updateTime != null">#{updateTime},</if>
<if test="createBy != null">#{createBy},</if>
<if test="updateBy != null">#{updateBy},</if>
<if test="isDeleted != null">#{isDeleted},</if>
<if test="remark != null">#{remark},</if>
<if test="canSetType != null">#{canSetType},</if>
</trim>
</insert>
<update id="updateCompetitionSharePermissions" parameterType="CompetitionSharePermissions">
update competition_share_permissions
<trim prefix="SET" suffixOverrides=",">
<if test="createTime != null">create_time = #{createTime},</if>
<if test="competitionId != null">competition_id = #{competitionId},</if>
<if test="userId != null">user_id = #{userId},</if>
<if test="userTel != null and userTel != ''">user_tel = #{userTel},</if>
<if test="userName != null and userName != ''">user_name = #{userName},</if>
<if test="status != null">status = #{status},</if>
<if test="updateTime != null">update_time = #{updateTime},</if>
<if test="createBy != null">create_by = #{createBy},</if>
<if test="updateBy != null">update_by = #{updateBy},</if>
<if test="isDeleted != null">is_deleted = #{isDeleted},</if>
<if test="remark != null">remark = #{remark},</if>
<if test="canSetType != null">can_set_type = #{canSetType},</if>
</trim>
where id = #{id}
</update>
<delete id="deleteCompetitionSharePermissionsById" parameterType="Long">
delete from competition_share_permissions where id = #{id}
</delete>
<delete id="deleteCompetitionSharePermissionsByIds" parameterType="String">
delete from competition_share_permissions where id in
<foreach item="id" collection="array" open="(" separator="," close=")">
#{id}
</foreach>
</delete>
<select id="getList" resultType="com.ruoyi.system.domain.CompetitionSharePermissions">
<include refid="selectCompetitionSharePermissionsVo"/>
<where>
<if test="competitionId != null "> and competition_id = #{competitionId}</if>
<if test="userId != null "> and user_id = #{userId}</if>
<if test="userName != null and userName != ''"> AND user_name like CONCAT('%',#{userName},'%')</if>
<if test="userTel != null and userTel != ''"> and user_tel like CONCAT('%',#{userTel},'%')</if>
<if test="status != null "> and status = #{status}</if>
<if test="isDeleted != null "> and is_deleted = #{isDeleted}</if>
<if test="canSetType != null and canSetType != ''"> and can_set_type = #{canSetType}</if>
</where>
</select>
</mapper>

@ -41,6 +41,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectByCode" resultType="com.ruoyi.system.domain.UserRole">
select * from user_role where role_code = #{roleCode} limit 1
</select>
<select id="selectRoleByUserId" resultType="com.ruoyi.system.domain.UserRole">
select * from user_role where USER_ID = #{userId}
</select>
<insert id="insertUserRole" parameterType="UserRole" useGeneratedKeys="true" keyProperty="id">
insert into user_role

@ -75,6 +75,34 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
#{id}
</foreach>
</select>
<select id="getUserInfoBy" resultType="com.ruoyi.system.domain.WxUser">
<include refid="selectWxUserVo"/>
<where>
<if test="isDeleted != null "> and IS_DELETED = #{isDeleted}</if>
<if test="createdTime != null "> and CREATED_TIME = #{createdTime}</if>
<if test="createdBy != null and createdBy != ''"> and CREATED_BY = #{createdBy}</if>
<if test="modifiedBy != null and modifiedBy != ''"> and MODIFIED_BY = #{modifiedBy}</if>
<if test="lastUpdatedTime != null "> and LAST_UPDATED_TIME = #{lastUpdatedTime}</if>
<if test="loginName != null and loginName != ''"> and LOGIN_NAME like concat('%', #{loginName}, '%')</if>
<if test="passWord != null and passWord != ''"> and PASS_WORD = #{passWord}</if>
<if test="role != null and role != ''"> and ROLE = #{role}</if>
<if test="openid != null and openid != ''"> and OPENID = #{openid}</if>
<if test="avatar != null and avatar != ''"> and AVATAR = #{avatar}</if>
<if test="gender != null and gender != ''"> and GENDER = #{gender}</if>
<if test="userName != null and userName != ''"> and USER_NAME like concat('%', #{userName}, '%')</if>
<if test="telephone != null and telephone != ''"> and TELEPHONE = #{telephone}</if>
<if test="birthday != null "> and BIRTHDAY = #{birthday}</if>
<if test="height != null "> and HEIGHT = #{height}</if>
<if test="weight != null "> and WEIGHT = #{weight}</if>
<if test="teamPosition != null and teamPosition != ''"> and TEAM_POSITION = #{teamPosition}</if>
<if test="tag != null and tag != ''"> and TAG = #{tag}</if>
<if test="enabled != null and enabled != ''"> and ENABLED = #{enabled}</if>
<if test="unionid != null and unionid != ''"> and UNIONID = #{unionid}</if>
<if test="officialAccountOpenid != null and officialAccountOpenid != ''"> and OFFICIAL_ACCOUNT_OPENID = #{officialAccountOpenid}</if>
<if test="realName != null and realName != ''"> and real_name like concat('%', #{realName}, '%')</if>
</where>
limit 1
</select>
<insert id="insertWxUser" parameterType="WxUser" useGeneratedKeys="true" keyProperty="id">
insert into user_info

@ -0,0 +1,44 @@
import request from '@/utils/request'
// 查询赛会-权限分享列表
export function listCompetitionPermissions(query) {
return request({
url: '/system/competitionPermissions/list',
method: 'get',
params: query
})
}
// 查询赛会-权限分享详细
export function getCompetitionPermissions(id) {
return request({
url: '/system/competitionPermissions/' + id,
method: 'get'
})
}
// 新增赛会-权限分享
export function addCompetitionPermissions(data) {
return request({
url: '/system/competitionPermissions',
method: 'post',
data: data
})
}
// 修改赛会-权限分享
export function updateCompetitionPermissions(data) {
return request({
url: '/system/competitionPermissions',
method: 'put',
data: data
})
}
// 删除赛会-权限分享
export function delCompetitionPermissions(id) {
return request({
url: '/system/competitionPermissions/' + id,
method: 'delete'
})
}

@ -0,0 +1,374 @@
<template>
<div class="app-container">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" v-show="showSearch" label-width="68px">
<el-form-item label="赛事id(competition的ID)" prop="competitionId">
<el-input
v-model="queryParams.competitionId"
placeholder="请输入赛事id(competition的ID)"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户ID" prop="userId">
<el-input
v-model="queryParams.userId"
placeholder="请输入用户ID"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户手机号" prop="userTel">
<el-input
v-model="queryParams.userTel"
placeholder="请输入用户手机号"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="用户姓名" prop="userName">
<el-input
v-model="queryParams.userName"
placeholder="请输入用户姓名"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item label="状态(sys_data_status)" prop="status">
<el-select v-model="queryParams.status" placeholder="请选择状态(sys_data_status)" clearable>
<el-option
v-for="dict in dict.type.sys_data_status"
:key="dict.value"
:label="dict.label"
:value="dict.value"
/>
</el-select>
</el-form-item>
<el-form-item label="是否删除" prop="isDeleted">
<el-input
v-model="queryParams.isDeleted"
placeholder="请输入是否删除"
clearable
@keyup.enter.native="handleQuery"
/>
</el-form-item>
<el-form-item>
<el-button type="primary" icon="el-icon-search" size="mini" @click="handleQuery"></el-button>
<el-button icon="el-icon-refresh" size="mini" @click="resetQuery"></el-button>
</el-form-item>
</el-form>
<el-row :gutter="10" class="mb8">
<el-col :span="1.5">
<el-button
type="primary"
plain
icon="el-icon-plus"
size="mini"
@click="handleAdd"
v-hasPermi="['system:competitionPermissions:add']"
>新增</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="success"
plain
icon="el-icon-edit"
size="mini"
:disabled="single"
@click="handleUpdate"
v-hasPermi="['system:competitionPermissions:edit']"
>修改</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="danger"
plain
icon="el-icon-delete"
size="mini"
:disabled="multiple"
@click="handleDelete"
v-hasPermi="['system:competitionPermissions:remove']"
>删除</el-button>
</el-col>
<el-col :span="1.5">
<el-button
type="warning"
plain
icon="el-icon-download"
size="mini"
@click="handleExport"
v-hasPermi="['system:competitionPermissions:export']"
>导出</el-button>
</el-col>
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList" :columns="columns" :pageName="$options.name" ></right-toolbar>
</el-row>
<el-table v-loading="loading" :data="competitionPermissionsList" @selection-change="handleSelectionChange">
<el-table-column type="selection" width="55" align="center" />
<el-table-column label="id" align="center" prop="id" v-if="columns[0].visible" show-overflow-tooltip />
<el-table-column label="赛事id(competition的ID)" align="center" prop="competitionId" v-if="columns[2].visible" show-overflow-tooltip />
<el-table-column label="用户ID" align="center" prop="userId" v-if="columns[3].visible" show-overflow-tooltip />
<el-table-column label="用户手机号" align="center" prop="userTel" v-if="columns[4].visible" show-overflow-tooltip />
<el-table-column label="用户姓名" align="center" prop="userName" v-if="columns[5].visible" show-overflow-tooltip />
<el-table-column label="状态(sys_data_status)" align="center" prop="status" v-if="columns[6].visible" show-overflow-tooltip >
<template slot-scope="scope">
<dict-tag :options="dict.type.sys_data_status" :value="scope.row.status"/>
</template>
</el-table-column>
<el-table-column label="是否删除" align="center" prop="isDeleted" v-if="columns[10].visible" show-overflow-tooltip />
<el-table-column label="备注说明" align="center" prop="remark" v-if="columns[11].visible" show-overflow-tooltip />
<el-table-column label="能操作的功能" align="center" prop="canSetType" v-if="columns[12].visible" show-overflow-tooltip />
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
<template slot-scope="scope">
<el-button
size="mini"
type="text"
icon="el-icon-edit"
@click="handleUpdate(scope.row)"
v-hasPermi="['system:competitionPermissions:edit']"
>修改</el-button>
<el-button
size="mini"
type="text"
icon="el-icon-delete"
@click="handleDelete(scope.row)"
v-hasPermi="['system:competitionPermissions:remove']"
>删除</el-button>
</template>
</el-table-column>
</el-table>
<pagination
v-show="total>0"
:total="total"
:page.sync="queryParams.pageNum"
:limit.sync="queryParams.pageSize"
@pagination="getList"
/>
<!-- 添加或修改赛会-权限分享对话框 -->
<el-dialog :title="title" :visible.sync="open" width="500px" append-to-body>
<el-form ref="form" :model="form" :rules="rules" label-width="80px">
<el-form-item label="赛事id(competition的ID)" prop="competitionId">
<el-input v-model="form.competitionId" placeholder="请输入赛事id(competition的ID)" />
</el-form-item>
<el-form-item label="用户ID" prop="userId">
<el-input v-model="form.userId" placeholder="请输入用户ID" />
</el-form-item>
<el-form-item label="用户手机号" prop="userTel">
<el-input v-model="form.userTel" placeholder="请输入用户手机号" />
</el-form-item>
<el-form-item label="用户姓名" prop="userName">
<el-input v-model="form.userName" placeholder="请输入用户姓名" />
</el-form-item>
<el-form-item label="状态(sys_data_status)" prop="status">
<el-select v-model="form.status" placeholder="请选择状态(sys_data_status)">
<el-option
v-for="dict in dict.type.sys_data_status"
:key="dict.value"
:label="dict.label"
:value="parseInt(dict.value)"
></el-option>
</el-select>
</el-form-item>
<el-form-item label="是否删除" prop="isDeleted">
<el-input v-model="form.isDeleted" placeholder="请输入是否删除" />
</el-form-item>
<el-form-item label="备注说明" prop="remark">
<el-input v-model="form.remark" type="textarea" placeholder="请输入内容" />
</el-form-item>
</el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm"> </el-button>
<el-button @click="cancel"> </el-button>
</div>
</el-dialog>
</div>
</template>
<script>
import { listCompetitionPermissions, getCompetitionPermissions, delCompetitionPermissions, addCompetitionPermissions, updateCompetitionPermissions } from "@/api/system/competitionPermissions";
export default {
name: "CompetitionPermissions",
dicts: ['sys_data_status'],
data() {
return {
//
loading: true,
//
ids: [],
//
single: true,
//
multiple: true,
//
showSearch: true,
//
total: 0,
// -
competitionPermissionsList: [],
//
title: "",
//
open: false,
//
queryParams: {
pageNum: 1,
pageSize: 10,
competitionId: null,
userId: null,
userTel: null,
userName: null,
status: null,
isDeleted: null,
canSetType: null
},
//
form: {},
//
rules: {
competitionId: [
{ required: true, message: "赛事id(competition的ID)不能为空", trigger: "blur" }
],
userTel: [
{ required: true, message: "用户手机号不能为空", trigger: "blur" }
],
userName: [
{ required: true, message: "用户姓名不能为空", trigger: "blur" }
],
status: [
{ required: true, message: "状态(sys_data_status)不能为空", trigger: "change" }
],
},
//
columns:[
{ key: 0, label: `id`, visible: true },
{ key: 1, label: `创建时间`, visible: true },
{ key: 2, label: `赛事id(competition的ID)`, visible: true },
{ key: 3, label: `用户ID`, visible: true },
{ key: 4, label: `用户手机号`, visible: true },
{ key: 5, label: `用户姓名`, visible: true },
{ key: 6, label: `状态(sys_data_status)`, visible: true },
{ key: 7, label: `最后修改时间`, visible: true },
{ key: 8, label: `创建人`, visible: true },
{ key: 9, label: `最后修改人`, visible: true },
{ key: 10, label: `是否删除`, visible: true },
{ key: 11, label: `备注说明`, visible: true },
{ key: 12, label: `能操作的功能`, visible: true },
],
};
},
created() {
this.getList();
//
var columns = JSON.parse(localStorage.getItem(this.$options.name));
if(columns){
this.columns = columns;
}
},
methods: {
/** 查询赛会-权限分享列表 */
getList() {
this.loading = true;
listCompetitionPermissions(this.queryParams).then(response => {
this.competitionPermissionsList = response.rows;
this.total = response.total;
this.loading = false;
});
},
//
cancel() {
this.open = false;
this.reset();
},
//
reset() {
this.form = {
id: null,
createTime: null,
competitionId: null,
userId: null,
userTel: null,
userName: null,
status: null,
updateTime: null,
createBy: null,
updateBy: null,
isDeleted: null,
remark: null,
canSetType: null
};
this.resetForm("form");
},
/** 搜索按钮操作 */
handleQuery() {
this.queryParams.pageNum = 1;
this.getList();
},
/** 重置按钮操作 */
resetQuery() {
this.resetForm("queryForm");
this.handleQuery();
},
//
handleSelectionChange(selection) {
this.ids = selection.map(item => item.id)
this.single = selection.length!==1
this.multiple = !selection.length
},
/** 新增按钮操作 */
handleAdd() {
this.reset();
this.open = true;
this.title = "添加赛会-权限分享";
},
/** 修改按钮操作 */
handleUpdate(row) {
this.reset();
const id = row.id || this.ids
getCompetitionPermissions(id).then(response => {
this.form = response.data;
this.open = true;
this.title = "修改赛会-权限分享";
});
},
/** 提交按钮 */
submitForm() {
this.$refs["form"].validate(valid => {
if (valid) {
if (this.form.id != null) {
updateCompetitionPermissions(this.form).then(response => {
this.$modal.msgSuccess("修改成功");
this.open = false;
this.getList();
});
} else {
addCompetitionPermissions(this.form).then(response => {
this.$modal.msgSuccess("新增成功");
this.open = false;
this.getList();
});
}
}
});
},
/** 删除按钮操作 */
handleDelete(row) {
const ids = row.id || this.ids;
this.$modal.confirm('是否确认删除赛会-权限分享编号为"' + ids + '"的数据项?').then(function() {
return delCompetitionPermissions(ids);
}).then(() => {
this.getList();
this.$modal.msgSuccess("删除成功");
}).catch(() => {});
},
/** 导出按钮操作 */
handleExport() {
this.download('system/competitionPermissions/export', {
...this.queryParams
}, `competitionPermissions_${new Date().getTime()}.xlsx`)
}
}
};
</script>
Loading…
Cancel
Save