From 2b71869efe32d2b8f0bc9351bec4d0b0ed8efcf0 Mon Sep 17 00:00:00 2001
From: luoyb <412940104@qq.com>
Date: 星期三, 17 二月 2021 07:04:59 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Position.java | 80 +++++++++++
febs-server/febs-server-system/src/main/resources/mapper/PositionMapper.xml | 5
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/mapper/PositionMapper.java | 42 ++++++
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IPositionService.java | 70 ++++++++++
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/PositionController.java | 100 ++++++++++++++
febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/PositionServiceImpl.java | 105 +++++++++++++++
6 files changed, 402 insertions(+), 0 deletions(-)
diff --git a/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Position.java b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Position.java
new file mode 100644
index 0000000..f436bf6
--- /dev/null
+++ b/febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Position.java
@@ -0,0 +1,80 @@
+package cc.mrbird.febs.common.core.entity.system;
+
+import java.io.Serializable;
+import java.util.Date;
+import cc.mrbird.febs.common.core.annotation.FieldInfo;
+import cc.mrbird.febs.common.core.utils.DateDeSerializer;
+import cc.mrbird.febs.common.core.utils.DateSerializer;
+import cc.mrbird.febs.common.core.utils.DateTimeDeserializer;
+import cc.mrbird.febs.common.core.utils.DateTimeSerializer;
+import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import lombok.Data;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.baomidou.mybatisplus.annotation.TableName;
+import com.baomidou.mybatisplus.annotation.Version;
+import org.springframework.format.annotation.DateTimeFormat;
+
+/**
+*
+* name:Position
+* package:cc.mrbird.febs.server.system.controller
+* description:岗位信息数据表映射实体
+*
+* @author Alan
+* @date 2021-02-16 11:52:53
+* @since JDK1.8
+*/
+@Data
+@TableName("t_position")
+public class Position implements Serializable{
+
+ @FieldInfo(name = "positionId",type = "bigint",explain = "岗位Id")
+ @TableId(value = "positionId")
+ private Long positionId=0L;
+
+ @FieldInfo(name = "positionName",type = "varchar",explain = "岗位名称")
+ @TableField("positionName")
+ private String positionName="";
+
+ @FieldInfo(name = "positionCode",type = "varchar",explain = "岗位编码")
+ @TableField("positionCode")
+ private String positionCode="";
+
+ @FieldInfo(name = "customerId",type = "bigint",explain = "租户Id")
+ @TableField("customerId")
+ private Long customerId=0L;
+
+ @FieldInfo(name = "createTime",type = "datetime",explain = "记录创建时间")
+ @TableField("createTime")
+ @JsonSerialize(using = DateTimeSerializer.class)
+ @JsonDeserialize(using = DateTimeDeserializer.class)
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date createTime;
+
+ @FieldInfo(name = "creator",type = "varchar",explain = "记录创建人")
+ @TableField("creator")
+ private String creator="";
+
+ @FieldInfo(name = "modifyTime",type = "datetime",explain = "记录最后更新时间")
+ @TableField("modifyTime")
+ @JsonSerialize(using = DateTimeSerializer.class)
+ @JsonDeserialize(using = DateTimeDeserializer.class)
+ @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
+ private Date modifyTime;
+
+ @FieldInfo(name = "modifier",type = "varchar",explain = "记录最后更新人")
+ @TableField("modifier")
+ private String modifier="";
+
+ @FieldInfo(name = "delFlag",type = "bit",explain = "记录删除标志。0-未删除 1-已删除,默认0")
+ @TableField("delFlag")
+ private Integer delFlag=0;
+
+ @FieldInfo(name = "version",type = "int",explain = "记录版本号,用来进行乐观锁控制")
+ @TableField("version")
+ @Version
+ private Integer version=0;
+
+}
\ No newline at end of file
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/PositionController.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/PositionController.java
new file mode 100644
index 0000000..e28112e
--- /dev/null
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/PositionController.java
@@ -0,0 +1,100 @@
+package cc.mrbird.febs.server.system.controller;
+
+import cc.mrbird.febs.common.core.entity.FebsResponse;
+import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.entity.system.Position;
+import cc.mrbird.febs.common.core.exception.FebsException;
+import cc.mrbird.febs.common.core.utils.FebsUtil;
+import cc.mrbird.febs.server.system.service.IPositionService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import lombok.RequiredArgsConstructor;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.validation.annotation.Validated;
+import org.springframework.web.bind.annotation.*;
+
+import javax.validation.Valid;
+import java.util.Map;
+
+/**
+*
+* name:Position
+* package:cc.mrbird.febs.server.system.controller
+* description:岗位信息控制器
+*
+* @author Alan
+* @date 2021-02-16 11:52:53
+* @since JDK1.8
+*/
+@Api(tags = "岗位信息管理接口")
+@Slf4j
+@Validated
+@RestController
+@RequestMapping("position")
+@RequiredArgsConstructor
+public class PositionController {
+
+private final IPositionService positionService;
+
+@ApiOperation(value = "岗位信息翻页列表")
+@GetMapping
+@PreAuthorize("hasAuthority('position:list')")
+public FebsResponse getAllPositions(QueryRequest request,Position position) {
+ Map
+ <String, Object> dataTable = FebsUtil.getDataTable(this.positionService.findPositions(request, position));
+ return new FebsResponse().data(dataTable);
+}
+
+
+@ApiOperation(value = "岗位信息增加")
+@PostMapping
+@PreAuthorize("hasAuthority('position:add')")
+public void addPosition(@Valid Position position) throws FebsException {
+try {
+this.positionService.createPosition(position);
+} catch (Exception e) {
+String message = "新增岗位信息失败";
+log.error(message, e);
+throw new FebsException(message);
+}
+}
+
+@ApiOperation(value = "岗位信息物理删除")
+@DeleteMapping
+
+public void deletePosition(Position position) throws FebsException {
+try {
+this.positionService.deletePosition(position);
+} catch (Exception e) {
+String message = "删除岗位信息失败";
+log.error(message, e);
+throw new FebsException(message);
+}
+}
+
+@ApiOperation(value = "岗位信息逻辑删除")
+@DeleteMapping("{ids}")
+
+public void logicDeletePosition(@PathVariable("ids") String ids) throws FebsException {
+try {
+this.positionService.logicDelPosition(ids);
+} catch (Exception e) {
+String message = "逻辑删除岗位信息失败";
+log.error(message, e);
+throw new FebsException(message);
+}
+}
+
+@ApiOperation(value = "岗位信息修改")
+@PutMapping
+public void updatePosition(Position position) throws FebsException {
+try {
+this.positionService.updatePosition(position);
+} catch (Exception e) {
+String message = "修改岗位信息失败";
+log.error(message, e);
+throw new FebsException(message);
+}
+}
+}
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/mapper/PositionMapper.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/mapper/PositionMapper.java
new file mode 100644
index 0000000..d43fad5
--- /dev/null
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/mapper/PositionMapper.java
@@ -0,0 +1,42 @@
+package cc.mrbird.febs.server.system.mapper;
+
+import cc.mrbird.febs.common.core.entity.system.Position;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Update;
+
+import java.util.List;
+
+/**
+*
+* name:Position
+* package:cc.mrbird.febs.server.system.controller
+* description:岗位信息实体Mapper
+*
+* @author Alan
+* @date 2021-02-16 11:52:53
+* @since JDK1.8
+*/
+public interface PositionMapper extends BaseMapper<Position> {
+/**
+*
+* 根据Id批量逻辑删除记录
+*
+* date Alan
+* @author: 2021-02-16 11:52:53
+* @param list 待删除Id
+* @param operatorId 操作员Id
+* @return void
+*/
+@Update("<script> " +
+ " UPDATE t_position SET delFlag = 1,\n" +
+ " modifyTime = NOW(),\n" +
+ " modifier = , \n" +
+ " version = version+1 \n" +
+ " WHERE badId IN \n" +
+ " <foreach item=\"delId\" collection=\"list\" open=\"(\" close=\")\" separator=\",\">\n" +
+ " \n" +
+ " </foreach>\n" +
+ "</script>")
+void logicDeleteByIds(@Param("list") List<String> list, @Param("operatorId") String operatorId);
+}
\ No newline at end of file
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IPositionService.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IPositionService.java
new file mode 100644
index 0000000..0e812c2
--- /dev/null
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IPositionService.java
@@ -0,0 +1,70 @@
+package cc.mrbird.febs.server.system.service;
+
+
+import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.entity.system.Position;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.service.IService;
+
+import java.util.List;
+
+/**
+*
+* name:Position
+* package:cc.mrbird.febs.server.system.controller
+* description:岗位信息服务接口
+*
+* @author Alan
+* @date 2021-02-16 11:52:53
+* @since JDK1.8
+*/
+public interface IPositionService extends IService<Position> {
+/**
+* 查询(分页)
+*
+* @param request QueryRequest
+* @param position position
+* @return IPage<Position>
+*/
+IPage<Position> findPositions(QueryRequest request, Position position);
+
+/**
+* 查询(所有)
+*
+* @param position position
+* @return List<Position>
+*/
+List<Position> findPositions(Position position);
+
+/**
+* 新增
+*
+* @param position position
+*/
+void createPosition(Position position);
+
+/**
+* 修改
+*
+* @param position position
+*/
+void updatePosition(Position position);
+
+/**
+* 删除
+*
+* @param position position
+*/
+void deletePosition(Position position);
+
+/**
+*
+* 根据Id批量逻辑删除记录
+*
+* date 2021-01-28 10:48
+* @author: luoyibo
+* @param ids 待删除Id
+* @return void
+*/
+void logicDelPosition(String ids);
+}
diff --git a/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/PositionServiceImpl.java b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/PositionServiceImpl.java
new file mode 100644
index 0000000..82d6716
--- /dev/null
+++ b/febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/PositionServiceImpl.java
@@ -0,0 +1,105 @@
+package cc.mrbird.febs.server.system.service.impl;
+
+
+import cc.mrbird.febs.common.core.constant.ModuleCode;
+import cc.mrbird.febs.common.core.entity.system.Position;
+import cc.mrbird.febs.server.system.mapper.PositionMapper;
+import cc.mrbird.febs.server.system.service.IPositionService;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+import org.springframework.transaction.annotation.Propagation;
+import lombok.RequiredArgsConstructor;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import cc.mrbird.febs.common.core.entity.QueryRequest;
+import cc.mrbird.febs.common.core.utils.FebsUtil;
+import cc.mrbird.febs.common.core.utils.SequenceUtil;
+
+import java.util.*;
+
+/**
+*
+* name:Position
+* package:cc.mrbird.febs.server.system.controller
+* description:岗位信息服务接口实现
+*
+* @author Alan
+* @date 2021-02-16 11:52:53
+* @since JDK1.8
+*/
+@Service
+@RequiredArgsConstructor
+@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
+class PositionServiceImpl extends ServiceImpl<PositionMapper, Position> implements IPositionService {
+
+private final PositionMapper positionMapper;
+private final String operatorId = Optional.ofNullable(FebsUtil.getCurrentUser())
+.map(u -> u.getUserId().toString())
+.orElse("1");
+@Override
+public IPage<Position> findPositions(QueryRequest request, Position position) {
+LambdaQueryWrapper<Position> queryWrapper = new LambdaQueryWrapper<>();
+queryWrapper.eq(Position::getDelFlag, 0);
+if(StringUtils.isNotBlank(position.getPositionName())){
+ queryWrapper.like(Position::getPositionName, position.getPositionName());
+}
+ queryWrapper.orderByDesc(Boolean.parseBoolean("createTime"));
+Page<Position> page = new Page<>(request.getPageNum(), request.getPageSize());
+return this.page(page, queryWrapper);
+}
+
+@Override
+public List<Position> findPositions(Position position) {
+LambdaQueryWrapper<Position> queryWrapper = new LambdaQueryWrapper<>();
+queryWrapper.eq(Position::getDelFlag, 0);
+return this.baseMapper.selectList(queryWrapper);
+}
+
+@Override
+@Transactional(rollbackFor = Exception.class)
+public void createPosition(Position position) {
+position.setCreator(operatorId);
+position.setModifier(operatorId);
+this.save(position);
+}
+
+@Override
+@Transactional(rollbackFor = Exception.class)
+public void updatePosition(Position position) {
+Position dbData = this.getById(position.getPositionId());
+position.setCreateTime(dbData.getCreateTime());
+position.setCreator(dbData.getCreator());
+position.setDelFlag(dbData.getDelFlag());
+position.setModifyTime(new Date());
+position.setModifier(operatorId);
+this.saveOrUpdate(position);
+}
+
+@Override
+@Transactional(rollbackFor = Exception.class)
+public void deletePosition(Position position) {
+LambdaQueryWrapper<Position> wrapper = new LambdaQueryWrapper<>();
+ wrapper.eq(Position::getPositionId, position.getPositionId());
+// TODO 设置删除条件
+this.remove(wrapper);
+}
+/**
+*
+* 根据Id批量逻辑删除记录
+*
+* date 2021-01-28 10:48
+* @author: luoyibo
+* @param ids 待删除Id
+* @return void
+*/
+@Override
+@Transactional(rollbackFor = Exception.class)
+public void logicDelPosition(String ids) {
+ String[] str = ids.split(",");
+ List<String> list = new ArrayList<>(Arrays.asList(str));
+ positionMapper.logicDeleteByIds(list, operatorId);
+ }
+}
\ No newline at end of file
diff --git a/febs-server/febs-server-system/src/main/resources/mapper/PositionMapper.xml b/febs-server/febs-server-system/src/main/resources/mapper/PositionMapper.xml
new file mode 100644
index 0000000..391f97a
--- /dev/null
+++ b/febs-server/febs-server-system/src/main/resources/mapper/PositionMapper.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="cc.mrbird.febs.server.system.mapper.PositionMapper">
+
+</mapper>
--
Gitblit v1.8.0