package com.boco.nbd.wios.manage.controller; import cn.hutool.core.lang.Assert; import com.boco.nbd.cams.core.constant.CamsConstant; import com.boco.nbd.cams.core.constant.MessageConstant; import com.boco.nbd.wios.manage.contants.WiosConstant; import com.boco.nbd.wios.manage.entity.bo.Oem; import com.boco.nbd.wios.manage.entity.bo.OemBo; import com.boco.nbd.wios.manage.entity.common.bo.UploadFile; import com.boco.nbd.wios.manage.service.impl.OemService; import com.boco.nbd.wios.manage.util.CommonUtils; import com.ihidea.component.api.v2.BaseResponse; import com.ihidea.core.support.exception.ServiceException; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import springfox.documentation.annotations.ApiIgnore; import java.util.ArrayList; import java.util.List; /** * 主机厂/4s店相关api * * @author */ @RestController @RequestMapping("api") @Api(tags = "主机厂和经销商管理接口") @Slf4j public class OemController { @Autowired private OemService oemService; private final static String LIKE_FLAG = "%"; /** * 查询列表 * * @param oemBo * @return */ @GetMapping(value = "oem/list") @ApiOperation(value = "查询列表") @ApiImplicitParams({@ApiImplicitParam(name = "page", value = "一页显示数量", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "pagecount", value = "页码", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "code", value = "编码", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "contactName", value = "联系人姓名", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "manualDispatchOrder", value = "是否人工派单 0:否 1:是", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "type", value = "类型 1-主机厂 2-经销商", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "status", value = "状态 0禁用 1启用", dataType = "int", paramType = "query", required = false), @ApiImplicitParam(name = "regionId", value = "区域id", dataType = "int", paramType = "query", required = false),}) public BaseResponse<Object> list(OemBo oemBo) { if (!StringUtils.isEmpty(oemBo.getCode()) && oemBo.getCode().contains(LIKE_FLAG)) { oemBo.setCode(oemBo.getCode().replaceAll(LIKE_FLAG, "\\\\%")); } if (!StringUtils.isEmpty(oemBo.getName()) && oemBo.getName().contains(LIKE_FLAG)) { oemBo.setName(oemBo.getName().replaceAll(LIKE_FLAG, "\\\\%")); } if (!StringUtils.isEmpty(oemBo.getOrganizationCode()) && oemBo.getOrganizationCode().contains(LIKE_FLAG)) { oemBo.setOrganizationCode(oemBo.getOrganizationCode().replaceAll(LIKE_FLAG, "\\\\%")); } return new BaseResponse<>(oemService.getList(oemBo)); } /** * 查询自己及旗下经销商 * * @param id * @return */ @GetMapping(value = "oem/getSelfAndChildren") @ApiOperation(value = "查询自己及旗下经销商") @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主机厂id", dataType = "int", paramType = "query", required = true),}) public BaseResponse<List<Oem>> getSelfAndChildren(Integer id) { return new BaseResponse<>(oemService.getSelfAndChildren(id)); } /** * 新增 * * @param oem */ @PostMapping(value = "oem/add") @ApiOperation(value = "添加") @ApiImplicitParams({@ApiImplicitParam(name = "account", value = "账户", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "type", value = "类型 1-主机厂 2-经销商", dataType = "int", paramType = "query", required = true), }) public BaseResponse<Object> add(OemBo oem) { if (oem.getType() == null) { throw new ServiceException(MessageConstant.MISSING_PARAM); } oemService.add(oem); return new BaseResponse<>(); } /** * 更新 * * @param oem */ @PostMapping(value = "oem/update") @ApiOperation(value = "更新") @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主键id", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "code", value = "编码", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "contactName", value = "联系人姓名", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "manualDispatchOrder", value = "是否人工派单 0:否 1:是", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", required = false), }) public BaseResponse<Object> update(OemBo oem) { oemService.update(oem); return new BaseResponse<>(); } /** * 更新账号 * * @param accountId * @param account * @return */ @PostMapping(value = "oem/updateAccount") @ApiOperation(value = "更新账号") @ApiImplicitParams({@ApiImplicitParam(name = "accountId", value = "账号id", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "account", value = "登陆手机号", dataType = "String", paramType = "query", required = true),}) public BaseResponse<Object> updateAccount(Integer accountId, String account) { if (StringUtils.isEmpty(account) || accountId == null) { throw new ServiceException(MessageConstant.MISSING_PARAM); } oemService.updateAccount(accountId, account); return new BaseResponse<>(); } /** * 附件上传 * * @param oemId * @param fileName * @param fileUrl */ @PostMapping(value = "oem/fileUpload") @ApiOperation(value = "附件上传") @ApiImplicitParams({@ApiImplicitParam(name = "oemId", value = "主机厂id", dataType = "int", paramType = "query", required = true), @ApiImplicitParam(name = "fileName", value = "文件名", dataType = "String", paramType = "query", required = true), @ApiImplicitParam(name = "fileUrl", value = "文件地址", dataType = "String", paramType = "query", required = true),}) public BaseResponse<Object> fileUpload(Integer oemId, String fileName, String fileUrl) { if (StringUtils.isEmpty(fileName) || oemId == null || StringUtils.isEmpty(fileUrl)) { throw new ServiceException(MessageConstant.MISSING_PARAM); } if (!StringUtils.isEmpty(fileUrl)) { String[] arr = fileUrl.split(CamsConstant.COMMA); List<String> list = new ArrayList<>(); for (String s : arr) { list.add(CommonUtils.urlHandle(s)); } fileUrl = StringUtils.collectionToCommaDelimitedString(list); } oemService.fileUpload(oemId, fileName, fileUrl); return new BaseResponse<>(); } /** * 校验唯一性 * * @param code * @param name * @return */ @GetMapping(value = "oem/checkExist") @ApiOperation(value = "校验唯一性") @ApiImplicitParams({@ApiImplicitParam(name = "code", value = "编码", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "name", value = "名称", dataType = "String", paramType = "query", required = false), @ApiImplicitParam(name = "id", value = "主机厂id", dataType = "int", paramType = "query", required = false),}) public BaseResponse<Boolean> checkExist(String code, String name, Integer id) { if (StringUtils.isEmpty(code) && StringUtils.isEmpty(name)) { return new BaseResponse<>(false); } if (!StringUtils.isEmpty(code)) { return new BaseResponse<>(false); } return new BaseResponse<>(oemService.checkExist(code, name, id)); } /** * 查询订单附件列表 * * @param id * @return */ @GetMapping(value = "oem/getFiles") @ApiOperation(value = "查询附件列表") @ApiImplicitParams({@ApiImplicitParam(name = "id", value = "主机厂id", dataType = "String", paramType = "query", required = true)}) public BaseResponse<List<UploadFile>> getFiles(Integer id) { Assert.notNull(id, WiosConstant.EMPTY_ID); return new BaseResponse<List<UploadFile>>(oemService.getFiles(id)); } }