Commit 30056279 authored by liming's avatar liming

俱乐部通知公告编辑

parent 07761e70
package com.antai.sport.http.server.constants;
public class ClubMemberType {
public static final Integer CHAIRMAN = 1;
public static final Integer ASSISTANT = 2;
public static final Integer MEMBER = 2;
}
package com.antai.sport.http.server.server.api.business.club.controller;
import com.antai.sport.http.server.common.base.Result;
import com.antai.sport.http.server.server.api.business.club.dto.CreateClubReqDTO;
import com.antai.sport.http.server.server.api.business.club.dto.UpdateClubReqDTO;
import com.antai.sport.http.server.server.api.business.club.dto.*;
import com.antai.sport.http.server.server.api.business.club.service.ClubService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
......@@ -20,16 +19,38 @@ public class ClubController {
@Resource
private ClubService clubService;
@ApiOperation("创建俱乐部")
@ApiOperation("俱乐部-新建")
@PostMapping
public ResponseEntity<Result<Long>> create(@RequestBody CreateClubReqDTO dto) {
return success(clubService.create(dto));
}
@ApiOperation("修改俱乐部信息")
@ApiOperation("俱乐部-编辑")
@PutMapping
public ResponseEntity<Result> update(@RequestBody UpdateClubReqDTO dto) {
clubService.update(dto);
return success();
}
@ApiOperation("俱乐部通知-新建")
@PostMapping("/notice")
public ResponseEntity<Result<Long>> createClubNotice(@RequestBody CreateClubNoticeDTO dto) {
return success(clubService.createClubNotice(dto));
}
@ApiOperation("俱乐部通知-编辑")
@PutMapping("/notice")
public ResponseEntity<Result> updateClubNotice(@RequestBody UpdateClubNoticeDTO dto) {
clubService.updateClubNotice(dto);
return success();
}
@ApiOperation("俱乐部通知-删除")
@PostMapping("/notice/deleted")
public ResponseEntity<Result> deleteClubNotice(@RequestBody DeleteClubNoticeDTO dto) {
clubService.deleteClubNotice(dto);
return success();
}
}
package com.antai.sport.http.server.server.api.business.club.converter;
import com.antai.sport.http.server.repository.club.entity.Club;
import com.antai.sport.http.server.repository.club.entity.ClubNotice;
import com.antai.sport.http.server.server.api.business.club.dto.CreateClubNoticeDTO;
import com.antai.sport.http.server.server.api.business.club.dto.CreateClubReqDTO;
import com.antai.sport.http.server.server.api.business.club.dto.UpdateClubNoticeDTO;
import com.antai.sport.http.server.server.api.business.club.dto.UpdateClubReqDTO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
......@@ -22,4 +25,12 @@ public interface ClubConverter {
@Mapping(target = "updateTime", source = "now")
Club updateDTOtoClub(UpdateClubReqDTO source, LocalDateTime now);
@Mapping(target = "createTime", source = "now")
@Mapping(target = "updateTime", source = "now")
@Mapping(target = "deleted", constant = "0")
ClubNotice createClubNoticeDTOToClubNotice(CreateClubNoticeDTO source, LocalDateTime now);
@Mapping(target = "updateTime", source = "now")
ClubNotice updateClubNoticeDTOToClubNotice(UpdateClubNoticeDTO source, LocalDateTime now);
}
package com.antai.sport.http.server.server.api.business.club.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("创建比赛通知对象")
@Data
public class CreateClubNoticeDTO {
@ApiModelProperty("俱乐部id")
private Long clubId;
@ApiModelProperty("是否置顶")
private Boolean top;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("创建用户")
private Long createUser;
}
package com.antai.sport.http.server.server.api.business.club.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("删除比赛通知对象")
@Data
public class DeleteClubNoticeDTO {
@ApiModelProperty("通知公告Id")
private Long Id;
@ApiModelProperty("俱乐部id")
private Long clubId;
@ApiModelProperty("操作人Id")
private Long sportUserId;
}
package com.antai.sport.http.server.server.api.business.club.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ApiModel("编辑比赛通知对象")
@Data
public class UpdateClubNoticeDTO {
@ApiModelProperty("通知公告id")
private Long id;
@ApiModelProperty("俱乐部id")
private Long clubId;
@ApiModelProperty("是否置顶")
private Boolean top;
@ApiModelProperty("标题")
private String title;
@ApiModelProperty("内容")
private String content;
@ApiModelProperty("操作用户")
private Long sportUserId;
}
package com.antai.sport.http.server.server.api.business.club.service;
import com.antai.sport.http.server.common.exception.BusinessException;
import com.antai.sport.http.server.constants.ClubMemberType;
import com.antai.sport.http.server.constants.DeleteStatus;
import com.antai.sport.http.server.repository.club.entity.Club;
import com.antai.sport.http.server.repository.club.entity.ClubMember;
import com.antai.sport.http.server.repository.club.entity.ClubNotice;
import com.antai.sport.http.server.repository.club.mapper.ClubMapper;
import com.antai.sport.http.server.repository.club.mapper.ClubMemberMapper;
import com.antai.sport.http.server.repository.club.mapper.ClubNoticeMapper;
import com.antai.sport.http.server.server.api.business.club.converter.ClubConverter;
import com.antai.sport.http.server.server.api.business.club.dto.CreateClubReqDTO;
import com.antai.sport.http.server.server.api.business.club.dto.UpdateClubReqDTO;
import com.antai.sport.http.server.server.api.business.club.dto.*;
import com.antai.sport.http.server.server.api.business.club.mapper.ClubBusinessMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
......@@ -17,6 +23,10 @@ public class ClubService {
@Resource
private ClubMapper clubMapper;
@Resource
private ClubMemberMapper clubMemberMapper;
@Resource
private ClubNoticeMapper clubNoticeMapper;
@Resource
private ClubBusinessMapper clubBusinessMapper;
......@@ -62,4 +72,60 @@ public class ClubService {
throw new BusinessException("俱乐部名称重复,请换一个名称试试");
}
}
/**
* 创建俱乐部通知
*
* @param dto
* @return
*/
public Long createClubNotice(CreateClubNoticeDTO dto) {
this.checkClubChairman(dto.getClubId(), dto.getCreateUser());
ClubNotice notice = clubConverter.createClubNoticeDTOToClubNotice(dto,LocalDateTime.now());
clubNoticeMapper.insert(notice);
return notice.getId();
}
/**
* 修改俱乐部通知
*
* @param dto
* @return
*/
public void updateClubNotice(UpdateClubNoticeDTO dto) {
this.checkClubChairman(dto.getClubId(), dto.getSportUserId());
ClubNotice notice = clubConverter.updateClubNoticeDTOToClubNotice(dto,LocalDateTime.now());
clubNoticeMapper.updateById(notice);
}
/**
* 删除比赛通知
* @param dto
*/
public void deleteClubNotice(DeleteClubNoticeDTO dto){
this.checkClubChairman(dto.getClubId(), dto.getSportUserId());
ClubNotice notice = new ClubNotice();
notice.setId(dto.getId());
notice.setDeleted(1);
clubNoticeMapper.updateById(notice);
}
/**
* 校验通知操作用户是否为当前俱乐部会长
*
* @param clubId
* @param sportUserId
*/
private void checkClubChairman(Long clubId, Long sportUserId) {
QueryWrapper<ClubMember> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("type", ClubMemberType.CHAIRMAN);
queryWrapper.eq("deleted", DeleteStatus.UNDELETED);
queryWrapper.eq("club_id", clubId);
queryWrapper.eq("sport_user_id", sportUserId);
ClubMember clubMember = clubMemberMapper.selectOne(queryWrapper);
if (clubMember == null) {
throw new BusinessException("您不是当前俱乐部会长,不能进行当前操作");
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment