Merge pull request '异步初始化专区数据' (#107) from otto/ruoyi-gitlink:member_operate into dev

This commit is contained in:
otto 2023-09-18 14:47:26 +08:00
commit a81783bbcf
35 changed files with 388 additions and 92 deletions

View File

@ -102,7 +102,7 @@ public interface RemoteCmsService {
@PostMapping("/doc/initCmsDir/{zoneId}")
public R<Object> initCmsDir(@PathVariable(value = "zoneId") Long zoneId
, @RequestBody Object cmsDirInput
, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
, @RequestHeader(SecurityConstants.USER_KEY) String userKey);
/**
* 初始化新闻
@ -115,5 +115,17 @@ public interface RemoteCmsService {
@PostMapping("/doc/initCmsDoc/{dirId}")
public R<Boolean> initCmsDoc(@PathVariable(value = "dirId") Long dirId
, @RequestBody Object cmsDocInputDto
, @RequestHeader(SecurityConstants.FROM_SOURCE) String source
, @RequestHeader(SecurityConstants.USER_KEY) String userKey);
/**
* 通过组织Id删除专区对应项目
*
* @param deptId 组织Id
* @param source 来源
* @return 结果
*/
@DeleteMapping("/project/removeByDeptId/{deptId}")
public R<Boolean> removeByDeptId(@PathVariable(value = "deptId") Long deptId
, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@ -69,4 +69,15 @@ public interface RemoteZoneService {
@GetMapping("/zoneDetail/getZoneHomePageCmsSizeByDeptId/{deptId}")
public R<Long> getZoneHomePageCmsSizeByDeptId(@PathVariable(value = "deptId") Long deptId
, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
/**
* 通过组织名称删除专区
*
* @param deptName 组织名称
* @param source 来源
* @return 结果
*/
@DeleteMapping("/zoneDetail/{deptName}")
public R<Boolean> deleteByDeptName(@PathVariable(value = "deptName") String deptName
, @RequestHeader(SecurityConstants.FROM_SOURCE) String source);
}

View File

@ -52,14 +52,19 @@ public class RemoteCmsFallbackFactory implements FallbackFactory<RemoteCmsServic
}
@Override
public R<Object> initCmsDir(Long zoneId, Object cmsDirInput, String source) {
public R<Object> initCmsDir(Long zoneId, Object cmsDirInput, String userKey) {
return R.fail("初始化栏目失败:" + throwable.getMessage());
}
@Override
public R<Boolean> initCmsDoc(Long dirId, Object cmsDocInputDto, String source) {
public R<Boolean> initCmsDoc(Long dirId, Object cmsDocInputDto, String source, String userKey) {
return R.fail("初始化文章失败:" + throwable.getMessage());
}
@Override
public R<Boolean> removeByDeptId(Long deptId, String source) {
return R.fail("删除专区项目失败:" + throwable.getMessage());
}
};
}
}

View File

@ -46,6 +46,11 @@ public class RemoteZoneFallbackFactory implements FallbackFactory<RemoteZoneServ
public R<Long> getZoneHomePageCmsSizeByDeptId(Long deptId, String source) {
return R.fail("通过组织Id获取专区详情对象失败:" + throwable.getMessage());
}
@Override
public R<Boolean> deleteByDeptName(String deptName, String source) {
return R.fail("通过组织名称删除特色专区失败:" + throwable.getMessage());
}
};
}
}

View File

