Merge branch 'develop' into feature/generate

# Conflicts:
#	server/like-admin/src/main/java/com/hxkj/admin/config/AdminConfig.java
This commit is contained in:
TinyAnts 2022-06-21 15:25:45 +08:00
commit 3e31517297
66 changed files with 1033 additions and 468 deletions

32
admin/src/api/organize.ts Normal file
View File

@ -0,0 +1,32 @@
import request from '@/utils/request'
/** 岗位 S **/
// 岗位列表
export function apiPostLists(params: any) {
return request.get('/system/post/list', { params })
}
// 添加岗位
export function apiPostAdd(params: any) {
return request.post('/system/post/add', params)
}
// 编辑岗位
export function apiPostEdit(params: any) {
return request.post('/system/post/edit', params)
}
// 删除岗位
export function apiPostDelete(params: any) {
return request.post('/system/post/del', params)
}
// 岗位详情
export function apiPostDetail(params: any) {
return request.get('/system/post/detail', { params })
}
// 所有岗位
export function apiPostAll(params: any) {
return request.get('/system/post/all', { params })
}
/** 岗位 E **/

View File

@ -1,4 +1,3 @@
import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'
import Layout from '@/layout/index.vue'
/**
@ -46,6 +45,22 @@ export const constantRoutes: Array<RouteRecordRaw> = [
}
]
},
{
path: '/organize',
component: Layout,
children: [
{
path: 'department/edit',
component: () => import('@/views/organize/department/edit.vue'),
meta: { title: '编辑部门', activeMenu: '/organize/department' }
},
{
path: 'post/edit',
component: () => import('@/views/organize/post/edit.vue'),
meta: { title: '编辑岗位', activeMenu: '/organize/post' }
}
]
},
{
path: '/login',
component: () => import('@/views/account/login.vue')
@ -60,7 +75,6 @@ export const constantRoutes: Array<RouteRecordRaw> = [
}
]
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: constantRoutes,
@ -70,7 +84,7 @@ const router = createRouter({
} else {
return { top: 0 }
}
},
}
})
export default router

View File

@ -1,9 +1,70 @@
<template>
<div>部门管理edit</div>
<div class="department-edit">
<el-card shadow="never">
<el-page-header :content="id ? '编辑部门' : '新增部门'" @back="$router.back()" />
</el-card>
<el-card shadow="never" class="m-t-15">
<el-form
ref="formRefs"
:rules="rules"
class="ls-form"
:model="formData"
label-width="150px"
size="small"
>
<!-- 上级部门 -->
<el-form-item label="上级部门" prop="pid">
<!-- <el-select v-model="formData.pid" placeholder="请选择上级部门" :disabled="formData.pid === 0 && id">
<el-option v-for="(item, index) in leaderList" :key="index" :label="item.name" :value="item.id">
</el-option>
</el-select> -->
<el-cascader
:options="leaderList"
:props="{
value: 'id',
label: 'name',
checkStrictly: true
}"
clearable
/>
</el-form-item>
<!-- 部门名称 -->
<el-form-item label="部门名称" prop="name">
<el-input placeholder="请输入部门名称"></el-input>
</el-form-item>
<!-- 负责人 -->
<el-form-item label="负责人" prop="leader">
<el-input placeholder="请输入负责人姓名"></el-input>
</el-form-item>
<!-- 联系电话 -->
<el-form-item label="联系电话" prop="mobile">
<el-input placeholder="请输入联系电话" type="tel"></el-input>
</el-form-item>
<!-- 岗位排序 -->
<el-form-item label="排序" prop="sort">
<el-input placeholder="请输入排序" type="number"></el-input>
<div class="muted">默认为0 数值越大越排前</div>
</el-form-item>
<!-- 管理员状态 -->
<el-form-item label="部门状态">
<el-switch :active-value="1" :inactive-value="0" />
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" size="small" @click="onSubmit">保存</el-button>
</footer-btns>
</div>
</template>
<script>
export default {}
<script lang="ts" setup>
import FooterBtns from '@/components/footer-btns/index.vue'
</script>
<style></style>
<style lang="scss" scoped></style>

View File

@ -1,9 +1,89 @@
<template>
<div>部门管理</div>
<div class="department">
<el-card shadow="never">
<el-form class="ls-form" :model="formData" label-width="80px" size="small" inline>
<el-form-item label="部门名称">
<el-input class="ls-input" />
</el-form-item>
<el-form-item label="部门状态:">
<el-select placeholder="全部">
<el-option
v-for="item in statusList"
:key="item.val"
:label="item.name"
:value="item.val"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="m-l-20">
<el-button type="primary" @click="getLists">查询</el-button>
<el-button @click="reGetLists">重置</el-button>
</div>
</el-form-item>
</el-form>
</el-card>
<el-card class="m-t-15" shadow="never">
<router-link to="/organize/department/edit">
<el-button type="primary" size="small">新增部门</el-button>
</router-link>
<el-button type="" size="small" style="margin-left: 16px" @click="openOrFold()">
全部展开/折叠
</el-button>
<el-table class="m-t-15" size="small" row-key="id" :expand-row-keys="openIdArr">
<el-table-column label="部门名称" prop="name" min-width="100"></el-table-column>
<el-table-column label="部门状态" prop="status_desc" min-width="100">
<template #default="{ row }">
<el-tag class="ml-2" :type="row.status ? '' : 'danger'"
>{{ row.status_desc }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" min-width="100"></el-table-column>
<el-table-column
label="添加时间"
prop="create_time"
min-width="100"
></el-table-column>
<el-table-column label="操作" width="100" fixed="right">
<template #default="{ row }">
<router-link
class="m-r-10"
:to="{
path: '/organize/department/edit',
query: {
id: row.id
}
}"
>
<el-button type="text">编辑</el-button>
</router-link>
<popup
class="m-r-10 inline"
@confirm="handleDelete(row.id)"
v-show="row.pid"
>
<template #trigger>
<el-button type="text">删除</el-button>
</template>
</popup>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
export default {}
</script>
<script lang="ts" setup></script>
<style></style>
<style lang="scss" scoped></style>

View File

@ -1,9 +1,59 @@
<template>
<div>岗位管理edit</div>
<div class="post-edit">
<el-card shadow="never">
<el-page-header :content="id ? '编辑岗位' : '新增岗位'" @back="$router.back()" />
</el-card>
<el-card v-loading="loading" shadow="never" class="m-t-15">
<el-form
ref="formRefs"
:rules="rules"
class="ls-form"
:model="formData"
label-width="150px"
size="small"
>
<el-form-item label="岗位名称" prop="name">
<el-input placeholder="请输入岗位名称"></el-input>
</el-form-item>
<el-form-item label="岗位编码" prop="code">
<el-input placeholder="请输入岗位编码"></el-input>
</el-form-item>
<el-form-item label="排序" prop="sort">
<el-input placeholder="请输入排序" type="number"></el-input>
<div class="muted">默认为0 数值越大越排前</div>
</el-form-item>
<el-form-item label="备注" prop="remark">
<el-input
placeholder="请输入备注"
type="textarea"
:autosize="{ minRows: 4, maxRows: 6 }"
></el-input>
</el-form-item>
<el-form-item label="岗位状态">
<el-switch :active-value="1" :inactive-value="0" />
</el-form-item>
</el-form>
</el-card>
<footer-btns>
<el-button type="primary" size="small" @click="onSubmit">保存</el-button>
</footer-btns>
</div>
</template>
<script>
export default {}
<script lang="ts" setup>
import FooterBtns from '@/components/footer-btns/index.vue'
</script>
<style></style>
<style lang="scss" scoped>
.post-edit {
:deep(.el-textarea) {
width: 280px;
}
}
</style>

View File

@ -1,9 +1,84 @@
<template>
<div>岗位管理</div>
<div class="post">
<el-card shadow="never">
<el-form class="ls-form" :model="formData" label-width="80px" size="small" inline>
<el-form-item label="岗位编码">
<el-input class="ls-input" />
</el-form-item>
<el-form-item label="岗位名称">
<el-input class="ls-input" />
</el-form-item>
<el-form-item label="岗位状态:">
<el-select placeholder="全部">
<el-option
v-for="item in statusList"
:key="item.val"
:label="item.name"
:value="item.val"
>
</el-option>
</el-select>
</el-form-item>
<el-form-item>
<div class="m-l-20">
<el-button type="primary" @click="resetPage">查询</el-button>
<el-button @click="resetParams">重置</el-button>
</div>
</el-form-item>
</el-form>
</el-card>
<el-card shadow="never" class="m-t-15">
<router-link to="/organize/post/edit">
<el-button v-perm="['system:post:add']" type="primary" size="small">
新增岗位
</el-button>
</router-link>
<el-table size="small" row-key="id" class="m-t-15">
<el-table-column label="岗位编码" prop="code" min-width="100"></el-table-column>
<el-table-column label="岗位名称" prop="name" min-width="100"></el-table-column>
<el-table-column label="岗位状态" prop="status_desc" min-width="100">
<template #default="{ row }">
<el-tag class="ml-2" :type="row.status ? '' : 'danger'">
{{ row.status_desc }}
</el-tag>
</template>
</el-table-column>
<el-table-column label="排序" prop="sort" min-width="100"></el-table-column>
<el-table-column
label="添加时间"
prop="create_time"
min-width="100"
></el-table-column>
<el-table-column label="操作" min-width="100" fixed="right">
<template #default="{ row }">
<router-link
class="m-r-10"
:to="{
path: '/organize/post/edit',
query: {
id: row.id
}
}"
>
<el-button type="text">编辑</el-button>
</router-link>
<popup class="m-r-10 inline" @confirm="handleDelete(row.id)">
<template #trigger>
<el-button type="text">删除</el-button>
</template>
</popup>
</template>
</el-table-column>
</el-table>
</el-card>
</div>
</template>
<script>
export default {}
</script>
<script lang="ts" setup></script>
<style></style>
<style lang="scss" scoped></style>

View File

@ -28,9 +28,9 @@
</el-card>
<el-card v-loading="pager.loading" class="m-t-15" shadow="never">
<router-link to="/permission/admin/edit">
<el-button v-perm="['system:admin:add']" type="primary" size="small"
>新增管理员</el-button
>
<el-button v-perm="['system:admin:add']" type="primary" size="small">
新增管理员
</el-button>
</router-link>
<div class="m-t-15">
<el-table :data="pager.lists">

View File

@ -3,8 +3,8 @@ package com.hxkj.admin;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.system.ISystemAdminService;
import com.hxkj.admin.service.system.ISystemRoleMenuService;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.enums.HttpEnum;
import com.hxkj.common.utils.RedisUtil;

View File

@ -16,9 +16,9 @@ public class AdminConfig {
// 免登录验证
public static String[] notLoginUri = new String[]{
"system:login", // 登录接口
"index:config", // 配置接口
"gen:genCode"
"system:login", // 登录接口
"common:index:config", // 配置接口
"common:index:config" // 配置接口
};
// 免权限验证

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.controller;
package com.hxkj.admin.controller.common;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IAlbumService;
import com.hxkj.admin.validate.AlbumParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.album.AlbumVo;
import com.hxkj.admin.service.common.IAlbumService;
import com.hxkj.admin.validate.common.AlbumParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.common.album.AlbumVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.utils.ArrayUtil;
@ -20,7 +20,7 @@ import java.util.Map;
* 相册管理
*/
@RestController
@RequestMapping("api/album")
@RequestMapping("api/common/album")
public class AlbumController {
@Resource

View File

@ -1,13 +1,13 @@
package com.hxkj.admin.controller;
package com.hxkj.admin.controller.common;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IArticleService;
import com.hxkj.admin.service.common.IArticleService;
import com.hxkj.admin.validate.article.CategoryParam;
import com.hxkj.admin.validate.article.ArticleParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.article.ArticleDetailVo;
import com.hxkj.admin.vo.article.ArticleListVo;
import com.hxkj.admin.vo.article.CategoryVo;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.common.article.ArticleDetailVo;
import com.hxkj.admin.vo.common.article.ArticleListVo;
import com.hxkj.admin.vo.common.article.CategoryVo;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.validator.annotation.IDMust;
@ -19,7 +19,7 @@ import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("api/article")
@RequestMapping("api/common/article")
public class ArticleController {
@Resource

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.controller;
package com.hxkj.admin.controller.common;
import com.hxkj.admin.service.IIndexService;
import com.hxkj.admin.service.common.IIndexService;
import com.hxkj.common.core.AjaxResult;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.GetMapping;
@ -15,7 +15,7 @@ import java.util.Map;
*/
@Slf4j
@RestController
@RequestMapping("api/index")
@RequestMapping("api/common/index")
public class IndexController {
@Resource

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.controller;
package com.hxkj.admin.controller.common;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IAlbumService;
import com.hxkj.admin.service.common.IAlbumService;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.enums.AlbumEnum;
import com.hxkj.common.exception.OperateException;
@ -22,7 +22,7 @@ import java.util.Map;
* 上传管理
*/
@RestController
@RequestMapping("api/upload")
@RequestMapping("api/common/upload")
public class UploadController {
@Resource

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.setting;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.IBasicsService;
import com.hxkj.admin.service.setting.IBasicsService;
import com.hxkj.common.core.AjaxResult;
import org.springframework.web.bind.annotation.*;
@ -12,7 +12,7 @@ import java.util.Map;
* 基础设置管理
*/
@RestController
@RequestMapping("api/setting")
@RequestMapping("api/setting/basics")
public class BasicsController {
@Resource

View File

@ -0,0 +1,73 @@
package com.hxkj.admin.controller.setting;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.service.setting.IStorageService;
import com.hxkj.common.core.AjaxResult;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("api/setting/storage")
public class StorageController {
@Resource
IStorageService iStorageService;
/**
* 存储列表
*
* @author fzr
* @return Object
*/
@GetMapping("/list")
public Object list() {
List<Map<String, Object>> list = iStorageService.list();
return AjaxResult.success(list);
}
/**
* 存储详情
*
* @param alias 引擎别名
* @return Object
*/
@GetMapping("/detail")
public Object detail(String alias) {
Map<String, Object> map = iStorageService.detail(alias);
return AjaxResult.success(map);
}
/**
* 存储编辑
*
* @author fzr
* @param params 参数
* @return Object
*/
@PostMapping("/edit")
public Object edit(@RequestBody Map<String, String> params) {
iStorageService.edit(params);
return AjaxResult.success();
}
/**
* 存储切换
*
* @author fzr
* @param params 参数
* @return Object
*/
@PostMapping("/change")
public Object change(@RequestBody Map<String, String> params) {
Assert.notNull(params.get("alias"), "alias参数缺失");
Assert.notNull(params.get("status"), "status参数缺失");
String alias = params.get("alias");
Integer status = Integer.parseInt(params.get("status"));
iStorageService.change(alias, status);
return AjaxResult.success();
}
}

View File

@ -2,8 +2,8 @@ package com.hxkj.admin.controller.system;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemAdminService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemSelfVo;

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.system;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.service.ISystemDeptService;
import com.hxkj.admin.service.system.ISystemDeptService;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.common.core.AjaxResult;

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISystemLogServer;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemLogServer;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.system.LogLoginVo;
import com.hxkj.admin.vo.system.LogOperateVo;
import com.hxkj.common.core.AjaxResult;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISystemLoginService;
import com.hxkj.admin.service.system.ISystemLoginService;
import com.hxkj.admin.validate.system.SystemLoginParam;
import com.hxkj.common.core.AjaxResult;
import com.hxkj.common.exception.LoginException;

View File

@ -3,7 +3,7 @@ package com.hxkj.admin.controller.system;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.service.system.ISystemMenuService;
import com.hxkj.admin.validate.system.SystemMenuParam;
import com.hxkj.admin.vo.system.SystemMenuVo;
import com.hxkj.common.core.AjaxResult;

View File

@ -1,7 +1,7 @@
package com.hxkj.admin.controller.system;
import com.hxkj.admin.service.ISystemPostService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemPostService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemPostParam;
import com.hxkj.admin.vo.system.SystemPostVo;
import com.hxkj.common.core.AjaxResult;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.controller.system;
import com.hxkj.admin.config.aop.Log;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemRoleService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemRoleParam;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.common.core.AjaxResult;

View File

@ -1,97 +0,0 @@
package com.hxkj.admin.service;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemSelfVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;
import java.util.Map;
/**
* 系统管理员服务接口类
*/
public interface ISystemAdminService {
/**
* 根据账号查找管理员
*
* @author fzr
* @param username 主键ID
* @return SysAdmin
*/
SystemAdmin findByUsername(String username);
/**
* 管理员列表
*
* @author fzr
* @param pageParam 分页参数
* @return PageResult<SysAdminListVo>
*/
PageResult<SystemAdminVo> list(PageParam pageParam, Map<String, String> params);
/**
* 当前管理员
*
* @author fzr
* @return SystemSelfVo
*/
SystemSelfVo self(Integer adminId);
/**
* 管理员详情
*
* @author fzr
* @param id 主键参数
* @return SysAdmin
*/
SystemAdminVo detail(Integer id);
/**
* 管理员新增
*
* @author fzr
* @param systemAdminParam 参数
*/
void add(SystemAdminParam systemAdminParam);
/**
* 管理员编辑
*
* @author fzr
* @param systemAdminParam 参数
*/
void edit(SystemAdminParam systemAdminParam);
/**
* 当前管理员更新
*
* @author fzr
* @param systemAdminParam 参数
*/
void upInfo(SystemAdminParam systemAdminParam, Integer adminId);
/**
* 管理员删除
*
* @author fzr
* @param id 主键参数
*/
void del(Integer id);
/**
* 管理员状态切换
*
* @author fzr
* @param id 主键参数
*/
void disable(Integer id);
/**
* 缓存管理员
*/
void cacheAdminUserByUid(Integer id);
}

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.common;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.AlbumParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.album.AlbumVo;
import com.hxkj.admin.validate.common.AlbumParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.common.album.AlbumVo;
import com.hxkj.common.core.PageResult;
import java.util.List;

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.common;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.article.CategoryParam;
import com.hxkj.admin.validate.article.ArticleParam;
import com.hxkj.admin.vo.article.ArticleDetailVo;
import com.hxkj.admin.vo.article.ArticleListVo;
import com.hxkj.admin.vo.article.CategoryVo;
import com.hxkj.admin.vo.common.article.ArticleDetailVo;
import com.hxkj.admin.vo.common.article.ArticleListVo;
import com.hxkj.admin.vo.common.article.CategoryVo;
import com.hxkj.common.core.PageResult;
import java.util.List;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.common;
import java.util.Map;

View File

@ -1,20 +1,20 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.common.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxkj.admin.service.IAlbumService;
import com.hxkj.admin.validate.AlbumParam;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.vo.album.AlbumCateVo;
import com.hxkj.admin.vo.album.AlbumVo;
import com.hxkj.admin.service.common.IAlbumService;
import com.hxkj.admin.validate.common.AlbumParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.common.album.AlbumCateVo;
import com.hxkj.admin.vo.common.album.AlbumVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.Album;
import com.hxkj.common.entity.AlbumCate;
import com.hxkj.common.mapper.AlbumCateMapper;
import com.hxkj.common.mapper.AlbumMapper;
import com.hxkj.common.entity.album.Album;
import com.hxkj.common.entity.album.AlbumCate;
import com.hxkj.common.mapper.album.AlbumCateMapper;
import com.hxkj.common.mapper.album.AlbumMapper;
import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.TimeUtil;
import com.hxkj.common.utils.ToolsUtil;

View File

@ -1,21 +1,21 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.common.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.service.IArticleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.common.IArticleService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.article.CategoryParam;
import com.hxkj.admin.validate.article.ArticleParam;
import com.hxkj.admin.vo.article.ArticleDetailVo;
import com.hxkj.admin.vo.article.ArticleListVo;
import com.hxkj.admin.vo.article.CategoryVo;
import com.hxkj.admin.vo.common.article.ArticleDetailVo;
import com.hxkj.admin.vo.common.article.ArticleListVo;
import com.hxkj.admin.vo.common.article.CategoryVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.Article;
import com.hxkj.common.entity.ArticleCategory;
import com.hxkj.common.mapper.ArticleCategoryMapper;
import com.hxkj.common.mapper.ArticleMapper;
import com.hxkj.common.entity.article.Article;
import com.hxkj.common.entity.article.ArticleCategory;
import com.hxkj.common.mapper.article.ArticleCategoryMapper;
import com.hxkj.common.mapper.article.ArticleMapper;
import com.hxkj.common.utils.StringUtil;
import com.hxkj.common.utils.TimeUtil;
import com.hxkj.common.utils.UrlUtil;

View File

@ -1,9 +1,9 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.common.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxkj.admin.service.IIndexService;
import com.hxkj.common.entity.Article;
import com.hxkj.common.mapper.ArticleMapper;
import com.hxkj.admin.service.common.IIndexService;
import com.hxkj.common.entity.article.Article;
import com.hxkj.common.mapper.article.ArticleMapper;
import com.hxkj.common.utils.ConfigUtil;
import com.hxkj.common.utils.TimeUtil;
import com.hxkj.common.utils.UrlUtil;

View File

@ -1,218 +0,0 @@
package com.hxkj.admin.service.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.service.ISystemDeptService;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemDept;
import com.hxkj.common.mapper.system.SystemAdminMapper;
import com.hxkj.common.mapper.system.SystemDeptMapper;
import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Service
public class SystemDeptServiceImpl implements ISystemDeptService {
@Resource
SystemDeptMapper systemDeptMapper;
@Resource
SystemAdminMapper systemAdminMapper;
/**
* 岗位所有
*
* @author fzr
* @return List<SystemPostVo>
*/
@Override
public List<SystemDeptVo> all() {
List<SystemDept> systemDeptList = systemDeptMapper.selectList(new QueryWrapper<SystemDept>()
.gt("pid", 0)
.eq("is_delete", 0)
.orderByDesc((Arrays.asList("id", "sort"))));
List<SystemDeptVo> adminVoArrayList = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
adminVoArrayList.add(vo);
}
return adminVoArrayList;
}
/**
* 部门列表
*
* @author fzr
* @param params 搜索参数
* @return JSONArray
*/
@Override
public JSONArray list(Map<String, String> params) {
QueryWrapper<SystemDept> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByAsc(Arrays.asList("sort", "id"));
queryWrapper.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"));
systemDeptMapper.setSearch(queryWrapper, params, new String[]{
"like:name:str",
"=:isStop:int"
});
List<SystemDept> systemDeptList = systemDeptMapper.selectList(queryWrapper);
List<SystemDeptVo> lists = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 部门详情
*
* @author fzr
* @param id 主键
* @return SystemDeptVo
*/
@Override
public SystemDeptVo detail(Integer id) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(systemDept, "部门已不存在!");
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
return vo;
}
/**
* 部门新增
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void add(SystemDeptParam systemDeptParam) {
if (systemDeptParam.getPid() == 0) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("pid", 0)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemDept, "顶级部门只允许有一个");
}
SystemDept model = new SystemDept();
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setIsDelete(0);
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.insert(model);
}
/**
* 部门编辑
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void edit(SystemDeptParam systemDeptParam) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", systemDeptParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0 && systemDeptParam.getPid() > 0), "顶级部门不能修改上级");
Assert.isFalse(systemDeptParam.getId().equals(systemDeptParam.getPid()), "上级部门不能是自己");
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
/**
* 部门删除
*
* @author fzr
* @param id 主键
*/
@Override
public void del(Integer id) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0), "顶级部门不能删除");
SystemAdmin systemAdmin = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select("id,nickname")
.eq("dept_id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemAdmin, "该部门已被“"+systemAdmin.getNickname()+"”管理员使用,请先移除");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
}

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.setting;
import java.util.Map;

View File

@ -0,0 +1,45 @@
package com.hxkj.admin.service.setting;
import java.util.List;
import java.util.Map;
/**
* 存储配置接口类
*/
public interface IStorageService {
/**
* 存储列表
*
* @author fzr
* @return List<Map<String, Object>>
*/
List<Map<String, Object>> list();
/**
* 存储详情
*
* @author fzr
* @param alias 引擎别名
* @return Map<String, Object>
*/
Map<String, Object> detail(String alias);
/**
* 存储编辑
*
* @author fzr
* @param params 参数
*/
void edit(Map<String, String> params);
/**
* 存储切换
*
* @author fzr
* @param alias 引擎别名
* @param status 状态
*/
void change(String alias, Integer status);
}

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.setting.impl;
import com.hxkj.admin.service.IBasicsService;
import com.hxkj.admin.service.setting.IBasicsService;
import com.hxkj.common.utils.ConfigUtil;
import com.hxkj.common.utils.UrlUtil;
import org.springframework.stereotype.Service;

View File

@ -0,0 +1,142 @@
package com.hxkj.admin.service.setting.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.service.setting.IStorageService;
import com.hxkj.common.utils.ConfigUtil;
import org.springframework.stereotype.Service;
import java.util.*;
/**
* 存储配置实现类
*/
@Service
public class StorageServiceImpl implements IStorageService {
/**
* 存储列表
*
* @author fzr
* @return List<Map<String, Object>>
*/
@Override
public List<Map<String, Object>> list() {
String engine = ConfigUtil.get("storage", "default", "local");
List<Map<String, Object>> list = new LinkedList<>();
Map<String, Object> local = new LinkedHashMap<>();
local.put("alias", "qiniu");
local.put("describe", "存储在本地服务器");
local.put("status", engine.equals("local") ? 1 : 0);
list.add(local);
Map<String, Object> qiniu = new LinkedHashMap<>();
qiniu.put("alias", "qiniu");
qiniu.put("describe", "存储在七牛云,请前往七牛云开通存储服务");
qiniu.put("status", engine.equals("qiniu") ? 1 : 0);
list.add(qiniu);
Map<String, Object> aliyun = new LinkedHashMap<>();
aliyun.put("alias", "aliyun");
aliyun.put("describe", "存储在阿里云,请前往阿里云开通存储服务");
aliyun.put("status", engine.equals("aliyun") ? 1 : 0);
list.add(aliyun);
Map<String, Object> qcloud = new LinkedHashMap<>();
qcloud.put("alias", "qcloud");
qcloud.put("describe", "存储在腾讯云,请前往腾讯云开通存储服务");
qcloud.put("status", engine.equals("qcloud") ? 1 : 0);
list.add(qcloud);
return list;
}
/**
* 存储详情
*
* @author fzr
* @param alias 存储别名
* @return Map<String, Object>
*/
@Override
public Map<String, Object> detail(String alias) {
String engine = ConfigUtil.get("storage", "default", "local");
Map<String, String> config = ConfigUtil.getMap("storage", alias);
Map<String, Object> map = new LinkedHashMap<>();
map.put("name", config.getOrDefault("name", ""));
map.put("alias", alias);
map.put("status", engine.equals(alias) ? 1 : 0);
if (!alias.equals("local")) {
map.put("bucket", config.getOrDefault("bucket", ""));
map.put("secretKey", config.getOrDefault("secret_key", ""));
map.put("accessKey", config.getOrDefault("access_key", ""));
map.put("domain", config.getOrDefault("domain", ""));
if (alias.equals("qcloud")) {
map.put("region", config.getOrDefault("region", ""));
}
}
return map;
}
/**
* 存储编辑
*
* @author fzr
* @param params 参数
*/
@Override
public void edit(Map<String, String> params) {
Assert.notNull(params.get("alias"), "alias参数缺失");
Assert.notNull(params.get("status"), "status参数缺失");
Map<String, String> map = new LinkedHashMap<>();
map.put("name", "本地存储");
if (!params.get("alias").equals("local")) {
map.put("bucket", params.getOrDefault("bucket", ""));
map.put("secretKey", params.getOrDefault("secretKey", ""));
map.put("accessKey", params.getOrDefault("accessKey", ""));
map.put("domain", params.getOrDefault("domain", ""));
switch (params.get("alias")) {
case "qcloud":
map.put("name", "腾讯云存储");
map.put("region", params.getOrDefault("region", ""));
break;
case "qiniu":
map.put("name", "七牛云存储");
break;
case "aliyun":
map.put("name", "阿里云存储");
break;
}
}
String engine = ConfigUtil.get("storage", "default", "local");
ConfigUtil.set("storage", params.get("alias"), JSON.toJSONString(map));
if (Integer.parseInt(params.get("status")) == 1) {
ConfigUtil.set("storage", "default", params.get("alias"));
} else if (engine.equals(params.get("alias")) && Integer.parseInt(params.get("status")) == 0) {
ConfigUtil.set("storage", "default", params.get(""));
}
}
/**
* 引擎切换
*
* @author fzr
* @param alias 引擎别名
* @param status 状态
*/
@Override
public void change(String alias, Integer status) {
String engine = ConfigUtil.get("storage", "default", "local");
if (engine.equals(alias) && status == 0) {
ConfigUtil.set("storage", "default", "");
} else {
ConfigUtil.set("storage", "default", alias);
}
}
}

View File

@ -0,0 +1,308 @@
package com.hxkj.admin.service.system;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.validate.system.SystemDeptParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemDeptVo;
import com.hxkj.admin.vo.system.SystemSelfVo;
import com.hxkj.common.core.PageResult;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemDept;
import com.hxkj.common.mapper.system.SystemAdminMapper;
import com.hxkj.common.mapper.system.SystemDeptMapper;
import com.hxkj.common.utils.ArrayUtil;
import com.hxkj.common.utils.TimeUtil;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
/**
* 系统管理员服务接口类
*/
public interface ISystemAdminService {
/**
* 根据账号查找管理员
*
* @author fzr
* @param username 主键ID
* @return SysAdmin
*/
SystemAdmin findByUsername(String username);
/**
* 管理员列表
*
* @author fzr
* @param pageParam 分页参数
* @return PageResult<SysAdminListVo>
*/
PageResult<SystemAdminVo> list(PageParam pageParam, Map<String, String> params);
/**
* 当前管理员
*
* @author fzr
* @return SystemSelfVo
*/
SystemSelfVo self(Integer adminId);
/**
* 管理员详情
*
* @author fzr
* @param id 主键参数
* @return SysAdmin
*/
SystemAdminVo detail(Integer id);
/**
* 管理员新增
*
* @author fzr
* @param systemAdminParam 参数
*/
void add(SystemAdminParam systemAdminParam);
/**
* 管理员编辑
*
* @author fzr
* @param systemAdminParam 参数
*/
void edit(SystemAdminParam systemAdminParam);
/**
* 当前管理员更新
*
* @author fzr
* @param systemAdminParam 参数
*/
void upInfo(SystemAdminParam systemAdminParam, Integer adminId);
/**
* 管理员删除
*
* @author fzr
* @param id 主键参数
*/
void del(Integer id);
/**
* 管理员状态切换
*
* @author fzr
* @param id 主键参数
*/
void disable(Integer id);
/**
* 缓存管理员
*/
void cacheAdminUserByUid(Integer id);
@Service
class SystemDeptServiceImpl implements ISystemDeptService {
@Resource
SystemDeptMapper systemDeptMapper;
@Resource
SystemAdminMapper systemAdminMapper;
/**
* 岗位所有
*
* @author fzr
* @return List<SystemPostVo>
*/
@Override
public List<SystemDeptVo> all() {
List<SystemDept> systemDeptList = systemDeptMapper.selectList(new QueryWrapper<SystemDept>()
.gt("pid", 0)
.eq("is_delete", 0)
.orderByDesc((Arrays.asList("id", "sort"))));
List<SystemDeptVo> adminVoArrayList = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
adminVoArrayList.add(vo);
}
return adminVoArrayList;
}
/**
* 部门列表
*
* @author fzr
* @param params 搜索参数
* @return JSONArray
*/
@Override
public JSONArray list(Map<String, String> params) {
QueryWrapper<SystemDept> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("is_delete", 0);
queryWrapper.orderByAsc(Arrays.asList("sort", "id"));
queryWrapper.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"));
systemDeptMapper.setSearch(queryWrapper, params, new String[]{
"like:name:str",
"=:isStop:int"
});
List<SystemDept> systemDeptList = systemDeptMapper.selectList(queryWrapper);
List<SystemDeptVo> lists = new ArrayList<>();
for (SystemDept systemDept : systemDeptList) {
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
lists.add(vo);
}
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(lists));
return ArrayUtil.listToTree(jsonArray, "id", "pid", "children");
}
/**
* 部门详情
*
* @author fzr
* @param id 主键
* @return SystemDeptVo
*/
@Override
public SystemDeptVo detail(Integer id) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(systemDept, "部门已不存在!");
SystemDeptVo vo = new SystemDeptVo();
BeanUtils.copyProperties(systemDept, vo);
vo.setCreateTime(TimeUtil.timestampToDate(systemDept.getCreateTime()));
vo.setUpdateTime(TimeUtil.timestampToDate(systemDept.getUpdateTime()));
return vo;
}
/**
* 部门新增
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void add(SystemDeptParam systemDeptParam) {
if (systemDeptParam.getPid() == 0) {
SystemDept systemDept = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("pid", 0)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemDept, "顶级部门只允许有一个");
}
SystemDept model = new SystemDept();
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setIsDelete(0);
model.setCreateTime(System.currentTimeMillis() / 1000);
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.insert(model);
}
/**
* 部门编辑
*
* @author fzr
* @param systemDeptParam 参数
*/
@Override
public void edit(SystemDeptParam systemDeptParam) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select(SystemDept.class, info ->
!info.getColumn().equals("is_delete") &&
!info.getColumn().equals("delete_time"))
.eq("id", systemDeptParam.getId())
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0 && systemDeptParam.getPid() > 0), "顶级部门不能修改上级");
Assert.isFalse(systemDeptParam.getId().equals(systemDeptParam.getPid()), "上级部门不能是自己");
model.setPid(systemDeptParam.getPid());
model.setName(systemDeptParam.getName());
model.setDuty(systemDeptParam.getDuty());
model.setMobile(systemDeptParam.getMobile());
model.setSort(systemDeptParam.getSort());
model.setIsStop(systemDeptParam.getIsStop());
model.setUpdateTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
/**
* 部门删除
*
* @author fzr
* @param id 主键
*/
@Override
public void del(Integer id) {
SystemDept model = systemDeptMapper.selectOne(
new QueryWrapper<SystemDept>()
.select("id,pid,name")
.eq("id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.notNull(model, "部门不存在");
Assert.isFalse((model.getPid() == 0), "顶级部门不能删除");
SystemAdmin systemAdmin = systemAdminMapper.selectOne(new QueryWrapper<SystemAdmin>()
.select("id,nickname")
.eq("dept_id", id)
.eq("is_delete", 0)
.last("limit 1"));
Assert.isNull(systemAdmin, "该部门已被“"+systemAdmin.getNickname()+"”管理员使用,请先移除");
model.setIsDelete(1);
model.setDeleteTime(System.currentTimeMillis() / 1000);
systemDeptMapper.updateById(model);
}
}
}

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.system.SystemDeptParam;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.system.LogLoginVo;
import com.hxkj.admin.vo.system.LogOperateVo;
import com.hxkj.common.core.PageResult;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import com.hxkj.admin.validate.system.SystemLoginParam;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import com.alibaba.fastjson.JSONArray;
import com.hxkj.admin.validate.system.SystemMenuParam;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemPostParam;
import com.hxkj.admin.vo.system.SystemPostVo;
import com.hxkj.common.core.PageResult;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import java.util.List;

View File

@ -1,6 +1,6 @@
package com.hxkj.admin.service;
package com.hxkj.admin.service.system;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemRoleParam;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.common.core.PageResult;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@ -8,10 +8,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemAdminService;
import com.hxkj.admin.service.system.ISystemRoleMenuService;
import com.hxkj.admin.service.system.ISystemRoleService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemAdminParam;
import com.hxkj.admin.vo.system.SystemAdminVo;
import com.hxkj.admin.vo.system.SystemRoleVo;

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.github.yulichang.query.MPJQueryWrapper;
import com.hxkj.admin.service.ISystemLogServer;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemLogServer;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.vo.system.LogLoginVo;
import com.hxkj.admin.vo.system.LogOperateVo;
import com.hxkj.common.core.PageResult;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemAdminService;
import com.hxkj.admin.service.ISystemLoginService;
import com.hxkj.admin.service.system.ISystemAdminService;
import com.hxkj.admin.service.system.ISystemLoginService;
import com.hxkj.admin.validate.system.SystemLoginParam;
import com.hxkj.common.entity.system.SystemAdmin;
import com.hxkj.common.entity.system.SystemLogLogin;

View File

@ -1,12 +1,12 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.alibaba.fastjson.JSONArray;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.hxkj.admin.LikeAdminThreadLocal;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemMenuService;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.system.ISystemMenuService;
import com.hxkj.admin.service.system.ISystemRoleMenuService;
import com.hxkj.admin.validate.system.SystemMenuParam;
import com.hxkj.admin.vo.system.SystemMenuVo;
import com.hxkj.common.entity.system.SystemMenu;

