package com.fdkankan.manage.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fdkankan.manage.common.PageInfo;
import com.fdkankan.manage.entity.Case;
import com.fdkankan.manage.entity.SysUser;
import com.fdkankan.manage.mapper.ICaseMapper;
import com.fdkankan.manage.service.ICaseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fdkankan.manage.service.ISysUserService;
import com.fdkankan.manage.vo.request.CaseParam;
import com.fdkankan.manage.vo.response.CaseVo;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
/**
*
* 服务实现类
*
*
* @author
* @since 2022-10-25
*/
@Service
public class CaseServiceImpl extends ServiceImpl implements ICaseService {
@Autowired
ISysUserService sysUserService;
@Override
public Object pageList(CaseParam param) {
LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>();
if(param.getTypeId() != null){
wrapper.eq(Case::getTypeId,param.getTypeId());
}
if(StringUtils.isNotBlank(param.getTitle())){
wrapper.like(Case::getTitle,param.getTitle());
}
if(StringUtils.isNotBlank(param.getStartTime())){
wrapper.gt(Case::getPublicTime,param.getStartTime());
}
if(StringUtils.isNotBlank(param.getEndTime())){
wrapper.lt(Case::getPublicTime,param.getEndTime());
}
wrapper.eq(Case::getLanguage,param.getLanguage());
wrapper.orderByDesc(Case::getSort);
wrapper.orderByDesc(Case::getIsPublic);
wrapper.orderByDesc(Case::getPublicTime);
wrapper.orderByDesc(Case::getCreateTime);
Page page = this.page(new Page<>(param.getPageNum(), param.getPageSize()), wrapper);
List voList = new ArrayList<>();
for (Case record : page.getRecords()) {
CaseVo vo = new CaseVo();
BeanUtils.copyProperties(record,vo);
SysUser sysuser = sysUserService.getById(record.getSysUserId());
if(sysuser != null){
vo.setSysUserName(sysuser.getNickName());
}
voList.add(vo);
}
Page pageVo = new Page<>(param.getPageNum(), param.getPageSize());
pageVo.setRecords(voList);
pageVo.setTotal(page.getTotal());
return PageInfo.PageInfo(pageVo);
}
}