1、使用系统框架中传参及响应格式

2、调整服务商统计商户数量处理变量
This commit is contained in:
倪大野 2023-06-07 11:06:20 +08:00
parent 148dfb1d1d
commit 487c7fb4f4
3 changed files with 16 additions and 43 deletions

View File

@ -16,17 +16,13 @@
package com.jeequan.jeepay.core.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.core.MybatisConfiguration;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.TableInfoHelper;
import com.jeequan.jeepay.core.model.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import org.apache.ibatis.builder.MapperBuilderAssistant;
import java.io.Serializable;
import java.util.Date;
@ -47,7 +43,6 @@ public class IsvInfo extends BaseModel implements Serializable {
//gw
public static final LambdaQueryWrapper<IsvInfo> gw(){
TableInfoHelper.initTableInfo(new MapperBuilderAssistant(new MybatisConfiguration(), ""), IsvInfo.class);
return new LambdaQueryWrapper<>();
}
@ -114,8 +109,5 @@ public class IsvInfo extends BaseModel implements Serializable {
*/
private Date updatedAt;
// 用于标记前端传递排序字段
@TableField(exist = false)
private String orderItem;
}
}

View File

@ -61,6 +61,7 @@ public class IsvInfoController extends CommonCtrl {
@RequestMapping(value="", method = RequestMethod.GET)
public ApiRes list() {
IsvInfo isvInfo = getObject(IsvInfo.class);
LambdaQueryWrapper<IsvInfo> wrapper = IsvInfo.gw();
if (StringUtils.isNotEmpty(isvInfo.getIsvNo())) {
wrapper.eq(IsvInfo::getIsvNo, isvInfo.getIsvNo());
@ -71,12 +72,12 @@ public class IsvInfoController extends CommonCtrl {
if (isvInfo.getState() != null) {
wrapper.eq(IsvInfo::getState, isvInfo.getState());
}
if(StringUtils.isNotEmpty(isvInfo.getOrderItem())){
setOrderBy(wrapper,true,isvInfo.getOrderItem());
if(StringUtils.isNotEmpty((String)isvInfo.getExt().get("orderItem"))){
setOrderBy(wrapper,true,(String)isvInfo.getExt().get("orderItem"));
}else{
wrapper.orderByDesc(IsvInfo::getCreatedAt);
}
IPage<IsvInfoService.IsvInfoResp> pages = isvInfoService.pageForIsv(getIPage(true), wrapper);
IPage<IsvInfo> pages = isvInfoService.pageForIsv(getIPage(true), wrapper);
return ApiRes.page(pages);
}

View File

@ -87,43 +87,23 @@ public class IsvInfoService extends ServiceImpl<IsvInfoMapper, IsvInfo> {
* @param queryWrapper
* @return
*/
public IPage<IsvInfoResp> pageForIsv(IPage page,Wrapper queryWrapper) {
public IPage<IsvInfo> pageForIsv(IPage page,Wrapper queryWrapper) {
IPage<IsvInfo> pages = isvInfoService.page(page, queryWrapper);
IPage<IsvInfoResp> resultPages = new Page<>();
BeanUtils.copyProperties(pages,resultPages);
List<IsvInfoResp> isvInfoResps = new ArrayList<>();
List<String> isvNos = pages.getRecords().stream().map(isvInfo -> isvInfo.getIsvNo()).collect(Collectors.toList());
List<Map<String, Object>> computMchList = mchInfoService.computeMchNum(isvNos);
Map<String, Map<String, Object>> isvNoKeyMap = computMchList.stream().collect(Collectors.toMap(map -> (String) map.get("isv_no"), map1 -> map1));
Map<String, Object[]> isvNoKeyArray = computMchList.stream().collect(Collectors.toMap(map -> (String) map.get("isv_no"), map1 -> new Object[]{map1.get("normal_num"), map1.get("stop_num")}));
pages.getRecords().stream().forEach(isvInfo -> {
IsvInfoResp isvInfoResp = new IsvInfoResp();
BeanUtils.copyProperties(isvInfo,isvInfoResp);
isvInfoResp.setNormalMchNum(Optional.ofNullable(isvNoKeyMap)
.map(map->(Map)map.get(isvInfo.getIsvNo()))
.map(map->(Long)map.get("normal_num"))
// 有效商户数量
isvInfo.addExt("normalMchNum",Optional.ofNullable(isvNoKeyArray)
.map(map->map.get(isvInfo.getIsvNo()))
.map(obj->(Long)obj[0])
.orElse(0L));
isvInfoResp.setStopMchNum(Optional.ofNullable(isvNoKeyMap)
.map(map->(Map)map.get(isvInfo.getIsvNo()))
.map(map->(Long)map.get("stop_num"))
// 无效商户数量
isvInfo.addExt("stopMchNum",Optional.ofNullable(isvNoKeyArray)
.map(map->map.get(isvInfo.getIsvNo()))
.map(obj->(Long)obj[1])
.orElse(0L));
isvInfoResps.add(isvInfoResp);
});
resultPages.setRecords(isvInfoResps);
return resultPages;
}
/**
* 服务商响应对象
* TODO 提取公共响应dto包内
*/
@Data
public static class IsvInfoResp extends IsvInfo{
// 有效商户数量
private Long normalMchNum;
// 无效商户数量
private Long stopMchNum;
return pages;
}
}