Commit 8ae4a80c authored by liming's avatar liming

俱乐部列表

parent 063ae478
......@@ -40,6 +40,11 @@ public class Club implements Serializable {
*/
private String logo;
/**
* 描述
*/
private String description;
/**
* 省
*/
......
......@@ -9,6 +9,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import static com.antai.sport.http.server.common.util.ResultUtil.success;
......@@ -66,5 +67,11 @@ public class ClubController {
return success();
}
@ApiOperation("俱乐部-列表")
@PostMapping("/list")
public ResponseEntity<Result<List<ClubListRespDTO>>> getClubList(@RequestBody ClubListReqDTO dto) {
return success(clubService.getList(dto));
}
}
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 ClubListReqDTO {
@ApiModelProperty("页号")
private Integer pageNo;
@ApiModelProperty("分页大小")
private Integer pageSize;
@ApiModelProperty("搜索内容")
private String searchKey;
@ApiModelProperty("市Id")
private Long cityId;
}
package com.antai.sport.http.server.server.api.business.club.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
@ApiModel("俱乐部列表返回数据")
@Data
public class ClubListRespDTO {
@ApiModelProperty("俱乐部id")
private Long id;
@ApiModelProperty("俱乐部名称")
private String clubName;
@ApiModelProperty("logo")
private String clubLogo;
@ApiModelProperty("省")
private String provinceName;
@ApiModelProperty("市")
private String cityName;
@ApiModelProperty("成员数量")
private Integer memberNumber;
@ApiModelProperty("时长(秒)")
private Integer totalDuration;
@ApiModelProperty("累计距离")
private BigDecimal totalDistance;
@ApiModelProperty("累计爬坡高度")
private BigDecimal totalClimbDistance;
@ApiModelProperty("总计卡路里")
private Integer totalCalorie;
@ApiModelProperty("成立时间")
private String clubCreateTime;
@ApiModelProperty("描述")
private String description;
}
......@@ -23,4 +23,6 @@ public class CreateClubReqDTO {
private LocalDate clubCreateTime;
@ApiModelProperty("创建人")
private Long createUser;
@ApiModelProperty("描述")
private String description;
}
......@@ -17,4 +17,6 @@ public class UpdateClubReqDTO {
private Long province;
@ApiModelProperty("市id")
private Long city;
@ApiModelProperty("描述")
private String description;
}
package com.antai.sport.http.server.server.api.business.club.mapper;
import com.antai.sport.http.server.server.api.business.club.dto.ClubListReqDTO;
import com.antai.sport.http.server.server.api.business.club.dto.ClubListRespDTO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
public interface ClubBusinessMapper {
/**
* 检测俱乐部名称是否重复
*
* @param id
* @param name
* @return
......@@ -14,9 +18,18 @@ public interface ClubBusinessMapper {
/**
* 验证当前玩家是否已经是俱乐部会长
*
* @param playerId
* @return
*/
Boolean checkChairman(@Param("playerId")Long playerId);
Boolean checkChairman(@Param("playerId") Long playerId);
/**
* 查询俱乐部列表
* @param page
* @param param
* @return
*/
IPage<ClubListRespDTO> getClubList(IPage<ClubListRespDTO> page, @Param("param") ClubListReqDTO param);
}
......@@ -13,11 +13,13 @@ import com.antai.sport.http.server.server.api.business.club.converter.ClubConver
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 com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
@Service
public class ClubService {
......@@ -207,4 +209,15 @@ public class ClubService {
club.setMemberNumber(clubMemberMapper.selectCount(countQuery));
clubMapper.updateById(club);
}
/**
* 获取俱乐部列表
* @param dto
* @return
*/
public List<ClubListRespDTO> getList(ClubListReqDTO dto) {
Page<ClubListRespDTO> pageParam = new Page<>(dto.getPageNo(), dto.getPageSize());
return clubBusinessMapper.getClubList(pageParam, dto).getRecords();
}
}
......@@ -16,4 +16,21 @@
from club
where chairman_id = #{playerId}
</select>
<select id="getClubList" resultType="com.antai.sport.http.server.server.api.business.club.dto.ClubListRespDTO">
select * from (
select t1.id,t1.name as club_name,logo as club_logo,
t2.name as province_name,t3.name as city_name,description,
member_number,total_distance,total_climb_distance,total_duration,
total_calorie,DATE_FORMAT(club_create_time,'%Y-%m-%d') as club_create_time,t1.create_time,
if(t1.city = #{param.cityId},0,1) as base_order
from club t1
left join base_area t2 on t1.province = t2.id
left join base_area t3 on t1.city = t3.id
<if test="param.searchKey != null">
where t1.name like concat('%',#{param.searchKey},'%')
</if>
) t1
order by t1.base_order,t1.member_number desc,t1.create_time
</select>
</mapper>
\ No newline at end of file
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