mirror of
https://gitee.com/lab1024/smart-admin.git
synced 2025-12-27 09:56:02 +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>
|
</HomeCard>
|
||||||
</i-col>
|
</i-col>
|
||||||
</Row>
|
</Row>
|
||||||
|
|
||||||
|
|
||||||
|
<Modal
|
||||||
|
v-model="adModal" width="800">
|
||||||
|
<Ad/>
|
||||||
|
</Modal>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
@@ -62,6 +69,7 @@ import ChartBar from './components/chart-bar';
|
|||||||
import HomeCircle from './components/home-circle';
|
import HomeCircle from './components/home-circle';
|
||||||
import HomeProgress from './components/home-progress';
|
import HomeProgress from './components/home-progress';
|
||||||
import ChartFunnel from './components/chart-funnel';
|
import ChartFunnel from './components/chart-funnel';
|
||||||
|
import Ad from '@/components/smart-admin-ad';
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'Home',
|
name: 'Home',
|
||||||
@@ -75,11 +83,13 @@ export default {
|
|||||||
HomeCircle,
|
HomeCircle,
|
||||||
ChartGauge,
|
ChartGauge,
|
||||||
ChartBar,
|
ChartBar,
|
||||||
HomeProgress
|
HomeProgress,
|
||||||
|
Ad
|
||||||
},
|
},
|
||||||
props: {},
|
props: {},
|
||||||
data() {
|
data() {
|
||||||
return {
|
return {
|
||||||
|
adModal:true,
|
||||||
infoCardData: [
|
infoCardData: [
|
||||||
{
|
{
|
||||||
title: '新增用户',
|
title: '新增用户',
|
||||||
|
|||||||
@@ -84,6 +84,10 @@ export default {
|
|||||||
title: '操作系统',
|
title: '操作系统',
|
||||||
key: 'remoteOs'
|
key: 'remoteOs'
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: 'Ip',
|
||||||
|
key: 'remoteIp'
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: '用户端口',
|
title: '用户端口',
|
||||||
key: 'remotePort'
|
key: 'remotePort'
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package com.gangquan360.smartadmin.module.codegenerator.domain;
|
package com.gangquan360.smartadmin.module.codegenerator.domain;
|
||||||
|
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* [ ]
|
* [ ]
|
||||||
@@ -15,6 +17,8 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@Builder
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
public class ColumnVO {
|
public class ColumnVO {
|
||||||
|
|
||||||
private String columnName;
|
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.entity.EmployeeEntity;
|
||||||
import com.gangquan360.smartadmin.module.employee.domain.vo.EmployeeVO;
|
import com.gangquan360.smartadmin.module.employee.domain.vo.EmployeeVO;
|
||||||
import com.gangquan360.smartadmin.module.login.domain.RequestTokenBO;
|
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.PositionService;
|
||||||
import com.gangquan360.smartadmin.module.position.domain.dto.PositionRelationAddDTO;
|
import com.gangquan360.smartadmin.module.position.domain.dto.PositionRelationAddDTO;
|
||||||
import com.gangquan360.smartadmin.module.position.domain.dto.PositionRelationResultDTO;
|
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.gangquan360.smartadmin.util.SmartVerificationUtil;
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import org.apache.commons.collections.CollectionUtils;
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.collections.map.HashedMap;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
import java.util.concurrent.ConcurrentHashMap;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
@@ -59,6 +63,9 @@ public class EmployeeService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PositionService positionService;
|
private PositionService positionService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PositionDao positionDao;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PrivilegeEmployeeService privilegeEmployeeService;
|
private PrivilegeEmployeeService privilegeEmployeeService;
|
||||||
|
|
||||||
@@ -90,15 +97,32 @@ public class EmployeeService {
|
|||||||
public ResponseDTO<PageResultDTO<EmployeeVO>> selectEmployeeList(EmployeeQueryDTO queryDTO) {
|
public ResponseDTO<PageResultDTO<EmployeeVO>> selectEmployeeList(EmployeeQueryDTO queryDTO) {
|
||||||
Page pageParam = SmartPaginationUtil.convert2PageQueryInfo(queryDTO);
|
Page pageParam = SmartPaginationUtil.convert2PageQueryInfo(queryDTO);
|
||||||
queryDTO.setIsDelete(JudgeEnum.NO.getValue());
|
queryDTO.setIsDelete(JudgeEnum.NO.getValue());
|
||||||
List<EmployeeDTO> empList = employeeDao.selectEmployeeList(pageParam, queryDTO);
|
List<EmployeeDTO> employeeList = employeeDao.selectEmployeeList(pageParam, queryDTO);
|
||||||
empList.stream().forEach(e -> {
|
List<Long> employeeIdList = employeeList.stream().map(EmployeeDTO::getId).collect(Collectors.toList());
|
||||||
List<PositionRelationResultDTO> positionRelationList = positionService.queryPositionByEmployeeId(e.getId());
|
|
||||||
if (CollectionUtils.isNotEmpty(positionRelationList)) {
|
if (CollectionUtils.isNotEmpty(employeeIdList)) {
|
||||||
e.setPositionRelationList(positionRelationList);
|
List<PositionRelationResultDTO> positionRelationResultDTOList = positionDao.selectEmployeesRelation(employeeIdList);
|
||||||
e.setPositionName(positionRelationList.stream().map(PositionRelationResultDTO::getPositionName).collect(Collectors.joining(",")));
|
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);
|
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-file-size=30MB
|
||||||
spring.servlet.multipart.max-request-size=30MB
|
spring.servlet.multipart.max-request-size=30MB
|
||||||
file-upload-service.path=/home/upload/
|
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 #########################
|
######################### 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.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.username=root
|
||||||
spring.datasource.password=listen1015
|
spring.datasource.password=Root.123
|
||||||
spring.datasource.initial-size=2
|
spring.datasource.initial-size=2
|
||||||
spring.datasource.min-idle=1
|
spring.datasource.min-idle=1
|
||||||
spring.datasource.max-active=10
|
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.driver-class-name=com.mysql.jdbc.Driver
|
||||||
spring.datasource.filters=stat
|
spring.datasource.filters=stat
|
||||||
spring.datasource.druid.username=druid
|
spring.datasource.druid.username=druid
|
||||||
spring.datasource.druid.password=Gq123456
|
spring.datasource.druid.password=123456
|
||||||
spring.datasource.druid.login.enabled=false
|
spring.datasource.druid.login.enabled=false
|
||||||
|
|
||||||
######################### redis #######################################
|
######################### redis #######################################
|
||||||
spring.redis.database=13
|
spring.redis.database=0
|
||||||
spring.redis.host=172.16.0.145
|
spring.redis.host=127.0.0.1
|
||||||
spring.redis.jedis.pool.max-active=100
|
spring.redis.jedis.pool.max-active=100
|
||||||
spring.redis.jedis.pool.min-idle=5
|
spring.redis.jedis.pool.min-idle=5
|
||||||
spring.redis.jedis.pool.max-idle=10
|
spring.redis.jedis.pool.max-idle=10
|
||||||
spring.redis.jedis.pool.max-wait=30000ms
|
spring.redis.jedis.pool.max-wait=30000ms
|
||||||
spring.redis.port=50000
|
spring.redis.port=6379
|
||||||
spring.redis.timeout=10000ms
|
spring.redis.timeout=10000ms
|
||||||
spring.redis.password=
|
spring.redis.password=
|
||||||
|
|
||||||
|
|||||||
@@ -44,6 +44,24 @@
|
|||||||
</where>
|
</where>
|
||||||
</select>
|
</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 id="insertBatchRelation">
|
||||||
INSERT INTO t_position_relation (position_id,employee_id) VALUES
|
INSERT INTO t_position_relation (position_id,employee_id) VALUES
|
||||||
<foreach collection="batchDTO.positionIdList" item="item" separator=",">
|
<foreach collection="batchDTO.positionIdList" item="item" separator=",">
|
||||||
|
|||||||
@@ -1,10 +1,16 @@
|
|||||||
package com.gangquan360.smartadmin.module.codegenerator;
|
package com.gangquan360.smartadmin.module.codegenerator;
|
||||||
|
|
||||||
import com.gangquan360.smartadmin.BaseTest;
|
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.gangquan360.smartadmin.module.codegenerator.service.CodeGeneratorService;
|
||||||
|
import com.google.common.collect.Lists;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* IdGeneratorService Tester.
|
* IdGeneratorService Tester.
|
||||||
*
|
*
|
||||||
@@ -18,22 +24,22 @@ public class CodeGeneratorServiceTest extends BaseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGenerate() throws Exception {
|
public void testGenerate() throws Exception {
|
||||||
// CodeGeneratorQueryColumnDTO createTimeBetween = CodeGeneratorQueryColumnDTO.builder()
|
CodeGeneratorQueryColumnDTO createTimeBetween = CodeGeneratorQueryColumnDTO.builder()
|
||||||
// .columnName("create_time")
|
.columnName("create_time")
|
||||||
// .sqlOperate(SqlOperateTypeEnum.TIME_BETWEEN).build();
|
.sqlOperate(SqlOperateTypeEnum.TIME_BETWEEN).build();
|
||||||
// CodeGeneratorQueryColumnDTO like = CodeGeneratorQueryColumnDTO.builder()
|
CodeGeneratorQueryColumnDTO like = CodeGeneratorQueryColumnDTO.builder()
|
||||||
// .columnName("title")
|
.columnName("title")
|
||||||
// .sqlOperate(SqlOperateTypeEnum.LIKE).build();
|
.sqlOperate(SqlOperateTypeEnum.LIKE).build();
|
||||||
//
|
|
||||||
// List<CodeGeneratorQueryColumnDTO> queryColumnList = Lists.newArrayList(createTimeBetween,like);
|
List<CodeGeneratorQueryColumnDTO> queryColumnList = Lists.newArrayList(createTimeBetween,like);
|
||||||
// CodeGeneratorDTO codeGenerator = CodeGeneratorDTO.builder()
|
CodeGeneratorDTO codeGenerator = CodeGeneratorDTO.builder()
|
||||||
// .author("yandanyang")
|
.author("yandanyang")
|
||||||
// .company("钢圈")
|
.company("钢圈")
|
||||||
// .tableName("t_notice")
|
.tableName("t_notice")
|
||||||
// .tablePrefix("t_")
|
.tablePrefix("t_")
|
||||||
// .basePackage("com.gangquan360.smartadmin")
|
.basePackage("com.gangquan360.smartadmin")
|
||||||
// .queryColumnList(queryColumnList).build();
|
.queryColumnList(queryColumnList).build();
|
||||||
// codeGeneratorService.codeGenerator(codeGenerator);
|
codeGeneratorService.codeGenerator(codeGenerator);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user