添加分页接口

master
liuqingkun 3 years ago
parent 61a9e06efd
commit b6780b7a7b
  1. 55
      doc/api.md
  2. 31
      src/main/java/org/springblade/modules/business/controller/AppealRegController.java
  3. 12
      src/main/java/org/springblade/modules/business/controller/SwDisputeConfController.java
  4. 10
      src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.java
  5. 48
      src/main/java/org/springblade/modules/business/mapper/AppealRegMapper.xml
  6. 10
      src/main/java/org/springblade/modules/business/mapper/ServerWindowsDisputeMapper.java
  7. 11
      src/main/java/org/springblade/modules/business/mapper/ServerWindowsDisputeMapper.xml
  8. 7
      src/main/java/org/springblade/modules/business/service/IAppealRegService.java
  9. 9
      src/main/java/org/springblade/modules/business/service/IServerWindowsDisputeService.java
  10. 6
      src/main/java/org/springblade/modules/business/service/impl/AppealRegServiceImpl.java
  11. 11
      src/main/java/org/springblade/modules/business/service/impl/LargeScreenServiceImpl.java
  12. 31
      src/main/java/org/springblade/modules/business/service/impl/ServerWindowsDisputeServiceImpl.java

@ -87,28 +87,48 @@
### 1. 列表
- 请求地址
`GET` `/blade-business/serverDisputeConf/getList`
`GET` `/blade-business/serverDisputeConf/getPage`
- 请求参数
|参数名称|参数类型|允许为空|参数说明|
| ---- | ---- | ---- | ---- |
|swId| long | N | 服务窗口ID |
|swId| long | y | 服务窗口ID |
|current| int | y | 分页参数 |
|size| int | y | 分页参数 |
- 返回示例
```json
{
"code": 200,
"success": true,
"data": [
"data": {
"records": [
{
"swId": "1666702140550336513",
"swName": "市法院",
"disputeIds": "1666630085796585474,1666630048345645057",
"disputeNames": "行政复议,法律援助",
"status": 1
},
{
"swId": "1666702666826436610",
"swName": "市卫健局",
"disputeIds": "1666699928344383490,1666629875083141122,1666697888226529282,1666697948918108162",
"disputeNames": "残疾人权益保障,劳动、社保纠纷,房产物业纠纷,涉法涉诉纠纷",
"disputeIds": "1666699835604127746,1666697918677176322",
"disputeNames": "妇女儿童权益保护,教育纠纷",
"status": 1
}
],
"total": 4,
"size": 10,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"maxLimit": -1,
"countId": "",
"pages": 1
},
"msg": "操作成功"
}
```
@ -225,13 +245,16 @@
| appealType | string | N | 诉求类型 |
| windowId | string | N | 处理窗口ID |
| username | string | N | 代表姓名 |
|current| int | y | 分页参数 |
|size| int | y | 分页参数 |
- 返回示例
```json
{
"code": 200,
"success": true,
"data": [
"data": {
"records": [
{
"id": 4,
"username": "赵文婷",
@ -243,16 +266,26 @@
"status": 3
},
{
"id": 1,
"username": "庄培燕",
"cardno": "37234635323******",
"id": "1667769416707940354",
"username": "",
"cardno": "",
"disputeName": "损害赔偿纠纷",
"firstRegTime": "2023-03-01 00:00:00",
"firstRegTime": "2023-03-02 00:00:00",
"finishTime": "",
"problemDesc": "来访者为七旬赵大姨,因为村委长期拖欠农民征用口粮地补偿款前来信访,谈话过程中一度情绪崩溃大哭, 经调解员安抚至情绪缓和后离开咨询室。",
"problemDesc": "来访者为",
"status": 1
}
],
"total": 5,
"size": 10,
"current": 1,
"orders": [],
"optimizeCountSql": true,
"searchCount": true,
"maxLimit": -1,
"countId": "",
"pages": 1
},
"msg": "操作成功"
}
```

