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); } }