3-1 新增部门接口

原创 2018年04月16日 09:02:21

1、创建表单视图对象 param

@Data
public class DeptParam {
	private Integer id;
	
	@NotBlank(message = "部门名称不可以为空")
	@Length(max = 15, min = 2, message = "部门名称长度需要在2-15个字之间")
	private String name;
	
	private Integer parentId;
	
	@NotNull(message = "展示顺序不可以为空")
	private Integer seq;
	
	@Length(max = 150, message = "备注的长度不能超过150个字")
	private String remark;
	
}

2、SysDeptController

@Controller
@RequestMapping("/sys/dept")
@Slf4j
public class SysDeptController {
	@Autowired
	private SysDeptService sysDeptService;
	
	@RequestMapping("/save")
	@ResponseBody
	public JsonData saveDept(DeptParam param) {
		sysDeptService.save(param);
		return JsonData.success();
	}
}

3、SysDeptService

在 SysDept 实体类添加 @Builder 等注解

@Builder
@NoArgsConstructor
@AllArgsConstructor
@ToString
public class SysDept {}
@Service
public class SysDeptService {
	
	@Autowired
	private SysDeptMapper sysDeptMapper;
	
	public void save(@Valid DeptParam param) {
		if(checkExist(param.getParentId(), param.getName(), param.getId())) {
			throw new ParamException("同一层级下存在相同名称的部门");
		}
		SysDept dept = SysDept.builder().name(param.getName())
						.parentId(param.getParentId())
						.seq(param.getSeq())
						.remark(param.getRemark())
						.build();
		dept.setLevel(LevelUtil.calculateLevel(getLevel(param.getParentId()), param.getParentId()));
		dept.setOperator("system");	// TODO
		dept.setOperateId("127.0.0.1"); // TODO
		dept.setOperateTime(new Date());
		sysDeptMapper.insertSelective(dept);
	}
	
	// 检查同一层级下是否存在相同名称的部门
	private boolean checkExist(Integer parentId, String deptName, Integer deptId) {
		// TODO
		return false;
	}
	
	// 获取部门的 Level
	private String getLevel(Integer deptId) {
		SysDept dept = sysDeptMapper.selectByPrimaryKey(deptId);
		if(dept == null) {
			return null;
		}
		return dept.getLevel();
	}
}

计算部门 level 的工具类

public class LevelUtil {
	public final static String SEPARATOR = ".";
	public final static String ROOT = "0";

	// 1  1.1  1.2  2 
	public static String calculateLevel(String parentLevel, int parentId) {
		// pom文件添加依赖 commons-lang3
		if(StringUtils.isBlank(parentLevel)) {
			return ROOT;
		} else {
			return StringUtils.join(parentLevel, SEPARATOR, parentId);
		}
	}
}}

微信企业号开发(四)-管理部门,增删改查

微信企业号开发之部门管理,增删改查
  • u014520797
  • u014520797
  • 2016-02-02 17:47:08
  • 4002

钉钉API接口开发(二) 部门 /department

打通钉钉接口之后,测试获取部门列表等信息. 获取部门列表也没什么区别,唯一的大坑就是,没有部门权限,  很奇怪,全部已经打勾了,但是还是没有权限,最后发现.公司那里也要打勾.点击下拉层的通讯录那里...
  • JxcNet
  • JxcNet
  • 2017-10-18 16:12:00
  • 381

zTree读取公司部门与子部门信息数据加载出问题

本人首次尝试这个插件,可是我去,我前端知识太薄弱了。搞了一天愣是没弄出来,什么415错,400错都有。 415错 function getTree(){ // var id=2; ...
  • zhangludcsdn
  • zhangludcsdn
  • 2017-09-22 16:41:11
  • 172

EXtjs写的部门和员工选择控件!

经过实践验证,这个控件还不是很完善!有bug存在!,虽然bug最后被我修改掉了,但是因为时间太久我记不清是那个版本了!下面网址所发的是一个在用的版本,具体是不是带bug的我忘记了,只能靠大家自己研究一...
  • phker
  • phker
  • 2009-09-01 16:43:00
  • 4164

java实现LDAP 部门和用户的增删改查 实现过程

上个星期,公司给分了个任务,要用java开发LDAP和AD操作工具,我这之前可是听都没听过这个东西,没办法只能求助于万能的百度,看了好多网上相关的博客和心得,编写时也遇见不少问题,因为公司要求实现部门...
  • ljd781311726
  • ljd781311726
  • 2017-08-03 15:26:21
  • 2139

微信企业号开发九:异步任务(全员覆盖成员)

微信异步任务是在批量更新部门或者人员时使用,向微信服务器发送一个CVS的文件,微信服务器会根据CVS文件进行更新,下面是批量更新人员的模板。注意代码中CVS换行使用\n        全员覆盖成员时,...
  • myfmyfmyfmyf
  • myfmyfmyfmyf
  • 2015-12-17 15:34:23
  • 3417

项目-系统接口实现 如何做好接口

1.1     前言 在大型公司的软件实施中,软件接口在实施中占有较大比重。由于大型公司企业信息化程度相对较高,使用的软件系统也较多,当需将多个系统协调配合进行工作时,接口是进行数据沟通、整合信息最...
  • zhao6886
  • zhao6886
  • 2014-04-01 18:12:14
  • 553

企业信息部门的定位是什么

【IT168 编者按】IT部门自诞生以来就被定义为一个辅助性的服务部门,它的主要任务的就是维护公司的IT资产并为公司提供IT运营支撑。可这几年国内企业的IT部门定位在潜移默化的发生着微妙改变,一方面由...
  • happypolo
  • happypolo
  • 2010-07-31 17:08:00
  • 1737

微信新增图文素材接口调用实例

以下基于thinkphp 编写,用的时候可稍微修改即可。流程为,前台表单上传->后台数据判断->上传图片素材[获得图片id]->上传图文素材->返回素材ID 注意,如果提示空数据,注意检查json提...
  • fengyu19880219
  • fengyu19880219
  • 2015-10-29 09:39:10
  • 3221

Codeforces Round #462 (Div. 2)题解ABC

A. A Compatible Pairtime limit per test1 secondmemory limit per test256 megabytesinputstandard input...
  • Momo_98
  • Momo_98
  • 2018-02-18 18:50:56
  • 36
收藏助手
不良信息举报
您举报文章:3-1 新增部门接口
举报原因:
原因补充:

(最多只允许输入30个字)