* 'master' of http://221.0.232.152:9393/ability-center/share-platform:
  ...
  ...
  批量进行能力申请接口(一个接口搞定)
  本地存储资源上传与访问
  编目管理接口,资源管理接口修改
  编目管理接口,资源管理接口修改
This commit is contained in:
huangweixiong 2022-04-19 10:07:37 +08:00
commit 57477cba83
24 changed files with 749 additions and 41 deletions

View File

@ -27,6 +27,7 @@
<activiti.version>5.22.0</activiti.version> <activiti.version>5.22.0</activiti.version>
<ureport2.version>2.2.9</ureport2.version> <ureport2.version>2.2.9</ureport2.version>
<IJPay.version>2.7.1</IJPay.version> <IJPay.version>2.7.1</IJPay.version>
<yawei-pso.version>2.0.2</yawei-pso.version>
</properties> </properties>
<dependencies> <dependencies>
@ -200,6 +201,12 @@
<artifactId>IJPay-AliPay</artifactId> <artifactId>IJPay-AliPay</artifactId>
<version>${IJPay.version}</version> <version>${IJPay.version}</version>
</dependency> </dependency>
<!-- 亚微单点登录 -->
<dependency>
<groupId>com.yawei.oav2</groupId>
<artifactId>yawei-pso</artifactId>
<version>${yawei-pso.version}</version>
</dependency>
</dependencies> </dependencies>
<build> <build>

View File

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

View File

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

View File

@ -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================");
}
}

View File

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

View File

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

View File

@ -16,5 +16,5 @@ public interface CategoryDao extends BaseDao<Category> {
Integer deleteByIds(@Param("ids") List<Long> idList); Integer deleteByIds(@Param("ids") List<Long> idList);
List<Map> selectFilterCriterByTopCategory(String topCategoryName); List<Map> selectDictData(String linkValue);
} }

View File

