配置管理

This commit is contained in:
cun-nan 2024-08-27 14:45:58 +08:00
parent 3eedf15712
commit 1ed4dd8950
13 changed files with 443 additions and 131 deletions

18
.idea/compiler.xml Normal file
View File

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="CompilerConfiguration">
<annotationProcessing>
<profile name="Maven default annotation processors profile" enabled="true">
<sourceOutputDir name="target/generated-sources/annotations" />
<sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
<outputRelativeToContentRoot value="true" />
<module name="fuint-application" />
<module name="fuint-utils" />
<module name="fuint-repository" />
<module name="fuint-framework" />
<module name="fuint-payment" />
<module name="fuint-quartz" />
</profile>
</annotationProcessing>
</component>
</project>

19
.idea/encodings.xml Normal file
View File

@ -0,0 +1,19 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-application/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-application/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-framework/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-framework/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-payment/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-payment/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-quartz/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-quartz/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-repository/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-repository/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-utils/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/fuint-utils/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/fuintBackend/src/main/resources" charset="UTF-8" />
</component>
</project>

20
.idea/jarRepositories.xml Normal file
View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="RemoteRepositoriesConfiguration">
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Central Repository" />
<option name="url" value="https://repo.maven.apache.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="central" />
<option name="name" value="Maven Central repository" />
<option name="url" value="https://repo1.maven.org/maven2" />
</remote-repository>
<remote-repository>
<option name="id" value="jboss.community" />
<option name="name" value="JBoss Community repository" />
<option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
</remote-repository>
</component>
</project>

View File

@ -1,6 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="ProjectRootManager"> <component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/fuintBackend/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" /> <output url="file://$PROJECT_DIR$/out" />
</component> </component>
</project> </project>

View File

@ -134,3 +134,12 @@ export function delOilTag(id) {
method: 'delete' method: 'delete'
}) })
} }
// 删除员工
export function getStaffByDeptId(deptId) {
return request({
url: '/business/member/staff/getStaffByDeptId/' + deptId,
method: 'get'
})
}

View File

