package com.hollywood.applet.controller;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.hollywood.applet.dto.*;
import com.hollywood.applet.query.TCompanyQuery;
import com.hollywood.applet.service.TCompanyNeedService;
import com.hollywood.applet.service.TCompanyService;
import com.hollywood.applet.utils.DistanceCalculator;
import com.hollywood.applet.utils.DistanceCalculator1;
import com.hollywood.common.basic.ApiResult;
import com.hollywood.common.basic.PageInfo;
import com.hollywood.common.model.TCompany;
import com.hollywood.common.model.TCompanyNeed;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.ArrayList;
import java.util.List;
/**
*
* 企业管理 前端控制器
*
*
* @author xiaochen
* @since 2024-04-23
*/
@Api(tags = "企业管理")
@RestController
@RequestMapping("/t-company")
public class TCompanyController {
private final TCompanyService companyService;
@Autowired
private TCompanyNeedService needService;
@Autowired
public TCompanyController(TCompanyService companyService) {
this.companyService = companyService;
}
/**
* 获取企业管理列表
*/
@ApiOperation(value = "获取企业管理分页列表")
@PostMapping(value = "/pageList")
public ApiResult> pageList(@Validated @RequestBody TCompanyQuery query) {
return ApiResult.success(companyService.pageList(query));
}
/**
* 查看企业管理详情
*/
@ApiOperation(value = "查看企业管理详情")
@PostMapping(value = "/getDetailById")
public ApiResult getDetailById(@RequestBody CompanyDetailQuery companyDetailQuery) {
TCompany byId = companyService.getById(companyDetailQuery.getId());
CompanyDetailDto companyDetailDto = new CompanyDetailDto();
BeanUtils.copyProperties(byId,companyDetailDto);
try {
companyDetailDto.setDistance(DistanceCalculator1.calculateDistanceBetweenCoordinates(companyDetailQuery.getLat(), companyDetailQuery.getLon(), byId.getLat(), byId.getLon()));
}catch (Exception e){
companyDetailDto.setDistance(0);
}
if (byId.getCityName()!=null){
companyDetailDto.setCity(byId.getProvinceName()+" | "+byId.getCityName());
}else {
companyDetailDto.setCity(byId.getProvinceName());
}
List list = needService.list(Wrappers.lambdaQuery(TCompanyNeed.class).eq(TCompanyNeed::getCompanyId, companyDetailQuery.getId()).eq(TCompanyNeed::getStatus,1).orderByDesc(TCompanyNeed::getSortBy));
List needListDtos =new ArrayList<>();
for (TCompanyNeed tCompanyNeed : list) {
NeedListDto needListDto =new NeedListDto();
BeanUtils.copyProperties(tCompanyNeed,needListDto);
needListDtos.add(needListDto);
}
companyDetailDto.setNeedListDtos(needListDtos);
return ApiResult.success(companyDetailDto);
}
@ApiOperation(value = "查看供需详情")
@PostMapping(value = "/getNeedById/{id}")
public ApiResult getNeedById(@PathVariable Long id) {
TCompanyNeed byId = needService.getById(id);
TCompany byId1 = companyService.getById(byId.getCompanyId());
byId.setCompanyName(byId1.getCompanyName());
return ApiResult.success(byId);
}
}