mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-11-06 18:53:45 +08:00
v1.0.1
This commit is contained in:
6
.gitignore
vendored
Normal file
6
.gitignore
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
|
||||
*.iml
|
||||
|
||||
**/target/
|
||||
|
||||
**/node_modules/
|
||||
34
front/src/components/smart-admin-ad/ad.vue
Normal file
34
front/src/components/smart-admin-ad/ad.vue
Normal file
@@ -0,0 +1,34 @@
|
||||
<template>
|
||||
<div style="text-align:center">
|
||||
<img src="http://smartadmin.1024lab.net/image/smart-admin-log-400@400.png"/>
|
||||
<p style="text-align:left;font-size:16px;margin-top:-40px">
|
||||
|
||||
SmartAdmin由河南·洛阳 <a href="https://www.1024lab.net/" target="_blank">1024创新实验室</a>团队研发的一套互联网企业级的通用型中后台解决方案!使用SpringBoot和Vue,前后端分离。
|
||||
</p>
|
||||
<br/>
|
||||
<p style="text-align:left;font-size:16px">
|
||||
<font color="#DC143C"><strong>我们开源一套漂亮的代码和一套整洁的代码规范</strong></font>,让大家在这浮躁的代码世界里感受到一股把代码写好的清流!同时又让开发者节省大量的时间,减少加班,快乐工作,热爱生活。
|
||||
</p>
|
||||
<br/>
|
||||
<p style="text-align:left;font-size:16px">
|
||||
<font color="#DC143C"><strong>你的star 是我们最强的动力,感谢支持 => </strong></font>
|
||||
<a target="_blank" href="https://github.com/1024-lab/smart-admin">
|
||||
<img style="width: 82px;height: 20px;margin-right: 10px" alt="" src="https://img.shields.io/github/stars/1024-lab/smart-admin.svg?logo=github&style=social">
|
||||
</a>
|
||||
</p>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script>
|
||||
export default {
|
||||
name: 'Ad',
|
||||
props: {
|
||||
},
|
||||
computed: {
|
||||
},
|
||||
mounted () {
|
||||
},
|
||||
methods: {
|
||||
}
|
||||
};
|
||||
</script>
|
||||
2
front/src/components/smart-admin-ad/index.js
Normal file
2
front/src/components/smart-admin-ad/index.js
Normal file
@@ -0,0 +1,2 @@
|
||||
import Ad from './ad.vue';
|
||||
export default Ad;
|
||||
@@ -48,6 +48,13 @@
|
||||
</HomeCard>
|
||||
</i-col>
|
||||
</Row>
|
||||
|
||||
|
||||
<Modal
|
||||
v-model="adModal" width="800">
|
||||
<Ad/>
|
||||
</Modal>
|
||||
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@@ -62,6 +69,7 @@ import ChartBar from './components/chart-bar';
|
||||
import HomeCircle from './components/home-circle';
|
||||
import HomeProgress from './components/home-progress';
|
||||
import ChartFunnel from './components/chart-funnel';
|
||||
import Ad from '@/components/smart-admin-ad';
|
||||
|
||||
export default {
|
||||
name: 'Home',
|
||||
@@ -75,11 +83,13 @@ export default {
|
||||
HomeCircle,
|
||||
ChartGauge,
|
||||
ChartBar,
|
||||
HomeProgress
|
||||
HomeProgress,
|
||||
Ad
|
||||
},
|
||||
props: {},
|
||||
data() {
|
||||
return {
|
||||
adModal:true,
|
||||
infoCardData: [
|
||||
{
|
||||
title: '新增用户',
|
||||
|
||||
@@ -84,6 +84,10 @@ export default {
|
||||
title: '操作系统',
|
||||
key: 'remoteOs'
|
||||
},
|
||||
{
|
||||
title: 'Ip',
|
||||
key: 'remoteIp'
|
||||
},
|
||||
{
|
||||
title: '用户端口',
|
||||
key: 'remotePort'
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.gangquan360.smartadmin.module.codegenerator.domain;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
/**
|
||||
* [ ]
|
||||
@@ -15,6 +17,8 @@ import lombok.Data;
|
||||
*/
|
||||
@Data
|
||||
@Builder
|
||||
@NoArgsConstructor
|
||||
@AllArgsConstructor
|
||||
public class ColumnVO {
|
||||
|
||||
private String columnName;
|
||||
|
||||
@@ -14,6 +14,7 @@ import com.gangquan360.smartadmin.module.employee.domain.dto.*;
|
||||
import com.gangquan360.smartadmin.module.employee.domain.entity.EmployeeEntity;
|
||||
import com.gangquan360.smartadmin.module.employee.domain.vo.EmployeeVO;
|
||||
import com.gangquan360.smartadmin.module.login.domain.RequestTokenBO;
|
||||
import com.gangquan360.smartadmin.module.position.PositionDao;
|
||||
import com.gangquan360.smartadmin.module.position.PositionService;
|
||||
import com.gangquan360.smartadmin.module.position.domain.dto.PositionRelationAddDTO;
|
||||
import com.gangquan360.smartadmin.module.position.domain.dto.PositionRelationResultDTO;
|
||||
@@ -26,12 +27,15 @@ import com.gangquan360.smartadmin.util.SmartPaginationUtil;
|
||||
import com.gangquan360.smartadmin.util.SmartVerificationUtil;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.apache.commons.collections.CollectionUtils;
|
||||
import org.apache.commons.collections.map.HashedMap;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.concurrent.ConcurrentHashMap;
|
||||
import java.util.regex.Pattern;
|
||||
import java.util.stream.Collectors;
|
||||
@@ -59,6 +63,9 @@ public class EmployeeService {
|
||||
@Autowired
|
||||
private PositionService positionService;
|
||||
|
||||
@Autowired
|
||||
private PositionDao positionDao;
|
||||
|
||||
@Autowired
|
||||
private PrivilegeEmployeeService privilegeEmployeeService;
|
||||
|
||||
@@ -90,15 +97,32 @@ public class EmployeeService {
|
||||
public ResponseDTO<PageResultDTO<EmployeeVO>> selectEmployeeList(EmployeeQueryDTO queryDTO) {
|
||||
Page pageParam = SmartPaginationUtil.convert2PageQueryInfo(queryDTO);
|
||||
queryDTO.setIsDelete(JudgeEnum.NO.getValue());
|
||||
List<EmployeeDTO> empList = employeeDao.selectEmployeeList(pageParam, queryDTO);
|
||||
empList.stream().forEach(e -> {
|
||||
List<PositionRelationResultDTO> positionRelationList = positionService.queryPositionByEmployeeId(e.getId());
|
||||
if (CollectionUtils.isNotEmpty(positionRelationList)) {
|
||||
e.setPositionRelationList(positionRelationList);
|
||||
e.setPositionName(positionRelationList.stream().map(PositionRelationResultDTO::getPositionName).collect(Collectors.joining(",")));
|
||||
List<EmployeeDTO> employeeList = employeeDao.selectEmployeeList(pageParam, queryDTO);
|
||||
List<Long> employeeIdList = employeeList.stream().map(EmployeeDTO::getId).collect(Collectors.toList());
|
||||
|
||||
if (CollectionUtils.isNotEmpty(employeeIdList)) {
|
||||
List<PositionRelationResultDTO> positionRelationResultDTOList = positionDao.selectEmployeesRelation(employeeIdList);
|
||||
Map<Long, List<PositionRelationResultDTO>> employeePositionMap = new HashedMap();
|
||||
|
||||
for (PositionRelationResultDTO positionRelationResultDTO : positionRelationResultDTOList) {
|
||||
List<PositionRelationResultDTO> relationResultDTOList = employeePositionMap.get(positionRelationResultDTO.getEmployeeId());
|
||||
//匹配对应的岗位
|
||||
if (relationResultDTOList == null) {
|
||||
relationResultDTOList = new ArrayList<>();
|
||||
employeePositionMap.put(positionRelationResultDTO.getEmployeeId(), relationResultDTOList);
|
||||
}
|
||||
relationResultDTOList.add(positionRelationResultDTO);
|
||||
}
|
||||
});
|
||||
return ResponseDTO.succData(SmartPaginationUtil.convert2PageInfoDTO(pageParam, empList, EmployeeVO.class));
|
||||
|
||||
for (EmployeeDTO employeeDTO : employeeList) {
|
||||
List<PositionRelationResultDTO> relationResultDTOList = employeePositionMap.get(employeeDTO.getId());
|
||||
if(relationResultDTOList != null){
|
||||
employeeDTO.setPositionRelationList(relationResultDTOList);
|
||||
employeeDTO.setPositionName(relationResultDTOList.stream().map(PositionRelationResultDTO::getPositionName).collect(Collectors.joining(",")));
|
||||
}
|
||||
}
|
||||
}
|
||||
return ResponseDTO.succData(SmartPaginationUtil.convert2PageInfoDTO(pageParam, employeeList, EmployeeVO.class));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -37,6 +37,13 @@ public interface PositionDao extends BaseMapper<PositionEntity> {
|
||||
*/
|
||||
List<PositionRelationResultDTO> selectRelation(PositionRelationQueryDTO positionRelationQueryDTO);
|
||||
|
||||
/**
|
||||
* 批量查询员工岗位信息
|
||||
* @param employeeIdList
|
||||
* @return
|
||||
*/
|
||||
List<PositionRelationResultDTO> selectEmployeesRelation(@Param("employeeIdList") List<Long> employeeIdList);
|
||||
|
||||
/**
|
||||
* 批量添加岗位 人员 关联关系
|
||||
*
|
||||
|
||||
@@ -21,12 +21,12 @@ spring.jackson.serialization.write-dates-as-timestamps=false
|
||||
spring.servlet.multipart.max-file-size=30MB
|
||||
spring.servlet.multipart.max-request-size=30MB
|
||||
file-upload-service.path=/home/upload/
|
||||
file-upload-service.geturl=http://172.16.0.145/smartAdmin/file/
|
||||
file-upload-service.geturl=http://127.0.0.1/smartAdmin/file/
|
||||
|
||||
######################### database #########################
|
||||
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/smart-admin-dev?autoReconnect=true&useServerPreparedStmts=false&rewriteBatchedStatements=true&characterEncoding=UTF-8&useSSL=false&allowMultiQueries=true&serverTimezone=UTC
|
||||
spring.datasource.username=erp
|
||||
spring.datasource.password=listen1015
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=Root.123
|
||||
spring.datasource.initial-size=2
|
||||
spring.datasource.min-idle=1
|
||||
spring.datasource.max-active=10
|
||||
@@ -36,17 +36,17 @@ spring.datasource.min-evictable-edle-time-millis=300000
|
||||
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
|
||||
spring.datasource.filters=stat
|
||||
spring.datasource.druid.username=druid
|
||||
spring.datasource.druid.password=Gq123456
|
||||
spring.datasource.druid.password=123456
|
||||
spring.datasource.druid.login.enabled=false
|
||||
|
||||
######################### redis #######################################
|
||||
spring.redis.database=13
|
||||
spring.redis.host=172.16.0.145
|
||||
spring.redis.database=0
|
||||
spring.redis.host=127.0.0.1
|
||||
spring.redis.jedis.pool.max-active=100
|
||||
spring.redis.jedis.pool.min-idle=5
|
||||
spring.redis.jedis.pool.max-idle=10
|
||||
spring.redis.jedis.pool.max-wait=30000ms
|
||||
spring.redis.port=50000
|
||||
spring.redis.port=6379
|
||||
spring.redis.timeout=10000ms
|
||||
spring.redis.password=
|
||||
|
||||
|
||||
@@ -44,6 +44,24 @@
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<select id="selectEmployeesRelation" resultType="com.gangquan360.smartadmin.module.position.domain.dto.PositionRelationResultDTO">
|
||||
SELECT
|
||||
job.position_name,
|
||||
rel.position_id,
|
||||
rel.employee_id,
|
||||
rel.update_time,
|
||||
rel.create_time
|
||||
FROM
|
||||
t_position_relation rel
|
||||
LEFT JOIN t_position job ON rel.position_id = job.id
|
||||
<where>
|
||||
rel.employee_id IN
|
||||
<foreach collection="employeeIdList" item="item" separator="," open="(" close=")">
|
||||
#{item}
|
||||
</foreach>
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<insert id="insertBatchRelation">
|
||||
INSERT INTO t_position_relation (position_id,employee_id) VALUES
|
||||
<foreach collection="batchDTO.positionIdList" item="item" separator=",">
|
||||
|
||||
@@ -1,10 +1,16 @@
|
||||
package com.gangquan360.smartadmin.module.codegenerator;
|
||||
|
||||
import com.gangquan360.smartadmin.BaseTest;
|
||||
import com.gangquan360.smartadmin.module.codegenerator.constant.SqlOperateTypeEnum;
|
||||
import com.gangquan360.smartadmin.module.codegenerator.domain.CodeGeneratorDTO;
|
||||
import com.gangquan360.smartadmin.module.codegenerator.domain.CodeGeneratorQueryColumnDTO;
|
||||
import com.gangquan360.smartadmin.module.codegenerator.service.CodeGeneratorService;
|
||||
import com.google.common.collect.Lists;
|
||||
import org.junit.Test;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* IdGeneratorService Tester.
|
||||
*
|
||||
@@ -18,22 +24,22 @@ public class CodeGeneratorServiceTest extends BaseTest {
|
||||
|
||||
@Test
|
||||
public void testGenerate() throws Exception {
|
||||
// CodeGeneratorQueryColumnDTO createTimeBetween = CodeGeneratorQueryColumnDTO.builder()
|
||||
// .columnName("create_time")
|
||||
// .sqlOperate(SqlOperateTypeEnum.TIME_BETWEEN).build();
|
||||
// CodeGeneratorQueryColumnDTO like = CodeGeneratorQueryColumnDTO.builder()
|
||||
// .columnName("title")
|
||||
// .sqlOperate(SqlOperateTypeEnum.LIKE).build();
|
||||
//
|
||||
// List<CodeGeneratorQueryColumnDTO> queryColumnList = Lists.newArrayList(createTimeBetween,like);
|
||||
// CodeGeneratorDTO codeGenerator = CodeGeneratorDTO.builder()
|
||||
// .author("yandanyang")
|
||||
// .company("钢圈")
|
||||
// .tableName("t_notice")
|
||||
// .tablePrefix("t_")
|
||||
// .basePackage("com.gangquan360.smartadmin")
|
||||
// .queryColumnList(queryColumnList).build();
|
||||
// codeGeneratorService.codeGenerator(codeGenerator);
|
||||
CodeGeneratorQueryColumnDTO createTimeBetween = CodeGeneratorQueryColumnDTO.builder()
|
||||
.columnName("create_time")
|
||||
.sqlOperate(SqlOperateTypeEnum.TIME_BETWEEN).build();
|
||||
CodeGeneratorQueryColumnDTO like = CodeGeneratorQueryColumnDTO.builder()
|
||||
.columnName("title")
|
||||
.sqlOperate(SqlOperateTypeEnum.LIKE).build();
|
||||
|
||||
List<CodeGeneratorQueryColumnDTO> queryColumnList = Lists.newArrayList(createTimeBetween,like);
|
||||
CodeGeneratorDTO codeGenerator = CodeGeneratorDTO.builder()
|
||||
.author("yandanyang")
|
||||
.company("钢圈")
|
||||
.tableName("t_notice")
|
||||
.tablePrefix("t_")
|
||||
.basePackage("com.gangquan360.smartadmin")
|
||||
.queryColumnList(queryColumnList).build();
|
||||
codeGeneratorService.codeGenerator(codeGenerator);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user