文件资源上传至管理平台接口
This commit is contained in:
parent
b98901dd35
commit
1beafa4faf
|
|
@ -16,5 +16,5 @@ public interface IOrgApplyInfoApi {
|
|||
|
||||
IPage<OrgAllInfoApiEntity> queryOrgAllInfo(Integer pageNo, Integer pageSize, String orgCode, String title);
|
||||
|
||||
List<OrgAllInfoApiEntity> getOrgByOpenId(String id,String status,String openId,String invited);
|
||||
List<OrgAllInfoApiEntity> getOrgByOpenId(String id, String status, String openId, String invited, String izHistory);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -310,4 +310,7 @@ public class OrgAllInfoApiEntity implements Serializable {
|
|||
*/
|
||||
private String modifyState;
|
||||
|
||||
//0历史数据 1当前数据
|
||||
private String izHistory;
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -69,6 +69,25 @@ public class NuEmployeesAdvisoryInfoServiceImpl extends ServiceImpl<NuEmployeesA
|
|||
EmployeesOrg employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setModifyStatus("1");
|
||||
employeesOrgService.update(employeesOrg,uw);
|
||||
|
||||
uw = new UpdateWrapper<EmployeesOrg>();
|
||||
uw.eq("employees_id",dto.getId());
|
||||
// uw.eq("iz_history","1");
|
||||
uw.eq("org_code",dto.getOrgCode());
|
||||
employeesOrg = new EmployeesOrg();
|
||||
employeesOrg.setIzHistory("0");
|
||||
employeesOrgService.update(employeesOrg,uw);
|
||||
|
||||
//插入数据
|
||||
EmployeesOrg emAdd = new EmployeesOrg();
|
||||
BeanUtils.copyProperties(dto, emAdd);
|
||||
emAdd.setId(null);
|
||||
emAdd.setEmployeesId(dto.getId());
|
||||
emAdd.setIzHistory("1");
|
||||
emAdd.setModifyStatus("1");
|
||||
emAdd.setStatus("1");
|
||||
emAdd.setApplyType("2");
|
||||
employeesOrgService.save(emAdd);
|
||||
//更新员工信息需要有审核流程 审核通过后才修改正式数据
|
||||
//通知业务平台有员工信息变更
|
||||
EmployeesApplyMQDto mqdto = new EmployeesApplyMQDto();
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@
|
|||
and billinfo.elder_id = #{dto.elderId}
|
||||
</if>
|
||||
<if test="dto.nuId != null and dto.nuId != ''">
|
||||
and billinfo.nu_id = #{nuId}
|
||||
and billinfo.nu_id = #{dto.nuId}
|
||||
</if>
|
||||
</where>
|
||||
order by billinfo.create_time desc
|
||||
|
|
|
|||
|
|
@ -192,4 +192,6 @@ public class OrgAllInfo implements Serializable {
|
|||
private String auditTime;
|
||||
/**信息修改状态 空:没提交过修改 1修改申请中 2通过 3驳回*/
|
||||
private String modifyState;
|
||||
//0历史数据 1当前数据
|
||||
private String izHistory;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -20,5 +20,5 @@ public interface OrgApplyInfoMapper extends BaseMapper<OrgApplyInfo> {
|
|||
|
||||
IPage<OrgAllInfo> queryOrgInfo(@Param("page") IPage<OrgAllInfo> page, @Param("orgCode") String orgCode, @Param("title") String title);
|
||||
|
||||
IPage<OrgAllInfo> getOrgByOpenId(IPage<OrgAllInfo> page, @Param("id") String id, @Param("openId") String openId, @Param("status") String status, @Param("invited") String invited);
|
||||
IPage<OrgAllInfo> getOrgByOpenId(IPage<OrgAllInfo> page, @Param("id") String id, @Param("openId") String openId, @Param("status") String status, @Param("invited") String invited, @Param("izHistory") String izHistory);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -92,7 +92,8 @@
|
|||
eo.entry_time,
|
||||
eo.create_time AS apply_time,
|
||||
eo.update_time AS audit_time,
|
||||
eo.modify_status AS modify_state
|
||||
eo.modify_status AS modify_state,
|
||||
eo.iz_history
|
||||
from sys_depart d
|
||||
inner join nu_org_apply_info o on d.id = o.pk_id
|
||||
inner join nu_biz_employees_org eo on d.org_code = eo.org_code
|
||||
|
|
@ -100,7 +101,9 @@
|
|||
o.status = '2'
|
||||
and d.del_flag = '0'
|
||||
AND eo.open_id = #{openId}
|
||||
AND eo.iz_history = '1'
|
||||
<if test="izHistory != null and izHistory != ''">
|
||||
and eo.iz_history = #{izHistory}
|
||||
</if>
|
||||
<if test="status != null and status != ''">
|
||||
and eo.status in
|
||||
<foreach collection="status.split(',')" item="item" open="(" separator="," close=")">
|
||||
|
|
@ -108,28 +111,32 @@
|
|||
</foreach>
|
||||
</if>
|
||||
<if test="invited !=null and invited != ''">
|
||||
and eo.apply_type = #{invited}
|
||||
and eo.apply_type in
|
||||
<foreach collection="invited.split(',')" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</if>
|
||||
<if test="id !=null and id != ''">
|
||||
and eo.id = #{id}
|
||||
</if>
|
||||
</where>
|
||||
<choose>
|
||||
<when test='status != null and status == "2"'>
|
||||
ORDER BY (d.org_code + 0) ASC
|
||||
</when>
|
||||
<otherwise>
|
||||
ORDER BY
|
||||
eo.iz_history desc,
|
||||
CASE eo.status
|
||||
WHEN '2' THEN 1
|
||||
WHEN '1' THEN 2
|
||||
WHEN '3' THEN 3
|
||||
ELSE 4
|
||||
END,
|
||||
eo.create_time DESC
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
order by eo.create_time DESC
|
||||
</select>
|
||||
|
||||
<!-- <choose>-->
|
||||
<!-- <when test='status != null and status == "2"'>-->
|
||||
<!-- ORDER BY (d.org_code + 0) ASC-->
|
||||
<!-- </when>-->
|
||||
<!-- <otherwise>-->
|
||||
<!-- ORDER BY-->
|
||||
<!-- eo.iz_history desc,-->
|
||||
<!-- CASE eo.status-->
|
||||
<!-- WHEN '2' THEN 1-->
|
||||
<!-- WHEN '1' THEN 2-->
|
||||
<!-- WHEN '3' THEN 3-->
|
||||
<!-- ELSE 4-->
|
||||
<!-- END,-->
|
||||
<!-- eo.create_time DESC-->
|
||||
<!-- </otherwise>-->
|
||||
<!-- </choose>-->
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -348,7 +348,7 @@ public class OrgApplyInfoServiceImpl extends ServiceImpl<OrgApplyInfoMapper, Org
|
|||
|
||||
@Override
|
||||
public IPage<OrgAllInfo> getOrgByOpenId(IPage<OrgAllInfo> page, String openId) {
|
||||
return baseMapper.getOrgByOpenId(page, null, openId, "2", null);
|
||||
return baseMapper.getOrgByOpenId(page, null, openId, "2", null, null);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
@ -372,9 +372,9 @@ public class OrgApplyInfoServiceImpl extends ServiceImpl<OrgApplyInfoMapper, Org
|
|||
}
|
||||
|
||||
@Override
|
||||
public List<OrgAllInfoApiEntity> getOrgByOpenId(String id, String status, String openId, String invited) {
|
||||
public List<OrgAllInfoApiEntity> getOrgByOpenId(String id, String status, String openId, String invited, String izHistory) {
|
||||
IPage<OrgAllInfo> page = new Page<>(1, -1);
|
||||
IPage<OrgAllInfo> r_ = baseMapper.getOrgByOpenId(page, id, openId, status, invited);
|
||||
IPage<OrgAllInfo> r_ = baseMapper.getOrgByOpenId(page, id, openId, status, invited, izHistory);
|
||||
List<OrgAllInfo> records = r_.getRecords();
|
||||
List<OrgAllInfoApiEntity> result = BeanUtil.copyToList(records, OrgAllInfoApiEntity.class);
|
||||
return result;
|
||||
|
|
|
|||
|
|
@ -356,6 +356,15 @@ public class EmployeesMQListener {
|
|||
EmployeesOrg eo = new EmployeesOrg();
|
||||
eo.setModifyStatus("2");
|
||||
employeesOrgService.update(eo, uw);
|
||||
|
||||
uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("org_code", dto.getOrgCode());
|
||||
uw.eq("iz_history", "1");
|
||||
eo = new EmployeesOrg();
|
||||
eo.setStatus("2");
|
||||
employeesOrgService.update(eo, uw);
|
||||
|
||||
//修改员工咨询表信息
|
||||
NuEmployeesAdvisoryInfo employeeInfo = new NuEmployeesAdvisoryInfo();
|
||||
BeanUtils.copyProperties(dto, employeeInfo);
|
||||
|
|
@ -399,6 +408,15 @@ public class EmployeesMQListener {
|
|||
EmployeesOrg eo = new EmployeesOrg();
|
||||
eo.setModifyStatus("3");
|
||||
employeesOrgService.update(eo, uw);
|
||||
|
||||
uw = new UpdateWrapper<>();
|
||||
uw.eq("employees_id", dto.getEmployeeId());
|
||||
uw.eq("org_code", dto.getOrgCode());
|
||||
uw.eq("iz_history", "1");
|
||||
eo = new EmployeesOrg();
|
||||
eo.setStatus("3");
|
||||
eo.setAuditContent(dto.getAuditContent());
|
||||
employeesOrgService.update(eo, uw);
|
||||
}
|
||||
|
||||
//增加机构邀请员工的消息通知
|
||||
|
|
|
|||
|
|
@ -1,13 +1,12 @@
|
|||
package com.nu.modules.common;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.nu.entity.SysUploadPreEntity;
|
||||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.system.api.ISysBaseAPI;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
/**
|
||||
* 通用接口
|
||||
|
|
@ -21,31 +20,35 @@ public class NuCommonApi {
|
|||
|
||||
@Autowired
|
||||
private ISysBaseAPI sysBaseAPI;
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
/**
|
||||
* 获取机构信息
|
||||
*
|
||||
* @param orgCode 机构编码
|
||||
* @return
|
||||
*/
|
||||
@GetMapping("/getOrgInfo")
|
||||
public Result<JSONObject> getOrgInfo(@RequestParam("orgCode") String orgCode){
|
||||
public Result<JSONObject> getOrgInfo(@RequestParam("orgCode") String orgCode) {
|
||||
return Result.ok(sysBaseAPI.getOrgInfo(orgCode));
|
||||
}
|
||||
|
||||
//获取标准指令库机构信息
|
||||
@GetMapping("/getDMOrgInfo")
|
||||
public Result<JSONObject> getDMOrgInfo(){
|
||||
public Result<JSONObject> getDMOrgInfo() {
|
||||
return Result.ok(sysBaseAPI.getDMOrgInfo());
|
||||
}
|
||||
|
||||
//获取长者标准标签库机构信息
|
||||
@GetMapping("/getETMOrgInfo")
|
||||
public Result<JSONObject> getETMOrgInfo(){
|
||||
public Result<JSONObject> getETMOrgInfo() {
|
||||
return Result.ok(sysBaseAPI.getETMOrgInfo());
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据父id查询对应省、市、区/县 列表
|
||||
*
|
||||
* @param id 父id
|
||||
* @return 列表
|
||||
*/
|
||||
|
|
@ -56,6 +59,7 @@ public class NuCommonApi {
|
|||
|
||||
/**
|
||||
* 根据id查询对应省市区县信息
|
||||
*
|
||||
* @param id
|
||||
* @return 对应的一条数据
|
||||
*/
|
||||
|
|
@ -63,4 +67,18 @@ public class NuCommonApi {
|
|||
public Result<Object> queryAreaNameById(@RequestParam("id") String id) {
|
||||
return Result.ok(sysBaseAPI.queryAreaNameById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 上传资源前置方法,存储必要信息,用于后续验证
|
||||
*
|
||||
* @param dto
|
||||
* @return 对应的一条数据
|
||||
*/
|
||||
@PostMapping("/saveFileType")
|
||||
public Result<?> saveFileType(@RequestBody SysUploadPreEntity dto) {
|
||||
String fileName = dto.getFileName();
|
||||
String fileSize = dto.getFileSize();
|
||||
redisUtil.sSet("canuploadparams", fileName + "-" + fileSize);
|
||||
return Result.ok(200);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -110,8 +110,12 @@ public class EmployessApplyApi {
|
|||
* @return
|
||||
*/
|
||||
@GetMapping(value = "/getEmployeesOrgRela")
|
||||
public Result<List<OrgAllInfoApiEntity>> getEmployeesOrgRela(@RequestParam(value = "id", required = false) String id, @RequestParam(value = "status", required = false) String status, @RequestParam(value = "invited", required = false) String invited, @RequestParam(value = "openId") String openId) {
|
||||
List<OrgAllInfoApiEntity> result = orgApplyInfoApi.getOrgByOpenId(id, status, openId, invited);
|
||||
public Result<List<OrgAllInfoApiEntity>> getEmployeesOrgRela(@RequestParam(value = "id", required = false) String id,
|
||||
@RequestParam(value = "status", required = false) String status,
|
||||
@RequestParam(value = "invited", required = false) String invited,
|
||||
@RequestParam(value = "openId") String openId,
|
||||
@RequestParam(value = "izHistory", required = false) String izHistory) {
|
||||
List<OrgAllInfoApiEntity> result = orgApplyInfoApi.getOrgByOpenId(id, status, openId, invited, izHistory);
|
||||
return Result.OK(result);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -69,7 +69,7 @@ public class NuBaseInfoApi {
|
|||
* @return
|
||||
*/
|
||||
@GetMapping("/queryBillList")
|
||||
public Result<List<NuBillEntity>> queryBillList(@RequestParam("openId") String openId, @RequestParam("orgCode") String orgCode) {
|
||||
public Result<List<NuBillEntity>> queryBillList(@RequestParam("openId") String openId, @RequestParam("nuId") String nuId, @RequestParam("orgCode") String orgCode) {
|
||||
//护理单元信息
|
||||
// List<NuBaseElderEntity> nuElderList = nuBaseElderApi.queryByOpenId(openId, null);
|
||||
// if (nuElderList == null || nuElderList.size() == 0) {
|
||||
|
|
@ -93,6 +93,7 @@ public class NuBaseInfoApi {
|
|||
DynamicDataSourceContextHolder.push(orgCode);
|
||||
NuBillEntity params = new NuBillEntity();
|
||||
params.setOpenId(openId);
|
||||
params.setNuId(nuId);
|
||||
List<NuBillEntity> list = nuBillApi.queryByOpenId(params);
|
||||
// if (list == null || list.size() == 0) {
|
||||
// continue;
|
||||
|
|
|
|||
|
|
@ -110,6 +110,8 @@ public class ShiroConfig {
|
|||
//filterChainDefinitionMap.put("/sys/common/view/**", "anon");//图片预览不限制token
|
||||
//filterChainDefinitionMap.put("/sys/common/download/**", "anon");//文件下载不限制token
|
||||
filterChainDefinitionMap.put("/generic/**", "anon");//pdf预览需要文件
|
||||
filterChainDefinitionMap.put("/api/common/saveFileType", "anon");//上传文件前调用的前置接口,存储文件信息,用于验证
|
||||
filterChainDefinitionMap.put("/sys/common/static/upload/export", "anon");//上传暴露接口
|
||||
|
||||
filterChainDefinitionMap.put("/sys/dict/getDictItems/**", "anon");//获取字典数据
|
||||
filterChainDefinitionMap.put("/sys/sysDepart/queryInstitutionsList", "anon");//授权接口排除
|
||||
|
|
|
|||
|
|
@ -0,0 +1,19 @@
|
|||
package com.nu.entity;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* @Description: 文件上传前置参数
|
||||
* @Author: zmy
|
||||
* @Date: 2025-10-9 09:26:22
|
||||
* @Version: V1.0
|
||||
*/
|
||||
@Data
|
||||
public class SysUploadPreEntity implements Serializable {
|
||||
|
||||
private String fileName;
|
||||
private String fileSubfix;
|
||||
private String fileSize;
|
||||
}
|
||||
|
|
@ -143,18 +143,18 @@ public class ElderTagController extends JeecgController<ElderTag, IElderTagServi
|
|||
public Result<Map> syncElderTag(@RequestParam(name = "sourceOrgCode") String sourceOrgCode, @RequestBody ElderTagSyncDto dto) {
|
||||
//处理接口地址
|
||||
String fullPath = "";
|
||||
if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption()) || StringUtils.isNotBlank(dto.getUpIds())) {
|
||||
JSONObject deptInfo = elderTagService.getDeptInfo("master", sourceOrgCode);
|
||||
String url = deptInfo.getString("url");
|
||||
String contextPath = deptInfo.getString("contextPath");
|
||||
String baseUrl = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
|
||||
String normalizedContextPath = contextPath.startsWith("/") ? contextPath : "/" + contextPath;
|
||||
normalizedContextPath = normalizedContextPath.endsWith("/")
|
||||
? normalizedContextPath.substring(0, normalizedContextPath.length() - 1)
|
||||
: normalizedContextPath;
|
||||
//接口协议、域名、上下文路径
|
||||
fullPath = baseUrl + normalizedContextPath;
|
||||
}
|
||||
// if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption()) || StringUtils.isNotBlank(dto.getUpIds())) {
|
||||
// JSONObject deptInfo = elderTagService.getDeptInfo("master", sourceOrgCode);
|
||||
// String url = deptInfo.getString("url");
|
||||
// String contextPath = deptInfo.getString("contextPath");
|
||||
// String baseUrl = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
|
||||
// String normalizedContextPath = contextPath.startsWith("/") ? contextPath : "/" + contextPath;
|
||||
// normalizedContextPath = normalizedContextPath.endsWith("/")
|
||||
// ? normalizedContextPath.substring(0, normalizedContextPath.length() - 1)
|
||||
// : normalizedContextPath;
|
||||
// //接口协议、域名、上下文路径
|
||||
// fullPath = baseUrl + normalizedContextPath;
|
||||
// }
|
||||
|
||||
//同步-新增服务指令
|
||||
if (StringUtils.isNotBlank(dto.getSyncIds())) {
|
||||
|
|
|
|||
|
|
@ -126,7 +126,7 @@ public class ElderTaggMQListener {
|
|||
extend.put("orgCode", dto.getOrgCode());
|
||||
extend.put("dataId", dto.getId());
|
||||
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
|
||||
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
|
||||
wxNoticeEntity.setClientType(WxClientType.ELDER.getCode());
|
||||
wxNoticeApi.addNotice(wxNoticeEntity);
|
||||
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
|
||||
}
|
||||
|
|
@ -143,7 +143,7 @@ public class ElderTaggMQListener {
|
|||
extend.put("orgCode", dto.getOrgCode());
|
||||
extend.put("dataId", dto.getId());
|
||||
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
|
||||
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
|
||||
wxNoticeEntity.setClientType(WxClientType.ELDER.getCode());
|
||||
wxNoticeApi.addNotice(wxNoticeEntity);
|
||||
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
|
||||
}
|
||||
|
|
@ -168,7 +168,7 @@ public class ElderTaggMQListener {
|
|||
extend.put("orgCode", dto.getOrgCode());
|
||||
extend.put("dataId", dto.getId());
|
||||
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
|
||||
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
|
||||
wxNoticeEntity.setClientType(WxClientType.ELDER.getCode());
|
||||
wxNoticeApi.addNotice(wxNoticeEntity);
|
||||
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
|
||||
}
|
||||
|
|
@ -190,7 +190,7 @@ public class ElderTaggMQListener {
|
|||
extend.put("orgCode", dto.getOrgCode());
|
||||
extend.put("dataId", dto.getId());
|
||||
wxNoticeEntity.setExtend(JSONObject.toJSONString(extend));
|
||||
wxNoticeEntity.setClientType(WxClientType.EMPLOYEE.getCode());
|
||||
wxNoticeEntity.setClientType(WxClientType.ELDER.getCode());
|
||||
wxNoticeApi.addNotice(wxNoticeEntity);
|
||||
wxNoticeApi.sendWechartMinMessage(wxNoticeEntity);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -442,18 +442,18 @@ public class ConfigServiceDirectiveController extends JeecgController<ConfigServ
|
|||
public Result<Map> syncDirective(@RequestParam(name = "dataSourceCode") String dataSourceCode, @RequestBody DirectiveSyncDto dto) {
|
||||
//处理接口地址
|
||||
String fullPath = "";
|
||||
if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption()) || StringUtils.isNotBlank(dto.getUpIds())) {
|
||||
JSONObject deptInfo = configServiceDirectiveService.getDeptInfo("master", dataSourceCode);
|
||||
String url = deptInfo.getString("url");
|
||||
String contextPath = deptInfo.getString("contextPath");
|
||||
String baseUrl = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
|
||||
String normalizedContextPath = contextPath.startsWith("/") ? contextPath : "/" + contextPath;
|
||||
normalizedContextPath = normalizedContextPath.endsWith("/")
|
||||
? normalizedContextPath.substring(0, normalizedContextPath.length() - 1)
|
||||
: normalizedContextPath;
|
||||
//接口协议、域名、上下文路径
|
||||
fullPath = baseUrl + normalizedContextPath;
|
||||
}
|
||||
// if ("all".equals(dto.getSyncOption()) || "media".equals(dto.getSyncOption()) || StringUtils.isNotBlank(dto.getUpIds())) {
|
||||
// JSONObject deptInfo = configServiceDirectiveService.getDeptInfo("master", dataSourceCode);
|
||||
// String url = deptInfo.getString("url");
|
||||
// String contextPath = deptInfo.getString("contextPath");
|
||||
// String baseUrl = url.endsWith("/") ? url.substring(0, url.length() - 1) : url;
|
||||
// String normalizedContextPath = contextPath.startsWith("/") ? contextPath : "/" + contextPath;
|
||||
// normalizedContextPath = normalizedContextPath.endsWith("/")
|
||||
// ? normalizedContextPath.substring(0, normalizedContextPath.length() - 1)
|
||||
// : normalizedContextPath;
|
||||
// //接口协议、域名、上下文路径
|
||||
// fullPath = baseUrl + normalizedContextPath;
|
||||
// }
|
||||
|
||||
//同步-新增服务指令
|
||||
if (StringUtils.isNotBlank(dto.getSyncIds())) {
|
||||
|
|
|
|||
|
|
@ -442,25 +442,25 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
if (directives != null && !directives.isEmpty()) {
|
||||
directives.stream().forEach(record -> {
|
||||
//清空指令资源字段的值
|
||||
if ("business".equals(syncOption)) {
|
||||
record.setPreviewFile(null);
|
||||
record.setImmediateFile(null);
|
||||
record.setImmediateFileFocus(null);
|
||||
record.setMp3File(null);
|
||||
record.setMp4File(null);
|
||||
record.setServiceContent(null);
|
||||
record.setPreviewFileMd5(null);
|
||||
record.setImmediateFileMd5(null);
|
||||
record.setImmediateFileFocusMd5(null);
|
||||
record.setMp3FileMd5(null);
|
||||
record.setMp4FileMd5(null);
|
||||
}
|
||||
// if ("business".equals(syncOption)) {
|
||||
// record.setPreviewFile(null);
|
||||
// record.setImmediateFile(null);
|
||||
// record.setImmediateFileFocus(null);
|
||||
// record.setMp3File(null);
|
||||
// record.setMp4File(null);
|
||||
// record.setServiceContent(null);
|
||||
// record.setPreviewFileMd5(null);
|
||||
// record.setImmediateFileMd5(null);
|
||||
// record.setImmediateFileFocusMd5(null);
|
||||
// record.setMp3FileMd5(null);
|
||||
// record.setMp4FileMd5(null);
|
||||
// }
|
||||
|
||||
List<DirectiveBodyTag> bodyTagList = record.getBodyTagList();
|
||||
record.setBodyTags(bodyTagList.stream().map(DirectiveBodyTag::getId).collect(Collectors.joining(",")));
|
||||
|
||||
List<DirectiveEmotionTag> emotionTagList = record.getEmotionTagList();
|
||||
record.setEmotionTags(emotionTagList.stream().map(DirectiveEmotionTag::getId).collect(Collectors.joining(",")));
|
||||
// List<DirectiveBodyTag> bodyTagList = record.getBodyTagList();
|
||||
// record.setBodyTags(bodyTagList.stream().map(DirectiveBodyTag::getId).collect(Collectors.joining(",")));
|
||||
//
|
||||
// List<DirectiveEmotionTag> emotionTagList = record.getEmotionTagList();
|
||||
// record.setEmotionTags(emotionTagList.stream().map(DirectiveEmotionTag::getId).collect(Collectors.joining(",")));
|
||||
});
|
||||
}
|
||||
directiveMQDto.setDirectiveList(BeanUtil.copyToList(directives, DirectiveAsyncMQDto.class));
|
||||
|
|
@ -502,13 +502,13 @@ public class ConfigServiceDirectiveServiceImpl extends ServiceImpl<ConfigService
|
|||
}
|
||||
}
|
||||
//体型标签
|
||||
{
|
||||
directiveMQDto.setBodyTagList(BeanUtil.copyToList(bodyTagService.selectAll(directiveIds, null), BodyTagMQDto.class));
|
||||
}
|
||||
// {
|
||||
// directiveMQDto.setBodyTagList(BeanUtil.copyToList(bodyTagService.selectAll(directiveIds, null), BodyTagMQDto.class));
|
||||
// }
|
||||
//情绪标签
|
||||
{
|
||||
directiveMQDto.setEmotionTagList(BeanUtil.copyToList(emotionTagService.selectAll(directiveIds, null), EmotionTagMQDto.class));
|
||||
}
|
||||
// {
|
||||
// directiveMQDto.setEmotionTagList(BeanUtil.copyToList(emotionTagService.selectAll(directiveIds, null), EmotionTagMQDto.class));
|
||||
// }
|
||||
//给对应业务平台发送消息
|
||||
Arrays.stream(syncOrgCodes.split(",")).forEach(orgCode -> {
|
||||
AsyncMain asyncMain = new AsyncMain();
|
||||
|
|
|
|||
|
|
@ -5,13 +5,13 @@ import lombok.extern.slf4j.Slf4j;
|
|||
import org.jeecg.common.api.vo.Result;
|
||||
import org.jeecg.common.constant.CommonConstant;
|
||||
import org.jeecg.common.constant.SymbolConstant;
|
||||
import org.jeecg.common.constant.enums.FileTypeEnum;
|
||||
import org.jeecg.common.exception.JeecgBootException;
|
||||
import org.jeecg.common.util.CommonUtils;
|
||||
import org.jeecg.common.util.RedisUtil;
|
||||
import org.jeecg.common.util.filter.SsrfFileTypeFilter;
|
||||
import org.jeecg.common.util.oConvertUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.context.annotation.Lazy;
|
||||
import org.springframework.util.AntPathMatcher;
|
||||
import org.springframework.util.FileCopyUtils;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
|
@ -43,20 +43,24 @@ public class CommonController {
|
|||
/**
|
||||
* 本地:local minio:minio 阿里:alioss
|
||||
*/
|
||||
@Value(value="${jeecg.uploadType}")
|
||||
@Value(value = "${jeecg.uploadType}")
|
||||
private String uploadType;
|
||||
|
||||
@Autowired
|
||||
private RedisUtil redisUtil;
|
||||
|
||||
/**
|
||||
* @Author 政辉
|
||||
* @return
|
||||
* @Author 政辉
|
||||
*/
|
||||
@GetMapping("/403")
|
||||
public Result<?> noauth() {
|
||||
public Result<?> noauth() {
|
||||
return Result.error("没有权限,请联系管理员分配权限!");
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传统一方法
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
|
|
@ -69,7 +73,7 @@ public class CommonController {
|
|||
|
||||
//LOWCOD-2580 sys/common/upload接口存在任意文件上传漏洞
|
||||
if (oConvertUtils.isNotEmpty(bizPath)) {
|
||||
if(bizPath.contains(SymbolConstant.SPOT_SINGLE_SLASH) || bizPath.contains(SymbolConstant.SPOT_DOUBLE_BACKSLASH)){
|
||||
if (bizPath.contains(SymbolConstant.SPOT_SINGLE_SLASH) || bizPath.contains(SymbolConstant.SPOT_DOUBLE_BACKSLASH)) {
|
||||
throw new JeecgBootException("上传目录bizPath,格式非法!");
|
||||
}
|
||||
}
|
||||
|
|
@ -77,44 +81,44 @@ public class CommonController {
|
|||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
// 获取上传文件对象
|
||||
MultipartFile file = multipartRequest.getFile("file");
|
||||
if(oConvertUtils.isEmpty(bizPath)){
|
||||
if(CommonConstant.UPLOAD_TYPE_OSS.equals(uploadType)){
|
||||
if (oConvertUtils.isEmpty(bizPath)) {
|
||||
if (CommonConstant.UPLOAD_TYPE_OSS.equals(uploadType)) {
|
||||
//未指定目录,则用阿里云默认目录 upload
|
||||
bizPath = "upload";
|
||||
//result.setMessage("使用阿里云文件上传时,必须添加目录!");
|
||||
//result.setSuccess(false);
|
||||
//return result;
|
||||
}else{
|
||||
} else {
|
||||
bizPath = "";
|
||||
}
|
||||
}
|
||||
if(CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)){
|
||||
if (CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)) {
|
||||
//update-begin-author:liusq date:20221102 for: 过滤上传文件类型
|
||||
SsrfFileTypeFilter.checkUploadFileType(file);
|
||||
//update-end-author:liusq date:20221102 for: 过滤上传文件类型
|
||||
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
|
||||
savePath = this.uploadLocal(file,bizPath);
|
||||
savePath = this.uploadLocal(file, bizPath);
|
||||
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
|
||||
/** 富文本编辑器及markdown本地上传时,采用返回链接方式
|
||||
//针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储
|
||||
String jeditor = request.getParameter("jeditor");
|
||||
if(oConvertUtils.isNotEmpty(jeditor)){
|
||||
result.setMessage(CommonConstant.UPLOAD_TYPE_LOCAL);
|
||||
result.setSuccess(true);
|
||||
return result;
|
||||
}else{
|
||||
savePath = this.uploadLocal(file,bizPath);
|
||||
}
|
||||
*/
|
||||
}else{
|
||||
//针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储
|
||||
String jeditor = request.getParameter("jeditor");
|
||||
if(oConvertUtils.isNotEmpty(jeditor)){
|
||||
result.setMessage(CommonConstant.UPLOAD_TYPE_LOCAL);
|
||||
result.setSuccess(true);
|
||||
return result;
|
||||
}else{
|
||||
savePath = this.uploadLocal(file,bizPath);
|
||||
}
|
||||
*/
|
||||
} else {
|
||||
//update-begin-author:taoyan date:20200814 for:文件上传改造
|
||||
savePath = CommonUtils.upload(file, bizPath, uploadType);
|
||||
//update-end-author:taoyan date:20200814 for:文件上传改造
|
||||
}
|
||||
if(oConvertUtils.isNotEmpty(savePath)){
|
||||
if (oConvertUtils.isNotEmpty(savePath)) {
|
||||
result.setMessage(savePath);
|
||||
result.setSuccess(true);
|
||||
}else {
|
||||
} else {
|
||||
result.setMessage("上传失败!");
|
||||
result.setSuccess(false);
|
||||
}
|
||||
|
|
@ -123,15 +127,16 @@ public class CommonController {
|
|||
|
||||
/**
|
||||
* 本地文件上传
|
||||
* @param mf 文件
|
||||
* @param bizPath 自定义路径
|
||||
*
|
||||
* @param mf 文件
|
||||
* @param bizPath 自定义路径
|
||||
* @return
|
||||
*/
|
||||
private String uploadLocal(MultipartFile mf,String bizPath){
|
||||
private String uploadLocal(MultipartFile mf, String bizPath) {
|
||||
try {
|
||||
String ctxPath = uploadpath;
|
||||
String fileName = null;
|
||||
File file = new File(ctxPath + File.separator + bizPath + File.separator );
|
||||
File file = new File(ctxPath + File.separator + bizPath + File.separator);
|
||||
if (!file.exists()) {
|
||||
// 创建文件根目录
|
||||
file.mkdirs();
|
||||
|
|
@ -139,18 +144,18 @@ public class CommonController {
|
|||
// 获取文件名
|
||||
String orgName = mf.getOriginalFilename();
|
||||
orgName = CommonUtils.getFileName(orgName);
|
||||
if(orgName.indexOf(SymbolConstant.SPOT)!=-1){
|
||||
if (orgName.indexOf(SymbolConstant.SPOT) != -1) {
|
||||
fileName = orgName.substring(0, orgName.lastIndexOf(".")) + "_" + System.currentTimeMillis() + orgName.substring(orgName.lastIndexOf("."));
|
||||
}else{
|
||||
fileName = orgName+ "_" + System.currentTimeMillis();
|
||||
} else {
|
||||
fileName = orgName + "_" + System.currentTimeMillis();
|
||||
}
|
||||
String savePath = file.getPath() + File.separator + fileName;
|
||||
File savefile = new File(savePath);
|
||||
FileCopyUtils.copy(mf.getBytes(), savefile);
|
||||
String dbpath = null;
|
||||
if(oConvertUtils.isNotEmpty(bizPath)){
|
||||
if (oConvertUtils.isNotEmpty(bizPath)) {
|
||||
dbpath = bizPath + File.separator + fileName;
|
||||
}else{
|
||||
} else {
|
||||
dbpath = fileName;
|
||||
}
|
||||
if (dbpath.contains(SymbolConstant.DOUBLE_BACKSLASH)) {
|
||||
|
|
@ -331,9 +336,9 @@ public class CommonController {
|
|||
// }
|
||||
|
||||
/**
|
||||
* @功能:pdf预览Iframe
|
||||
* @param modelAndView
|
||||
* @return
|
||||
* @功能:pdf预览Iframe
|
||||
*/
|
||||
@RequestMapping("/pdf/pdfPreviewIframe")
|
||||
public ModelAndView pdfPreviewIframe(ModelAndView modelAndView) {
|
||||
|
|
@ -342,8 +347,9 @@ public class CommonController {
|
|||
}
|
||||
|
||||
/**
|
||||
* 把指定URL后的字符串全部截断当成参数
|
||||
* 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
|
||||
* 把指定URL后的字符串全部截断当成参数
|
||||
* 这么做是为了防止URL中包含中文或者特殊字符(/等)时,匹配不了的问题
|
||||
*
|
||||
* @param request
|
||||
* @return
|
||||
*/
|
||||
|
|
@ -423,4 +429,90 @@ public class CommonController {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* 文件上传统一方法 暴露接口!
|
||||
*
|
||||
* @param request
|
||||
* @param response
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/static/upload/export")
|
||||
public Result<?> upload(@RequestParam(value = "name", defaultValue = "aaa") String secureKey, @RequestParam(value = "size",defaultValue = "1") String fileSize, HttpServletRequest request, HttpServletResponse response) throws Exception {
|
||||
Result<?> result = new Result<>();
|
||||
//先验证秘钥是否正确
|
||||
if (!SafetyUtil.validateSecureKey(secureKey)) {
|
||||
result.setMessage("上传失败!");
|
||||
result.setSuccess(false);
|
||||
return result;
|
||||
}
|
||||
|
||||
MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
|
||||
// 获取上传文件对象
|
||||
MultipartFile file = multipartRequest.getFile("file");
|
||||
//验证文件名称、大小是否可具备存储“资格”
|
||||
{
|
||||
boolean contains = redisUtil.sGet("canuploadparams").contains(file.getOriginalFilename() + "-" + fileSize);
|
||||
if (!contains) {
|
||||
result.setMessage("上传失败!");
|
||||
result.setSuccess(false);
|
||||
return result;
|
||||
} else {
|
||||
//删除set中元素
|
||||
redisUtil.setRemove("canuploadparams", file.getOriginalFilename() + "-" + fileSize);
|
||||
}
|
||||
}
|
||||
String savePath = "";
|
||||
String bizPath = request.getParameter("biz");
|
||||
|
||||
//LOWCOD-2580 sys/common/upload接口存在任意文件上传漏洞
|
||||
if (oConvertUtils.isNotEmpty(bizPath)) {
|
||||
if (bizPath.contains(SymbolConstant.SPOT_SINGLE_SLASH) || bizPath.contains(SymbolConstant.SPOT_DOUBLE_BACKSLASH)) {
|
||||
throw new JeecgBootException("上传目录bizPath,格式非法!");
|
||||
}
|
||||
}
|
||||
|
||||
if (oConvertUtils.isEmpty(bizPath)) {
|
||||
if (CommonConstant.UPLOAD_TYPE_OSS.equals(uploadType)) {
|
||||
//未指定目录,则用阿里云默认目录 upload
|
||||
bizPath = "upload";
|
||||
//result.setMessage("使用阿里云文件上传时,必须添加目录!");
|
||||
//result.setSuccess(false);
|
||||
//return result;
|
||||
} else {
|
||||
bizPath = "";
|
||||
}
|
||||
}
|
||||
if (CommonConstant.UPLOAD_TYPE_LOCAL.equals(uploadType)) {
|
||||
//update-begin-author:liusq date:20221102 for: 过滤上传文件类型
|
||||
SsrfFileTypeFilter.checkUploadFileType(file);
|
||||
//update-end-author:liusq date:20221102 for: 过滤上传文件类型
|
||||
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
|
||||
savePath = this.uploadLocal(file, bizPath);
|
||||
//update-begin-author:lvdandan date:20200928 for:修改JEditor编辑器本地上传
|
||||
/** 富文本编辑器及markdown本地上传时,采用返回链接方式
|
||||
//针对jeditor编辑器如何使 lcaol模式,采用 base64格式存储
|
||||
String jeditor = request.getParameter("jeditor");
|
||||
if(oConvertUtils.isNotEmpty(jeditor)){
|
||||
result.setMessage(CommonConstant.UPLOAD_TYPE_LOCAL);
|
||||
result.setSuccess(true);
|
||||
return result;
|
||||
}else{
|
||||
savePath = this.uploadLocal(file,bizPath);
|
||||
}
|
||||
*/
|
||||
} else {
|
||||
//update-begin-author:taoyan date:20200814 for:文件上传改造
|
||||
savePath = CommonUtils.upload(file, bizPath, uploadType);
|
||||
//update-end-author:taoyan date:20200814 for:文件上传改造
|
||||
}
|
||||
if (oConvertUtils.isNotEmpty(savePath)) {
|
||||
result.setMessage(savePath);
|
||||
result.setSuccess(true);
|
||||
} else {
|
||||
result.setMessage("上传失败!");
|
||||
result.setSuccess(false);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue