mirror of
				https://gitee.com/lab1024/smart-admin.git
				synced 2025-11-04 10:23:43 +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