4 changed files with 231 additions and 4 deletions
@ -0,0 +1,164 @@ |
|||
package com.zdxt.app.controller.external.company; |
|||
|
|||
import cn.hutool.core.io.FileTypeUtil; |
|||
import cn.hutool.core.io.FileUtil; |
|||
import com.google.common.collect.Lists; |
|||
import com.zdxt.auth.common.constant.Constants; |
|||
import com.zdxt.auth.common.utils.StringUtils; |
|||
import com.zdxt.auth.common.utils.file.FileUploadUtils; |
|||
import com.zdxt.auth.common.utils.file.FileUtils; |
|||
import com.zdxt.auth.dto.UserBean; |
|||
import com.zdxt.auth.feign.UserApi; |
|||
import com.zdxt.auth.framework.config.ServerConfig; |
|||
import com.zdxt.auth.framework.web.domain.AjaxResult; |
|||
import com.zdxt.common.ZDResponse; |
|||
import com.zdxt.common.config.RuoYiConfig; |
|||
import org.apache.commons.collections4.CollectionUtils; |
|||
import org.slf4j.Logger; |
|||
import org.slf4j.LoggerFactory; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.GetMapping; |
|||
import org.springframework.web.bind.annotation.PostMapping; |
|||
import org.springframework.web.bind.annotation.ResponseBody; |
|||
import org.springframework.web.multipart.MultipartFile; |
|||
|
|||
import javax.servlet.http.HttpServletRequest; |
|||
import javax.servlet.http.HttpServletResponse; |
|||
import java.io.InputStream; |
|||
import java.util.List; |
|||
import java.util.Locale; |
|||
|
|||
/** |
|||
* 通用请求处理 |
|||
* |
|||
* @author ruoyi |
|||
*/ |
|||
@Controller |
|||
public class OutCommonController |
|||
{ |
|||
private static final Logger log = LoggerFactory.getLogger(OutCommonController.class); |
|||
|
|||
@Autowired |
|||
private ServerConfig serverConfig; |
|||
|
|||
@Autowired |
|||
private UserApi userApi; |
|||
/** |
|||
* 默认允许的文件类型 |
|||
* |
|||
* @see FileTypeUtil |
|||
*/ |
|||
private List<String> defaultAllowTypes = Lists.newArrayList( |
|||
"xlsx", "xls", "docx", "doc", "pdf", "txt", |
|||
"jpg", "jpeg", "png", "bmp", "mp4", |
|||
"zip"); |
|||
|
|||
/** |
|||
* 通用下载请求 |
|||
* |
|||
* @param fileName 文件名称 |
|||
* @param delete 是否删除 |
|||
*/ |
|||
@GetMapping("/external/common/download") |
|||
public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request) |
|||
{ |
|||
try |
|||
{ |
|||
if (!FileUtils.isValidFilename(fileName)) |
|||
{ |
|||
throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); |
|||
} |
|||
String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); |
|||
String filePath = RuoYiConfig.getDownloadPath() + fileName; |
|||
|
|||
response.setCharacterEncoding("utf-8"); |
|||
response.setContentType("multipart/form-data"); |
|||
response.setHeader("Content-Disposition", |
|||
"attachment;fileName=" + FileUtils.setFileDownloadHeader(request, realFileName)); |
|||
FileUtils.writeBytes(filePath, response.getOutputStream()); |
|||
if (delete) |
|||
{ |
|||
FileUtils.deleteFile(filePath); |
|||
} |
|||
} |
|||
catch (Exception e) |
|||
{ |
|||
log.error("下载文件失败", e); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 通用上传请求 |
|||
*/ |
|||
@PostMapping("/external/common/upload") |
|||
@ResponseBody |
|||
public AjaxResult uploadFile(MultipartFile file) throws Exception |
|||
{ |
|||
try |
|||
{ |
|||
String fileNameTmp = file.getOriginalFilename(); |
|||
InputStream in = file.getInputStream(); |
|||
String type = FileTypeUtil.getType(in); |
|||
if (StringUtils.isBlank(type)) { |
|||
// 无法通过文件头或者扩展名识别文件类型。
|
|||
return AjaxResult.error("上传失败格式不符合要求"); |
|||
} |
|||
|
|||
String extType = FileUtil.extName(fileNameTmp); |
|||
if (StringUtils.isBlank(extType)) { |
|||
// 后缀读不到类型,直接拒绝
|
|||
return AjaxResult.error("无法读取文件类型"); |
|||
} |
|||
|
|||
// 文件头类型和后缀类型都要满足白名单
|
|||
if (!CollectionUtils.containsAll(defaultAllowTypes, |
|||
Lists.newArrayList(type.toLowerCase(Locale.ROOT), extType.toLowerCase(Locale.ROOT)))) { |
|||
|
|||
return AjaxResult.error("文件上传失败"); |
|||
} |
|||
|
|||
// 上传文件路径
|
|||
String filePath = RuoYiConfig.getUploadPath(); |
|||
// 上传并返回新文件名称
|
|||
String fileName = FileUploadUtils.upload(filePath, file); |
|||
log.info("文件上传"+fileName); |
|||
String url = fileName; |
|||
AjaxResult ajax = AjaxResult.success(); |
|||
ajax.put("fileName", fileName); |
|||
ajax.put("url", url); |
|||
return ajax; |
|||
} |
|||
catch (Exception e) |
|||
{ |
|||
return AjaxResult.error(e.getMessage()); |
|||
} |
|||
} |
|||
|
|||
/** |
|||
* 本地资源通用下载 |
|||
*/ |
|||
@GetMapping("/external/common/download/resource") |
|||
public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response) |
|||
throws Exception |
|||
{ |
|||
// 本地资源路径
|
|||
String localPath = RuoYiConfig.getProfile(); |
|||
// 数据库资源地址
|
|||
String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); |
|||
// 下载名称
|
|||
String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); |
|||
response.setCharacterEncoding("utf-8"); |
|||
response.setContentType("multipart/form-data"); |
|||
response.setHeader("Content-Disposition", |
|||
"attachment;fileName=" + FileUtils.setFileDownloadHeader(request, downloadName)); |
|||
FileUtils.writeBytes(downloadPath, response.getOutputStream()); |
|||
} |
|||
|
|||
@GetMapping("/external/getUserInfo") |
|||
@ResponseBody |
|||
public ZDResponse getUserInfo(){ |
|||
UserBean user = userApi.getCurrentUser(); |
|||
return ZDResponse.success("查询成功",user); |
|||
} |
|||
} |
|||
@ -0,0 +1,63 @@ |
|||
package com.zdxt.app.controller.external.company; |
|||
|
|||
import cn.hutool.core.bean.BeanUtil; |
|||
import cn.hutool.core.convert.Convert; |
|||
import cn.hutool.core.util.StrUtil; |
|||
import com.zdxt.auth.dto.DictDataBean; |
|||
import com.zdxt.auth.feign.DictDataApi; |
|||
import com.zdxt.auth.feign.ZdxtFileCommonApi; |
|||
import com.zdxt.code.domain.*; |
|||
import com.zdxt.code.mapper.EnforcementRegistrationMapper; |
|||
import com.zdxt.code.service.*; |
|||
import com.zdxt.common.ZDResponse; |
|||
import com.zdxt.common.controller.BaseController; |
|||
import com.zdxt.common.util.StringUtils; |
|||
import com.zdxt.common.util.TableDataInfo; |
|||
import com.zdxt.common.zdxtFile.ZdxtFileCommon; |
|||
import org.springframework.beans.factory.annotation.Autowired; |
|||
import org.springframework.stereotype.Controller; |
|||
import org.springframework.web.bind.annotation.*; |
|||
|
|||
import java.util.*; |
|||
|
|||
/** |
|||
* 外部接口-企业执法-在线投诉Controller |
|||
* |
|||
* @author kylin |
|||
* @date 2026-04-15 |
|||
*/ |
|||
//@Tag(name = "外部接口", description = "企业信息")
|
|||
@Controller |
|||
@RequestMapping("/external/enterprise/info") |
|||
public class OutEnterpriseInfoController extends BaseController { |
|||
|
|||
@Autowired private IEnterpriseInformationService enterpriseInformationService; |
|||
@Autowired private IQrCodeGenerateHistoryService iQrCodeGenerateHistoryService; |
|||
|
|||
@GetMapping("/getQrCode") |
|||
@ResponseBody |
|||
public ZDResponse getQrCode(String enterpriseNumber) |
|||
{ |
|||
//查询企业二维码信息
|
|||
QrCodeGenerateHistory qrCodeGenerateHistory = iQrCodeGenerateHistoryService.selectQrCodeGenerateHistoryByNewest(enterpriseNumber); |
|||
//查询企业信息
|
|||
EnterpriseInformation enterpriseInformation = |
|||
enterpriseInformationService.selectEnterpriseInformationByNum(enterpriseNumber); |
|||
if(BeanUtil.isNotEmpty(enterpriseInformation) && |
|||
StrUtil.isNotEmpty(enterpriseInformation.getEnterpriseNumber())){ |
|||
qrCodeGenerateHistory.setEnterpriseName(enterpriseInformation.getEnterpriseName()); |
|||
} |
|||
return ZDResponse.success("查询成功",qrCodeGenerateHistory); |
|||
} |
|||
|
|||
/** |
|||
* 新增保存企业信息登记 |
|||
*/ |
|||
@PostMapping("/addEnterprise") |
|||
@ResponseBody |
|||
public ZDResponse addEnterprise(@RequestBody EnterpriseInformation enterpriseInformation) |
|||
{ |
|||
return enterpriseInformationService.insertEnterpriseInformation(enterpriseInformation) > 0 |
|||
? ZDResponse.success("登记成功"): ZDResponse.error("登记失败"); |
|||
} |
|||
} |
|||
Loading…
Reference in new issue