| febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Position.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/PositionController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/mapper/PositionMapper.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IPositionService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/PositionServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| febs-server/febs-server-system/src/main/resources/mapper/PositionMapper.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
febs-common/febs-common-core/src/main/java/cc/mrbird/febs/common/core/entity/system/Position.java
New file @@ -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; } febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/controller/PositionController.java
New file @@ -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); } } } febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/mapper/PositionMapper.java
New file @@ -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); } febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/IPositionService.java
New file @@ -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); } febs-server/febs-server-system/src/main/java/cc/mrbird/febs/server/system/service/impl/PositionServiceImpl.java
New file @@ -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); } } febs-server/febs-server-system/src/main/resources/mapper/PositionMapper.xml
New file @@ -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>