View File

@ -1,11 +1,11 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxkj.admin.service.ISystemPostService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemPostService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemPostParam;
import com.hxkj.admin.vo.system.SystemPostVo;
import com.hxkj.common.core.PageResult;

View File

@ -1,8 +1,8 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.system.ISystemRoleMenuService;
import com.hxkj.common.entity.system.SystemMenu;
import com.hxkj.common.entity.system.SystemRoleMenu;
import com.hxkj.common.mapper.system.SystemMenuMapper;

View File

@ -1,13 +1,13 @@
package com.hxkj.admin.service.impl;
package com.hxkj.admin.service.system.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Assert;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.hxkj.admin.config.AdminConfig;
import com.hxkj.admin.service.ISystemRoleMenuService;
import com.hxkj.admin.service.ISystemRoleService;
import com.hxkj.admin.validate.PageParam;
import com.hxkj.admin.service.system.ISystemRoleMenuService;
import com.hxkj.admin.service.system.ISystemRoleService;
import com.hxkj.admin.validate.common.PageParam;
import com.hxkj.admin.validate.system.SystemRoleParam;
import com.hxkj.admin.vo.system.SystemRoleVo;
import com.hxkj.common.core.PageResult;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate;
package com.hxkj.admin.validate.common;
import com.hxkj.common.validator.annotation.IDMust;
import com.hxkj.common.validator.annotation.IntegerContains;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.validate;
package com.hxkj.admin.validate.common;
import lombok.Data;
import lombok.EqualsAndHashCode;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.album;
package com.hxkj.admin.vo.common.album;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.album;
package com.hxkj.admin.vo.common.album;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.article;
package com.hxkj.admin.vo.common.article;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.article;
package com.hxkj.admin.vo.common.article;
import lombok.Data;