@ -269,7 +269,6 @@ public class CmsDocController extends BaseController {
/**
* 内部接口初始化栏目
*/
@InnerAuth
@PostMapping("/initCmsDir/{zoneId}")
@Log(title = "初始化栏目", businessType = BusinessType.INSERT)
@ApiOperation(value = "初始化栏目", hidden = true)

View File

@ -300,7 +300,7 @@ public class CmsDocServiceImpl implements ICmsDocService {
CmsDoc dirDoc = selectCmsDir(dirId);
CmsDoc cmsDoc = cmsDocInputDto.toCmsDoc(dirDoc);
if (isCurrentUserZoneAdmin(dirDoc.getDeptId())|| isNoAuditRequired(dirDoc.getDeptId())) {
if (isNoAuditRequired(dirDoc.getDeptId()) || isCurrentUserZoneAdmin(dirDoc.getDeptId())) {
cmsDoc.setAuditStatus(DocAuditStatus.AUDIT_PASS.getAuditCode()); //文章自动置为审核通过状态值
return insertCommonCmsDoc(cmsDoc,
"创建文章:" + StringUtils.truncateStringAndConcatenatingSpecifiedString(cmsDoc.getName(), 100, "..."),

View File

@ -156,4 +156,15 @@ public class CmsProjectController extends BaseController {
public AjaxResult remove(@ApiParam(name = "deptIds", value = "组织Id列表") @PathVariable Long[] deptIds) {
return toAjax(cmsProjectService.deleteCmsProjectByIds(deptIds));
}
/**
* 内部接口-通过组织Id删除专区对应项目
*/
@InnerAuth
@Log(title = "专区对应项目", businessType = BusinessType.DELETE)
@ApiOperation(value = "内部接口-通过组织Id删除专区对应项目", hidden = true)
@DeleteMapping("/removeByDeptId/{deptId}")
public R<Boolean> removeByDeptId(@PathVariable(value = "deptId") Long deptId) {
return R.ok(cmsProjectService.deleteCmsProjectByDeptId(deptId) > 0);
}
}

View File

@ -59,7 +59,7 @@ public interface ICmsProjectService {
* @param id 专区对应项目主键
* @return 结果
*/
public int deleteCmsProjectById(Long id);
public int deleteCmsProjectByDeptId(Long deptId);
/**
* 通过组织创建特色专区的新闻动态项目

View File

@ -1,16 +1,19 @@
package com.ruoyi.cms.project.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.ruoyi.cms.doc.domain.CmsDir;
import com.ruoyi.cms.doc.domain.CmsDocBaseDto;
import com.ruoyi.cms.doc.domain.CmsDocSearchVo;
import com.ruoyi.cms.doc.service.ICmsAsyncService;
import com.ruoyi.cms.doc.service.ICmsDocService;
import com.ruoyi.cms.project.domain.CmsProject;
import com.ruoyi.cms.project.mapper.CmsProjectMapper;
import com.ruoyi.cms.project.service.ICmsProjectService;
import com.ruoyi.cms.utils.CmsGitLinkRequestUrl;
import com.ruoyi.common.core.enums.SystemRole;
import com.ruoyi.common.core.utils.PinYinStringUtils;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.enums.SystemRole;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.PinYinStringUtils;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.datascope.annotation.DataScope;
import com.ruoyi.common.httpClient.util.GitLinkRequestHelper;
@ -126,6 +129,18 @@ public class CmsProjectServiceImpl implements ICmsProjectService {
if (cmsProject == null) {
throw new ServiceException("组织对应项目不存在(组织Id[" + deptId + "])");
}
// 删除专区下所有栏目及文章
List<CmsDir> cmsDirList = cmsDocService.selectCmsDocDirList(deptId, false);
for (CmsDir cmsDir : cmsDirList) {
CmsDocSearchVo cmsDocSearchVo = new CmsDocSearchVo();
cmsDocSearchVo.setDeptId(deptId);
cmsDocSearchVo.setDirName(cmsDir.getName());
List<CmsDocBaseDto> cmsDocList = cmsDocService.selectCmsDocList(cmsDir.getId(), cmsDocSearchVo);
for (CmsDocBaseDto cmsDocBaseDto : cmsDocList) {
cmsDocService.deleteCmsDocById(cmsDocBaseDto.getId());
}
cmsDocService.deleteCmsDocById(cmsDir.getId());
}
JSONObject result = gitLinkRequestHelper.doDelete(CmsGitLinkRequestUrl.DELETE_PROJECT(cmsProject));
String message = result.getString("message");
if ("success".equals(message)) {
@ -144,8 +159,8 @@ public class CmsProjectServiceImpl implements ICmsProjectService {
* @return 结果
*/
@Override
public int deleteCmsProjectById(Long id) {
return cmsProjectMapper.deleteCmsProjectById(id);
public int deleteCmsProjectByDeptId(Long deptId) {
return deleteCmsProjectByIds(new Long[]{deptId});
}
private Long getOrganizationId() {

View File

@ -163,14 +163,13 @@ public class SysDeptController extends BaseController
public AjaxResult remove(@PathVariable Long deptId)
{
deptService.checkUnchangeableDept(deptId);
if (deptService.hasChildByDeptId(deptId))
{
if (deptService.hasChildByDeptId(deptId)) {
return warn("存在下级部门,不允许删除");
}
if (deptService.checkDeptExistUser(deptId))
{
return warn("部门存在用户,不允许删除");
}
// if (deptService.checkDeptExistUser(deptId))
// {
// return warn("部门存在用户,不允许删除");
// }
deptService.checkDeptDataScope(deptId);
return toAjax(deptService.deleteDeptById(deptId));
}

View File

@ -114,7 +114,8 @@ public class SysDeptRoleServiceImpl implements ISysDeptRoleService {
for (Long roleId : roleIds) {
SysDeptRole sysDeptRole = sysDeptRoleMapper.selectSysDeptRoleByDeptIdAndRoleId(deptId, roleId);
if (sysDeptRole == null) {
throw new ServiceException("部门下不存在该可选角色(部门名称[" + sysDept.getDeptName() + "],角色Id[" + roleId + "])");
// throw new ServiceException("部门下不存在该可选角色(部门名称[" + sysDept.getDeptName() + "],角色Id[" + roleId + "])");
continue;
}
List<SysUserDeptRole> userIdentifyList = sysUserDeptRoleMapper.selectSysUserDeptRoleByDeptIdAndRoleId(deptId, roleId);

View File

@ -3,6 +3,7 @@ package com.ruoyi.system.service.impl;
import com.ruoyi.common.core.constant.CacheConstants;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.constant.UserConstants;
import com.ruoyi.common.core.enums.SystemRole;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.text.Convert;
import com.ruoyi.common.core.utils.StringUtils;
@ -18,7 +19,9 @@ import com.ruoyi.system.api.utils.FeginUtils;
import com.ruoyi.system.domain.vo.TreeSelect;
import com.ruoyi.system.mapper.SysDeptMapper;
import com.ruoyi.system.mapper.SysRoleMapper;
import com.ruoyi.system.service.ISysDeptRoleService;
import com.ruoyi.system.service.ISysDeptService;
import com.ruoyi.system.service.ISysUserDeptRoleService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -41,6 +44,12 @@ public class SysDeptServiceImpl implements ISysDeptService {
@Autowired
private SysRoleMapper roleMapper;
@Autowired
private ISysDeptRoleService sysDeptRoleService;
@Autowired
private ISysUserDeptRoleService sysUserDeptRoleService;
@Autowired
private RemoteZoneService remoteZoneService;
@ -288,6 +297,12 @@ public class SysDeptServiceImpl implements ISysDeptService {
switch (deptTypeData.getDictLabel()) {
case CacheConstants.SYS_DICT_DEPT_TYPE_TSZQ:
if (isAdd) {
// 设置该组织下可选角色为专区管理员专区运营人员专区会员
SysRole zoneAdminRole = roleMapper.selectRoleByKey(SystemRole.ZONE_ADMIN.getRoleKey());
SysRole zoneOperatorRole = roleMapper.selectRoleByKey(SystemRole.ZONE_OPERATOR.getRoleKey());
SysRole zoneMemberRole = roleMapper.selectRoleByKey(SystemRole.ZONE_MEMBER.getRoleKey());
Long[] roleIds = new Long[]{zoneAdminRole.getRoleId(), zoneOperatorRole.getRoleId(), zoneMemberRole.getRoleId()};
sysDeptRoleService.addSysRoleListForSysDept(dept.getDeptId(), roleIds);
errorMessage = createProjectByDept(dept);
} else {
errorMessage = updateProjectByDept(dept);
@ -308,6 +323,7 @@ public class SysDeptServiceImpl implements ISysDeptService {
if (!result) {
if (isAdd) {
deleteDeptById(dept.getDeptId());
}
throw new ServiceException(errorMessage);
}
@ -439,6 +455,17 @@ public class SysDeptServiceImpl implements ISysDeptService {
*/
@Override
public int deleteDeptById(Long deptId) {
SysDept dept = selectDeptById(deptId);
// 删除专区相关数据
remoteZoneService.deleteByDeptName(dept.getDeptName(), SecurityConstants.INNER);
// 删除专区下用户
sysUserDeptRoleService.deleteSysUserDeptRoleByDeptId(deptId);
// 删除组织前先删除组织下角色
SysRole zoneAdminRole = roleMapper.selectRoleByKey(SystemRole.ZONE_ADMIN.getRoleKey());
SysRole zoneOperatorRole = roleMapper.selectRoleByKey(SystemRole.ZONE_OPERATOR.getRoleKey());
SysRole zoneMemberRole = roleMapper.selectRoleByKey(SystemRole.ZONE_MEMBER.getRoleKey());
Long[] roleIds = new Long[]{zoneAdminRole.getRoleId(), zoneOperatorRole.getRoleId(), zoneMemberRole.getRoleId()};
sysDeptRoleService.deleteSysRoleListForSysDept(dept.getDeptId(), roleIds);
return deptMapper.deleteDeptById(deptId);
}

View File

@ -133,4 +133,15 @@ public class ZoneDetailController extends BaseController {
public AjaxResult publish(@PathVariable("id") Long id) {
return toAjax(zoneDetailService.publishZoneDetail(id));
}
/**
* 通过组织名称删除特色专区
*/
@InnerAuth
@Log(title = "特色专区详情", businessType = BusinessType.DELETE)
@DeleteMapping("/{deptName}")
@ApiOperation(value = "删除特色专区")
public R<Boolean> deleteByDeptId(@PathVariable(value = "deptName") String deptName) {
return R.ok(zoneDetailService.deleteZoneDetailByDeptName(deptName) > 0);
}
}

View File

@ -82,8 +82,17 @@ public interface ZoneDetailMapper {
/**
* 通过专区标识查找专区
*
* @param zoneKey
* @return
*/
ZoneDetail selectZoneDetailByKey(String zoneKey);
/**
* 根据名称查找专区
*
* @param name
* @return
*/
ZoneDetail selectZoneDetailByName(String name);
}

View File

@ -10,12 +10,6 @@ import com.ruoyi.zone.resource.domain.ZoneResourceType;
* @date 2023-05-09
*/
public interface IZoneAsyncService {
/**
* 异步初始化专区数据
*
* @param zoneDetail 专区详情
*/
void asyncInitZoneData(ZoneDetail zoneDetail);
/**
* 异步更新该专区下当前资源类型对应的资源更新为目标资源类型
@ -29,4 +23,16 @@ public interface IZoneAsyncService {
* 自动识别专区资源对应类型
*/
void asyncUpdateType();
void initHomePage(ZoneDetail zoneDetail);
void initCms(ZoneDetail zoneDetail);
void initProject(ZoneDetail zoneDetail);
void initMember(ZoneDetail zoneDetail);
void initPartners(ZoneDetail zoneDetail);
void initResource(ZoneDetail zoneDetail);
}

View File

@ -67,10 +67,11 @@ public interface IZoneDetailService {
/**
* 删除特色专区详情信息
*
* @param id 特色专区详情主键
* @param id 特色专区详情主键
* @param deptName
* @return 结果
*/
public int deleteZoneDetailById(Long id);
public int deleteZoneDetailByDeptName(String deptName);
/**
* 通过组织新增特色专区

View File

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONObject;
import com.ruoyi.common.core.constant.SecurityConstants;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.redis.service.RedisService;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.RemoteCmsService;
import com.ruoyi.system.api.utils.FeginUtils;
import com.ruoyi.zone.detail.domain.ZoneDetail;
@ -34,9 +35,11 @@ import com.ruoyi.zone.project.service.IZoneProjectTypeService;
import com.ruoyi.zone.resource.domain.ZoneResource;
import com.ruoyi.zone.resource.domain.ZoneResourceToType;
import com.ruoyi.zone.resource.domain.ZoneResourceType;
import com.ruoyi.zone.resource.domain.vo.ZoneResourceDomainInputVo;
import com.ruoyi.zone.resource.domain.vo.ZoneResourceTypeInputVo;
import com.ruoyi.zone.resource.mapper.ZoneResourceMapper;
import com.ruoyi.zone.resource.mapper.ZoneResourceToTypeMapper;
import com.ruoyi.zone.resource.service.IZoneResourceDomainService;
import com.ruoyi.zone.resource.service.IZoneResourceService;
import com.ruoyi.zone.resource.service.IZoneResourceTypeService;
import com.ruoyi.zone.utils.ZoneConstants;
@ -102,6 +105,9 @@ public class ZoneAsyncServiceImpl implements IZoneAsyncService {
@Autowired
@Lazy
private IZoneResourceTypeService zoneResourceTypeService;
@Autowired
@Lazy
private IZoneResourceDomainService zoneResourceDomainService;
@Value("${zone.initData.gitlinkProjectId}")
private Long gitlinkProjectId;
@ -118,17 +124,26 @@ public class ZoneAsyncServiceImpl implements IZoneAsyncService {
@Value("${zone.initData.gitLinkUserName4}")
private String gitLinkUserName4;
@Async
@Override
public void asyncInitZoneData(ZoneDetail zoneDetail) {
initHomePage(zoneDetail);
initCms(zoneDetail);
initProject(zoneDetail);
initMember(zoneDetail);
initPartners(zoneDetail);
initResourceType(zoneDetail);
}
public void initResource(ZoneDetail zoneDetail) {
ZoneResourceDomainInputVo zoneResourceDomainInputVo = new ZoneResourceDomainInputVo();
zoneResourceDomainInputVo.setZoneId(zoneDetail.getId());
zoneResourceDomainInputVo.setName("资源领域一");
zoneResourceDomainService.insertZoneResourceDomain(zoneResourceDomainInputVo);
zoneResourceDomainInputVo = new ZoneResourceDomainInputVo();
zoneResourceDomainInputVo.setZoneId(zoneDetail.getId());
zoneResourceDomainInputVo.setName("资源领域二");
zoneResourceDomainService.insertZoneResourceDomain(zoneResourceDomainInputVo);
zoneResourceDomainInputVo = new ZoneResourceDomainInputVo();
zoneResourceDomainInputVo.setZoneId(zoneDetail.getId());
zoneResourceDomainInputVo.setName("资源领域三");
zoneResourceDomainService.insertZoneResourceDomain(zoneResourceDomainInputVo);
zoneResourceDomainInputVo = new ZoneResourceDomainInputVo();
zoneResourceDomainInputVo.setZoneId(zoneDetail.getId());
zoneResourceDomainInputVo.setName("资源领域四");
zoneResourceDomainService.insertZoneResourceDomain(zoneResourceDomainInputVo);
private void initResourceType(ZoneDetail zoneDetail) {
ZoneResourceTypeInputVo zoneResourceTypeInputVo = new ZoneResourceTypeInputVo();
zoneResourceTypeInputVo.setZoneId(zoneDetail.getId());
zoneResourceTypeInputVo.setName("图片文件");
@ -237,7 +252,9 @@ public class ZoneAsyncServiceImpl implements IZoneAsyncService {
}
}
private void initPartners(ZoneDetail zoneDetail) {
@Async
@Override
public void initPartners(ZoneDetail zoneDetail) {
//初始化合作伙伴默认分类
ZonePartnersTypeInputVo zonePartnersTypeInputVo = new ZonePartnersTypeInputVo();
zonePartnersTypeInputVo.setName(ZoneConstants.DEFAULT_TYPE_NAME);
@ -245,7 +262,9 @@ public class ZoneAsyncServiceImpl implements IZoneAsyncService {
zonePartnersTypeService.insertZonePartnersType(zonePartnersTypeInputVo);
}
private void initHomePage(ZoneDetail zoneDetail) {
@Async
@Override
public void initHomePage(ZoneDetail zoneDetail) {
//region 初始化首页配置
ZoneDetailUpdateVo zoneDetailUpdateVo = new ZoneDetailUpdateVo();
zoneDetailUpdateVo.setId(zoneDetail.getId());
@ -262,63 +281,36 @@ public class ZoneAsyncServiceImpl implements IZoneAsyncService {
//endregion
}
private void initCms(ZoneDetail zoneDetail) {
//region 初始化资讯
private void initCms(Long zoneId, String count, int sort) {
//初始化栏目
JSONObject cmsDirInput = new JSONObject();
//初始化第一条新闻
cmsDirInput.put("name", "栏目一");
cmsDirInput.put("sort", 1);
cmsDirInput.put("name", "栏目一".replaceAll("", count));
cmsDirInput.put("sort", sort);
Object cmsDirObj = FeginUtils.getReturnData(
remoteCmsService.initCmsDir(zoneDetail.getId(), cmsDirInput, SecurityConstants.INNER)
remoteCmsService.initCmsDir(zoneId, cmsDirInput, SecurityUtils.getUserKey())
);
JSONObject cmsDir = JSONObject.parseObject(JSON.toJSONString(cmsDirObj));
JSONObject cmsDocInput = new JSONObject();
cmsDocInput.put("name", "第一条新闻");
cmsDocInput.put("content", encodeContent("第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容行第一条新闻的新闻详情正文内容..."));
cmsDocInput.put("name", "第一条新闻".replaceAll("", count));
cmsDocInput.put("content", encodeContent("第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容行第一条新闻的新闻详情正文内容...".replaceAll("", count)));
cmsDocInput.put("headImg", "https://www.gitlink.org.cn/api/attachments/421073");
cmsDocInput.put("summary", "第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容行第一条新闻的新闻详情正文内容...");
remoteCmsService.initCmsDoc(cmsDir.getLong("id"), cmsDocInput, SecurityConstants.INNER);
//初始化第二条新闻
cmsDirInput.put("name", "栏目二");
cmsDirInput.put("sort", 2);
cmsDirObj = FeginUtils.getReturnData(
remoteCmsService.initCmsDir(zoneDetail.getId(), cmsDirInput, SecurityConstants.INNER)
);
cmsDir = JSONObject.parseObject(JSON.toJSONString(cmsDirObj));
cmsDocInput = new JSONObject();
cmsDocInput.put("name", "第二条新闻");
cmsDocInput.put("content", encodeContent("第二条新闻的新闻详情正文内容第二条新闻的新闻详情正文内容第二条新闻的新闻详情正文内..."));
cmsDocInput.put("summary", "第二条新闻的新闻详情正文内容第二条新闻的新闻详情正文内容第二条新闻的新闻详情正文内...");
remoteCmsService.initCmsDoc(cmsDir.getLong("id"), cmsDocInput, SecurityConstants.INNER);
//初始化第三条新闻
cmsDirInput.put("name", "栏目三");
cmsDirInput.put("sort", 3);
cmsDirObj = FeginUtils.getReturnData(
remoteCmsService.initCmsDir(zoneDetail.getId(), cmsDirInput, SecurityConstants.INNER)
);
cmsDir = JSONObject.parseObject(JSON.toJSONString(cmsDirObj));
cmsDocInput = new JSONObject();
cmsDocInput.put("name", "第三条新闻");
cmsDocInput.put("content", encodeContent("第三条新闻的新闻详情正文内容第三条新闻的新闻详情正文内容第三条新闻的新闻详情正文内..."));
cmsDocInput.put("summary", "第三条新闻的新闻详情正文内容第三条新闻的新闻详情正文内容第三条新闻的新闻详情正文内...");
remoteCmsService.initCmsDoc(cmsDir.getLong("id"), cmsDocInput, SecurityConstants.INNER);
//初始化第四条新闻
cmsDirInput.put("name", "栏目四");
cmsDirInput.put("sort", 4);
cmsDirObj = FeginUtils.getReturnData(
remoteCmsService.initCmsDir(zoneDetail.getId(), cmsDirInput, SecurityConstants.INNER)
);
cmsDir = JSONObject.parseObject(JSON.toJSONString(cmsDirObj));
cmsDocInput = new JSONObject();
cmsDocInput.put("name", "第四条新闻");
cmsDocInput.put("content", encodeContent("第四条新闻的新闻详情正文内容第四条新闻的新闻详情正文内容第四条新闻的新闻详情正文内..."));
cmsDocInput.put("summary", "第四条新闻的新闻详情正文内容第四条新闻的新闻详情正文内容第四条新闻的新闻详情正文内...");
remoteCmsService.initCmsDoc(cmsDir.getLong("id"), cmsDocInput, SecurityConstants.INNER);
//endregion
cmsDocInput.put("summary", "第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容第一条新闻的新闻详情正文内容行第一条新闻的新闻详情正文内容...".replaceAll("", count));
remoteCmsService.initCmsDoc(cmsDir.getLong("id"), cmsDocInput, SecurityConstants.INNER, SecurityUtils.getUserKey());
}
private void initProject(ZoneDetail zoneDetail) {
@Async
@Override
public void initCms(ZoneDetail zoneDetail) {
initCms(zoneDetail.getId(), "", 1);
initCms(zoneDetail.getId(), "", 2);
initCms(zoneDetail.getId(), "", 3);
initCms(zoneDetail.getId(), "", 4);
}
@Async
@Override
public void initProject(ZoneDetail zoneDetail) {
//region 初始化项目
//初始化项目类型
ZoneProjectTypeInputVo zoneProjectTypeInputVo = new ZoneProjectTypeInputVo();
@ -351,7 +343,9 @@ public class ZoneAsyncServiceImpl implements IZoneAsyncService {
//endregion
}
private void initMember(ZoneDetail zoneDetail) {
@Async
@Override
public void initMember(ZoneDetail zoneDetail) {
//region 初始化会员
//初始化会员类别
ZoneMemberTypeInputVo zoneMemberTypeInputVo = new ZoneMemberTypeInputVo();

View File

@ -27,11 +27,17 @@ import com.ruoyi.system.api.utils.FeginUtils;
import com.ruoyi.zone.detail.domain.ZoneDetail;
import com.ruoyi.zone.detail.domain.vo.*;
import com.ruoyi.zone.detail.mapper.ZoneDetailMapper;
import com.ruoyi.zone.detail.service.IZoneAsyncService;
import com.ruoyi.zone.detail.service.IZoneDetailService;
import com.ruoyi.zone.member.domain.vo.ZoneMemberSearchVo;
import com.ruoyi.zone.member.mapper.ZoneMemberLevelMapper;
import com.ruoyi.zone.member.mapper.ZoneMemberMapper;
import com.ruoyi.zone.member.mapper.ZoneMemberTypeMapper;
import com.ruoyi.zone.project.domain.vo.ZoneProjectSearchVo;
import com.ruoyi.zone.project.mapper.ZoneProjectMapper;
import com.ruoyi.zone.project.mapper.ZoneProjectTypeMapper;
import com.ruoyi.zone.resource.mapper.ZoneResourceDomainMapper;
import com.ruoyi.zone.resource.mapper.ZoneResourceTypeMapper;
import com.ruoyi.zone.utils.ZoneConstants;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
@ -63,11 +69,21 @@ public class ZoneDetailServiceImpl implements IZoneDetailService {
@Autowired
private RemoteUserService remoteUserService;
@Autowired
private ZoneAsyncServiceImpl zoneAsyncService;
private IZoneAsyncService zoneAsyncService;
@Autowired
private ZoneProjectMapper zoneProjectMapper;
@Autowired
private ZoneProjectTypeMapper zoneProjectTypeMapper;
@Autowired
private ZoneMemberMapper zoneMemberMapper;
@Autowired
private ZoneMemberTypeMapper zoneMemberTypeMapper;
@Autowired
private ZoneMemberLevelMapper zoneMemberLevelMapper;
@Autowired
private ZoneResourceTypeMapper zoneResourceTypeMapper;
@Autowired
private ZoneResourceDomainMapper zoneResourceDomainMapper;
@Value("${zone.zoneAdminUrl}")
private String zoneAdminUrl;
@Value("${zone.zoneConfigurationUrl}")
@ -242,12 +258,29 @@ public class ZoneDetailServiceImpl implements IZoneDetailService {
/**
* 删除特色专区详情信息
*
* @param id 特色专区详情主键
* @param id 特色专区详情主键
* @param deptName
* @return 结果
*/
@Override
public int deleteZoneDetailById(Long id) {
return zoneDetailMapper.deleteZoneDetailById(id);
public int deleteZoneDetailByDeptName(String deptName) {
ZoneDetail zoneDetail = zoneDetailMapper.selectZoneDetailByName(deptName);
if (zoneDetail == null) {
return 0;
}
// 1删除专区对应项目
remoteCmsService.removeByDeptId(zoneDetail.getDeptId(), SecurityConstants.INNER);
// 2删除专区会员会员类别会员等级
zoneMemberMapper.deleteZoneMemberByZoneId(zoneDetail.getId());
zoneMemberTypeMapper.deleteZoneMemberTypeByZoneId(zoneDetail.getId());
zoneMemberLevelMapper.deleteZoneMemberLevelByZoneId(zoneDetail.getId());
// 3删除专区项目项目类别项目
zoneProjectMapper.deleteZoneProjectByZoneId(zoneDetail.getId());
zoneProjectTypeMapper.deleteZoneProjectTypeByZoneId(zoneDetail.getId());
// 4删除专区资源类型资源领域
zoneResourceTypeMapper.deleteZoneResourceTypeByZoneId(zoneDetail.getId());
zoneResourceDomainMapper.deleteZoneResourceDomainByZoneId(zoneDetail.getId());
return zoneDetailMapper.deleteZoneDetailById(zoneDetail.getId());
}
@Override
@ -283,7 +316,12 @@ public class ZoneDetailServiceImpl implements IZoneDetailService {
zoneDetail.setKey(zoneKey);
boolean isSuccess = insertZoneDetail(zoneDetail) > 0;
if (isSuccess) {
zoneAsyncService.asyncInitZoneData(zoneDetail);
zoneAsyncService.initHomePage(zoneDetail);
zoneAsyncService.initCms(zoneDetail);
zoneAsyncService.initProject(zoneDetail);
zoneAsyncService.initMember(zoneDetail);
zoneAsyncService.initPartners(zoneDetail);
zoneAsyncService.initResource(zoneDetail);
}
return isSuccess;

View File

@ -131,4 +131,12 @@ public interface ZoneMemberLevelMapper {
* @return
*/
Integer batchUpdateSortIncreased(@Param("zoneId") Long zoneId, @Param("setSort") Integer setSort);
/**
* 根据专区Id删除专区会员等级
*
* @param zoneId
* @return
*/
int deleteZoneMemberLevelByZoneId(Long zoneId);
}

View File

@ -128,4 +128,12 @@ public interface ZoneMemberMapper {
* @return
*/
Integer batchUpdateSortIncreased(@Param("zoneMember") ZoneMember zoneMember, @Param("setSort") Integer setSort);
/**
* 通过专区id删除专区会员
*
* @param zoneId
* @return
*/
int deleteZoneMemberByZoneId(Long zoneId);
}

View File

@ -131,4 +131,12 @@ public interface ZoneMemberTypeMapper {
* @return
*/
Integer batchUpdateSortIncreased(@Param("zoneId") Long zoneId, @Param("setSort") Integer setSort);
/**
* 根据专区Id删除会员类别
*
* @param zoneId
* @return
*/
int deleteZoneMemberTypeByZoneId(Long zoneId);
}

View File

@ -650,6 +650,7 @@ public class ZoneMemberServiceImpl implements IZoneMemberService {
String imageUrl = EscapeUtil.removeExtraSlashOfUrl(String.format("%s/%s", gitLinkUrl, imagePath));
zoneMember.setImageUrl(imageUrl);
zoneMember.setIsAudit(ZoneConstants.MEMBER_AUDIT_PASS);
createMemberUserIdentify(zoneDetail, sysUser);
zoneMember.setUserId(sysUser.getUserId());
zoneMember.setDeptId(zoneDetail.getDeptId());
zoneMember.setCreateTime(DateUtils.getNowDate());

View File

@ -147,4 +147,12 @@ public interface ZoneProjectMapper {
* @return
*/
Integer selectHomepageCount(Long zoneId);
/**
* 根据专区id删除专区项目
*
* @param zoneId
* @return
*/
int deleteZoneProjectByZoneId(Long zoneId);
}

View File

@ -135,4 +135,12 @@ public interface ZoneProjectTypeMapper {
* @return
*/
Integer batchUpdateSortIncreased(@Param("zoneId") Long zoneId, @Param("setSort") Integer setSort);
/**
* 根据专区Id删除项目类型
*
* @param zoneId
* @return
*/
int deleteZoneProjectTypeByZoneId(Long zoneId);
}

View File

@ -70,4 +70,12 @@ public interface ZoneResourceDomainMapper {
* @return
*/
ZoneResourceDomain selectZoneResourceDomainByNameAndZoneId(@Param("name") String name, @Param("zoneId") Long zoneId);
/**
* 根据专区Id删除资源领域
*
* @param zoneId
* @return
*/
int deleteZoneResourceDomainByZoneId(Long zoneId);
}

View File

@ -86,4 +86,12 @@ public interface ZoneResourceTypeMapper {
* @return
*/
List<ZoneResourceType> selectContainFileZoneResourceTypeList(ZoneResourceType zoneResourceType);
/**
* 根据专区Id删除资源类型
*
* @param zoneId
* @return
*/
int deleteZoneResourceTypeByZoneId(Long zoneId);
}

View File

@ -38,7 +38,7 @@
<result property="template" column="template"/>
<result property="helperShow" column="helper_show"/>
<result property="helperTitle" column="helper_title"/>
<result property="docNeedAudit" column=" doc_need_audit"/>
<result property="docNeedAudit" column="doc_need_audit"/>
<result property="resourceNeedAudit" column="resource_need_audit"/>
</resultMap>
@ -150,6 +150,10 @@
<include refid="selectZoneDetailVo"/>
where `key` = #{key}
</select>
<select id="selectZoneDetailByName" resultMap="ZoneDetailResult">
<include refid="selectZoneDetailVo"/>
where `name` = #{name}
</select>
<insert id="insertZoneDetail" parameterType="ZoneDetail" useGeneratedKeys="true" keyProperty="id">
insert into zone_detail
@ -185,7 +189,7 @@
<if test="template != null">template,</if>
<if test="helperTitle != null">helper_title,</if>
<if test="helperShow != null">helper_show,</if>
<if test="docNeedAudit != null"> doc_need_audit,</if>
<if test="docNeedAudit != null">doc_need_audit,</if>
<if test="resourceNeedAudit != null">resource_need_audit,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
@ -260,7 +264,7 @@
<if test="template != null">template = #{template},</if>
<if test="helperShow != null">helper_show = #{helperShow},</if>
<if test="helperTitle != null">helper_title = #{helperTitle},</if>
<if test="docNeedAudit != null"> doc_need_audit = #{docNeedAudit},</if>
<if test="docNeedAudit != null">doc_need_audit = #{docNeedAudit},</if>
<if test="resourceNeedAudit != null">resource_need_audit = #{resourceNeedAudit},</if>
</trim>
where id = #{id}

View File

@ -169,4 +169,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneMemberLevelByZoneId">
delete
from zone_member_level
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -341,4 +341,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneMemberByZoneId">
delete
from zone_member
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -169,4 +169,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneMemberTypeByZoneId">
delete
from zone_member_type
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -251,4 +251,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneProjectByZoneId">
delete
from zone_project
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -177,4 +177,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneProjectTypeByZoneId">
delete
from zone_project_type
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -122,4 +122,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneResourceDomainByZoneId">
delete
from zone_resource_domain
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -153,4 +153,9 @@
#{id}
</foreach>
</delete>
<delete id="deleteZoneResourceTypeByZoneId">
delete
from zone_resource_type
where zone_id = #{zoneId}
</delete>
</mapper>

View File

@ -0,0 +1,56 @@
-- 对没有资源领域的专区初始化数据
INSERT INTO `zone_resource_domain` (`name`, `sort`, `dept_id`, `del_flag`, `create_by`, `create_time`, `update_by`,
`update_time`, `zone_id`)
SELECT '资源领域一',
1,
dept_id,
'0',
'admin',
NOW(),
NULL,
NULL,
id
from zone_detail
where id not in (select zone_id from zone_resource_domain where name not in ('资源领域二', '资源领域三', '资源领域四'));
INSERT INTO `zone_resource_domain` (`name`, `sort`, `dept_id`, `del_flag`, `create_by`, `create_time`, `update_by`,
`update_time`, `zone_id`)
SELECT '资源领域二',
2,
dept_id,
'0',
'admin',
NOW(),
NULL,
NULL,
id
from zone_detail
where id not in (select zone_id from zone_resource_domain where name not in ('资源领域一', '资源领域三', '资源领域四'));
INSERT INTO `zone_resource_domain` (`name`, `sort`, `dept_id`, `del_flag`, `create_by`, `create_time`, `update_by`,
`update_time`, `zone_id`)
SELECT '资源领域三',
3,
dept_id,
'0',
'admin',
NOW(),
NULL,
NULL,
id
from zone_detail
where id not in (select zone_id from zone_resource_domain where name not in ('资源领域一', '资源领域二', '资源领域四'));
INSERT INTO `zone_resource_domain` (`name`, `sort`, `dept_id`, `del_flag`, `create_by`, `create_time`, `update_by`,
`update_time`, `zone_id`)
SELECT '资源领域四',
4,
dept_id,
'0',
'admin',
NOW(),
NULL,
NULL,
id
from zone_detail
where id not in (select zone_id from zone_resource_domain where name not in ('资源领域一', '资源领域二', '资源领域三'));