提交 02dfb3a6 authored 作者: liupengfei's avatar liupengfei

--no commit message

上级 0a262490
......@@ -2,9 +2,9 @@ package com.zrqx.resource.bg.controller.projectlibrary;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
......@@ -13,18 +13,27 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import com.zrqx.core.enums.AllResourceTypeEnum;
import com.zrqx.core.enums.BooleanStatusEnum;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.util.bean.BeanUtils;
import com.zrqx.core.util.datatype.ArrayUtils;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.core.util.response.CallBack;
import com.zrqx.resource.bg.service.ResourceRelationService;
import com.zrqx.resource.bg.service.projectlibrary.DiyModelService;
import com.zrqx.resource.bg.service.projectlibrary.ProjectLibraryService;
import com.zrqx.resource.bg.service.recommend.RecommendResourceService;
import com.zrqx.resource.commons.form.bg.projectlibrary.BatchUpdateProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.QueryProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.SaveUpdateProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.SaveProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.UpdateProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.recommend.UpdateRecommendResourceForm;
import com.zrqx.resource.commons.model.projectlibrary.DiyModel;
import com.zrqx.resource.commons.model.projectlibrary.ProjectLibrary;
import com.zrqx.resource.commons.model.recommend.RecommendResource;
import com.zrqx.resource.commons.vo.bg.projectlibrary.DiyModelVO;
import com.zrqx.resource.commons.vo.bg.projectlibrary.ProjectLibraryListVO;
import com.zrqx.resource.commons.vo.bg.projectlibrary.ProjectLibraryVO;
......@@ -43,14 +52,16 @@ public class ProjectLibraryController {
@Autowired
private ProjectLibraryService service;
@Autowired
private DiyModelService dmService;
@Autowired
private ResourceRelationService resourceRelationService;
@Autowired
private RecommendResourceService recommendResourceService;
@ApiOperation(value = "新增" , notes ="新增一个")
@PostMapping(value = "/save")
public CallBack<Boolean> save(@RequestBody SaveUpdateProjectLibraryForm form){
if(!service.saveOrUpdate(form)){
public CallBack<Boolean> save(@RequestBody SaveProjectLibraryForm form){
if(!service.save(form)){
throw new BaseException("操作失败");
}
return CallBack.success();
......@@ -58,8 +69,8 @@ public class ProjectLibraryController {
@ApiOperation(value = "更新" , notes ="根据ID更新")
@PostMapping(value = "/update")
public CallBack<Boolean> update(@RequestBody SaveUpdateProjectLibraryForm form){
if(!service.saveOrUpdate(form)){
public CallBack<Boolean> update(@RequestBody UpdateProjectLibraryForm form){
if(!service.update(form)){
throw new BaseException("操作失败");
}
ProjectLibrary entity = service.selectByPrimaryKey(form.getId());
......@@ -84,6 +95,18 @@ public class ProjectLibraryController {
if(!service.UpdateByExampleSelective(entity,example)){
throw new BaseException("操作失败");
}
if(form.getStatus().equals(Integer.parseInt(BooleanStatusEnum.NO.getCode())) && ArrayUtils.isNotEmpty(form.getIds())){
//这里需要级联更新其他接口关联资源
//----推荐位内容
List<String> idList = form.getIds().stream().map(li -> {
return li.toString();
}).collect(Collectors.toList());
example = recommendResourceService.createExample();
example.createCriteria().andIn("resId", idList).andEqualTo("resType", AllResourceTypeEnum.PROJECT.getCode());
RecommendResource re = new RecommendResource();
re.setStatus(Integer.parseInt(BooleanStatusEnum.NO.getCode()));
recommendResourceService.UpdateByExampleSelective(re, example);
}
return CallBack.success();
}
......@@ -99,6 +122,12 @@ public class ProjectLibraryController {
ProjectLibrary entity = service.selectByPrimaryKey(oid);
ProjectLibraryVO vo = new ProjectLibraryVO();
BeanUtils.copyProperties(entity,vo);
//查询 专题下的自定义模块
DiyModel dm = new DiyModel();
dm.setPid(entity.getId());
List<DiyModel> dmList= dmService.select(dm);
//自定义模块数据过多 转换到vo对象 并把集合放到 专题对象里
//vo.setDms(BeanUtils.copyList(dmList, DiyModelVO.class));
if(StringUtils.isNotBlank(entity.getAuthorId())){
vo.setAuthorNameAndId(entity.getAuthor() + "," + entity.getAuthorId());
}else{
......
package com.zrqx.resource.bg.mapper.projectlibrary;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.resource.commons.model.projectlibrary.DiyModel;
public interface DiyModelMapper extends BaseMapper<DiyModel> {
}
package com.zrqx.resource.bg.mapper.projectlibrary;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Param;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.resource.commons.model.projectlibrary.ProjectModelResource;
public interface ProjectModelResourceMapper extends BaseMapper<ProjectModelResource> {
/**
* 根据类型和资源id集合删除推荐内容
* @param ids
* @param type
* @author ycw
* @date: 2019年8月8日 上午10:34:15
*/
@Delete("<script>"
+ "delete from res_project_model_resource "
+ "where 1 = 1 "
+ "<if test='type != null' >"
+ "and resourceType = #{type} "
+ "</if>"
+ "<if test='ids != null and ids.size > 0'>"
+ "and resourceId in "
+ " <foreach collection=\"ids\" index=\"index\" item=\"id\" open=\"(\" separator=\",\" close=\")\">"
+ "#{id}"
+ "</foreach>"
+ "</if>"
+ "</script>")
boolean delectByResourceIds(@Param("ids")List<String> ids, @Param("type")Integer type);
}
package com.zrqx.resource.bg.service.projectlibrary;
import com.zrqx.core.service.BaseService;
import com.zrqx.resource.commons.model.projectlibrary.DiyModel;
public interface DiyModelService extends BaseService<DiyModel, Integer> {
}
package com.zrqx.resource.bg.service.projectlibrary;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.resource.bg.mapper.projectlibrary.DiyModelMapper;
import com.zrqx.resource.commons.model.projectlibrary.DiyModel;
@Service
public class DiyModelServiceImpl extends BaseServiceImpl<DiyModel, Integer> implements DiyModelService {
@Autowired
private DiyModelMapper mapper;
@Override
public BaseMapper<DiyModel> getMapper() {
return mapper;
}
}
package com.zrqx.resource.bg.service.projectlibrary;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
......@@ -13,15 +14,23 @@ import com.zrqx.core.exception.BaseException;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.core.util.bean.BeanUtils;
import com.zrqx.core.util.datatype.ArrayUtils;
import com.zrqx.core.util.datatype.DateUtils;
import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.resource.bg.mapper.ResourceRelationMapper;
import com.zrqx.resource.bg.mapper.projectlibrary.DiyModelMapper;
import com.zrqx.resource.bg.mapper.projectlibrary.ProjectLibraryMapper;
import com.zrqx.resource.bg.mapper.projectlibrary.ProjectModelResourceMapper;
import com.zrqx.resource.bg.mapper.recommend.RecommendResourceMapper;
import com.zrqx.resource.commons.form.bg.QueryResourceForPoPForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.QueryProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.SaveUpdateProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.SaveProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.UpdateDiyModelForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.UpdateProjectLibraryForm;
import com.zrqx.resource.commons.model.projectlibrary.DiyModel;
import com.zrqx.resource.commons.model.projectlibrary.ProjectLibrary;
import com.zrqx.resource.commons.model.projectlibrary.ProjectModelResource;
import com.zrqx.resource.commons.model.resourcerelation.ResourceRelation;
import com.zrqx.resource.commons.vo.bg.projectlibrary.ProjectLibraryListVO;
......@@ -36,6 +45,10 @@ public class ProjectLibrarySerivceImpl extends BaseServiceImpl<ProjectLibrary,St
@Autowired
private ProjectLibraryMapper mapper;
@Autowired
private DiyModelMapper dmMapper;
@Autowired
private ProjectModelResourceMapper prMapper;
@Autowired
private RecommendResourceMapper recommendResourceMapper;
@Autowired
private ResourceRelationMapper resourceRelationMapper;
......@@ -48,7 +61,7 @@ public class ProjectLibrarySerivceImpl extends BaseServiceImpl<ProjectLibrary,St
* 保存或修改专题库
*/
@Override
public boolean saveOrUpdate(SaveUpdateProjectLibraryForm form) {
public boolean save(SaveProjectLibraryForm form) {
ProjectLibrary entity = new ProjectLibrary();
if(StringUtils.isNotBlank(form.getAuthorNameAndId())){
String[] authorNameAndId = form.getAuthorNameAndId().split(",");
......@@ -59,20 +72,85 @@ public class ProjectLibrarySerivceImpl extends BaseServiceImpl<ProjectLibrary,St
}
BeanUtils.copyProperties(form, entity);
if(entity.getId() == null){
//添加
entity.setStatus(ProjectStatusEnum.STATUS_0.getCode());
//添加专题
entity.setUploadTime(new Date());
entity.setResourceType(AllResourceTypeEnum.PROJECT.getCode());
entity.setBrowseNum(50);
mapper.insert(entity);
if(mapper.insert(entity) == 0){
throw new BaseException("保存失败!");
}
//再保存自定义模块
if(ArrayUtils.isNotEmpty(form.getDmsName())) {
List<DiyModel> lmList = new ArrayList<DiyModel>();
for (String name : form.getDmsName()) {
if(StringUtils.isNotBlank(name)){
DiyModel dm = new DiyModel();
dm.setPid(entity.getId());
dm.setName(name);
lmList.add(dm);
}
}
if(ArrayUtils.isNotEmpty(lmList)) {
if(dmMapper.insertList(lmList)==0) {
throw new BaseException("保存失败!");
}
}
}
}else{
//修改
entity.setUpdateTime(new Date());
mapper.updateByPrimaryKeySelective(entity);
throw new BaseException("保存失败!");
}
return true;
}
@Override
public boolean update(UpdateProjectLibraryForm form) {
//先修改专题
ProjectLibrary pl = BeanUtils.copy(form, ProjectLibrary.class);
pl.setUpdateTime(DateUtils.getDate());
if(mapper.updateByPrimaryKey(pl) == 0) {
throw new BaseException("修改失败!");
}
//再删除专题模块
Example ex = new Example(DiyModel.class);
if(form.getDmsIds().size()>0) {
ex.createCriteria().andIn("id", form.getDmsIds());
dmMapper.deleteByExample(ex);
// 删除模块关联的资源
ex = new Example(ProjectModelResource.class);
ex.createCriteria().andIn("diyModelId", form.getDmsIds());
prMapper.deleteByExample(ex);
}
//再修改专题模块
for (UpdateDiyModelForm dmForm : form.getDms()) {
DiyModel dm = BeanUtils.copy(dmForm, DiyModel.class);
dmMapper.updateByPrimaryKeySelective(dm);
// 修改模块关联的资源
ex = new Example(ProjectModelResource.class);
ex.createCriteria().andEqualTo("diyModelId", dmForm.getId());
ProjectModelResource pr = new ProjectModelResource();
pr.setDiyModelName(dmForm.getName());
prMapper.updateByExampleSelective(pr, ex);
}
//再新增专题模块
if(form.getDmsName().size()>0) {
List<DiyModel> lmList = new ArrayList<DiyModel>();
for (String name : form.getDmsName()) {
if(StringUtils.isNotBlank(name)){
DiyModel dm = new DiyModel();
dm.setPid(pl.getId());
dm.setName(name);
lmList.add(dm);
}
}
if(ArrayUtils.isNotEmpty(lmList)) {
if(dmMapper.insertList(lmList)==0) {
throw new BaseException("保存失败!");
}
}
}
return true;
}
/**
* 批量删除
* @param ids
......
......@@ -7,7 +7,8 @@ import com.zrqx.core.util.page.PageInfo;
import com.zrqx.core.util.page.PageParam;
import com.zrqx.resource.commons.form.bg.QueryResourceForPoPForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.QueryProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.SaveUpdateProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.SaveProjectLibraryForm;
import com.zrqx.resource.commons.form.bg.projectlibrary.UpdateProjectLibraryForm;
import com.zrqx.resource.commons.model.projectlibrary.ProjectLibrary;
import com.zrqx.resource.commons.vo.bg.projectlibrary.ProjectLibraryListVO;
/**
......@@ -16,11 +17,17 @@ import com.zrqx.resource.commons.vo.bg.projectlibrary.ProjectLibraryListVO;
public interface ProjectLibraryService extends BaseService<ProjectLibrary,String>{
/**
* 保存或修改专题库
* 保存专题库
* @param form
* @return
*/
boolean saveOrUpdate(SaveUpdateProjectLibraryForm form);
boolean save(SaveProjectLibraryForm form);
/**
* 修改专题库
* @param form
* @return
*/
boolean update(UpdateProjectLibraryForm form);
/**
* 批量删除
......
package com.zrqx.resource.bg.service.projectlibrary;
import java.util.List;
import com.zrqx.core.service.BaseService;
import com.zrqx.resource.commons.model.projectlibrary.ProjectModelResource;
public interface ProjectModelResourceService extends BaseService<ProjectModelResource, Integer> {
/**
* 根据类型和资源id集合删除推荐内容
* @param ids
* @param type
* @return
* @author ycw
* @date: 2019年1月25日 上午10:22:52
*/
boolean delectByResourceIds(List<String> ids, Integer type);
}
package com.zrqx.resource.bg.service.projectlibrary;
import java.util.List;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.zrqx.core.exception.BaseException;
import com.zrqx.core.mapper.BaseMapper;
import com.zrqx.core.service.BaseServiceImpl;
import com.zrqx.resource.bg.mapper.projectlibrary.ProjectModelResourceMapper;
import com.zrqx.resource.commons.model.projectlibrary.ProjectModelResource;
@Service
public class ProjectModelResourceServiceImpl extends BaseServiceImpl<ProjectModelResource, Integer> implements ProjectModelResourceService {
@Autowired
private ProjectModelResourceMapper mapper;
@Override
public BaseMapper<ProjectModelResource> getMapper() {
return mapper;
}
/**
* 根据类型和资源id集合删除推荐内容
* @param ids
* @param type
* @return
* @author ycw
* @date: 2019年8月8日 上午10:25:20
*/
@Override
public boolean delectByResourceIds(List<String> ids, Integer type){
if(ids == null || ids.size() == 0 ){
throw new BaseException(1, "id不能为空");
}
if(type == null){
throw new BaseException(2, "资源类型不能为空");
}
return mapper.delectByResourceIds(ids, type);
}
}
package com.zrqx.resource.commons.vo.bg.projectlibrary;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class DiyModelVO {
@ApiModelProperty("自定义模块id")
private Integer id;
@ApiModelProperty("模块名称")
private String name;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论