@ -2,7 +2,7 @@ import request from '@/utils/request'
// 分页查询所有的订单信息 // 分页查询所有的订单信息
export function getListApi(query) { export function getCostListApi(query) {
return request({ return request({
url: 'MessageCost', url: 'MessageCost',
method: 'get', method: 'get',
@ -18,14 +18,14 @@ export function getInfoApi(id) {
}) })
} }
// //
export function deleteApi(id) { export function deleteCostApi(id) {
return request({ return request({
url: 'MessageCost/' + id, url: 'MessageCost/' + id,
method: 'delete' method: 'delete'
}) })
} }
// //
export function saveApi(data) { export function saveCostApi(data) {
return request({ return request({
url: 'MessageCost', url: 'MessageCost',
method: 'post', method: 'post',
@ -34,7 +34,7 @@ export function saveApi(data) {
} }
// 保存修改信息 // 保存修改信息
export function updateApi(data) { export function updateCostApi(data) {
return request({ return request({
url: 'MessageCost', url: 'MessageCost',
method: 'put', method: 'put',

View File

@ -2,12 +2,13 @@
<div class="app-container"> <div class="app-container">
<div class="tab-box"> <div class="tab-box">
<div class="f-box" v-for="(item,index) in tablist" :key="index" @click="getindex(index)" <div class="tab_" :class="{active:index== tabindex }" @click="getindex(index)" v-for="(item,index) in tabs"
:class="{ 'active' :activeindex==index}">{{ item.name }} :key="index">
{{ item.name }}
</div> </div>
</div> </div>
<div class="card-change" style="margin: 20px" v-if="activeindex == 0"> <div class="card-change" style="margin: 20px" v-if="tabindex == 0">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="180px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="180px">
<el-form-item label="" prop="name"> <el-form-item label="" prop="name">
<el-input <el-input
@ -57,16 +58,32 @@
<div style="height: 70vh;overflow: auto"> <div style="height: 70vh;overflow: auto">
<el-table :data="tableData" border style="width: 100%"> <el-table :data="tableData" border style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column> <el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="messageId" label="短信模板ID"></el-table-column> <el-table-column prop="messageId" label="短信模板ID">
<el-table-column prop="name" label="短信名称"></el-table-column> <template slot-scope="scope">
<el-table-column prop="content" label="短信模板内容"></el-table-column> <span>{{scope.row.messageId}}</span>
</template>
</el-table-column>
<el-table-column prop="name" label="短信名称">
<template slot-scope="scope">
<span>{{scope.row.name}}</span>
</template>
</el-table-column>
<el-table-column prop="content" label="短信模板内容">
<template slot-scope="scope">
<span>{{scope.row.content}}</span>
</template>
</el-table-column>
<!-- <el-table-column prop="image" label="短信图片">--> <!-- <el-table-column prop="image" label="短信图片">-->
<!-- <template slot-scope="scope">--> <!-- <template slot-scope="scope">-->
<!-- <ImagePreview :src="scope.row.image"></ImagePreview>--> <!-- <ImagePreview :src="scope.row.image"></ImagePreview>-->
<!-- </template>--> <!-- </template>-->
<!-- </el-table-column>--> <!-- </el-table-column>-->
<!-- <el-table-column prop="deptNames" label="适用范围"></el-table-column>--> <!-- <el-table-column prop="deptNames" label="适用范围"></el-table-column>-->
<el-table-column prop="roleIds" label="接收角色"></el-table-column> <el-table-column prop="roleIds" label="接收角色">
<template slot-scope="scope">
<span>{{scope.row.roleIds}}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="短信状态"> <el-table-column prop="status" label="短信状态">
<template slot-scope="scope"> <template slot-scope="scope">
@ -78,8 +95,16 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createName" label="创建人"></el-table-column> <el-table-column prop="createName" label="创建人">
<el-table-column prop="createTime" label="创建时间"></el-table-column> <template slot-scope="scope">
<span>{{scope.row.createName}}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="创建时间">
<template slot-scope="scope">
<span>{{scope.row.createTime}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -111,7 +136,7 @@
/> />
</div> </div>
<div class="card-change" style="margin: 20px" v-if="activeindex == 1"> <div class="card-change" style="margin: 20px" v-if="tabindex == 1">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="180px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="180px">
<el-form-item label="" prop="status"> <el-form-item label="" prop="status">
@ -143,12 +168,28 @@
</el-form> </el-form>
<div style="height: 70vh;overflow: auto"> <div style="height: 70vh;overflow: auto">
<el-table :data="tableData" border style="width: 100%"> <el-table :data="messageRecordList" border style="width: 100%">
<el-table-column type="index" label="序号"></el-table-column> <el-table-column type="index" label="序号"></el-table-column>
<el-table-column prop="name" label="短信名称"></el-table-column> <el-table-column prop="name" label="短信名称">
<el-table-column prop="content" label="短信内容"></el-table-column> <template slot-scope="scope">
<el-table-column prop="roleIds" label="接收角色"></el-table-column> <span>{{scope.row.name}}</span>
<el-table-column prop="roleIds" label="短信发送记录"></el-table-column> </template>
</el-table-column>
<el-table-column prop="content" label="短信内容">
<template slot-scope="scope">
<span>{{scope.row.content}}</span>
</template>
</el-table-column>
<el-table-column prop="roleIds" label="接收角色">
<template slot-scope="scope">
<span>{{scope.row.name}}</span>
</template>
</el-table-column>
<el-table-column prop="successNum" label="短信发送记录">
<template slot-scope="scope">
<span>{{scope.row.successNum || 0}}/{{scope.row.sendNum || 0}}</span>
</template>
</el-table-column>
<el-table-column prop="status" label="发送状态"> <el-table-column prop="status" label="发送状态">
<template slot-scope="scope"> <template slot-scope="scope">
@ -160,8 +201,16 @@
</div> </div>
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="createName" label="发送人"></el-table-column> <el-table-column prop="createName" label="发送人">
<el-table-column prop="createTime" label="发送时间"></el-table-column> <template slot-scope="scope">
<span>{{scope.row.createName}}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" label="发送时间">
<template slot-scope="scope">
<span>{{scope.row.createTime}}</span>
</template>
</el-table-column>
</el-table> </el-table>
</div> </div>
<pagination <pagination
@ -173,7 +222,7 @@
/> />
</div> </div>
<div class="card-change" style="margin: 20px" v-if="activeindex == 2"> <div class="card-change" style="margin: 20px" v-if="tabindex == 2">
<el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="180px"> <el-form :model="queryParams" ref="queryForm" size="small" :inline="true" label-width="180px">
<el-form-item label="" prop="status"> <el-form-item label="" prop="status">
@ -213,15 +262,51 @@
<div style="height: 70vh;overflow: auto"> <div style="height: 70vh;overflow: auto">
<el-table :data="messageCostList" border style="width: 100%"> <el-table :data="messageCostList" border style="width: 100%">
<el-table-column type="index" align="center" label="序号"></el-table-column> <el-table-column type="index" align="center" label="序号"></el-table-column>
<el-table-column prop="storeId" align="center" label="机构名称"></el-table-column> <el-table-column prop="storeId" align="center" label="机构名称">
<el-table-column prop="contacts" align="center" label="联系人"></el-table-column> <template slot-scope="scope">
<el-table-column prop="mobile" align="center" label="联系方式"></el-table-column> <span>{{scope.row.storeId}}</span>
<el-table-column prop="balance" align="center" label="短信余额"></el-table-column> </template>
<el-table-column prop="messageNum" align="center" label="累计已发短信条数"></el-table-column> </el-table-column>
<el-table-column prop="residueNum" align="center" label="剩余短信条数"></el-table-column> <el-table-column prop="contacts" align="center" label="联系人">
<el-table-column prop="rechargeRecord" align="center" label="短信充值记录"></el-table-column> <template slot-scope="scope">
<el-table-column prop="createName" align="center" label="操作人"></el-table-column> <span>{{scope.row.contacts}}</span>
<el-table-column prop="createTime" align="center" label="操作时间"></el-table-column> </template>
</el-table-column>
<el-table-column prop="mobile" align="center" label="联系方式">
<template slot-scope="scope">
<span>{{scope.row.mobile}}</span>
</template>
</el-table-column>
<el-table-column prop="balance" align="center" label="短信余额">
<template slot-scope="scope">
<span>{{scope.row.balance}}</span>
</template>
</el-table-column>
<el-table-column prop="messageNum" align="center" label="累计已发短信条数">
<template slot-scope="scope">
<span>{{scope.row.messageNum}}</span>
</template>
</el-table-column>
<el-table-column prop="residueNum" align="center" label="剩余短信条数">
<template slot-scope="scope">
<span>{{scope.row.residueNum}}</span>
</template>
</el-table-column>
<el-table-column prop="rechargeRecord" align="center" label="短信充值记录">
<template slot-scope="scope">
<span>{{scope.row.rechargeRecord}}</span>
</template>
</el-table-column>
<el-table-column prop="createName" align="center" label="操作人">
<template slot-scope="scope">
<span>{{scope.row.name}}</span>
</template>
</el-table-column>
<el-table-column prop="createTime" align="center" label="操作时间">
<template slot-scope="scope">
<span>{{scope.row.createTime}}</span>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width"> <el-table-column label="操作" align="center" width="200" class-name="small-padding fixed-width">
<template slot-scope="scope"> <template slot-scope="scope">
<el-button <el-button
@ -288,16 +373,17 @@
</el-form-item> </el-form-item>
<el-form-item> <el-form-item>
<el-button type="primary" @click="submitForm('form')">提交</el-button> <el-button type="primary" @click="submitForm('form')">提交</el-button>
<el-button @click="open = false"> </el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
</el-dialog> </el-dialog>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open2" width="35%" append-to-body> <el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open2" width="35%" append-to-body>
<el-form ref="form" :rules="rules" :model="form2" label-width="120px"> <el-form ref="form2" :rules="rules" :model="form2" label-width="120px">
<el-form-item label="机构名称" prop="deptIdList"> <el-form-item label="机构名称" prop="deptId">
<el-select v-model="form.deptIdList" multiple placeholder="请选择所属机构" style="width: 300px"> <el-select v-model="form2.deptId" placeholder="请选择所属机构" @change="getStaff(form2.deptId)" style="width: 300px">
<el-option <el-option
v-for="item in deptListSelect" v-for="item in deptListSelect"
:key="item.deptId" :key="item.deptId"
@ -306,23 +392,24 @@
></el-option> ></el-option>
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="联系人" prop="content"> <el-form-item label="联系人" prop="contacts">
<el-input type="textarea" v-model="form.content" style="width: 300px"></el-input> <el-input v-model="form2.contacts" style="width: 300px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="联系方式" prop="content"> <el-form-item label="联系方式" prop="mobile">
<el-input type="textarea" v-model="form.content" style="width: 300px"></el-input> <el-input v-model="form2.mobile" style="width: 300px"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('form')">提交</el-button>
</el-form-item> </el-form-item>
</el-form> </el-form>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm2"> </el-button>
<el-button @click="open3 = false"> </el-button>
</div>
</el-dialog> </el-dialog>
<el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open3" width="35%" append-to-body> <el-dialog :title="title" :close-on-click-modal="false" :visible.sync="open3" width="35%" append-to-body>
<el-form ref="form" :rules="rules" :model="form3" label-width="120px"> <el-form ref="form" :rules="rules" :model="form3" label-width="120px">
<el-form-item label="机构名称" prop="deptIdList"> <el-form-item label="机构名称" prop="deptIdList">
<el-select v-model="form.deptIdList" multiple placeholder="请选择所属机构" style="width: 300px"> <el-select v-model="form3.deptIdList" multiple placeholder="请选择所属机构" style="width: 300px">
<el-option <el-option
v-for="item in deptListSelect" v-for="item in deptListSelect"
:key="item.deptId" :key="item.deptId"
@ -332,17 +419,18 @@
</el-select> </el-select>
</el-form-item> </el-form-item>
<el-form-item label="充值金额" prop="content"> <el-form-item label="充值金额" prop="content">
<el-input type="textarea" v-model="form.content" style="width: 300px"></el-input> <el-input type="textarea" v-model="form3.content" style="width: 300px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="短信单价" prop="content"> <el-form-item label="短信单价" prop="content">
<el-input type="textarea" v-model="form.content" style="width: 300px"></el-input> <el-input type="textarea" v-model="form3.content" style="width: 300px"></el-input>
</el-form-item> </el-form-item>
<el-form-item label="短信条数" prop="content"> <el-form-item label="短信条数" prop="content">
<el-input type="textarea" v-model="form.content" style="width: 300px"></el-input> <el-input type="textarea" v-model="form3.content" style="width: 300px"></el-input>
</el-form-item>
<el-form-item>
<el-button type="primary" @click="submitForm('form')">提交</el-button>
</el-form-item> </el-form-item>
<div slot="footer" class="dialog-footer">
<el-button type="primary" @click="submitForm3"> </el-button>
<el-button @click="open3 = false"> </el-button>
</div>
</el-form> </el-form>
</el-dialog> </el-dialog>
@ -356,6 +444,8 @@ import {deleteApi, getListApi, saveApi, updateApi} from "../../api/sys/message";
import {getToken} from '../../utils/auth' import {getToken} from '../../utils/auth'
import {selectChildByDeptId} from "../../api/system/Site/site"; import {selectChildByDeptId} from "../../api/system/Site/site";
import NotifyMode from "./page/mode.vue"; import NotifyMode from "./page/mode.vue";
import {getCostListApi, saveCostApi, updateCostApi} from "@/api/sys/messageCost";
import {getStaffByDeptId} from "@/api/staff/staff";
export default { export default {
name: "printIndex", name: "printIndex",
@ -363,8 +453,8 @@ export default {
dicts: ['dept_ids', 'message_status'], dicts: ['dept_ids', 'message_status'],
data() { data() {
return { return {
activeindex: 0, tabindex: 0,
tablist: [ tabs: [
{ {
name: '短信模板', name: '短信模板',
}, },
@ -404,7 +494,7 @@ export default {
page: 1, page: 1,
pageSize: 10, pageSize: 10,
}, },
messageRecordList:[], messageRecordList: [],
total2: 0, total2: 0,
// //
@ -412,11 +502,11 @@ export default {
page: 1, page: 1,
pageSize: 10, pageSize: 10,
}, },
messageCostList:[], messageCostList: [],
open2:false, open2: false,
form2:{}, form2: {},
open3:false, open3: false,
form3:{}, form3: {},
// //
uploadAction: process.env.VUE_APP_BASE_API + 'backendApi/file/upload', uploadAction: process.env.VUE_APP_BASE_API + 'backendApi/file/upload',
@ -444,6 +534,15 @@ export default {
], ],
content: [ content: [
{required: true, message: "短信介绍不能为空", trigger: "blur"} {required: true, message: "短信介绍不能为空", trigger: "blur"}
],
deptId: [
{required: true, message: "机构名称不能为空", trigger: "blur"}
],
contacts: [
{required: true, message: "联系人不能为空", trigger: "blur"}
],
mobile: [
{required: true, message: "联系方式不能为空", trigger: "blur"}
] ]
} }
}; };
@ -453,12 +552,79 @@ export default {
this.selectChildByDeptIdApi() this.selectChildByDeptIdApi()
}, },
methods: { methods: {
handleAdd2(){ getStaff(deptId){
getStaffByDeptId(deptId).then(res => {
this.form2.contacts = res.data.realName
this.form2.mobile = res.data.mobile
this.$forceUpdate()
})
},
//
submitForm2: function () {
this.$refs["form2"].validate(valid => {
if (valid) {
if (!this.form2.id) {
saveCostApi(this.form2).then(res => {
if (res.data==1){
this.$message.success("添加成功")
this.open2 = false
this.queryParams2.page = 1;
this.getMessageCostList()
}else {
this.$message.error("添加失败,机构名称不可重复!")
}
})
} else {
updateCostApi(this.form).then(res => {
if (res.data==1) {
this.$message.success("修改成功")
this.open = false
this.queryParams.page = 1;
this.getList()
}else {
this.$message.error("添加失败,机构名称不可重复!")
}
})
}
}
});
},
//
submitForm3: function () {
this.$refs["form3"].validate(valid => {
if (valid) {
if (!this.form3.id) {
// saveLinkManageApi(this.form).then(res => {
// if (res.data==1){
// this.$message.success("")
// this.open = false
// this.queryParams.page = 1;
// this.getList()
// }else {
// this.$message.error("/")
// }
// })
} else {
// updateLinkManageApi(this.form).then(res => {
// if (res.data==1) {
// this.$message.success("")
// this.open = false
// this.queryParams.page = 1;
// this.getList()
// }else {
// this.$message.error("/")
// }
// })
}
}
});
},
handleAdd2() {
this.open2 = true this.open2 = true
}, },
getMessageCostList(){ getMessageCostList() {
getListApi(this.queryParams2).then(res => { getCostListApi(this.queryParams2).then(res => {
this.messageCostList = res.data this.messageCostList = res.data.records
this.total2 = res.data.total this.total2 = res.data.total
}) })
}, },
@ -636,24 +802,32 @@ export default {
.tab-box { .tab-box {
width: 100%; width: 100%;
height: 40px;
background: #fff; background: #fff;
display: flex; display: flex;
box-sizing: border-box; box-sizing: border-box;
padding: 0px 50px; margin-bottom: 25px;
} }
.f-box { .tab_ {
height: 40px; width: 85px;
color: #999999; height: 100%;
margin-right: 50px; //border-bottom: 2px solid #FF770F;
display: flex; display: flex;
font-weight: 500;
font-size: 14px;
color: #999999;
align-items: center; align-items: center;
justify-content: center;
margin-left: 50px;
cursor: pointer;
} }
.active { .active {
color: #FF9655 !important; border-bottom: 2px solid #FF770F !important;
border-bottom: 2px solid #FF9655 !important; color: #FF770F !important;
} }
</style> </style>

View File

@ -198,4 +198,14 @@ public class LJStaffController extends BaseController {
public ResponseObject queryStaffList(@PathVariable Integer storeId){ public ResponseObject queryStaffList(@PathVariable Integer storeId){
return getSuccessResult(mtStaffService.queryStaffs(storeId)); return getSuccessResult(mtStaffService.queryStaffs(storeId));
} }
/**
* 根据机构id查询员工信息
* @param deptId
* @return
*/
@GetMapping("/getStaffByDeptId/{deptId}")
public ResponseObject selectStaffByDeptId(@PathVariable Long deptId){
return getSuccessResult(mtStaffService.selectStaffByDeptId(deptId));
}
} }

View File

@ -107,4 +107,11 @@ public interface ILJStaffService extends IService<LJStaff> {
* @return * @return
*/ */
LJStaff selectStaffByStoreId(int storeId); LJStaff selectStaffByStoreId(int storeId);
/**
* 根据机构id查询员工信息
* @param deptId
* @return
*/
LJStaff selectStaffByDeptId(Long deptId);
} }

View File

@ -62,6 +62,7 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
/** /**
* 根据条件分页查询员工信息 * 根据条件分页查询员工信息
*
* @param page * @param page
* @param staff * @param staff
* @return * @return
@ -76,14 +77,14 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
staff.setStoreId(storeId); staff.setStoreId(storeId);
IPage<LJStaff> ljStaffIPage = baseMapper.selectLJStaffList(page, staff); IPage<LJStaff> ljStaffIPage = baseMapper.selectLJStaffList(page, staff);
List<LJStaff> records = ljStaffIPage.getRecords(); List<LJStaff> records = ljStaffIPage.getRecords();
if (CollectionUtils.isNotEmpty(records)){ if (CollectionUtils.isNotEmpty(records)) {
for (LJStaff record : records) { for (LJStaff record : records) {
LambdaQueryWrapper<TagCodeRecord> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<TagCodeRecord> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(TagCodeRecord::getStaffId,record.getId()); queryWrapper.eq(TagCodeRecord::getStaffId, record.getId());
List<TagCodeRecord> list = tagCodeRecordService.list(queryWrapper); List<TagCodeRecord> list = tagCodeRecordService.list(queryWrapper);
if (ObjectUtils.isNotEmpty(list)){ if (ObjectUtils.isNotEmpty(list)) {
record.setTagStatus("1"); record.setTagStatus("1");
}else { } else {
record.setTagStatus("0"); record.setTagStatus("0");
} }
} }
@ -93,6 +94,7 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
/** /**
* 查询所有员工信息 * 查询所有员工信息
*
* @return * @return
*/ */
@Override @Override
@ -100,25 +102,25 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
Integer storeId = nowAccountInfo.getStoreId(); Integer storeId = nowAccountInfo.getStoreId();
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id", storeId);
queryWrapper.eq("status","qy"); queryWrapper.eq("status", "qy");
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
List list = baseMapper.selectList(queryWrapper); List list = baseMapper.selectList(queryWrapper);
return list; return list;
} }
@Override @Override
public List<LJStaff> queryStaffLists(Integer storeId) { public List<LJStaff> queryStaffLists(Integer storeId) {
if (storeId==null){ if (storeId == null) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
storeId = nowAccountInfo.getStoreId(); storeId = nowAccountInfo.getStoreId();
} }
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id", storeId);
queryWrapper.eq("status","qy"); queryWrapper.eq("status", "qy");
/*queryWrapper.eq("role_id","15");*/ /*queryWrapper.eq("role_id","15");*/
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
queryWrapper.eq("is_refuel","xs"); queryWrapper.eq("is_refuel", "xs");
List list = baseMapper.selectList(queryWrapper); List list = baseMapper.selectList(queryWrapper);
return list; return list;
} }
@ -126,17 +128,18 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
@Override @Override
public List<LJStaff> queryStaffLists1(Integer storeId) { public List<LJStaff> queryStaffLists1(Integer storeId) {
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id", storeId);
queryWrapper.eq("status","qy"); queryWrapper.eq("status", "qy");
queryWrapper.eq("role_id","15"); queryWrapper.eq("role_id", "15");
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
queryWrapper.eq("is_refuel","xs"); queryWrapper.eq("is_refuel", "xs");
List list = baseMapper.selectList(queryWrapper); List list = baseMapper.selectList(queryWrapper);
return list; return list;
} }
/** /**
* 根据id查询员工信息 * 根据id查询员工信息
*
* @param id * @param id
* @return * @return
*/ */
@ -151,19 +154,20 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
/** /**
* 根据手机号查询员工信息 * 根据手机号查询员工信息
*
* @param mobile * @param mobile
* @return * @return
*/ */
@Override @Override
public LJStaff selectStaffByMobile(String mobile,Integer storeId) { public LJStaff selectStaffByMobile(String mobile, Integer storeId) {
if (ObjectUtil.isEmpty(storeId)){ if (ObjectUtil.isEmpty(storeId)) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
storeId = nowAccountInfo.getStoreId(); storeId = nowAccountInfo.getStoreId();
} }
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("mobile",mobile); queryWrapper.eq("mobile", mobile);
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id", storeId);
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
LJStaff staff = baseMapper.selectOne(queryWrapper); LJStaff staff = baseMapper.selectOne(queryWrapper);
return staff; return staff;
} }
@ -172,26 +176,28 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
@Override @Override
public LJStaff selectStaffByMobile2(String mobile) { public LJStaff selectStaffByMobile2(String mobile) {
QueryWrapper queryWrapper = new QueryWrapper(); QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.eq("mobile",mobile); queryWrapper.eq("mobile", mobile);
queryWrapper.eq("status","qy"); queryWrapper.eq("status", "qy");
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
LJStaff staff = baseMapper.selectOne(queryWrapper); LJStaff staff = baseMapper.selectOne(queryWrapper);
return staff; return staff;
} }
/** /**
* 根据id批量删除员工信息 * 根据id批量删除员工信息
*
* @param ids * @param ids
*/ */
@Override @Override
public void deleteStaffByIds(Integer[] ids) { public void deleteStaffByIds(Integer[] ids) {
for (int id : ids){ for (int id : ids) {
this.deleteStaffById(id); this.deleteStaffById(id);
} }
} }
/** /**
* 根据id删除员工信息 * 根据id删除员工信息
*
* @param id * @param id
*/ */
@Override @Override
@ -203,6 +209,7 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
/** /**
* 添加用户信息 * 添加用户信息
*
* @param staff * @param staff
* @return * @return
*/ */
@ -213,17 +220,17 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
if (ObjectUtil.isNotEmpty(staff.getStoreId())) { if (ObjectUtil.isNotEmpty(staff.getStoreId())) {
storeId = staff.getStoreId(); storeId = staff.getStoreId();
} }
LJStaff staff2 = this.selectStaffByMobile(staff.getMobile(),storeId); LJStaff staff2 = this.selectStaffByMobile(staff.getMobile(), storeId);
if (ObjectUtil.isNotEmpty(staff2)) return 0; if (ObjectUtil.isNotEmpty(staff2)) return 0;
staff.setStoreId(storeId); staff.setStoreId(storeId);
if (StringUtils.isNotEmpty(staff.getRefundPassword())){ if (StringUtils.isNotEmpty(staff.getRefundPassword())) {
this.entryptPassword(staff); this.entryptPassword(staff);
} }
int row = baseMapper.insert(staff); int row = baseMapper.insert(staff);
LJStaff staff1 = this.selectStaffByMobile(staff.getMobile(),storeId); LJStaff staff1 = this.selectStaffByMobile(staff.getMobile(), storeId);
if (ObjectUtil.isNotEmpty(staff1)){ if (ObjectUtil.isNotEmpty(staff1)) {
// 添加员工码 // 添加员工码
staff1.setStaffCode("https://oilapi.youkerr.com/oilRefuel?storeId="+storeId+"&staffId="+staff1.getId()); staff1.setStaffCode("https://oilapi.youkerr.com/oilRefuel?storeId=" + storeId + "&staffId=" + staff1.getId());
this.updateStaff(staff1); this.updateStaff(staff1);
} }
@ -232,11 +239,11 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
TAccount account = new TAccount(); TAccount account = new TAccount();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss");
String timestamp = dateFormat.format(new Date()); String timestamp = dateFormat.format(new Date());
String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6); String randomString = UUID.randomUUID().toString().replace("-", "").substring(0, 6);
account.setAccountKey(timestamp+randomString); account.setAccountKey(timestamp + randomString);
if (ObjectUtil.isNotEmpty(staff.getAccountName())){ if (ObjectUtil.isNotEmpty(staff.getAccountName())) {
account.setAccountName(staff.getAccountName()); account.setAccountName(staff.getAccountName());
}else { } else {
account.setAccountName(staff.getMobile()); account.setAccountName(staff.getMobile());
} }
account.setAccountStatus(1); account.setAccountStatus(1);
@ -249,27 +256,27 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
LJStore store = storeService.selectStoreByStoreId(storeId); LJStore store = storeService.selectStoreByStoreId(storeId);
account.setDeptId(store.getContractDeptId()); account.setDeptId(store.getContractDeptId());
if (StringUtils.isNotEmpty(staff.getRefundPassword())){ if (StringUtils.isNotEmpty(staff.getRefundPassword())) {
account.setPassword(staff.getPassword()); account.setPassword(staff.getPassword());
}else { } else {
account.setPassword("123456"); account.setPassword("123456");
} }
if (StringUtils.isNotEmpty(staff.getPassword())){ if (StringUtils.isNotEmpty(staff.getPassword())) {
account.setPassword(staff.getPassword()); account.setPassword(staff.getPassword());
}else { } else {
account.setPassword("123456"); account.setPassword("123456");
} }
TDuty tDuty = new TDuty(); TDuty tDuty = new TDuty();
tDuty.setDutyId(Integer.valueOf(staff1.getRoleId())); tDuty.setDutyId(Integer.valueOf(staff1.getRoleId()));
accountService.createAccountInfo(account,tDutyService.getDutyList(tDuty)); accountService.createAccountInfo(account, tDutyService.getDutyList(tDuty));
return row; return row;
} }
@Override @Override
public int addStaff(LJStaff staff,TAccount tAccount) { public int addStaff(LJStaff staff, TAccount tAccount) {
int row = baseMapper.insert(staff); int row = baseMapper.insert(staff);
LJStaff staff1 = this.selectStaffByMobile(staff.getMobile(),null); LJStaff staff1 = this.selectStaffByMobile(staff.getMobile(), null);
if (ObjectUtil.isNotEmpty(staff1)){ if (ObjectUtil.isNotEmpty(staff1)) {
tAccount.setStaffId(staff1.getId()); tAccount.setStaffId(staff1.getId());
accountService.updateAccount(tAccount); accountService.updateAccount(tAccount);
} }
@ -278,23 +285,24 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
/** /**
* 修改用户信息 * 修改用户信息
*
* @param staff * @param staff
* @return * @return
*/ */
@Override @Override
public int updateStaff(LJStaff staff) { public int updateStaff(LJStaff staff) {
int row = 0; int row = 0;
LJStaff staff1 = this.selectStaffByMobile(staff.getMobile(),staff.getStoreId()); LJStaff staff1 = this.selectStaffByMobile(staff.getMobile(), staff.getStoreId());
if (ObjectUtil.isNotEmpty(staff1) && !staff1.getId().equals(staff.getId())){ if (ObjectUtil.isNotEmpty(staff1) && !staff1.getId().equals(staff.getId())) {
row = 0; row = 0;
return row; return row;
} }
if (StringUtils.isEmpty(staff.getStaffCode())){ if (StringUtils.isEmpty(staff.getStaffCode())) {
// 添加员工码 // 添加员工码
staff.setStaffCode("https://oilapi.youkerr.com/oilRefuel?storeId="+staff.getStoreId()+"&staffId="+staff.getId()); staff.setStaffCode("https://oilapi.youkerr.com/oilRefuel?storeId=" + staff.getStoreId() + "&staffId=" + staff.getId());
} }
row = baseMapper.updateById(staff); row = baseMapper.updateById(staff);
if (StringUtils.isNotEmpty(staff.getPassword())){ if (StringUtils.isNotEmpty(staff.getPassword())) {
TAccount tAccount = accountService.selectAccountByStaffId(staff.getId()); TAccount tAccount = accountService.selectAccountByStaffId(staff.getId());
if (ObjectUtil.isNotEmpty(tAccount)) { if (ObjectUtil.isNotEmpty(tAccount)) {
if (StringUtils.isNotEmpty(staff.getPassword())) { if (StringUtils.isNotEmpty(staff.getPassword())) {
@ -311,7 +319,7 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
e.printStackTrace(); e.printStackTrace();
} }
} }
}else { } else {
TAccount tAccount = accountService.selectAccountByStaffId(staff.getId()); TAccount tAccount = accountService.selectAccountByStaffId(staff.getId());
if (ObjectUtil.isNotEmpty(tAccount)) { if (ObjectUtil.isNotEmpty(tAccount)) {
if (tAccount.getAccountName().matches("\\d+")) { if (tAccount.getAccountName().matches("\\d+")) {
@ -350,19 +358,19 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
// } // }
String url = staff.getStaffCode(); String url = staff.getStaffCode();
String area = store.getName(); String area = store.getName();
String finalPath="/temp/qrCode/" + area + ".jpg"; String finalPath = "/temp/qrCode/" + area + ".jpg";
InputStream backgroundStream = this.getClass().getClassLoader().getResourceAsStream(backgroundImage); InputStream backgroundStream = this.getClass().getClassLoader().getResourceAsStream(backgroundImage);
InputStream logoStream = this.getClass().getClassLoader().getResourceAsStream(logoImage); InputStream logoStream = this.getClass().getClassLoader().getResourceAsStream(logoImage);
//背景图片路径 loge图片 二维码 输出地址 //背景图片路径 loge图片 二维码 输出地址
qrCodeUtils.createLogoCodePicture(backgroundStream, logoStream, url, finalPath, staff.getId(),store.getId(),null); qrCodeUtils.createLogoCodePicture(backgroundStream, logoStream, url, finalPath, staff.getId(), store.getId(), null);
File file1 = new File("/temp/qrCode/"); File file1 = new File("/temp/qrCode/");
// 判断目录是否存在 // 判断目录是否存在
if (!file1.exists()) { if (!file1.exists()) {
file1.mkdir(); file1.mkdir();
} }
File file =new File(finalPath); File file = new File(finalPath);
FileInputStream fileInputStream =new FileInputStream(file); FileInputStream fileInputStream = new FileInputStream(file);
MultipartFile resFile = new MockMultipartFile("file", file.getName(), null, fileInputStream); MultipartFile resFile = new MockMultipartFile("file", file.getName(), null, fileInputStream);
// 返回图片路径 // 返回图片路径
String saveFile = backendFileController.saveFile(resFile); String saveFile = backendFileController.saveFile(resFile);
@ -379,16 +387,16 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
@Override @Override
public int auditPrem(String auditPrem) { public int auditPrem(String auditPrem) {
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
int row = baseMapper.auditPrem(nowAccountInfo.getStaffId(),auditPrem); int row = baseMapper.auditPrem(nowAccountInfo.getStaffId(), auditPrem);
return row; return row;
} }
@Override @Override
public List<LJStaff> queryStaffs(int storeId) { public List<LJStaff> queryStaffs(int storeId) {
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id", storeId);
queryWrapper.eq("status","qy"); queryWrapper.eq("status", "qy");
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
List<LJStaff> list = baseMapper.selectList(queryWrapper); List<LJStaff> list = baseMapper.selectList(queryWrapper);
return list; return list;
} }
@ -397,18 +405,27 @@ public class LJStaffServiceImpl extends ServiceImpl<LJStaffMapper, LJStaff> impl
public LJStaff selectStaffByStoreId(int storeId) { public LJStaff selectStaffByStoreId(int storeId) {
QueryWrapper queryWrapper = new QueryWrapper<>(); QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("store_id",storeId); queryWrapper.eq("store_id", storeId);
queryWrapper.eq("status","qy"); queryWrapper.eq("status", "qy");
queryWrapper.eq("if_delete","0"); queryWrapper.eq("if_delete", "0");
//queryWrapper.eq("role_id","12"); //queryWrapper.eq("role_id","12");
queryWrapper.orderByAsc("create_time"); queryWrapper.orderByAsc("create_time");
List<LJStaff> list = baseMapper.selectList(queryWrapper); List<LJStaff> list = baseMapper.selectList(queryWrapper);
LJStaff staff = null; LJStaff staff = null;
if (list.size()>0){ if (list.size() > 0) {
staff = list.get(0); staff = list.get(0);
} }
return staff; return staff;
} }
@Override
public LJStaff selectStaffByDeptId(Long deptId) {
LJStaff ljStaff = null;
LJStore ljStore = storeService.selectStoreByDeptId(deptId);
if (ObjectUtil.isNotEmpty(ljStore)) {
ljStaff = this.selectStaffByStoreId(ljStore.getId());
}
return ljStaff;
}
} }

View File

@ -37,6 +37,10 @@ public class MessageCost extends BaseEntity implements Serializable {
* 油站id * 油站id
*/ */
private Integer storeId; private Integer storeId;
/**
* 机构id
*/
private Integer deptId;
/** /**
* 联系人 * 联系人
*/ */

View File

@ -27,6 +27,8 @@ public interface MessageCostService {
*/ */
MessageCost queryById(Integer id); MessageCost queryById(Integer id);
MessageCost selectByDeptId(Integer deptId);
/** /**
* 新增数据 * 新增数据
* *

View File

@ -1,13 +1,19 @@
package com.fuint.business.setting.service.impl; package com.fuint.business.setting.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.fuint.business.setting.entity.MessageCost; import com.fuint.business.setting.entity.MessageCost;
import com.fuint.business.setting.mapper.MessageCostMapper; import com.fuint.business.setting.mapper.MessageCostMapper;
import com.fuint.business.setting.service.MessageCostService; import com.fuint.business.setting.service.MessageCostService;
import com.fuint.common.dto.AccountInfo;
import com.fuint.common.util.TokenUtil;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Objects;
/** /**
* 短信费用信息表(MessageCost)表服务实现类 * 短信费用信息表(MessageCost)表服务实现类
@ -34,6 +40,13 @@ public class MessageCostServiceImpl extends ServiceImpl<MessageCostMapper,Messag
return baseMapper.selectById(id); return baseMapper.selectById(id);
} }
@Override
public MessageCost selectByDeptId(Integer deptId) {
QueryWrapper queryWrapper = new QueryWrapper<>();
queryWrapper.eq("dept_id",deptId);
return baseMapper.selectOne(queryWrapper);
}
/** /**
* 新增数据 * 新增数据
* *
@ -42,6 +55,13 @@ public class MessageCostServiceImpl extends ServiceImpl<MessageCostMapper,Messag
*/ */
@Override @Override
public int insert(MessageCost messageCost) { public int insert(MessageCost messageCost) {
MessageCost messageCost1 = selectByDeptId(messageCost.getDeptId());
if (ObjectUtil.isNotEmpty(messageCost1)){
return 0;
}
AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo();
messageCost.setChainStoreId(nowAccountInfo.getChainStoreId());
messageCost.setStoreId(nowAccountInfo.getStoreId());
return baseMapper.insert(messageCost); return baseMapper.insert(messageCost);
} }
@ -53,6 +73,10 @@ public class MessageCostServiceImpl extends ServiceImpl<MessageCostMapper,Messag
*/ */
@Override @Override
public int update(MessageCost messageCost) { public int update(MessageCost messageCost) {
MessageCost messageCost1 = selectByDeptId(messageCost.getDeptId());
if (ObjectUtil.isNotEmpty(messageCost1) && !Objects.equals(messageCost1.getId(), messageCost.getId())){
return 0;
}
return baseMapper.updateById(messageCost); return baseMapper.updateById(messageCost);
} }