package com.kidgrow.usercenter.service.impl;
import com.kidgrow.common.model.ResultBody;
import com.kidgrow.usercenter.model.SysArea;
import com.kidgrow.usercenter.service.ISysAreaService;
import com.kidgrow.usercenter.vo.SysCompanyVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cglib.beans.BeanCopier;
import org.springframework.stereotype.Service;
import com.kidgrow.common.model.PageResult;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.kidgrow.common.service.impl.SuperServiceImpl;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.apache.commons.collections4.MapUtils;
import lombok.extern.slf4j.Slf4j;
import com.kidgrow.usercenter.model.SysCompany;
import com.kidgrow.usercenter.mapper.SysCompanyMapper;
import com.kidgrow.usercenter.service.ISysCompanyService;
/**
* 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* @Description: 公司信息表
* @Project: 用户中心
* @CreateDate: Created in 2020-04-02 14:02:50
* @Author: liuke
* @version 1.0
*/
@Slf4j
@Service
public class SysCompanyServiceImpl extends SuperServiceImpl implements ISysCompanyService {
@Autowired
private ISysAreaService sysAreaService;
private final Integer SHENG=1;
private final Integer SHI=2;
private final Integer XIAN=3;
/**
* 列表
* @param params
* @return
*/
@Override
public PageResult findList(Map params){
Page page = new Page<>(MapUtils.getInteger(params, "page"), MapUtils.getInteger(params, "limit"));
List list = baseMapper.findList(page, params);
List listVo=new ArrayList<>();
list.forEach(e -> {
SysCompanyVo vo=new SysCompanyVo();
BeanCopier beanCopier = BeanCopier.create(SysCompany.class, SysCompanyVo.class, false);
beanCopier.copy(e,vo,null);
if(vo.getCompanyArea()!=null){
SysArea byId = sysAreaService.getById(vo.getCompanyArea());
if(byId.getAreaLeveltype()==XIAN){
vo.setXianId(byId.getId());
vo.setXian(byId.getAreaName());
SysArea shi = sysAreaService.getById(byId.getAreaParentId());
if(shi!=null){
vo.setShi(shi.getAreaName());
vo.setShiId(shi.getId());
SysArea sheng = sysAreaService.getById(shi.getAreaParentId());
if (sheng != null) {
vo.setSheng(sheng.getAreaName());
vo.setShengId(sheng.getId());
}
}
}
if(byId.getAreaLeveltype()==SHI){
vo.setShi(byId.getAreaName());
vo.setShiId(byId.getId());
SysArea sheng = sysAreaService.getById(byId.getAreaParentId());
if (sheng != null) {
vo.setSheng(sheng.getAreaName());
vo.setShengId(sheng.getId());
}
}
if(byId.getAreaLeveltype()==SHENG){
vo.setSheng(byId.getAreaName());
vo.setShengId(byId.getId());
}
}
listVo.add(vo);
});
return PageResult.builder().data(listVo).code(0).count(page.getTotal()).build();
}
/**
* 根据SysCompany对象当做查询条件进行查询
* @param sysCompany
* @return SysCompany
*/
@Override
public SysCompany findByObject(SysCompany sysCompany){
return baseMapper.findByObject(sysCompany);
}
@Override
public ResultBody updateEnabled(Map params) {
Long id = MapUtils.getLong(params, "id");
if (id != null) {
SysCompany sysCompany = baseMapper.selectById(id);
if (sysCompany != null) {
Boolean enabled = MapUtils.getBoolean(params, "enabled");
sysCompany.setEnabled(enabled);
baseMapper.updateById(sysCompany);
}
}else {
return ResultBody.failed("请选择一条数据");
}
return ResultBody.ok();
}
}