View File

@ -1,4 +1,4 @@
package com.hxkj.admin.vo.article;
package com.hxkj.admin.vo.common.article;
import lombok.Data;

View File

@ -6,7 +6,7 @@ like:
spring:
# 数据源配置
datasource:
url: jdbc:mysql://localhost:3306/local_frame?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
url: jdbc:mysql://localhost:3306/local_admin_java?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
type: com.zaxxer.hikari.HikariDataSource # 数据源类型
driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
username: root # 数据库账号

View File

@ -12,7 +12,7 @@ spring:
active: pro
# 数据源配置
datasource:
url: jdbc:mysql://localhost:3306/local_frame?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
url: jdbc:mysql://localhost:3306/local_admin_java?useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&useSSL=false
type: com.zaxxer.hikari.HikariDataSource # 数据源类型
driver-class-name: com.mysql.jdbc.Driver # MySql的驱动
username: root # 数据库账号

View File

@ -1,4 +1,4 @@
package com.hxkj.common.entity;
package com.hxkj.common.entity.album;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,4 +1,4 @@
package com.hxkj.common.entity;
package com.hxkj.common.entity.album;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,4 +1,4 @@
package com.hxkj.common.entity;
package com.hxkj.common.entity.article;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,4 +1,4 @@
package com.hxkj.common.entity;
package com.hxkj.common.entity.article;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

View File

@ -1,7 +1,7 @@
package com.hxkj.common.mapper;
package com.hxkj.common.mapper.album;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.common.entity.AlbumCate;
import com.hxkj.common.entity.album.AlbumCate;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,7 +1,7 @@
package com.hxkj.common.mapper;
package com.hxkj.common.mapper.album;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.common.entity.Album;
import com.hxkj.common.entity.album.Album;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,7 +1,7 @@
package com.hxkj.common.mapper;
package com.hxkj.common.mapper.article;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.common.entity.ArticleCategory;
import com.hxkj.common.entity.article.ArticleCategory;
import org.apache.ibatis.annotations.Mapper;
/**

View File

@ -1,7 +1,7 @@
package com.hxkj.common.mapper;
package com.hxkj.common.mapper.article;
import com.hxkj.common.core.basics.IBaseMapper;
import com.hxkj.common.entity.Article;
import com.hxkj.common.entity.article.Article;
import org.apache.ibatis.annotations.Mapper;
/**