@ -16,19 +16,26 @@
*/
package org.springblade.modules.business.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import com.github.xiaoymin.knife4j.annotations.ApiSort;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.excel.util.ExcelUtil;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.service.IAppealRegService;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.business.vo.AppealRegVO;
import org.springblade.modules.system.vo.PostVO;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -74,6 +81,30 @@ public class AppealRegController extends BladeController {
return R.data(vos);
}
/**
* 自定义分页
*
* @param query 分页参数
* @param appealStatus 诉求状态
* @param startTime 登记时间-开始
* @param endTime 登记时间-结束
* @param appealType 诉求类型
* @param windowId 处理窗口ID
* @param username 代表姓名
*/
@GetMapping("/getPage")
public R getPage(Query query, String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
IPage<AppealListVO> vos = regService.getPage(Condition.getPage(query), appealStatus, startTime, endTime, appealType, windowId, username);
vos.getRecords().forEach(vo -> {
String cardNo = vo.getCardno();
if (Func.isNotBlank(cardNo)) {
vo.setCardno(cardNo.substring(0, cardNo.length() - 6) + "******");
}
});
return R.data(vos);
}
/**
* 导入

@ -3,6 +3,8 @@ package org.springblade.modules.business.controller;
import lombok.AllArgsConstructor;
import org.springblade.common.constant.CommonConstant;
import org.springblade.core.boot.ctrl.BladeController;
import org.springblade.core.mp.support.Condition;
import org.springblade.core.mp.support.Query;
import org.springblade.core.tenant.annotation.TenantDS;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.service.IServerWindowsDisputeService;
@ -32,6 +34,16 @@ public class SwDisputeConfController extends BladeController {
return R.data(swDisputeService.getServerWindowList(swId));
}
/**
* 分页
*
* @param swId 窗口id
*/
@GetMapping("/getPage")
public R getPage(Query query, Long swId) {
return R.data(swDisputeService.getPage(Condition.getPage(query), swId));
}
/**
* 获取根据id获取详情
*

@ -17,10 +17,12 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import lombok.RequiredArgsConstructor;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.business.entity.AppealReg;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.system.entity.User;
import java.security.PrivateKey;
import java.util.List;
@ -39,6 +41,14 @@ public interface AppealRegMapper extends BaseMapper<AppealReg> {
@Param("windowId") String windowId,
@Param("username") String username);
List<AppealListVO> getPage(IPage<AppealListVO> page,
@Param("appealStatus") String appealStatus,
@Param("startTime") String startTime,
@Param("endTime") String endTime,
@Param("appealType") String appealType,
@Param("windowId") String windowId,
@Param("username") String username);
/**
* 获取最后一次登记记录
*

@ -50,6 +50,54 @@
ORDER BY a.first_reg_time DESC
</select>
<select id="getPage" resultType="org.springblade.modules.business.vo.AppealListVO">
SELECT a.id, b.username, b.cardno, if(a.dispute_id is null, a.dispute_name, biz.dict_value) as disputeName,
a.first_reg_time as firstRegTime, a.finish_time as finishTime, a.problem_desc as problemDesc, a.`status`
FROM mp_appeal a
LEFT JOIN (
/* 先找出每个诉求的最后一次登记的第一个人 */
SELECT t3.*
FROM (
/* 找出每个诉求的最后一次登记记录 */
SELECT t.*
FROM (
SELECT *, ROW_NUMBER() OVER(PARTITION BY appeal_id
ORDER BY create_time DESC) AS row_index
FROM mp_appeal_reg reg
WHERE 1 = 1
) t
WHERE t.row_index = 1
) t2
LEFT JOIN (
/* 找出每次登记的第一张用户 */
SELECT *
FROM mp_appeal_visitor vis
WHERE vis.sort = 1
)t3 ON t2.id = t3.appeal_reg_id
) b ON a.id = b.appeal_id
LEFT JOIN blade_dict_biz biz ON a.dispute_id = biz.id
WHERE a.source_type = 0
<if test="appealStatus != null and appealStatus != ''">
and a.status = #{appealStatus}
</if>
<if test="startTime != null and startTime != ''">
and a.first_reg_time &gt; #{startTime}
</if>
<if test="endTime != null and endTime != ''">
and a.first_reg_time &lt; #{endTime}
</if>
<if test="appealType != null and appealType != ''">
and a.dispute_id = #{appealType}
</if>
<if test="windowId != null and windowId != ''">
and a.handle_dept = #{windowId}
</if>
<if test="username != null and username != ''">
and b.username like concat(concat('%', #{username}), '%')
</if>
ORDER BY a.first_reg_time DESC
</select>
<select id="getLastReg" resultType="org.springblade.modules.business.entity.AppealReg">
select *
from mp_appeal_reg

@ -17,9 +17,11 @@
package org.springblade.modules.business.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.modules.business.dto.ServerWindowsDisputeDTO;
import org.springblade.modules.business.entity.ServerWindowsDispute;
import org.springblade.modules.business.vo.SwDisputeVO;
import java.util.List;
@ -38,6 +40,14 @@ public interface ServerWindowsDisputeMapper extends BaseMapper<ServerWindowsDisp
*/
List<ServerWindowsDisputeDTO> getSwDisputeList(@Param("swId") Long swId);
/**
* 获取窗口,诉求配置列表
*
* @param swId 窗口id
* @return
*/
List<ServerWindowsDisputeDTO> getSwDisputePage(IPage<SwDisputeVO> page, @Param("swId") Long swId);
/**
* 根据窗口id, 更新配置状态
*

@ -13,6 +13,17 @@
</if>
</select>
<select id="getSwDisputePage" resultType="org.springblade.modules.business.dto.ServerWindowsDisputeDTO">
SELECT swd.sw_id AS swId, u.`name` AS swName, swd.dispute_id AS disputeId,
biz.dict_value AS disputeName, swd.`status`
FROM mp_server_windows_dispute swd
LEFT JOIN blade_dict_biz biz ON swd.dispute_id = biz.id
LEFT JOIN blade_user u ON swd.sw_id = u.id
<if test="swId != null and swId != ''">
WHERE swd.sw_id = #{swId}
</if>
</select>
<update id="updateStatusBySwId">
update mp_server_windows_dispute set `status` = #{status} where sw_id = #{swId}
</update>

@ -16,16 +16,13 @@
*/
package org.springblade.modules.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.base.BaseService;
import org.springblade.core.tool.api.R;
import org.springblade.modules.business.entity.AppealReg;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.vo.AppealListVO;
import org.springblade.modules.business.vo.AppealRegVO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List;
@ -49,6 +46,8 @@ public interface IAppealRegService extends BaseService<AppealReg> {
*/
List<AppealListVO> getList(String appealStatus, String startTime, String endTime, String appealType, String windowId, String username);
IPage<AppealListVO> getPage(IPage<AppealListVO> page, String appealStatus, String startTime, String endTime, String appealType, String windowId, String username);
/**
* 根据id获取诉求信息, 上一次调解记录(点击"再次调解")
*

@ -1,5 +1,6 @@
package org.springblade.modules.business.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.business.entity.ServerWindowsDispute;
import org.springblade.modules.business.vo.SwDisputeVO;
@ -21,6 +22,14 @@ public interface IServerWindowsDisputeService extends IService<ServerWindowsDisp
*/
List<SwDisputeVO> getServerWindowList(Long swId);
/**
* 获取窗口,诉求配置列表
*
* @param swId
* @return
*/
IPage<SwDisputeVO> getPage(IPage<SwDisputeVO> page, Long swId);
/**
* 获取根据id获取详情
*

@ -17,6 +17,7 @@
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@ -75,6 +76,11 @@ public class AppealRegServiceImpl extends BaseServiceImpl<AppealRegMapper, Appea
return baseMapper.getList(appealStatus, startTime, endTime, appealType, windowId, username);
}
@Override
public IPage<AppealListVO> getPage(IPage<AppealListVO> page, String appealStatus, String startTime, String endTime, String appealType, String windowId, String username) {
return page.setRecords(baseMapper.getPage(page, appealStatus, startTime, endTime, appealType, windowId, username));
}
@Override
public AppealRegVO getById(String appealId) {
AppealRegVO vo = new AppealRegVO();

@ -19,29 +19,18 @@ package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import lombok.AllArgsConstructor;
import org.apache.commons.lang3.StringUtils;
import org.springblade.common.cache.DictBizCache;
import org.springblade.common.constant.BusinessConstant;
import org.springblade.common.enums.DictBizEnum;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.modules.business.entity.Appeal;
import org.springblade.modules.business.entity.AppealVisitor;
import org.springblade.modules.business.entity.DataEntity;
import org.springblade.modules.business.excel.AppealExcel;
import org.springblade.modules.business.mapper.AppealMapper;
import org.springblade.modules.business.service.IAppealService;
import org.springblade.modules.business.service.IAppealVisitorService;
import org.springblade.modules.business.service.ILargeScreenService;
import org.springblade.modules.business.utils.LocalDateTimeUtils;
import org.springblade.modules.system.entity.Dict;
import org.springblade.modules.system.entity.DictBiz;
import org.springblade.modules.system.entity.User;
import org.springblade.modules.system.service.IDictBizService;
import org.springblade.modules.system.service.IUserService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.text.DecimalFormat;
import java.text.ParseException;

@ -1,5 +1,6 @@
package org.springblade.modules.business.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.common.constant.BusinessConstant;
import org.springblade.core.tool.utils.Func;
import org.springblade.modules.business.dto.ServerWindowsDisputeDTO;
@ -51,6 +52,36 @@ public class ServerWindowsDisputeServiceImpl extends BaseServiceImpl<ServerWindo
return voList;
}
@Override
public IPage<SwDisputeVO> getPage(IPage<SwDisputeVO> page, Long swId) {
List<ServerWindowsDisputeDTO> dtoList = baseMapper.getSwDisputePage(page, swId);
List<SwDisputeVO> voList = new ArrayList<>();
if (Func.isEmpty(dtoList)) {
page.setRecords(voList);
return page;
}
Map<Long, List<ServerWindowsDisputeDTO>> map = dtoList.stream().collect(Collectors.groupingBy(ServerWindowsDisputeDTO::getSwId));
map.values().forEach(swdList -> {
ServerWindowsDisputeDTO dto = swdList.get(0);
String disputeIds = swdList.stream().map(ServerWindowsDisputeDTO::getDisputeId).map(String::valueOf).collect(Collectors.joining(","));
String disputeNames = swdList.stream().map(ServerWindowsDisputeDTO::getDisputeName).collect(Collectors.joining(","));
SwDisputeVO vo = new SwDisputeVO();
vo.setSwId(dto.getSwId());
vo.setSwName(dto.getSwName());
vo.setDisputeIds(disputeIds);
vo.setDisputeNames(disputeNames);
vo.setStatus(dto.getStatus());
voList.add(vo);
});
page.setRecords(voList);
return page;
}
@Override
public SwDisputeVO detail(Long swId) {
List<ServerWindowsDisputeDTO> dtoList = baseMapper.getSwDisputeList(swId);

Loading…
Cancel
Save