Commit 8ae4a80c authored by liming's avatar liming

俱乐部列表

parent 063ae478
...@@ -40,6 +40,11 @@ public class Club implements Serializable { ...@@ -40,6 +40,11 @@ public class Club implements Serializable {
*/ */
private String logo; private String logo;
/**
* 描述
*/
private String description;
/** /**
* 省 * 省
*/ */
......
...@@ -9,6 +9,7 @@ import org.springframework.http.ResponseEntity; ...@@ -9,6 +9,7 @@ import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.List;
import static com.antai.sport.http.server.common.util.ResultUtil.success; import static com.antai.sport.http.server.common.util.ResultUtil.success;
...@@ -66,5 +67,11 @@ public class ClubController { ...@@ -66,5 +67,11 @@ public class ClubController {
return success(); 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 { ...@@ -23,4 +23,6 @@ public class CreateClubReqDTO {
private LocalDate clubCreateTime; private LocalDate clubCreateTime;
@ApiModelProperty("创建人") @ApiModelProperty("创建人")
private Long createUser; private Long createUser;
@ApiModelProperty("描述")
private String description;
} }
...@@ -17,4 +17,6 @@ public class UpdateClubReqDTO { ...@@ -17,4 +17,6 @@ public class UpdateClubReqDTO {
private Long province; private Long province;
@ApiModelProperty("市id") @ApiModelProperty("市id")
private Long city; private Long city;
@ApiModelProperty("描述")
private String description;
} }
package com.antai.sport.http.server.server.api.business.club.mapper; 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; import org.apache.ibatis.annotations.Param;
public interface ClubBusinessMapper { public interface ClubBusinessMapper {
/** /**
* 检测俱乐部名称是否重复 * 检测俱乐部名称是否重复
*
* @param id * @param id
* @param name * @param name
* @return * @return
...@@ -14,9 +18,18 @@ public interface ClubBusinessMapper { ...@@ -14,9 +18,18 @@ public interface ClubBusinessMapper {
/** /**
* 验证当前玩家是否已经是俱乐部会长 * 验证当前玩家是否已经是俱乐部会长
*
* @param playerId * @param playerId
* @return * @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 ...@@ -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.dto.*;
import com.antai.sport.http.server.server.api.business.club.mapper.ClubBusinessMapper; import com.antai.sport.http.server.server.api.business.club.mapper.ClubBusinessMapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.List;
@Service @Service
public class ClubService { public class ClubService {
...@@ -207,4 +209,15 @@ public class ClubService { ...@@ -207,4 +209,15 @@ public class ClubService {
club.setMemberNumber(clubMemberMapper.selectCount(countQuery)); club.setMemberNumber(clubMemberMapper.selectCount(countQuery));
clubMapper.updateById(club); 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 @@ ...@@ -16,4 +16,21 @@
from club from club
where chairman_id = #{playerId} where chairman_id = #{playerId}
</select> </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> </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