@ -78,8 +78,20 @@ public class CategoryServiceImpl extends CrudServiceImpl<CategoryDao, Category,
@Override @Override
public List<Map> getAllFilterCriteriaByTopCategory(String topCategoryName) { public List<Map> getAllFilterCriteriaByTopCategory(String topCategoryName) {
//return categoryDao.selectFilterCriterByTopCategory(topCategoryName); QueryWrapper<Category> wrapper = new QueryWrapper<>();
return null; 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 @Override

View File

@ -17,7 +17,6 @@ import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;

View File

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

View File

@ -1,19 +1,14 @@
package io.renren.modules.resource.controller; package io.renren.modules.resource.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.renren.common.annotation.LogOperation; import io.renren.common.annotation.LogOperation;
import io.renren.common.constant.Constant; import io.renren.common.constant.Constant;
import io.renren.common.page.PageData; import io.renren.common.page.PageData;
import io.renren.common.utils.ExcelUtils;
import io.renren.common.utils.Result; import io.renren.common.utils.Result;
import io.renren.common.validator.AssertUtils;
import io.renren.common.validator.ValidatorUtils; import io.renren.common.validator.ValidatorUtils;
import io.renren.common.validator.group.AddGroup; import io.renren.common.validator.group.AddGroup;
import io.renren.common.validator.group.DefaultGroup; 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.dto.ResourceDTO;
import io.renren.modules.resource.excel.ResourceExcel;
import io.renren.modules.resource.service.ResourceService; import io.renren.modules.resource.service.ResourceService;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParam;
@ -23,8 +18,6 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import springfox.documentation.annotations.ApiIgnore; import springfox.documentation.annotations.ApiIgnore;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
@ -40,23 +33,37 @@ public class ResourceController {
@Autowired @Autowired
private ResourceService resourceService; private ResourceService resourceService;
@PostMapping("/page") @GetMapping("/page")
@ApiOperation("分页查询资源信息") @ApiOperation("分页查询资源信息")
@ApiImplicitParams({ @ApiImplicitParams({
@ApiImplicitParam(name = "pageNum", value = "当前页码从1开始", paramType = "query", required = true, dataType="int") , @ApiImplicitParam(name = Constant.PAGE, value = "当前页码从1开始", paramType = "query", required = true, dataType="int") ,
@ApiImplicitParam(name = "pageSize", value = "每页显示记录数", paramType = "query",required = true, dataType="int") , @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") ,
@ApiImplicitParam(name = "", value = "排序字段", paramType = "query", dataType="String") , @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") @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String")
}) })
//@RequiresPermissions("resource:resource:page") //@RequiresPermissions("resource:resource:page")
public Result<PageData<ResourceDTO>> page(@RequestBody JSONObject jsonObject){ public Result<PageData<ResourceDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
String pageNum = jsonObject.getString("pageNum"); //ResourceDTO resourceDTO = JSON.toJavaObject(jsonObject, ResourceDTO.class);
String pageSize = jsonObject.getString("pageSize"); //resourceService.pageWithAttrs(resourceDTO);
ResourceDTO resourceDTO = JSON.toJavaObject(jsonObject, ResourceDTO.class); PageData<ResourceDTO> page = resourceService.page(params);
//PageData<ResourceDTO> page = resourceService.pageWithAttrs(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); @PostMapping("/pageWithAttrs")
return null; @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}") @GetMapping("/select/{id}")
@ -81,13 +88,13 @@ public class ResourceController {
return new Result(); return new Result();
} }
@PutMapping @PutMapping("/update")
@ApiOperation("修改") @ApiOperation("修改")
@LogOperation("修改") @LogOperation("修改")
//@RequiresPermissions("resource:resource:update") //@RequiresPermissions("resource:resource:update")
public Result update(@RequestBody ResourceDTO dto){ public Result update(@RequestBody ResourceDTO dto){
//效验数据 ////效验数据
ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); //ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class);
resourceService.updateWithAttrs(dto); resourceService.updateWithAttrs(dto);

View File

@ -17,4 +17,5 @@ import java.util.List;
public interface AttrDao extends BaseDao<AttrEntity> { public interface AttrDao extends BaseDao<AttrEntity> {
Integer delete4Resource(@Param("resourceIds") List<Long> idList); Integer delete4Resource(@Param("resourceIds") List<Long> idList);
} }

View File

@ -1,6 +1,7 @@
package io.renren.modules.resource.dao; package io.renren.modules.resource.dao;
import io.renren.common.dao.BaseDao; import io.renren.common.dao.BaseDao;
import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.entity.ResourceEntity; import io.renren.modules.resource.entity.ResourceEntity;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
@ -17,4 +18,6 @@ import java.util.List;
public interface ResourceDao extends BaseDao<ResourceEntity> { public interface ResourceDao extends BaseDao<ResourceEntity> {
Integer deleteByIds(@Param("ids") List<Long> idList); Integer deleteByIds(@Param("ids") List<Long> idList);
List<ResourceDTO> selectWithAttrs(@Param("dto") ResourceDTO resourceDTO, @Param("pageNum") Integer pageNum, @Param("pageSize") Integer pageSize);
} }

View File

@ -11,8 +11,8 @@ import java.util.Date;
* @author dg * @author dg
* @since 1.0 2022-04-13 * @since 1.0 2022-04-13
*/ */
@Data //@Data
@EqualsAndHashCode(callSuper=false) //@EqualsAndHashCode(callSuper=false)
@TableName("tb_data_attr") @TableName("tb_data_attr")
public class AttrEntity { public class AttrEntity {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@ -60,4 +60,136 @@ public class AttrEntity {
private String note3; private String note3;
private String note4; private String note4;
private String note5; 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 + '\'' +
'}';
}
} }

View File

@ -3,8 +3,11 @@ package io.renren.modules.resource.service;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import io.renren.common.service.CrudService; import io.renren.common.service.CrudService;
import io.renren.modules.resource.dto.ResourceDTO; 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.entity.ResourceEntity;
import java.util.List;
/** /**
* 资源表 * 资源表
* *
@ -20,4 +23,8 @@ public interface ResourceService extends CrudService<ResourceEntity, ResourceDTO
void updateWithAttrs(ResourceDTO dto); void updateWithAttrs(ResourceDTO dto);
ResourceDTO selectWithAttrs(Long id); ResourceDTO selectWithAttrs(Long id);
List<ResourceDTO> pageWithAttrs(JSONObject jsonObject);
List<AttrEntity> selectAttrsByResourceId(Long id);
} }

View File

@ -1,19 +1,17 @@
package io.renren.modules.resource.service.impl; package io.renren.modules.resource.service.impl;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import io.renren.common.service.impl.CrudServiceImpl; 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.AttrDao;
import io.renren.modules.resource.dao.ResourceDao; import io.renren.modules.resource.dao.ResourceDao;
import io.renren.modules.resource.dto.ResourceDTO; import io.renren.modules.resource.dto.ResourceDTO;
import io.renren.modules.resource.entity.AttrEntity; import io.renren.modules.resource.entity.AttrEntity;
import io.renren.modules.resource.entity.ResourceEntity; import io.renren.modules.resource.entity.ResourceEntity;
import io.renren.modules.resource.service.ResourceService; 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.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
@ -41,8 +39,10 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
@Override @Override
public QueryWrapper<ResourceEntity> getWrapper(Map<String, Object> params){ public QueryWrapper<ResourceEntity> getWrapper(Map<String, Object> params){
QueryWrapper<ResourceEntity> wrapper = new QueryWrapper<>(); 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; return wrapper;
} }
@ -51,9 +51,11 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
public void insertWithAttrs(ResourceDTO dto) { public void insertWithAttrs(ResourceDTO dto) {
ResourceEntity resourceEntity = new ResourceEntity(); ResourceEntity resourceEntity = new ResourceEntity();
BeanUtils.copyProperties(dto, resourceEntity); BeanUtils.copyProperties(dto, resourceEntity);
Long resourceID = IdWorker.getId(resourceEntity);
resourceEntity.setId(resourceID);
resourceEntity.setDelFlag(0); resourceEntity.setDelFlag(0);
resourceDao.insert(resourceEntity); resourceDao.insert(resourceEntity);
Long resourceID = IdWorker.getId(resourceEntity);
List<AttrEntity> attrEntities= dto.getInfoList(); List<AttrEntity> attrEntities= dto.getInfoList();
attrEntities.forEach(item -> { attrEntities.forEach(item -> {
item.setDelFlag(0); item.setDelFlag(0);
@ -97,6 +99,24 @@ public class ResourceServiceImpl extends CrudServiceImpl<ResourceDao, ResourceEn
.eq("del_flag", 0); .eq("del_flag", 0);
List<AttrEntity> attrEntities = attrDao.selectList(wrapper); List<AttrEntity> attrEntities = attrDao.selectList(wrapper);
resourceDTO.setInfoList(attrEntities); 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);
} }
} }

View File

@ -19,13 +19,12 @@ import java.util.Map;
/** /**
* Shiro的配置文件 * Shiro的配置文件
*
*/ */
@Configuration @Configuration
public class ShiroConfig { public class ShiroConfig {
@Bean @Bean
public DefaultWebSessionManager sessionManager(){ public DefaultWebSessionManager sessionManager() {
DefaultWebSessionManager sessionManager = new DefaultWebSessionManager(); DefaultWebSessionManager sessionManager = new DefaultWebSessionManager();
sessionManager.setSessionValidationSchedulerEnabled(false); sessionManager.setSessionValidationSchedulerEnabled(false);
sessionManager.setSessionIdUrlRewritingEnabled(false); sessionManager.setSessionIdUrlRewritingEnabled(false);
@ -72,6 +71,13 @@ public class ShiroConfig {
filterMap.put("/front/**", "anon"); filterMap.put("/front/**", "anon");
filterMap.put("/applyRecord/**", "anon"); filterMap.put("/applyRecord/**", "anon");
filterMap.put("/bsabilityrecord/**", "anon"); filterMap.put("/bsabilityrecord/**", "anon");
/**
* 资源上传
*/
filterMap.put("/upload", "anon");
filterMap.put("/upload/**", "anon");
filterMap.put("/**", "oauth2"); filterMap.put("/**", "oauth2");
shiroFilter.setFilterChainDefinitionMap(filterMap); shiroFilter.setFilterChainDefinitionMap(filterMap);

View File

@ -37,6 +37,7 @@ public class WebMvcConfig implements WebMvcConfigurer {
@Override @Override
public void addInterceptors(InterceptorRegistry registry) { public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new AliPayInterceptor()).addPathPatterns("/pay/alipay/**"); registry.addInterceptor(new AliPayInterceptor()).addPathPatterns("/pay/alipay/**");
// registry.addInterceptor(new IdentityInterceptor());
} }
@Override @Override

View File

@ -1,3 +1,7 @@
#上传的静态资源配置
resource:
root_url: 127.0.0.1
path: E:\liwen\
# Tomcat # Tomcat
server: server:
tomcat: tomcat:
@ -38,12 +42,14 @@ spring:
min-idle: 5 # 连接池中的最小空闲连接 min-idle: 5 # 连接池中的最小空闲连接
activiti: activiti:
check-process-definitions: false check-process-definitions: false
resources:
static-locations: classpath:/static,classpath:/public,file:${resource.path}
fdfs: fdfs:
so-timeout: 600000 so-timeout: 600000
connect-timeout: 6000 connect-timeout: 6000
tracker-list: #TrackerList参数,支持多个 tracker-list: #TrackerList参数,支持多个
- 192.168.10.10:22122 - 192.168.10.10:22122
# 是否开启redis缓存 true开启 false关闭 # 是否开启redis缓存 true开启 false关闭
@ -66,3 +72,4 @@ mybatis-plus:
cache-enabled: false cache-enabled: false
call-setters-on-nulls: true call-setters-on-nulls: true
jdbc-type-for-null: 'null' jdbc-type-for-null: 'null'
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

View File

@ -37,8 +37,12 @@
order by xh order by xh
</select> </select>
<select id="selectFilterCriterByTopCategory" resultType="java.util.Map"> <select id="selectDictData" resultType="java.util.Map">
select select *
from sys_dict_data
where 1 = 1
and dict_type_id = #{linkValue}
order by sort
</select> </select>
<update id="deleteByIds"> <update id="deleteByIds">

View File

@ -25,7 +25,7 @@
set del_flag = 1, set del_flag = 1,
update_date = now() update_date = now()
where 1 = 1 where 1 = 1
and data_resourceId in and data_resource_id in
<foreach collection="resourceIds" item="item" open="(" separator="," close=")"> <foreach collection="resourceIds" item="item" open="(" separator="," close=")">
#{item} #{item}
</foreach> </foreach>

View File

@ -26,6 +26,45 @@
<result property="note5" column="note5"/> <result property="note5" column="note5"/>
</resultMap> </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 id="deleteByIds">
update tb_data_resource update tb_data_resource
set del_flag = 1, set del_flag = 1,
@ -37,4 +76,44 @@
</foreach> </foreach>
</update> </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> </mapper>

View File

@ -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

View File

@ -15,7 +15,6 @@ import java.nio.charset.StandardCharsets;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
import java.util.Map; import java.util.Map;
/** /**
* XSS过滤处理 * XSS过滤处理
* *