Merge branch 'master' of http://221.0.232.152:9393/ability-center/share-platform
* 'master' of http://221.0.232.152:9393/ability-center/share-platform: ... ... 批量进行能力申请接口(一个接口搞定) 本地存储资源上传与访问 编目管理接口,资源管理接口修改 编目管理接口,资源管理接口修改
This commit is contained in:
commit
57477cba83
|
@ -27,6 +27,7 @@
|
|||
<activiti.version>5.22.0</activiti.version>
|
||||
<ureport2.version>2.2.9</ureport2.version>
|
||||
<IJPay.version>2.7.1</IJPay.version>
|
||||
<yawei-pso.version>2.0.2</yawei-pso.version>
|
||||
</properties>
|
||||
|
||||
<dependencies>
|
||||
|
@ -200,6 +201,12 @@
|
|||
<artifactId>IJPay-AliPay</artifactId>
|
||||
<version>${IJPay.version}</version>
|
||||
</dependency>
|
||||
<!-- 亚微单点登录 -->
|
||||
<dependency>
|
||||
<groupId>com.yawei.oav2</groupId>
|
||||
<artifactId>yawei-pso</artifactId>
|
||||
<version>${yawei-pso.version}</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -0,0 +1,105 @@
|
|||
package io.renren.common.controller;
|
||||
|
||||
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import io.renren.common.page.PageData;
|
||||
import io.renren.common.utils.Result;
|
||||
import io.renren.common.validator.ValidatorUtils;
|
||||
import io.renren.common.validator.group.AddGroup;
|
||||
import io.renren.common.validator.group.DefaultGroup;
|
||||
import io.renren.modules.activiti.dto.ProcessInstanceDTO;
|
||||
import io.renren.modules.activiti.dto.ProcessStartDTO;
|
||||
import io.renren.modules.activiti.service.ActProcessService;
|
||||
import io.renren.modules.activiti.service.ActRunningService;
|
||||
import io.renren.modules.processForm.dto.TAbilityApplicationDTO;
|
||||
import io.renren.modules.processForm.dto.TAbilityBatchApplicationDTO;
|
||||
import io.renren.modules.processForm.service.TAbilityApplicationService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.codehaus.jackson.map.ObjectMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
|
||||
/**
|
||||
* 能力集中中心 接口
|
||||
*/
|
||||
|
||||
@Api(tags = "能力集中")
|
||||
@RestController
|
||||
@RequestMapping("/ability/center")
|
||||
public class AbilityCenterController {
|
||||
@Autowired
|
||||
private ActProcessService actProcessService;
|
||||
@Autowired
|
||||
private TAbilityApplicationService tAbilityApplicationService;
|
||||
@Autowired
|
||||
private ActRunningService actRunningService;
|
||||
|
||||
private static Map<String, Object> params = new HashMap<String, Object>() {
|
||||
{
|
||||
put("isLatestVersion", true); // 取最新版本
|
||||
put("key", "abilityprocess"); // 限定
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* 批量进行批量能力申请
|
||||
*
|
||||
* @param abilityBatchApplicationDTO
|
||||
* @return
|
||||
*/
|
||||
@PostMapping(value = "/apply")
|
||||
@ApiOperation("批量进行能力申请")
|
||||
public Result<List<ProcessInstanceDTO>> apply(@RequestBody TAbilityBatchApplicationDTO abilityBatchApplicationDTO) {
|
||||
// 仿照请求接口 /act/process/lastestPage
|
||||
PageData<Map<String, Object>> page = actProcessService.page(params);
|
||||
if (page.getTotal() <= 0) { //
|
||||
return new Result().error("联系管理员添加流程");
|
||||
}
|
||||
return new Result().ok(abilityBatchApplicationDTO.getSystem().stream().map(index -> {
|
||||
TAbilityApplicationDTO tAbilityApplicationDTO = new TAbilityApplicationDTO();
|
||||
tAbilityApplicationDTO.setArea(abilityBatchApplicationDTO.getArea());
|
||||
tAbilityApplicationDTO.setAttachment(abilityBatchApplicationDTO.getAttachment());
|
||||
tAbilityApplicationDTO.setBasis(abilityBatchApplicationDTO.getBasis());
|
||||
tAbilityApplicationDTO.setPhone(abilityBatchApplicationDTO.getPhone());
|
||||
tAbilityApplicationDTO.setScene(abilityBatchApplicationDTO.getScene());
|
||||
tAbilityApplicationDTO.setInstanceId(abilityBatchApplicationDTO.getInstanceId());
|
||||
tAbilityApplicationDTO.setUnit(abilityBatchApplicationDTO.getUnit());
|
||||
tAbilityApplicationDTO.setUser(abilityBatchApplicationDTO.getUser());
|
||||
tAbilityApplicationDTO.setSystem(index);
|
||||
// 仿照请求接口 /processForm/tabilityapplication
|
||||
ValidatorUtils.validateEntity(tAbilityApplicationDTO, AddGroup.class, DefaultGroup.class);
|
||||
tAbilityApplicationService.save(tAbilityApplicationDTO); // 写能力申请数据
|
||||
if (tAbilityApplicationDTO.getId() == null) {
|
||||
return null;
|
||||
}
|
||||
|
||||
// 仿照请求接口 /act/running/startOfBusinessKey
|
||||
ProcessStartDTO processStartDTO = new ProcessStartDTO();
|
||||
processStartDTO.setBusinessKey(tAbilityApplicationDTO.getId().toString());
|
||||
processStartDTO.setProcessDefinitionKey("abilityprocess"); //限定
|
||||
ObjectMapper oMapper = new ObjectMapper();
|
||||
Map<String, Object> variables = oMapper.convertValue(tAbilityApplicationDTO, Map.class);
|
||||
processStartDTO.setVariables(variables);
|
||||
ProcessInstanceDTO dto = actRunningService.startOfBusinessKey(processStartDTO);
|
||||
|
||||
if (Long.valueOf(dto.getBusinessKey()) != null) {
|
||||
// 仿照请求接口 /processForm/tabilityapplication/updateInstanceId
|
||||
tAbilityApplicationService.updateInstanceId(dto.getProcessInstanceId(), Long.valueOf(dto.getBusinessKey()));
|
||||
}
|
||||
return dto;
|
||||
}).filter(index -> ObjectUtil.isNotNull(index)).collect(Collectors.toList()));
|
||||
}
|
||||
|
||||
|
||||
}
|
|
@ -0,0 +1,69 @@
|
|||
package io.renren.common.controller;
|
||||
|
||||
|
||||
import io.renren.common.utils.Result;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Value;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.multipart.MultipartFile;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import java.io.File;
|
||||
import java.io.IOException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.Date;
|
||||
import java.util.UUID;
|
||||
|
||||
@RestController
|
||||
@Api(tags = "静态资源上传")
|
||||
public class FileUploadController {
|
||||
@Value("${resource.path}")
|
||||
private String uploadPath;
|
||||
@Value("${resource.root_url}")
|
||||
private String root_url;
|
||||
@Value("${server.servlet.context-path}")
|
||||
private String context_path;
|
||||
|
||||
private static Logger logger = LoggerFactory.getLogger(FileUploadController.class);
|
||||
|
||||
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd/");
|
||||
|
||||
@PostMapping("/upload")
|
||||
@ApiOperation("上传")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "file", value = "文件", paramType = "file", dataType = "file", required = true)
|
||||
})
|
||||
public Result<String> upload(@RequestParam("file") MultipartFile uploadFile,
|
||||
HttpServletRequest request) {
|
||||
logger.info("上传文件:" + uploadFile.getOriginalFilename());
|
||||
String format = sdf.format(new Date());
|
||||
File folder = new File(uploadPath + "upload" + File.separator + format);
|
||||
logger.info(uploadPath + format);
|
||||
if (!folder.isDirectory()) {
|
||||
folder.mkdirs();
|
||||
}
|
||||
// 对上传的文件重命名,避免文件重名
|
||||
String oldName = uploadFile.getOriginalFilename();
|
||||
String newName = UUID.randomUUID().toString()
|
||||
+ oldName.substring(oldName.lastIndexOf("."), oldName.length());
|
||||
try {
|
||||
// 文件保存
|
||||
uploadFile.transferTo(new File(folder, newName));
|
||||
|
||||
// 返回上传文件的访问路径
|
||||
String filePath = request.getScheme() + "://" + root_url
|
||||
+ ":" + request.getServerPort() + context_path + "/upload/" + format + newName;
|
||||
return new Result<String>().ok(filePath);
|
||||
} catch (IOException e) {
|
||||
return new Result<String>().error(e.getMessage());
|
||||
}
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,111 @@
|
|||
package io.renren.common.interceptor;
|
||||
|
||||
import com.yawei.pso.PSORequest;
|
||||
import com.yawei.pso.SSOResponse;
|
||||
import com.yawei.pso.TicketManager;
|
||||
import org.apache.commons.lang.StringUtils;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Component;
|
||||
import org.springframework.web.servlet.HandlerInterceptor;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.net.URLEncoder;
|
||||
import java.util.Iterator;
|
||||
import java.util.Map.Entry;
|
||||
|
||||
/**
|
||||
* 亚微 sso拦截
|
||||
*/
|
||||
@Component
|
||||
public class IdentityInterceptor implements HandlerInterceptor {
|
||||
private static Logger logger = LoggerFactory.getLogger(IdentityInterceptor.class);
|
||||
|
||||
public final static String SEESION_USER = "seesion_user";
|
||||
|
||||
@Autowired
|
||||
private YaweiSSOProperties yaweiSSOProperties;
|
||||
|
||||
|
||||
@Override
|
||||
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
|
||||
logger.info("==============执行顺序: 1、preHandle================");
|
||||
// 获取当前请求的url
|
||||
String requestUri = request.getRequestURI();
|
||||
|
||||
Validator validator = Validator.getInstance();
|
||||
|
||||
String strResponse = request.getParameter(yaweiSSOProperties.getSsoKey());
|
||||
if (StringUtils.isEmpty(strResponse)) {
|
||||
TicketManager tm = new TicketManager();
|
||||
if (!tm.LoadTicket(request)) {
|
||||
PSORequest psoRequest = new PSORequest(request);
|
||||
String requeststr = psoRequest.CreateHash();
|
||||
|
||||
String keeperUrl = yaweiSSOProperties.getKeeperUrl();
|
||||
keeperUrl = keeperUrl + "?" + yaweiSSOProperties.getSsoKey() + "="
|
||||
+ URLEncoder.encode(requeststr, "UTF-8");
|
||||
response.sendRedirect(keeperUrl);
|
||||
return false;
|
||||
}
|
||||
} else {
|
||||
// 如果服务器端通过认证后,会返回后执行改操作,然后写入cookie
|
||||
SSOResponse ssoResp = new SSOResponse(strResponse);
|
||||
TicketManager tm = ssoResp.CreatePSOTicket();
|
||||
if (tm == null) {
|
||||
PSORequest psoRequest = new PSORequest(request);
|
||||
String requeststr = psoRequest.CreateHash();
|
||||
|
||||
String keeperUrl = yaweiSSOProperties.getKeeperUrl();
|
||||
keeperUrl = keeperUrl + "?" + yaweiSSOProperties.getSsoKey() + "="
|
||||
+ URLEncoder.encode(requeststr, "UTF-8");
|
||||
response.sendRedirect(keeperUrl);
|
||||
} else {
|
||||
String domainName = yaweiSSOProperties.getDomain();
|
||||
tm.SaveTicket(response, domainName);
|
||||
Iterator<Entry<String, String[]>> iterator = request
|
||||
.getParameterMap().entrySet().iterator();
|
||||
StringBuffer param = new StringBuffer();
|
||||
int i = 0;
|
||||
while (iterator.hasNext()) {
|
||||
Entry<String, String[]> entry = (Entry<String, String[]>) iterator
|
||||
.next();
|
||||
if (entry.getKey().equals(yaweiSSOProperties.getSsoKey()))
|
||||
continue;
|
||||
else {
|
||||
i++;
|
||||
if (i == 1)
|
||||
param.append("?").append(entry.getKey())
|
||||
.append("=");
|
||||
else
|
||||
param.append("&").append(entry.getKey())
|
||||
.append("=");
|
||||
|
||||
if (entry.getValue() instanceof String[]) {
|
||||
param.append(((String[]) entry.getValue())[0]);
|
||||
} else {
|
||||
param.append(entry.getValue());
|
||||
}
|
||||
}
|
||||
}
|
||||
response.sendRedirect(requestUri + param.toString());
|
||||
return false;
|
||||
}
|
||||
}
|
||||
validator.SetUserTicket(request);
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception {
|
||||
logger.info("==============执行顺序: 2、postHandle================");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception {
|
||||
logger.info("==============执行顺序: 3、afterCompletion================");
|
||||
}
|
||||
}
|
|
@ -0,0 +1,83 @@
|
|||
package io.renren.common.interceptor;
|
||||
|
||||
import com.yawei.pso.TicketManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
import javax.servlet.http.HttpSession;
|
||||
|
||||
/**
|
||||
* 验证器
|
||||
*/
|
||||
public class Validator {
|
||||
private static Logger logger = LoggerFactory.getLogger(Validator.class);
|
||||
private static ThreadLocal<Validator> validatorHolder = new ThreadLocal<Validator>() {
|
||||
|
||||
protected Validator initialValue() {
|
||||
return new Validator();
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
// 当前请求的session
|
||||
private HttpSession session = null;
|
||||
|
||||
// 当前的请求
|
||||
private HttpServletRequest request = null;
|
||||
|
||||
private Validator() {
|
||||
|
||||
}
|
||||
|
||||
public static Validator getInstance() {
|
||||
return validatorHolder.get();
|
||||
}
|
||||
|
||||
/**
|
||||
* 执行初始化
|
||||
*
|
||||
* @param httpRequest
|
||||
*/
|
||||
public void init(HttpServletRequest httpRequest) {
|
||||
this.request = httpRequest;
|
||||
this.session = request.getSession();
|
||||
}
|
||||
|
||||
/**
|
||||
* 将凭证身份加入到session
|
||||
*
|
||||
* @param httpRequest
|
||||
*/
|
||||
public void SetUserTicket(HttpServletRequest httpRequest) {
|
||||
try {
|
||||
if (httpRequest.getSession()
|
||||
.getAttribute(IdentityInterceptor.SEESION_USER) == null) {
|
||||
TicketManager ticket = new TicketManager();
|
||||
if (ticket.LoadTicket(httpRequest)) {
|
||||
// 登录用户姓名
|
||||
String userName = ticket.getUserName();
|
||||
// 登录用户账号
|
||||
String userAccount = ticket.getUserID();
|
||||
// 登录用户标识
|
||||
String userGuid = ticket.getADGUID();
|
||||
logger.info("===userName===" + userName);
|
||||
logger.info("===userAccount===" + userAccount);
|
||||
logger.info("===userGuid===" + userGuid);
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
logger.error("", ex);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 清除session
|
||||
*/
|
||||
public void cancel() {
|
||||
this.session = null;
|
||||
}
|
||||
|
||||
}
|
|
@ -0,0 +1,18 @@
|
|||
package io.renren.common.interceptor;
|
||||
|
||||
|
||||
import lombok.Data;
|
||||
import org.springframework.boot.context.properties.ConfigurationProperties;
|
||||
import org.springframework.context.annotation.PropertySource;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
|
||||
@Data
|
||||
@Component
|
||||
@PropertySource("classpath:/yaweisso.properties")
|
||||
@ConfigurationProperties(prefix = "sso")
|
||||
public class YaweiSSOProperties {
|
||||
private String domain;
|
||||
private String ssoKey;
|
||||
private String keeperUrl;
|
||||
}
|
|
@ -16,5 +16,5 @@ public interface CategoryDao extends BaseDao<Category> {
|
|||
|
||||
Integer deleteByIds(@Param("ids") List<Long> idList);
|
||||
|
||||
List<Map> selectFilterCriterByTopCategory(String topCategoryName);
|
||||
List<Map> selectDictData(String linkValue);
|
||||
}
|
||||
|
|
|
@ -78,8 +78,20 @@ public class CategoryServiceImpl extends CrudServiceImpl<CategoryDao, Category,
|
|||
|
||||
@Override
|
||||
public List<Map> getAllFilterCriteriaByTopCategory(String topCategoryName) {
|
||||
//return categoryDao.selectFilterCriterByTopCategory(topCategoryName);
|
||||
return null;
|
||||
QueryWrapper<Category> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("root_category", topCategoryName)
|
||||
.eq("del_flag",0)
|
||||
.eq("is_link_to_dic", "true")
|
||||
.orderByAsc("xh");
|
||||
List<Category> categories = categoryDao.selectList(wrapper);
|
||||
ArrayList<Map> resultList = new ArrayList<>();
|
||||
categories.forEach(item -> {
|
||||
HashMap<String, Object> hashMap = new HashMap<>();
|
||||
hashMap.put("name", item.getName());
|
||||
hashMap.put("typeList", categoryDao.selectDictData(item.getLinkValue()));
|
||||
resultList.add(hashMap);
|
||||
});
|
||||
return resultList;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -17,7 +17,6 @@ import io.swagger.annotations.Api;
|
|||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import org.apache.shiro.authz.annotation.RequiresPermissions;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
|
|
@ -0,0 +1,35 @@
|
|||
package io.renren.modules.processForm.dto;
|
||||
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Data
|
||||
@ApiModel(value = "批量能力申请表单")
|
||||
public class TAbilityBatchApplicationDTO implements Serializable {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Long id;
|
||||
@ApiModelProperty(value = "申请人")
|
||||
private String user;
|
||||
@ApiModelProperty(value = "申请人电话")
|
||||
private String phone;
|
||||
@ApiModelProperty(value = "申请人单位")
|
||||
private String unit;
|
||||
@ApiModelProperty(value = "申请人所在地区")
|
||||
private String area;
|
||||
@ApiModelProperty(value = "申请应用系统")
|
||||
private List<String> system;
|
||||
@ApiModelProperty(value = "申请场景")
|
||||
private String scene;
|
||||
@ApiModelProperty(value = "申请依据")
|
||||
private String basis;
|
||||
@ApiModelProperty(value = "申请附件")
|
||||
private String attachment;
|
||||
@ApiModelProperty(value = "实例ID")
|
||||
private String instanceId;
|
||||
}
|
|
@ -1,19 +1,14 @@
|
|||
package io.renren.modules.resource.controller;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.renren.common.annotation.LogOperation;
|
||||
import io.renren.common.constant.Constant;
|
||||
import io.renren.common.page.PageData;
|
||||
import io.renren.common.utils.ExcelUtils;
|
||||
import io.renren.common.utils.Result;
|
||||
import io.renren.common.validator.AssertUtils;
|
||||
import io.renren.common.validator.ValidatorUtils;
|
||||
import io.renren.common.validator.group.AddGroup;
|
||||
import io.renren.common.validator.group.DefaultGroup;
|
||||
import io.renren.common.validator.group.UpdateGroup;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.excel.ResourceExcel;
|
||||
import io.renren.modules.resource.service.ResourceService;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
|
@ -23,8 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||
import org.springframework.web.bind.annotation.*;
|
||||
import springfox.documentation.annotations.ApiIgnore;
|
||||
|
||||
import javax.servlet.http.HttpServletResponse;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
|
@ -40,23 +33,37 @@ public class ResourceController {
|
|||
@Autowired
|
||||
private ResourceService resourceService;
|
||||
|
||||
@PostMapping("/page")
|
||||
@GetMapping("/page")
|
||||
@ApiOperation("分页查询资源信息")
|
||||
@ApiImplicitParams({
|
||||
@ApiImplicitParam(name = "pageNum", value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
||||
@ApiImplicitParam(name = "pageSize", value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
||||
@ApiImplicitParam(name = "", value = "排序字段", paramType = "query", dataType="String") ,
|
||||
@ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") ,
|
||||
@ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
|
||||
@ApiImplicitParam(name = "type", value = "类型", paramType = "query",required = true, dataType="String") ,
|
||||
//@ApiImplicitParam(name = "name", value = "资源名称", paramType = "query", dataType="String") ,
|
||||
@ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") ,
|
||||
@ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
|
||||
})
|
||||
//@RequiresPermissions("resource:resource:page")
|
||||
public Result<PageData<ResourceDTO>> page(@RequestBody JSONObject jsonObject){
|
||||
String pageNum = jsonObject.getString("pageNum");
|
||||
String pageSize = jsonObject.getString("pageSize");
|
||||
ResourceDTO resourceDTO = JSON.toJavaObject(jsonObject, ResourceDTO.class);
|
||||
//PageData<ResourceDTO> page = resourceService.pageWithAttrs(params);
|
||||
public Result<PageData<ResourceDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
|
||||
//ResourceDTO resourceDTO = JSON.toJavaObject(jsonObject, ResourceDTO.class);
|
||||
//resourceService.pageWithAttrs(resourceDTO);
|
||||
PageData<ResourceDTO> page = resourceService.page(params);
|
||||
page.getList().forEach(item -> {
|
||||
item.setInfoList(resourceService.selectAttrsByResourceId(item.getId()));
|
||||
});
|
||||
return new Result<PageData<ResourceDTO>>().ok(page);
|
||||
}
|
||||
|
||||
//return new Result<PageData<ResourceDTO>>().ok(page);
|
||||
return null;
|
||||
@PostMapping("/pageWithAttrs")
|
||||
@ApiOperation("分页查询资源信息2")
|
||||
//@ApiImplicitParams({
|
||||
// @ApiImplicitParam(name = "name", value = "资源名称", paramType = "query", dataType="String") ,
|
||||
// @ApiImplicitParam(name = "type", value = "资源类型", paramType = "query",required = true, dataType="String") ,
|
||||
// @ApiImplicitParam(name = "infoList", value = "类型", paramType = "query", dataType="List")
|
||||
//})
|
||||
//@RequiresPermissions("resource:resource:page")
|
||||
public Result pageWithAttrs(@RequestBody JSONObject jsonObject){
|
||||
return new Result<>().ok(resourceService.pageWithAttrs(jsonObject));
|
||||
}
|
||||
|
||||
@GetMapping("/select/{id}")
|
||||
|
@ -81,13 +88,13 @@ public class ResourceController {
|
|||
return new Result();
|
||||
}
|
||||
|
||||
@PutMapping
|
||||
@PutMapping("/update")
|
||||
@ApiOperation("修改")
|
||||
@LogOperation("修改")
|
||||
//@RequiresPermissions("resource:resource:update")
|
||||
public Result update(@RequestBody ResourceDTO dto){
|
||||
//效验数据
|
||||
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
|
||||
////效验数据
|
||||
//ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
|
||||
|
||||
resourceService.updateWithAttrs(dto);
|
||||
|
||||
|
|
|
@ -17,4 +17,5 @@ import java.util.List;
|
|||
public interface AttrDao extends BaseDao<AttrEntity> {
|
||||
|
||||
Integer delete4Resource(@Param("resourceIds") List<Long> idList);
|
||||
|
||||
}
|
|
@ -1,6 +1,7 @@
|
|||
package io.renren.modules.resource.dao;
|
||||
|
||||
import io.renren.common.dao.BaseDao;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.entity.ResourceEntity;
|
||||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
|
@ -17,4 +18,6 @@ import java.util.List;
|
|||
public interface ResourceDao extends BaseDao<ResourceEntity> {
|
||||
|
||||
Integer deleteByIds(@Param("ids") List<Long> idList);
|
||||
|
||||
List<ResourceDTO> selectWithAttrs(@Param("dto") ResourceDTO resourceDTO, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
|
||||
}
|
|
@ -11,8 +11,8 @@ import java.util.Date;
|
|||
* @author dg
|
||||
* @since 1.0 2022-04-13
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper=false)
|
||||
//@Data
|
||||
//@EqualsAndHashCode(callSuper=false)
|
||||
@TableName("tb_data_attr")
|
||||
public class AttrEntity {
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
@ -60,4 +60,136 @@ public class AttrEntity {
|
|||
private String note3;
|
||||
private String note4;
|
||||
private String note5;
|
||||
|
||||
public Long getId() {
|
||||
return id;
|
||||
}
|
||||
|
||||
public void setId(Long id) {
|
||||
this.id = id;
|
||||
}
|
||||
|
||||
public Long getDataResourceId() {
|
||||
return dataResourceId;
|
||||
}
|
||||
|
||||
public void setDataResourceId(Long dataResourceId) {
|
||||
this.dataResourceId = dataResourceId;
|
||||
}
|
||||
|
||||
public String getAttrType() {
|
||||
return attrType;
|
||||
}
|
||||
|
||||
public void setAttrType(String attrType) {
|
||||
this.attrType = attrType;
|
||||
}
|
||||
|
||||
public String getAttrValue() {
|
||||
return attrValue;
|
||||
}
|
||||
|
||||
public void setAttrValue(String attrValue) {
|
||||
this.attrValue = attrValue;
|
||||
}
|
||||
|
||||
public Integer getDelFlag() {
|
||||
return delFlag;
|
||||
}
|
||||
|
||||
public void setDelFlag(Integer delFlag) {
|
||||
this.delFlag = delFlag;
|
||||
}
|
||||
|
||||
public Long getCreator() {
|
||||
return creator;
|
||||
}
|
||||
|
||||
public void setCreator(Long creator) {
|
||||
this.creator = creator;
|
||||
}
|
||||
|
||||
public Date getCreateDate() {
|
||||
return createDate;
|
||||
}
|
||||
|
||||
public void setCreateDate(Date createDate) {
|
||||
this.createDate = createDate;
|
||||
}
|
||||
|
||||
public Long getUpdater() {
|
||||
return updater;
|
||||
}
|
||||
|
||||
public void setUpdater(Long updater) {
|
||||
this.updater = updater;
|
||||
}
|
||||
|
||||
public Date getUpdateDate() {
|
||||
return updateDate;
|
||||
}
|
||||
|
||||
public void setUpdateDate(Date updateDate) {
|
||||
this.updateDate = updateDate;
|
||||
}
|
||||
|
||||
public String getNote1() {
|
||||
return note1;
|
||||
}
|
||||
|
||||
public void setNote1(String note1) {
|
||||
this.note1 = note1;
|
||||
}
|
||||
|
||||
public String getNote2() {
|
||||
return note2;
|
||||
}
|
||||
|
||||
public void setNote2(String note2) {
|
||||
this.note2 = note2;
|
||||
}
|
||||
|
||||
public String getNote3() {
|
||||
return note3;
|
||||
}
|
||||
|
||||
public void setNote3(String note3) {
|
||||
this.note3 = note3;
|
||||
}
|
||||
|
||||
public String getNote4() {
|
||||
return note4;
|
||||
}
|
||||
|
||||
public void setNote4(String note4) {
|
||||
this.note4 = note4;
|
||||
}
|
||||
|
||||
public String getNote5() {
|
||||
return note5;
|
||||
}
|
||||
|
||||
public void setNote5(String note5) {
|
||||
this.note5 = note5;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "AttrEntity{" +
|
||||
"id=" + id +
|
||||
", dataResourceId=" + dataResourceId +
|
||||
", attrType='" + attrType + '\'' +
|
||||
", attrValue='" + attrValue + '\'' +
|
||||
", delFlag=" + delFlag +
|
||||
", creator=" + creator +
|
||||
", createDate=" + createDate +
|
||||
", updater=" + updater +
|
||||
", updateDate=" + updateDate +
|
||||
", note1='" + note1 + '\'' +
|
||||
", note2='" + note2 + '\'' +
|
||||
", note3='" + note3 + '\'' +
|
||||
", note4='" + note4 + '\'' +
|
||||
", note5='" + note5 + '\'' +
|
||||
'}';
|
||||
}
|
||||
}
|
|
@ -3,8 +3,11 @@ package io.renren.modules.resource.service;
|
|||
import com.alibaba.fastjson.JSONObject;
|
||||
import io.renren.common.service.CrudService;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.entity.AttrEntity;
|
||||
import io.renren.modules.resource.entity.ResourceEntity;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 资源表
|
||||
*
|
||||
|
@ -20,4 +23,8 @@ public interface ResourceService extends CrudService<ResourceEntity, ResourceDTO
|
|||
void updateWithAttrs(ResourceDTO dto);
|
||||
|
||||
ResourceDTO selectWithAttrs(Long id);
|
||||
|
||||
List<ResourceDTO> pageWithAttrs(JSONObject jsonObject);
|
||||
|
||||
List<AttrEntity> selectAttrsByResourceId(Long id);
|
||||
}
|
|
@ -1,19 +1,17 @@
|
|||
package io.renren.modules.resource.service.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
|
||||
import io.renren.common.service.impl.CrudServiceImpl;
|
||||
import io.renren.common.constant.Constant;
|
||||
import io.renren.modules.resource.dao.AttrDao;
|
||||
import io.renren.modules.resource.dao.ResourceDao;
|
||||
import io.renren.modules.resource.dto.ResourceDTO;
|
||||
import io.renren.modules.resource.entity.AttrEntity;
|
||||
import io.renren.modules.resource.entity.ResourceEntity;
|
||||
import io.renren.modules.resource.service.ResourceService;
|
||||
import io.renren.modules.security.user.SecurityUser;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
@ -41,8 +39,10 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
|
|||
@Override
|
||||
public QueryWrapper<ResourceEntity> getWrapper(Map<String, Object> params){
|
||||
QueryWrapper<ResourceEntity> wrapper = new QueryWrapper<>();
|
||||
|
||||
|
||||
wrapper.eq("type", params.get("type").toString())
|
||||
.eq("del_flag", 0)
|
||||
//.like(StringUtils.isNotBlank(params.get("name").toString()),"name", params.get("name").toString())
|
||||
.orderByDesc("create_date");
|
||||
return wrapper;
|
||||
}
|
||||
|
||||
|
@ -51,9 +51,11 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
|
|||
public void insertWithAttrs(ResourceDTO dto) {
|
||||
ResourceEntity resourceEntity = new ResourceEntity();
|
||||
BeanUtils.copyProperties(dto, resourceEntity);
|
||||
Long resourceID = IdWorker.getId(resourceEntity);
|
||||
resourceEntity.setId(resourceID);
|
||||
resourceEntity.setDelFlag(0);
|
||||
resourceDao.insert(resourceEntity);
|
||||
Long resourceID = IdWorker.getId(resourceEntity);
|
||||
|
||||
List<AttrEntity> attrEntities= dto.getInfoList();
|
||||
attrEntities.forEach(item -> {
|
||||
item.setDelFlag(0);
|
||||
|
@ -97,6 +99,24 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
|
|||
.eq("del_flag", 0);
|
||||
List<AttrEntity> attrEntities = attrDao.selectList(wrapper);
|
||||
resourceDTO.setInfoList(attrEntities);
|
||||
return null;
|
||||
return resourceDTO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<ResourceDTO> pageWithAttrs(JSONObject jsonObject) {
|
||||
ResourceDTO resourceDTO = JSON.toJavaObject(jsonObject, ResourceDTO.class);
|
||||
|
||||
Integer pageNum = jsonObject.getInteger("pageNum");
|
||||
Integer pageSize = jsonObject.getInteger("pageSize");
|
||||
return resourceDao.selectWithAttrs(resourceDTO, (pageNum - 1) * pageSize, pageSize);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<AttrEntity> selectAttrsByResourceId(Long resourceId) {
|
||||
QueryWrapper<AttrEntity> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("data_resource_id", resourceId)
|
||||
.eq("del_flag", 0)
|
||||
.orderByDesc("attr_type");
|
||||
return attrDao.selectList(wrapper);
|
||||
}
|
||||
}
|
|
@ -19,7 +19,6 @@ import java.util.Map;
|
|||
|
||||
/**
|
||||
* Shiro的配置文件
|
||||
*
|
||||
*/
|
||||
@Configuration
|
||||
public class ShiroConfig {
|
||||
|
@ -72,6 +71,13 @@ public class ShiroConfig {
|
|||
filterMap.put("/front/**", "anon");
|
||||
filterMap.put("/applyRecord/**", "anon");
|
||||
filterMap.put("/bsabilityrecord/**", "anon");
|
||||
|
||||
/**
|
||||
* 资源上传
|
||||
*/
|
||||
filterMap.put("/upload", "anon");
|
||||
filterMap.put("/upload/**", "anon");
|
||||
|
||||
filterMap.put("/**", "oauth2");
|
||||
shiroFilter.setFilterChainDefinitionMap(filterMap);
|
||||
|
||||
|
|
|
@ -37,6 +37,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
|
|||
@Override
|
||||
public void addInterceptors(InterceptorRegistry registry) {
|
||||
registry.addInterceptor(new AliPayInterceptor()).addPathPatterns("/pay/alipay/**");
|
||||
// registry.addInterceptor(new IdentityInterceptor());
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
|
@ -1,3 +1,7 @@
|
|||
#上传的静态资源配置
|
||||
resource:
|
||||
root_url: 127.0.0.1
|
||||
path: E:\liwen\
|
||||
# Tomcat
|
||||
server:
|
||||
tomcat:
|
||||
|
@ -38,6 +42,8 @@ spring:
|
|||
min-idle: 5 # 连接池中的最小空闲连接
|
||||
activiti:
|
||||
check-process-definitions: false
|
||||
resources:
|
||||
static-locations: classpath:/static,classpath:/public,file:${resource.path}
|
||||
|
||||
|
||||
fdfs:
|
||||
|
@ -66,3 +72,4 @@ mybatis-plus:
|
|||
cache-enabled: false
|
||||
call-setters-on-nulls: true
|
||||
jdbc-type-for-null: 'null'
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
|
|
|
@ -37,8 +37,12 @@
|
|||
order by xh
|
||||
</select>
|
||||
|
||||
<select id="selectFilterCriterByTopCategory" resultType="java.util.Map">
|
||||
select
|
||||
<select id="selectDictData" resultType="java.util.Map">
|
||||
select *
|
||||
from sys_dict_data
|
||||
where 1 = 1
|
||||
and dict_type_id = #{linkValue}
|
||||
order by sort
|
||||
</select>
|
||||
|
||||
<update id="deleteByIds">
|
||||
|
|
|
@ -25,7 +25,7 @@
|
|||
set del_flag = 1,
|
||||
update_date = now()
|
||||
where 1 = 1
|
||||
and data_resourceId in
|
||||
and data_resource_id in
|
||||
<foreach collection="resourceIds" item="item" open="(" separator="," close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
|
|
|
@ -26,6 +26,45 @@
|
|||
<result property="note5" column="note5"/>
|
||||
</resultMap>
|
||||
|
||||
<resultMap id="resourceDTO" type="io.renren.modules.resource.dto.ResourceDTO">
|
||||
<result property="id" column="id"/>
|
||||
<result property="type" column="type"/>
|
||||
<result property="name" column="name"/>
|
||||
<result property="description" column="description"/>
|
||||
<result property="link" column="link"/>
|
||||
<result property="image" column="image"/>
|
||||
<result property="dataVolume" column="data_volume"/>
|
||||
<result property="visits" column="visits"/>
|
||||
<result property="downloads" column="downloads"/>
|
||||
<result property="score" column="score"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="creator" column="creator"/>
|
||||
<result property="createDate" column="create_date"/>
|
||||
<result property="updater" column="updater"/>
|
||||
<result property="updateDate" column="update_date"/>
|
||||
<result property="note1" column="note1"/>
|
||||
<result property="note2" column="note2"/>
|
||||
<result property="note3" column="note3"/>
|
||||
<result property="note4" column="note4"/>
|
||||
<result property="note5" column="note5"/>
|
||||
<collection property="infoList" javaType="List" ofType="attrEntity">
|
||||
<result property="id" column="id"/>
|
||||
<result property="dataResourceId" column="data_resource_id"/>
|
||||
<result property="attrType" column="attr_type"/>
|
||||
<result property="attrValue" column="attr_value"/>
|
||||
<result property="delFlag" column="del_flag"/>
|
||||
<result property="creator" column="creator"/>
|
||||
<result property="createDate" column="create_date"/>
|
||||
<result property="updater" column="updater"/>
|
||||
<result property="updateDate" column="update_date"/>
|
||||
<result property="note1" column="note1"/>
|
||||
<result property="note2" column="note2"/>
|
||||
<result property="note3" column="note3"/>
|
||||
<result property="note4" column="note4"/>
|
||||
<result property="note5" column="note5"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
<update id="deleteByIds">
|
||||
update tb_data_resource
|
||||
set del_flag = 1,
|
||||
|
@ -37,4 +76,44 @@
|
|||
</foreach>
|
||||
</update>
|
||||
|
||||
<select id="selectWithAttrs" resultMap="resourceDTO">
|
||||
SELECT
|
||||
r.*,
|
||||
a.*
|
||||
FROM
|
||||
tb_data_resource r,
|
||||
tb_data_attr a
|
||||
WHERE 1 = 1
|
||||
and r.id = a.data_resource_id
|
||||
and r.type = #{dto.type}
|
||||
and r.del_flag = 0
|
||||
<if test="dto.name != null and dto.name != ''" >
|
||||
and r.name like CONCAT('%',#{dto.name},'%')
|
||||
</if>
|
||||
<if test="dto.infoList.size > 0">
|
||||
AND
|
||||
a.data_resource_id IN (
|
||||
SELECT
|
||||
data_resource_id
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
tb.data_resource_id
|
||||
FROM
|
||||
(
|
||||
<foreach collection="dto.infoList" item="item" separator="union all">
|
||||
SELECT data_resource_id FROM tb_data_attr
|
||||
WHERE attr_type = #{item.attrType} AND attr_value = #{item.attrValue} and del_flag = 0
|
||||
</foreach>
|
||||
) tb
|
||||
GROUP BY
|
||||
tb.data_resource_id
|
||||
HAVING
|
||||
COUNT( tb.data_resource_id ) = ${dto.infoList.size}
|
||||
ORDER BY
|
||||
tb.data_resource_id ASC
|
||||
) tmp) limit ${pageNum}, ${pageSize}
|
||||
</if>
|
||||
|
||||
</select>
|
||||
</mapper>
|
|
@ -0,0 +1,3 @@
|
|||
sso.domain=yw.com.cn
|
||||
sso.ssoKey=SSOToken
|
||||
sso.keeperUrl=http://127.0.0.1:9090/renren-admin/sys/user/123
|
|
@ -15,7 +15,6 @@ import java.nio.charset.StandardCharsets;
|
|||
import java.util.LinkedHashMap;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
* XSS过滤处理
|
||||
*
|
||||
|
|
Loading…
Reference in New Issue