You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
81 lines
3.0 KiB
81 lines
3.0 KiB
2 years ago
|
/*
|
||
|
* Copyright (C), 2018-2021
|
||
|
* Project: starter
|
||
|
* FileName: DepartmentServiceKit
|
||
|
* Author: Louis
|
||
|
* Date: 2021/5/14 9:38
|
||
|
*/
|
||
|
package com.eco.plugin.xx.jbsync.kit;
|
||
|
|
||
|
import com.fr.decision.authority.AuthorityContext;
|
||
|
import com.fr.decision.authority.base.constant.SoftRoleType;
|
||
|
import com.fr.decision.authority.base.constant.type.operation.ManualOperationType;
|
||
|
import com.fr.decision.authority.data.Post;
|
||
|
import com.fr.decision.record.OperateMessage;
|
||
|
import com.fr.decision.webservice.exception.general.DuplicatedNameException;
|
||
|
import com.fr.decision.webservice.v10.user.DepartmentService;
|
||
|
import com.fr.intelli.record.MetricRegistry;
|
||
|
import com.fr.stable.query.QueryFactory;
|
||
|
import com.fr.stable.query.condition.QueryCondition;
|
||
|
import com.fr.stable.query.restriction.Restriction;
|
||
|
import com.fr.stable.query.restriction.RestrictionFactory;
|
||
|
|
||
|
/**
|
||
|
* <Function Description><br>
|
||
|
* <PostServiceKit>
|
||
|
*
|
||
|
* @author xx
|
||
|
* @since 1.0.0
|
||
|
*/
|
||
|
public class PostServiceKit extends DepartmentService {
|
||
|
public static final String DECISION_DEP_ROOT = "decision-dep-root";
|
||
|
private static volatile PostServiceKit postServiceKit = null;
|
||
|
|
||
|
public PostServiceKit() {
|
||
|
}
|
||
|
|
||
|
public static PostServiceKit getInstance() {
|
||
|
if (postServiceKit == null) {
|
||
|
postServiceKit = new PostServiceKit();
|
||
|
}
|
||
|
return postServiceKit;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 根据id获取职务
|
||
|
* @param id
|
||
|
* @return
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public Post getByid(String id) throws Exception {
|
||
|
return AuthorityContext.getInstance().getPostController().getById(id);
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* 添加部门
|
||
|
* @param postname
|
||
|
* @param postid
|
||
|
* @return
|
||
|
* @throws Exception
|
||
|
*/
|
||
|
public Post addPost(String postname,String postid) throws Exception {
|
||
|
this.checkDuplicatedPost(postname);
|
||
|
Post post = (new Post()).id(postid).name(postname).creationType(ManualOperationType.KEY).lastOperationType(ManualOperationType.KEY).enable(true).description("");
|
||
|
AuthorityContext.getInstance().getPostController().add(post);
|
||
|
this.deleteSoftData(post.getName());
|
||
|
MetricRegistry.getMetric().submit(OperateMessage.build("Dec-Module-User_Manager", "Dec-Dec-Post",postname, "Dec-Log_Add"));
|
||
|
return post;
|
||
|
}
|
||
|
|
||
|
private void checkDuplicatedPost(String postname) throws Exception {
|
||
|
Post post = (Post)AuthorityContext.getInstance().getPostController().findOne(QueryFactory.create().addRestriction(RestrictionFactory.eq("name", postname)));
|
||
|
if (post != null) {
|
||
|
throw new DuplicatedNameException("Duplicated names! ", post.getName());
|
||
|
}
|
||
|
}
|
||
|
|
||
|
private void deleteSoftData(String var1) throws Exception {
|
||
|
QueryCondition var2 = QueryFactory.create().addRestriction(RestrictionFactory.and(new Restriction[]{RestrictionFactory.eq("deletedName", var1), RestrictionFactory.eq("type", SoftRoleType.POST)}));
|
||
|
AuthorityContext.getInstance().getSoftDataController().remove(var2);
|
||
|
}
|
||
|
}
|