Commit c2b3f6d6 authored by 廖旭伟's avatar 廖旭伟

Merge remote-tracking branch 'origin/master'

parents b9b4a0d7 f5a933de
-- ---------------------------- -- ----------------------------
2023-9-11 -- 2023-9-11
-- ---------------------------- -- ----------------------------
ALTER TABLE mortals_xhx_user ADD COLUMN `staffId` varchar(64) COMMENT '员工Id,关联用户员工表'; ALTER TABLE mortals_xhx_user ADD COLUMN `staffId` varchar(64) COMMENT '员工Id,关联用户员工表';
ALTER TABLE mortals_xhx_user ADD COLUMN `openId` varchar(64) COMMENT '微信openId'; ALTER TABLE mortals_xhx_user ADD COLUMN `openId` varchar(64) COMMENT '微信openId';
...@@ -108,3 +108,10 @@ CREATE TABLE mortals_xhx_news_up( ...@@ -108,3 +108,10 @@ CREATE TABLE mortals_xhx_news_up(
PRIMARY KEY (`id`) PRIMARY KEY (`id`)
,KEY `upName` (`upName`) USING BTREE ,KEY `upName` (`upName`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='新闻点赞记录信息'; ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='新闻点赞记录信息';
-- ----------------------------
-- 2024-12-5
-- ----------------------------
ALTER TABLE mortals_xhx_company ADD COLUMN `background` varchar(256) default '' COMMENT '背景图片';
#开发环境
NODE_ENV = "development"
VUE_APP_API_BASE_URL= http://192.168.0.98:11086
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
height: 100% !important; height: 100% !important;
} }
.layout-menu-wrapper { .layout-menu-wrapper {
padding: 0 24px;
height: 64px !important; height: 64px !important;
line-height: 64px !important; line-height: 64px !important;
background: linear-gradient(90deg, #1845c6, #2999ff) !important; background: linear-gradient(90deg, #1845c6, #2999ff) !important;
...@@ -9,6 +10,13 @@ ...@@ -9,6 +10,13 @@
.layout-menu-wrapper .layout-logo { .layout-menu-wrapper .layout-logo {
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
width: 200px;
}
.layout-menu-wrapper .menu-list {
margin-left: 50px;
}
.layout-menu-wrapper .menu-list li {
padding: 0 20px;
} }
.layout-menu-wrapper .menu-list li a { .layout-menu-wrapper .menu-list li a {
display: block; display: block;
......
#app { #app {
height: 100% !important; height: 100% !important;
} }
.layout-menu-wrapper { .layout-menu-wrapper {
height: 64px !important; padding: 0 24px;
line-height: 64px !important; height: 64px !important;
background: linear-gradient(90deg, #1845c6, #2999ff) !important; line-height: 64px !important;
background: linear-gradient(90deg, #1845c6, #2999ff) !important;
.layout-logo { .layout-logo {
font-size: 20px; font-size: 20px;
font-weight: bold; font-weight: bold;
} width: 200px;
}
.menu-list {
li {
a {
display: block;
padding: 0 12px;
height: 100%;
font-size: 14px !important;
color: rgba(254, 254, 254, .65) !important;
text-align: center !important;
i {
font-size: 14px !important;
margin-right: 10px !important;
}
i:first-child { .menu-list {
margin-right: 0px !important; margin-left: 50px;
} li {
padding: 0 20px;
a {
display: block;
padding: 0 12px;
height: 100%;
font-size: 14px !important;
color: rgba(254, 254, 254, 0.65) !important;
text-align: center !important;
&:hover { i {
color: #fff !important; font-size: 14px !important;
margin-right: 10px !important;
}
} i:first-child {
margin-right: 0px !important;
}
&.router-link-active, &:hover {
&[active] { color: #fff !important;
//background: #1890ff;
color: #fff !important;
list-style-type: none;
border-bottom: none !important;
padding-bottom: 2px;
background-color: #1890ff !important;
}
}
} }
&.router-link-active,
&[active] {
//background: #1890ff;
color: #fff !important;
list-style-type: none;
border-bottom: none !important;
padding-bottom: 2px;
background-color: #1890ff !important;
}
}
} }
}
} }
.layout-header .layout-submenu-wrapper { .layout-header .layout-submenu-wrapper {
width: 95% !important; width: 95% !important;
margin: 0 auto !important; margin: 0 auto !important;
margin-top: 20px !important; margin-top: 20px !important;
border-top-left-radius: 8px; border-top-left-radius: 8px;
border-top-right-radius: 8px; border-top-right-radius: 8px;
} }
.page.active { .page.active {
width: 95% !important; width: 95% !important;
margin: 0 auto !important; margin: 0 auto !important;
padding: 20px !important; padding: 20px !important;
padding-top: 0 !important; padding-top: 0 !important;
} }
.page { .page {
height: 82% !important; height: 82% !important;
min-height: 82% !important; min-height: 82% !important;
border-bottom-left-radius: 8px; border-bottom-left-radius: 8px;
border-bottom-right-radius: 8px; border-bottom-right-radius: 8px;
} }
\ No newline at end of file
export const timestampToTime = (timestamp, transLength) => {
// 时间戳为10位需*1000,时间戳为13位不需乘1000
let date = null;
if (timestamp) {
if (timestamp.length < 13) {
date = new Date(timestamp * 1000);
} else {
date = new Date(timestamp);
}
let Y = date.getFullYear() + "-";
let M =
date.getMonth() + 1 < 10
? "0" + (date.getMonth() + 1)
: date.getMonth() + 1;
let D =
date.getDate() < 10 ? "-" + "0" + date.getDate() : "-" + date.getDate();
let h =
" " +
(date.getHours() < 10 ? "0" + date.getHours() : date.getHours()) +
":";
let m =
(date.getMinutes() < 10 ? "0" + date.getMinutes() : date.getMinutes()) +
":";
let s =
date.getSeconds() < 10 ? "0" + date.getSeconds() : date.getSeconds();
switch (transLength) {
case 2:
return Y + M;
case 3:
return Y + M + D;
case 6:
return Y + M + D + h + m + s;
}
} else {
return "";
}
};
// 小时:分钟 ==》 转分钟
export const transFormMinut = (String) => {
if (typeof String === "number") {
return;
}
if (!String) {
return 0;
}
let arr = String.split(":");
let hour =
arr[0].indexOf("0") === 0 ? arr[0].substring(1, arr[0].length) : arr[0];
let minu =
arr[1].indexOf("0") === 0 ? arr[1].substring(1, arr[1].length) : arr[1];
return hour * 60 + minu * 1;
// return JSON.stringify(hour * 60 + minu * 1);
};
// // 分钟 ==》 小时
export const transFormTime = (num) => {
if (typeof num != "string" && num !== 0) {
return Math.floor(num / 60).toString() + ":" + (num % 60).toString();
} else {
return "0:00";
}
};
//当前月第一天
export const getFirstDay = () => {
let y = new Date().getFullYear(); //获取年份
let m = new Date().getMonth() + 1; //获取月份
let d = "01";
m = m < 10 ? "0" + m : m; //月份补 0
return [y, m, d].join("-");
};
//当前月最后一天
export const getLastDay = () => {
let y = new Date().getFullYear(); //获取年份
let m = new Date().getMonth() + 1; //获取月份
let d = new Date(y, m, 0).getDate(); //获取当月最后一日
m = m < 10 ? "0" + m : m; //月份补 0
d = d < 10 ? "0" + d : d; //日数补 0
return [y, m, d].join("-");
};
//获取两日期之间日期列表函数
export const getdiffdate = (stime, etime) => {
//初始化日期列表,数组
let diffdate = new Array();
let i = 0;
//开始日期小于等于结束日期,并循环
while (stime <= etime) {
diffdate[i] = stime;
//获取开始日期时间戳
let stime_ts = new Date(stime).getTime();
//增加一天时间戳后的日期
let next_date = stime_ts + 24 * 60 * 60 * 1000;
//拼接年月日,这里的月份会返回(0-11),所以要+1
let next_dates_y = new Date(next_date).getFullYear() + "-";
let next_dates_m =
new Date(next_date).getMonth() + 1 < 10
? "0" + (new Date(next_date).getMonth() + 1) + "-"
: new Date(next_date).getMonth() + 1 + "-";
let next_dates_d =
new Date(next_date).getDate() < 10
? "0" + new Date(next_date).getDate()
: new Date(next_date).getDate();
stime = next_dates_y + next_dates_m + next_dates_d;
//增加数组key
i++;
}
return diffdate;
};
// 获取某个日期是周几
export const getMyDay = (date) => {
let week;
if (date.getDay() == 0) week = "周日";
if (date.getDay() == 1) week = "周一";
if (date.getDay() == 2) week = "周二";
if (date.getDay() == 3) week = "周三";
if (date.getDay() == 4) week = "周四";
if (date.getDay() == 5) week = "周五";
if (date.getDay() == 6) week = "周六";
return week;
};
// 求两个日期的 分钟差
export const getMinu = (s1, s2) => {
var reDate = /\d{4}-\d{1,2}-\d{1,2} /;
s1 = new Date((reDate.test(s1) ? s1 : "2023-01-01 " + s1).replace(/-/g, "/"));
s2 = new Date((reDate.test(s2) ? s2 : "2023-01-01 " + s2).replace(/-/g, "/"));
var ms = s2.getTime() - s1.getTime();
if (ms < 0) return 0;
return Math.floor(ms / 1000 / 60); //分钟
};
// 求两个日期的 秒差
export const getSec = (s1, s2) => {
var reDate = /\d{4}-\d{1,2}-\d{1,2} /;
s1 = new Date((reDate.test(s1) ? s1 : "2023-01-01 " + s1).replace(/-/g, "/"));
s2 = new Date((reDate.test(s2) ? s2 : "2023-01-01 " + s2).replace(/-/g, "/"));
var ms = s2.getTime() - s1.getTime();
if (ms < 0) return 0;
return Math.floor(ms / 1000); //秒
};
// 表单节点封装,支持 input textarea select radio checkbox 及slot方式 // 表单节点封装,支持 input textarea select radio checkbox 及slot方式
<template> <template>
<el-col :span='span'> <el-col :span="span">
<el-form-item :label="label" :prop="prop" class="my-form-field">
<el-form-item :label="label" :prop="prop" class='my-form-field'>
<slot> <slot>
<el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" v-if='type === "text"' :class="inputClass" :clearable='clearable'></el-input> <el-input
<el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" @input="emit" type='password' v-if='type === "password"'></el-input> :disabled="disabled"
:placeholder="placeholder"
<el-input-number :disabled='disabled' v-model="field" size="small" :placeholder='placeholder' @change="emit" @input="emit" v-if='type === "num"'></el-input-number> v-model="field"
@change="emit"
@input="emit"
v-if="type === 'text'"
:class="inputClass"
:clearable="clearable"
></el-input>
<el-input
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
@input="emit"
type="password"
v-if="type === 'password'"
></el-input>
<el-input-number
:disabled="disabled"
v-model="field"
size="small"
:placeholder="placeholder"
@change="emit"
@input="emit"
v-if="type === 'num'"
></el-input-number>
<el-input :disabled='disabled' :placeholder='placeholder' v-model="field" @change="emit" :rows='rows' @input="emit" v-if='type === "textarea"' type='textarea' :autosize="textareaSize" :class="inputClass"></el-input> <el-input
:disabled="disabled"
:placeholder="placeholder"
v-model="field"
@change="emit"
:rows="rows"
@input="emit"
v-if="type === 'textarea'"
type="textarea"
:autosize="textareaSize"
:class="inputClass"
></el-input>
<el-select :disabled='disabled' v-model="field" @change="emit" :multiple='multiple' :filterable='filterable' :clearable='clearable' v-if='type === "select"'> <el-select
:disabled="disabled"
v-model="field"
@change="emit"
:multiple="multiple"
:filterable="filterable"
:clearable="clearable"
v-if="type === 'select'"
>
<el-option <el-option
v-for="($label, $value) in enumData" v-for="($label, $value) in enumData"
:key="$value" :key="$value"
...@@ -21,25 +63,54 @@ ...@@ -21,25 +63,54 @@
></el-option> ></el-option>
</el-select> </el-select>
<el-radio-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "radio"'> <el-radio-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'radio'"
>
<el-radio <el-radio
v-for='($label, $value) in enumData' v-for="($label, $value) in enumData"
:key='$value' :key="$value"
:label="$value" :label="$value"
>{{$label}}</el-radio> >{{ $label }}</el-radio
>
</el-radio-group> </el-radio-group>
<el-checkbox-group :disabled='disabled' v-model="field" @change="emit" v-if='type === "checkbox"'> <el-checkbox-group
:disabled="disabled"
v-model="field"
@change="emit"
v-if="type === 'checkbox'"
>
<el-checkbox <el-checkbox
v-for='($label, $value) in enumData' v-for="($label, $value) in enumData"
:key='$value' :key="$value"
:label="$value" :label="$value"
>{{$label}}</el-checkbox> >{{ $label }}</el-checkbox
>
</el-checkbox-group> </el-checkbox-group>
<el-date-picker :disabled='disabled' type="date" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "date"'></el-date-picker> <el-date-picker
<el-date-picker :disabled='disabled' type="datetime" value-format="yyyy-MM-dd HH:mm:ss" v-model="field" @change="emit" @input="emit" placeholder="选择日期" v-if='type === "datetime"'></el-date-picker> :disabled="disabled"
type="date"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
v-if="type === 'date'"
></el-date-picker>
<el-date-picker
:disabled="disabled"
type="datetime"
value-format="yyyy-MM-dd HH:mm:ss"
v-model="field"
@change="emit"
@input="emit"
placeholder="选择日期"
v-if="type === 'datetime'"
></el-date-picker>
</slot> </slot>
</el-form-item> </el-form-item>
</el-col> </el-col>
...@@ -48,29 +119,29 @@ ...@@ -48,29 +119,29 @@
<script> <script>
export default { export default {
props: { props: {
// 字段值 // 字段值
value: { value: {
type: [String, Number, Array], type: [String, Number, Array],
}, },
// 组件的el-col span宽度 1-24,默认12 // 组件的el-col span宽度 1-24,默认12
span: { span: {
type: Number, type: Number,
default: 12, default: 12,
}, },
// 字段类型: text,password,textarea,select,radio,checkbox,date,datetime // 字段类型: text,password,textarea,select,radio,checkbox,date,datetime
type: { type: {
type: String, type: String,
default: 'text', default: "text",
}, },
// 字段name // 字段name
prop: { prop: {
type: String, type: String,
default: '', default: "",
}, },
// 字段中文标题 // 字段中文标题
label: { label: {
type: String, type: String,
default: '', default: "",
}, },
// 是否禁用 // 是否禁用
disabled: { disabled: {
...@@ -80,18 +151,18 @@ export default { ...@@ -80,18 +151,18 @@ export default {
// 是否提示 // 是否提示
placeholder: { placeholder: {
type: String, type: String,
default: '', default: "",
}, },
// 字段所需的枚举类型 // 字段所需的枚举类型
enumData: { enumData: {
type: Object, type: Object,
default: ()=>{}, default: () => {},
}, },
// textarea专用-自适应内容高度 // textarea专用-自适应内容高度
textareaSize: { textareaSize: {
type: Object, type: Object,
default: ()=>{}, default: () => {},
}, },
// select专用-是否可搜索 // select专用-是否可搜索
filterable: { filterable: {
...@@ -111,38 +182,39 @@ export default { ...@@ -111,38 +182,39 @@ export default {
// 字段所需的枚举类型 // 字段所需的枚举类型
options: { options: {
type: Array, type: Array,
default: ()=>[], default: () => [],
}, },
children: { children: {
type: Array, type: Array,
default: ()=>[], default: () => [],
}, },
inputClass: { inputClass: {
type: String, type: String,
default: '', default: "",
} },
}, },
methods: { methods: {
emit() { emit() {
this.$emit('input', this.newVal) this.$emit("input", this.newVal);
this.$emit('change', this.newVal) this.$emit("change", this.newVal);
} console.log(this.newVal);
},
}, },
computed: { computed: {
field: { field: {
get() { get() {
return this.value return this.value;
}, },
set(val) { set(val) {
this.newVal = val; this.newVal = val;
} },
} },
}, },
data() { data() {
return { return {
newVal: this.value, newVal: this.value,
} };
} },
} };
</script> </script>
...@@ -11,11 +11,11 @@ ...@@ -11,11 +11,11 @@
<router-link to="/"> <router-link to="/">
<img <img
:src="sysLogo ? sysLogo : require('../assets/images/logo.png')" :src="sysLogo ? sysLogo : require('../assets/images/logo.png')"
style="margin-bottom:5px" style="margin-bottom: 5px"
height="40" height="40"
alt="" alt=""
/> />
<b style="color:white;font-size:18px;" <b style="color: white; font-size: 18px"
>&nbsp;&nbsp;&nbsp; >&nbsp;&nbsp;&nbsp;
{{ sysName ? sysName : "企业服务平台" }} {{ sysName ? sysName : "企业服务平台" }}
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</b
...@@ -43,7 +43,7 @@ ...@@ -43,7 +43,7 @@
</span> --> </span> -->
<el-dropdown @command="handleCommand"> <el-dropdown @command="handleCommand">
<span class="el-dropdown-link" style="color:white"> <span class="el-dropdown-link" style="color: white">
{{ userData.currUserName }} {{ userData.currUserName }}
<i class="el-icon-arrow-down el-icon--right"></i> <i class="el-icon-arrow-down el-icon--right"></i>
</span> </span>
...@@ -249,9 +249,7 @@ export default { ...@@ -249,9 +249,7 @@ export default {
} }
} }
} }
.layout-profile {
padding-right: 30px;
}
} }
.layout-submenu-wrapper { .layout-submenu-wrapper {
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
<template> <template>
<div class="component-upload-image"> <div class="component-upload-image">
<el-upload <el-upload
:action="uploadImgUrl+'?prePath=' +prePath" :action="uploadImgUrl + '?prePath=' + prePath"
list-type="picture-card" list-type="picture-card"
:on-success="handleUploadSuccess" :on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload" :before-upload="handleBeforeUpload"
...@@ -11,14 +11,22 @@ ...@@ -11,14 +11,22 @@
:show-file-list="false" :show-file-list="false"
:headers="headers" :headers="headers"
style="display: inline-block; vertical-align: top" style="display: inline-block; vertical-align: top"
v-if="!isList"
> >
<el-image v-if="!value" :src="value"> <el-image
v-if="!value"
:src="value.indexOf('http') == -1 ? baseUrl + value : value"
>
<div slot="error" class="image-slot"> <div slot="error" class="image-slot">
<i class="el-icon-plus" /> <i class="el-icon-plus" />
</div> </div>
</el-image> </el-image>
<div v-else class="image"> <div v-else class="image">
<el-image :src="value" :style="`width:150px;height:150px;`" fit="fill"/> <el-image
:src="value.indexOf('http') == -1 ? baseUrl + value : value"
:style="`width:150px;height:150px;`"
fit="fill"
/>
<div class="mask"> <div class="mask">
<div class="actions"> <div class="actions">
<span title="预览" @click.stop="dialogVisible = true"> <span title="预览" @click.stop="dialogVisible = true">
...@@ -31,8 +39,36 @@ ...@@ -31,8 +39,36 @@
</div> </div>
</div> </div>
</el-upload> </el-upload>
<el-dialog :visible.sync="dialogVisible" title="预览" width="800" append-to-body> <el-upload
<img :src="value" style="display: block; max-width: 100%; margin: 0 auto;"> :action="uploadImgUrl + '?prePath=' + prePath"
list-type="picture-card"
:on-remove="handleRemove"
:on-success="handleUploadSuccess"
:before-upload="handleBeforeUpload"
:on-preview="handlePictureCardPreview"
:file-list="imgList"
accept=".jpeg,.png,.jpg,.bmp,.gif"
:headers="headers"
v-else
>
<i class="el-icon-plus"></i>
</el-upload>
<el-dialog
:visible.sync="dialogVisible"
title="预览"
width="800"
append-to-body
>
<img
:src="dialogImageUrl"
style="display: block; max-width: 100%; margin: 0 auto"
v-if="isList"
/>
<img
:src="value"
style="display: block; max-width: 100%; margin: 0 auto"
v-else
/>
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
...@@ -41,8 +77,11 @@ ...@@ -41,8 +77,11 @@
export default { export default {
data() { data() {
return { return {
baseUrl: process.env.VUE_APP_API_BASE_URL + "/",
dialogVisible: false, dialogVisible: false,
uploadImgUrl: "/enterprise/file/commonupload", // 上传的图片服务器地址 uploadImgUrl: "/enterprise/file/commonupload", // 上传的图片服务器地址
imgList: [],
dialogImageUrl: "",
}; };
}, },
props: { props: {
...@@ -53,16 +92,52 @@ export default { ...@@ -53,16 +92,52 @@ export default {
//保存服务器路径前缀地址 //保存服务器路径前缀地址
prePath: { prePath: {
type: String, type: String,
default: '', default: "",
},
isList: {
type: Boolean,
default: false,
},
},
mounted() {
// 判断是否为多图上传
if (this.isList) {
if (this.value && this.value != "") {
this.imgList = [];
let arr = [];
arr = this.value?.split(",");
arr.forEach((v) => {
let obj = {};
obj.name = "轮播图";
obj.uid = parseInt(Math.random(0, 100));
v.indexOf("http") == -1
? (obj.url = this.baseUrl + v)
: (obj.url = v);
this.imgList.push(obj);
});
}
} }
}, },
methods: { methods: {
handleRemove(file, fileList) {
console.log(fileList);
this.imgList = fileList;
},
handlePictureCardPreview(file) {
this.dialogImageUrl = file.url;
this.dialogVisible = true;
},
removeImage() { removeImage() {
this.$emit("input", ""); this.$emit("input", "");
}, },
handleUploadSuccess(res) { handleUploadSuccess(res, file, fileList) {
this.$emit("input", res.url); if (this.isList) {
this.loading.close(); this.loading.close();
this.imgList = fileList;
} else {
this.$emit("input", res.url);
this.loading.close();
}
}, },
handleBeforeUpload() { handleBeforeUpload() {
this.loading = this.$loading({ this.loading = this.$loading({
......
<template>
<!-- 弹出框表单 -->
<el-drawer
:visible.sync="open"
:direction="direction"
:destroy-on-close="true"
size="40%"
>
<div slot="title" class="title">
<h4
:class="activeTitle == 0 ? 'title_text active' : 'title_text'"
@click="handleTitle(0)"
>
浏览({{ drawerTableData.row ? drawerTableData.row.viewNums : 0 }}
</h4>
<h4
:class="activeTitle == 1 ? 'title_text active' : 'title_text'"
@click="handleTitle(1)"
>
分享({{ drawerTableData.row ? drawerTableData.row.shareNums : 0 }}
</h4>
</div>
<div class="form">
<el-table :data="tableData.data" border style="width: 100%">
<el-table-column type="index" width="50" label="序号">
</el-table-column>
<el-table-column prop="viewName" label="浏览人员"> </el-table-column>
<el-table-column prop="sumViews" label="浏览次数"> </el-table-column>
<el-table-column prop="viewTime" label="最近浏览时间">
<template slot-scope="scope">
<span>{{ timeFix(scope.row.viewTime) }}</span>
</template>
</el-table-column>
</el-table>
<div class="block">
<el-pagination
@current-change="handleCurrentChange"
:current-page.sync="tableData.current_page"
:page-size="10"
layout="total, prev, pager, next"
:total="tableData.total"
>
</el-pagination>
</div>
</div>
</el-drawer>
</template>
<script>
import form from "@/assets/mixins/formdialog";
import { timestampToTime } from "@/assets/utils/dateFormat.js";
export default {
name: "NewsDetail",
props: {
drawerTableData: {
type: Object,
default: {},
},
},
mixins: [form],
components: {},
computed: {
timeFix(val) {
console.log(val);
return (val) => {
let time = timestampToTime(val, 6);
return time;
};
},
},
data() {
return {
// 遮罩层
loading: false,
// 弹出层标题
title: "新闻",
// 是否显示弹出层
open: false,
tableData: [],
activeTitle: 0,
};
},
methods: {
// 标题切换操作
handleTitle(i) {
this.activeTitle = i;
this.activeTitle == 0 ? this.handleView() : this.handleShare();
},
handleCurrentChange(val) {
console.log(`当前页: ${val}`);
this.activeTitle == 0 ? this.handleView(val) : this.handleShare(val);
},
//查询详细
handleView(val = 1) {
this.$post("/news/record/list", {
newsId: this.drawerTableData.row.id,
page: val,
})
.then((res) => {
if (res.code == 1) {
this.tableData = res.data;
}
})
.catch((error) => {
this.$message.error(error.message);
});
},
//分享详细
handleShare(val = 1) {
this.$post("/news/share/list", {
newsId: this.drawerTableData.row.id,
page: val,
})
.then((res) => {
if (res.code == 1) {
console.log("shares-data", res);
this.tableData = res.data;
}
})
.catch((error) => {
this.$message.error(error.message);
});
},
/** 编辑 */
edit(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "news/edit";
this.getData();
this.pageInfo.type = "edit";
this.title = "修改新闻";
},
/** 新增 */
add(row) {
this.reset();
this.urls.currUrl = "news/add";
this.getData();
this.pageInfo.type = "add";
this.title = "新增新闻";
},
/** 查看*/
view(row) {
this.reset();
this.query = { id: row.id };
this.urls.currUrl = "news/view";
this.getData();
this.pageInfo.type = "view";
this.title = "新闻详细";
},
/**取消按钮 */
cancel() {
this.open = false;
},
/**获取数据后弹框 */
afterRender(data) {
this.open = true;
},
},
watch: {
open: {
handler(val) {
if (val) {
this.tableData = this.drawerTableData;
console.log(this.drawerTableData);
this.drawerTableData.title == "浏览"
? (this.activeTitle = 0)
: (this.activeTitle = 1);
}
},
},
},
};
</script>
<style lang="less" scoped>
.footerbtns {
margin-top: 20px;
padding-top: 20px;
border-top: 1px solid gainsboro;
display: flex;
justify-content: center;
align-content: center;
}
.form {
width: 100%;
padding: 20px;
}
.title {
width: 100%;
display: flex;
align-items: center;
.title_text {
width: 20%;
color: #333;
opacity: 0.5;
cursor: pointer;
}
.active {
opacity: 1;
color: #333;
}
}
.block {
width: 100%;
text-align: end;
}
</style>
\ No newline at end of file
...@@ -14,6 +14,22 @@ ...@@ -14,6 +14,22 @@
<version>1.0.0-SNAPSHOT</version> <version>1.0.0-SNAPSHOT</version>
</parent> </parent>
<properties>
<!-- 默认值 -->
<profiles.server.debug></profiles.server.debug>
<profiles.server.path>/enterprise</profiles.server.path>
<profiles.log.path>/home/mortals/app/logs</profiles.log.path>
<profiles.log.level>info</profiles.log.level>
<profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.filepath>/mortals/app/data</profiles.filepath>
<profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group>
<profiles.nacos.namespace>smart-gov</profiles.nacos.namespace>
<profiles.req.json.check>false</profiles.req.json.check>
<profiles.trustedReferer></profiles.trustedReferer>
<package.environment>build</package.environment>
<skipUi>true</skipUi>
</properties>
<profiles> <profiles>
<profile> <profile>
<id>develop</id> <id>develop</id>
...@@ -42,6 +58,7 @@ ...@@ -42,6 +58,7 @@
<profiles.active>test</profiles.active> <profiles.active>test</profiles.active>
<profiles.platform.type>standalone</profiles.platform.type> <profiles.platform.type>standalone</profiles.platform.type>
<profiles.server.port>21086</profiles.server.port> <profiles.server.port>21086</profiles.server.port>
<profiles.server.debug>-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=6519</profiles.server.debug>
<profiles.server.path>/enterprise</profiles.server.path> <profiles.server.path>/enterprise</profiles.server.path>
<profiles.publish.path>/home/publish</profiles.publish.path> <profiles.publish.path>/home/publish</profiles.publish.path>
<profiles.nacos.server-addr>192.168.0.252:8848</profiles.nacos.server-addr> <profiles.nacos.server-addr>192.168.0.252:8848</profiles.nacos.server-addr>
...@@ -55,36 +72,25 @@ ...@@ -55,36 +72,25 @@
<profiles.log.path>/home/mortals/app/logs</profiles.log.path> <profiles.log.path>/home/mortals/app/logs</profiles.log.path>
<profiles.log.level>INFO</profiles.log.level> <profiles.log.level>INFO</profiles.log.level>
<package.environment>test</package.environment> <package.environment>test</package.environment>
<skipUi>false</skipUi> <skipUi>true</skipUi>
</properties> </properties>
</profile> </profile>
<profile> <profile>
<id>product</id> <id>product</id>
<properties> <properties>
<profiles.active>product</profiles.active> <profiles.active>product</profiles.active>
<profiles.platform.type>cloud</profiles.platform.type> <profiles.platform.type>standalone</profiles.platform.type>
<profiles.server.port>11086</profiles.server.port> <profiles.server.port>21086</profiles.server.port>
<profiles.server.path>/office</profiles.server.path> <profiles.nacos.server-addr>127.0.0.1:8848</profiles.nacos.server-addr>
<profiles.nacos.server-addr>172.15.28.120:8848</profiles.nacos.server-addr>
<profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group> <profiles.nacos.group>DEFAULT_GROUP</profiles.nacos.group>
<profiles.nacos.namespace>smart-gov</profiles.nacos.namespace> <profiles.nacos.namespace>smart-gov</profiles.nacos.namespace>
<profiles.rabbitmq.host>172.15.28.115</profiles.rabbitmq.host> <package.environment>build:prod</package.environment>
<profiles.rabbitmq.port>5672</profiles.rabbitmq.port> <skipDeploy>true</skipDeploy>
<profiles.rabbitmq.username>taxi_mq</profiles.rabbitmq.username>
<profiles.rabbitmq.password>admin@2020</profiles.rabbitmq.password>
<profiles.rabbitmq.virtualhost>/</profiles.rabbitmq.virtualhost>
<profiles.log.path>/home/mortals/app/logs</profiles.log.path>
<profiles.log.level>info</profiles.log.level>
<profiles.publish.path>/home/publish</profiles.publish.path>
<package.environment>build</package.environment>
<skipUi>false</skipUi>
</properties> </properties>
</profile> </profile>
</profiles> </profiles>
<properties>
</properties>
<dependencies> <dependencies>
......
...@@ -14,7 +14,7 @@ SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log" ...@@ -14,7 +14,7 @@ SHELL_LOG="${BASEDIR}/${SHELL_NAME}.log"
JAVA_HOME="/usr/local/java/jdk1.8" JAVA_HOME="/usr/local/java/jdk1.8"
SERVICE_PATH="/usr/lib/systemd/system" SERVICE_PATH="/usr/lib/systemd/system"
PUBLISH_PATH="@profiles.publish.path@" PUBLISH_PATH="/home/publish"
PROJECT_NAME="@project.artifactId@" PROJECT_NAME="@project.artifactId@"
PROJECT_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}" PROJECT_EXECPATH="${PUBLISH_PATH}/${PROJECT_NAME}"
...@@ -35,7 +35,7 @@ clear_deploy() { ...@@ -35,7 +35,7 @@ clear_deploy() {
SERVICE=$1 SERVICE=$1
EXECPATH=$2 EXECPATH=$2
#清理后台自启服务 #清理后台自启服务
rm -rf ${SERVICE} rm -f ${SERVICE}
#清理执行文件目录 #清理执行文件目录
rm -rf ${EXECPATH} rm -rf ${EXECPATH}
} }
...@@ -58,6 +58,7 @@ build_service() { ...@@ -58,6 +58,7 @@ build_service() {
echo "[Service]" >>${SERVICE} echo "[Service]" >>${SERVICE}
echo "Environment=\"JAVA_HOME=$JAVA_HOME\"" >>${SERVICE} echo "Environment=\"JAVA_HOME=$JAVA_HOME\"" >>${SERVICE}
echo "Type=forking" >>${SERVICE} echo "Type=forking" >>${SERVICE}
echo "ExecStartPre=-/bin/sleep 5s" >>${SERVICE}
echo "ExecStart=${EXECPATH}/bin/start.sh" >>${SERVICE} echo "ExecStart=${EXECPATH}/bin/start.sh" >>${SERVICE}
echo "ExecStop=${EXECPATH}/bin/shutdown.sh" >>${SERVICE} echo "ExecStop=${EXECPATH}/bin/shutdown.sh" >>${SERVICE}
echo "PrivateTmp=true" >>${SERVICE} echo "PrivateTmp=true" >>${SERVICE}
...@@ -103,8 +104,11 @@ project_ui_deploy() { ...@@ -103,8 +104,11 @@ project_ui_deploy() {
main() { main() {
echo "后台服务部署" echo "后台服务部署"
project_deploy project_deploy
echo "前端服务部署" #判断是否需要部署ui
project_ui_deploy if [ "@skipUi@" == "false" ];then
echo "前端服务部署"
project_ui_deploy
fi;
exit ${RETVAL} exit ${RETVAL}
} }
......
#! /bin/sh #!/bin/sh
PORT="@profiles.server.port@" PORT="@profiles.server.port@"
BASEDIR=$(dirname $0) BASEDIR=`dirname $0`
BASEDIR=$( ( BASEDIR=`(cd "$BASEDIR"; pwd)`
cd "$BASEDIR"
pwd
))
PROJECT_NAME="@project.artifactId@" PROJECT_NAME="@project.artifactId@"
MAIN_CLASS="$PROJECT_NAME" MAIN_CLASS="$PROJECT_NAME";
SUCCESS=0
if [ ! -n "$PORT" ]; then FAIL=9
echo $"Usage: $0 {port}" if [ ! -n "$PORT" ]; then
exit $FAIL echo $"Usage: $0 {port}"
exit $FAIL
fi fi
pid=$(ps ax | grep -i "$MAIN_CLASS" | grep java | grep -v grep | awk '{print $1}')
if [ -z "$pid" ]; then pid=`ps ax | grep -i "$MAIN_CLASS" | grep java | grep -v grep | awk '{print $1}'`
echo "No Server running." if [ -z "$pid" ] ; then
exit 1 echo "No Server running."
exit $FAIL;
fi fi
echo "stoping application $PROJECT_NAME......" echo "stoping application $PROJECT_NAME......"
...@@ -24,3 +23,5 @@ echo "stoping application $PROJECT_NAME......" ...@@ -24,3 +23,5 @@ echo "stoping application $PROJECT_NAME......"
kill -15 ${pid} kill -15 ${pid}
echo "Send shutdown request to Server $PROJECT_NAME OK" echo "Send shutdown request to Server $PROJECT_NAME OK"
#!/bin/sh #!/bin/sh
PORT="@profiles.server.port@" PORT="@profiles.server.port@"
DEBUG=@profiles.server.debug@
BASEDIR=`dirname $0`/.. BASEDIR=`dirname $0`/..
BASEDIR=`(cd "$BASEDIR"; pwd)` BASEDIR=`(cd "$BASEDIR"; pwd)`
PROJECT_NAME="@project.artifactId@"; PROJECT_NAME="@project.artifactId@";
MAIN_CLASS="$PROJECT_NAME-@project.version@.jar"; MAIN_CLASS="$PROJECT_NAME-@project.version@.jar";
LOG_PATH="@profiles.log.path@/$PROJECT_NAME" LOG_PATH="@profiles.log.path@/$PROJECT_NAME"
GC_PATH=$LOG_PATH/PROJECT_NAME"-gc.log" GC_PATH=$LOG_PATH/$PROJECT_NAME"-gc.log"
HS_ERR_PATH=$LOG_PATH/PROJECT_NAME"-hs_err.log" HS_ERR_PATH=$LOG_PATH/$PROJECT_NAME"-hs_err.log"
HEAP_DUMP_PATH=$LOG_PATH/PROJECT_NAME"-heap_dump.hprof" HEAP_DUMP_PATH=$LOG_PATH/$PROJECT_NAME"-heap_dump.hprof"
TEMP_PATH=$LOG_PATH/temp/ TEMP_PATH=$LOG_PATH/temp/
SUCCESS=0 SUCCESS=0
FAIL=9 FAIL=9
...@@ -32,8 +33,9 @@ if [ -z "$JAVACMD" ] ; then ...@@ -32,8 +33,9 @@ if [ -z "$JAVACMD" ] ; then
JAVACMD="$JAVA_HOME/bin/java" JAVACMD="$JAVA_HOME/bin/java"
fi fi
else else
JAVACMD=`which java` JAVACMD=`which java > /dev/null 2>&1`
echo "Error: JAVA_HOME is $JAVACMD" echo "Error: JAVA_HOME is not defined correctly."
exit $ERR_NO_JAVA
fi fi
fi fi
...@@ -44,7 +46,7 @@ fi ...@@ -44,7 +46,7 @@ fi
if [ -e "$BASEDIR" ] if [ -e "$BASEDIR" ]
then then
JAVA_OPTS="-Xms512M -Xmx1024M -Xss256K -XX:+UseAdaptiveSizePolicy -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:GCTimeRatio=39 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$GC_PATH -XX:+HeapDumpOnOutOfMemoryError -XX:ErrorFile=$HS_ERR_PATH -XX:HeapDumpPath=$HEAP_DUMP_PATH" JAVA_OPTS="-Xms128M -Xmx512M -Xss256K -XX:+UseAdaptiveSizePolicy -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:GCTimeRatio=39 -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:$GC_PATH -XX:+HeapDumpOnOutOfMemoryError -XX:ErrorFile=$HS_ERR_PATH -XX:HeapDumpPath=$HEAP_DUMP_PATH"
fi fi
CLASSPATH=$CLASSPATH_PREFIX: CLASSPATH=$CLASSPATH_PREFIX:
...@@ -55,12 +57,12 @@ cd "$BASEDIR/boot"; ...@@ -55,12 +57,12 @@ cd "$BASEDIR/boot";
echo "starting application $PROJECT_NAME......" echo "starting application $PROJECT_NAME......"
exec "$JAVACMD" $JAVA_OPTS \ exec "$JAVACMD" $JAVA_OPTS \
$EXTRA_JVM_ARGUMENTS \ $EXTRA_JVM_ARGUMENTS \
$DEBUG \
-Dapp.name="$PROJECT_NAME" \ -Dapp.name="$PROJECT_NAME" \
-Dapp.port="$PORT" \ -Dapp.port="$PORT" \
-Dbasedir="$BASEDIR" \ -Dbasedir="$BASEDIR" \
-Dfile.encoding=utf-8 \
-Djava.io.tmpdir=$TEMP_PATH \ -Djava.io.tmpdir=$TEMP_PATH \
-Dloader.path="file://$BASEDIR/conf,file://$BASEDIR/lib" \
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=41086 \
-jar $MAIN_CLASS \ -jar $MAIN_CLASS \
> /dev/null & > /dev/null &
......
package com.mortals.xhx.busiz.controller; package com.mortals.xhx.busiz.controller;
import com.mortals.framework.annotation.UnAuth;
import com.mortals.framework.idempotent.helper.IdempotentHelper; import com.mortals.framework.idempotent.helper.IdempotentHelper;
import com.mortals.xhx.busiz.service.TestIdempotentService; import com.mortals.xhx.busiz.service.TestIdempotentService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
...@@ -28,6 +29,7 @@ public class TestIdempotentController { ...@@ -28,6 +29,7 @@ public class TestIdempotentController {
* url: localhost:12345/v1/idempotent/test-with-result?source=taobao&operationType=publish_product&businessKey=pd_20230105007&name=lisi * url: localhost:12345/v1/idempotent/test-with-result?source=taobao&operationType=publish_product&businessKey=pd_20230105007&name=lisi
*/ */
@GetMapping("/test-with-result") @GetMapping("/test-with-result")
@UnAuth
public String testWithResult(String source, public String testWithResult(String source,
String operationType, String operationType,
String businessKey, String businessKey,
...@@ -44,6 +46,7 @@ public class TestIdempotentController { ...@@ -44,6 +46,7 @@ public class TestIdempotentController {
* url : localhost:12345/v1/idempotent/test-with-no-result?source=taobao&operationType=publish_product&businessKey=pd_20230105008&name=zhangsan * url : localhost:12345/v1/idempotent/test-with-no-result?source=taobao&operationType=publish_product&businessKey=pd_20230105008&name=zhangsan
*/ */
@GetMapping("/test-with-no-result") @GetMapping("/test-with-no-result")
@UnAuth
public String testWithNoResult(String source, public String testWithNoResult(String source,
String operationType, String operationType,
String businessKey, String businessKey,
......
...@@ -13,150 +13,154 @@ import com.mortals.xhx.module.company.model.vo.CompanyVo; ...@@ -13,150 +13,154 @@ import com.mortals.xhx.module.company.model.vo.CompanyVo;
import com.mortals.xhx.module.company.model.CompanyLabelsEntity; import com.mortals.xhx.module.company.model.CompanyLabelsEntity;
import lombok.Data; import lombok.Data;
/** /**
* 公司实体对象 * 公司实体对象
* *
* @author zxfei * @author zxfei
* @date 2023-09-18 * @date 2024-12-05
*/ */
@Data @Data
public class CompanyEntity extends CompanyVo { public class CompanyEntity extends CompanyVo {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
/** /**
* 公司名称 * 公司名称
*/ */
@Excel(name = "公司名称") @Excel(name = "公司名称")
private String companyName; private String companyName;
/** /**
* 公司编码 * 公司编码
*/ */
private String companyCode; private String companyCode;
/** /**
* 注册号 * 注册号
*/ */
private String registrationNumber; private String registrationNumber;
/** /**
* 法定代表人 * 法定代表人
*/ */
private String legalRepresentative; private String legalRepresentative;
/** /**
* 注册资本 * 注册资本
*/ */
private String registeredCapital; private String registeredCapital;
/** /**
* 公司类型 * 公司类型
*/ */
private String companyType; private String companyType;
/** /**
* 经营范围 * 经营范围
*/ */
private String businessScope; private String businessScope;
/** /**
* 经营地址 * 经营地址
*/ */
private String businessAdress; private String businessAdress;
/** /**
* 所在地 * 所在地
*/ */
private String location; private String location;
/** /**
* 所属区域编码 * 所属区域编码
*/ */
private String areaCode; private String areaCode;
/** /**
* 所属区域名称 * 所属区域名称
*/ */
private String areaName; private String areaName;
/** /**
* 联系电话 * 联系电话
*/ */
private String contactPhone; private String contactPhone;
/** /**
* 电子邮件地址 * 电子邮件地址
*/ */
private String email; private String email;
/** /**
* 公司网站 * 公司网站
*/ */
private String website; private String website;
/** /**
* 税务登记号 * 税务登记号
*/ */
private String taxRegistrationNumber; private String taxRegistrationNumber;
/** /**
* 社会信用代码 * 社会信用代码
*/ */
private String socialCreditCode; private String socialCreditCode;
/** /**
* 商标信息 * 商标信息
*/ */
private String trademarkInfo; private String trademarkInfo;
/** /**
* 网站历史备案信息 * 网站历史备案信息
*/ */
private String websiteRegistrationInfo; private String websiteRegistrationInfo;
/** /**
* 员工总数 * 员工总数
*/ */
private Integer totalEmployees; private Integer totalEmployees;
/** /**
* 软件著作权数量 * 软件著作权数量
*/ */
private Integer softNum; private Integer softNum;
/** /**
* 专利数量 * 专利数量
*/ */
private Integer patentNum; private Integer patentNum;
/** /**
* 历史发展 * 历史发展
*/ */
private String hisDevelop; private String hisDevelop;
/** /**
* 经度 * 经度
*/ */
private String lon; private String lon;
/** /**
* 纬度 * 纬度
*/ */
private String lati; private String lati;
/** /**
* 企业logo * 企业logo
*/ */
private String logoPath; private String logoPath;
/** /**
* 企业视频 * 企业视频
*/ */
private String companyVideoPath; private String companyVideoPath;
/** /**
* 企业宣传图片 * 企业宣传图片
*/ */
private String companyPicPath; private String companyPicPath;
/** /**
* 公司介绍 * 公司介绍
*/ */
private String companyIntroduction; private String companyIntroduction;
/** /**
* 公司文化 * 公司文化
*/ */
private String companyCulture; private String companyCulture;
/** /**
* 排序 * 排序
*/ */
private Integer sort; private Integer sort;
/** /**
* 成立日期 * 成立日期
*/ */
private Date establishDate; private Date establishDate;
/** /**
* 备注 * 备注
*/ */
private String remark; private String remark;
/** /**
* 公司标注信息 * 背景图片
*/ */
private String background;
/**
* 公司标注信息
*/
private List<CompanyLabelsEntity> companyLabelsList=new ArrayList<>();; private List<CompanyLabelsEntity> companyLabelsList=new ArrayList<>();;
public List<CompanyLabelsEntity> getCompanyLabelsList(){ public List<CompanyLabelsEntity> getCompanyLabelsList(){
return companyLabelsList; return companyLabelsList;
} }
public void setCompanyLabelsList(List<CompanyLabelsEntity> companyLabelsList){ public void setCompanyLabelsList(List<CompanyLabelsEntity> companyLabelsList){
...@@ -164,7 +168,7 @@ public class CompanyEntity extends CompanyVo { ...@@ -164,7 +168,7 @@ public class CompanyEntity extends CompanyVo {
} }
@Override @Override
public int hashCode() { public int hashCode() {
return this.getId().hashCode(); return this.getId().hashCode();
} }
@Override @Override
public boolean equals(Object obj) { public boolean equals(Object obj) {
...@@ -172,44 +176,45 @@ public class CompanyEntity extends CompanyVo { ...@@ -172,44 +176,45 @@ public class CompanyEntity extends CompanyVo {
if (obj instanceof CompanyEntity) { if (obj instanceof CompanyEntity) {
CompanyEntity tmp = (CompanyEntity) obj; CompanyEntity tmp = (CompanyEntity) obj;
if (this.getId() == tmp.getId()) { if (this.getId() == tmp.getId()) {
return true; return true;
} }
} }
return false; return false;
} }
public void initAttrValue(){ public void initAttrValue(){
this.companyName = ""; this.companyName = "";
this.companyCode = ""; this.companyCode = "";
this.registrationNumber = ""; this.registrationNumber = "";
this.legalRepresentative = ""; this.legalRepresentative = "";
this.registeredCapital = ""; this.registeredCapital = "";
this.companyType = ""; this.companyType = "";
this.businessScope = ""; this.businessScope = "";
this.businessAdress = ""; this.businessAdress = "";
this.location = ""; this.location = "";
this.areaCode = ""; this.areaCode = "";
this.areaName = ""; this.areaName = "";
this.contactPhone = ""; this.contactPhone = "";
this.email = ""; this.email = "";
this.website = ""; this.website = "";
this.taxRegistrationNumber = ""; this.taxRegistrationNumber = "";
this.socialCreditCode = ""; this.socialCreditCode = "";
this.trademarkInfo = ""; this.trademarkInfo = "";
this.websiteRegistrationInfo = ""; this.websiteRegistrationInfo = "";
this.totalEmployees = 0; this.totalEmployees = 0;
this.softNum = 0; this.softNum = 0;
this.patentNum = 0; this.patentNum = 0;
this.hisDevelop = ""; this.hisDevelop = "";
this.lon = ""; this.lon = "";
this.lati = ""; this.lati = "";
this.logoPath = ""; this.logoPath = "";
this.companyVideoPath = ""; this.companyVideoPath = "";
this.companyPicPath = ""; this.companyPicPath = "";
this.companyIntroduction = ""; this.companyIntroduction = "";
this.companyCulture = ""; this.companyCulture = "";
this.sort = 0; this.sort = 0;
this.establishDate = new Date(); this.establishDate = null;
this.remark = ""; this.remark = "";
this.background = "";
} }
} }
\ No newline at end of file
...@@ -86,7 +86,34 @@ public class CompanyServiceImpl extends AbstractCRUDServiceImpl<CompanyDao, Comp ...@@ -86,7 +86,34 @@ public class CompanyServiceImpl extends AbstractCRUDServiceImpl<CompanyDao, Comp
@Autowired @Autowired
private LabelsService labelsService; private LabelsService labelsService;
@Override
protected void findAfter(CompanyEntity params,PageInfo pageInfo, Context context, List<CompanyEntity> list) throws AppException {
fillSubData(list);
super.findAfter(params,pageInfo, context, list);
}
@Override
protected void findAfter(CompanyEntity params, Context context, List<CompanyEntity> list) throws AppException {
fillSubData(list);
super.findAfter(params, context, list);
}
private void fillSubData(List<CompanyEntity> list) {
List<Long> idList = list.stream().map(i -> i.getId()).collect(Collectors.toList());
if(ObjectUtils.isEmpty(idList))return;
Map<Long, List<CompanyLabelsEntity>> companyLabelsListMap = companyLabelsService
.find(new CompanyLabelsQuery().companyIdList(idList)).parallelStream()
.collect(Collectors.groupingBy(CompanyLabelsEntity::getCompanyId));
List<CompanyPatentEntity> companyPatentEntities = companyPatentService.find(new CompanyPatentQuery().companyIdList(idList));
Map<Long, List<CompanyPatentEntity>> companyPatentListMap = companyPatentEntities.parallelStream().collect((Collectors.groupingBy(CompanyPatentEntity::getCompanyId)));
list.forEach(item -> {
item.setCompanyLabelsList(companyLabelsListMap.get(item.getId()));
item.setCompanyPatentsList(companyPatentListMap.get(item.getId()));
});
}
/*
@Override @Override
protected void findAfter(CompanyEntity params, PageInfo pageInfo, Context context, List<CompanyEntity> list) throws AppException { protected void findAfter(CompanyEntity params, PageInfo pageInfo, Context context, List<CompanyEntity> list) throws AppException {
...@@ -95,6 +122,7 @@ public class CompanyServiceImpl extends AbstractCRUDServiceImpl<CompanyDao, Comp ...@@ -95,6 +122,7 @@ public class CompanyServiceImpl extends AbstractCRUDServiceImpl<CompanyDao, Comp
item.setCompanyPatentsList(companyPatentEntities); item.setCompanyPatentsList(companyPatentEntities);
}).count(); }).count();
} }
*/
@Override @Override
protected void saveAfter(CompanyEntity entity, Context context) throws AppException { protected void saveAfter(CompanyEntity entity, Context context) throws AppException {
......
...@@ -7,8 +7,7 @@ import com.mortals.framework.exception.AppException; ...@@ -7,8 +7,7 @@ import com.mortals.framework.exception.AppException;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.base.system.param.service.ParamService; import com.mortals.xhx.base.system.param.service.ParamService;
import com.mortals.xhx.common.code.YesNoEnum; import com.mortals.xhx.common.code.YesNoEnum;
import com.mortals.xhx.module.company.model.CompanyPatentEntity; import com.mortals.xhx.module.company.model.*;
import com.mortals.xhx.module.company.model.CompanyPatentQuery;
import com.mortals.xhx.module.company.model.vo.HomeStatInfo; import com.mortals.xhx.module.company.model.vo.HomeStatInfo;
import com.mortals.xhx.module.company.service.CompanyLabelsService; import com.mortals.xhx.module.company.service.CompanyLabelsService;
import com.mortals.xhx.module.company.service.CompanyPatentService; import com.mortals.xhx.module.company.service.CompanyPatentService;
...@@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest; ...@@ -26,7 +25,6 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import com.mortals.framework.web.BaseCRUDJsonBodyMappingController; import com.mortals.framework.web.BaseCRUDJsonBodyMappingController;
import com.mortals.xhx.module.company.model.CompanyEntity;
import com.mortals.xhx.module.company.service.CompanyService; import com.mortals.xhx.module.company.service.CompanyService;
import org.apache.commons.lang3.ArrayUtils; import org.apache.commons.lang3.ArrayUtils;
import com.mortals.framework.util.StringUtils; import com.mortals.framework.util.StringUtils;
...@@ -62,6 +60,9 @@ public class CompanyController extends BaseCRUDJsonBodyMappingController<Company ...@@ -62,6 +60,9 @@ public class CompanyController extends BaseCRUDJsonBodyMappingController<Company
private LabelsService labelsService; private LabelsService labelsService;
@Autowired @Autowired
private CompanyPatentService companyPatentService; private CompanyPatentService companyPatentService;
@Autowired
private CompanyLabelsService companyLabelsService;
public CompanyController() { public CompanyController() {
...@@ -84,6 +85,10 @@ public class CompanyController extends BaseCRUDJsonBodyMappingController<Company ...@@ -84,6 +85,10 @@ public class CompanyController extends BaseCRUDJsonBodyMappingController<Company
protected int editAfter(Long id, Map<String, Object> model, CompanyEntity entity, Context context) throws AppException { protected int editAfter(Long id, Map<String, Object> model, CompanyEntity entity, Context context) throws AppException {
List<CompanyPatentEntity> companyPatentEntities = companyPatentService.find(new CompanyPatentQuery().companyId(entity.getId())); List<CompanyPatentEntity> companyPatentEntities = companyPatentService.find(new CompanyPatentQuery().companyId(entity.getId()));
List<CompanyLabelsEntity> companyLabelsEntities = companyLabelsService.find(new CompanyLabelsQuery().companyId(entity.getId()));
entity.setCompanyLabelsList(companyLabelsEntities);
entity.setCompanyPatentsList(companyPatentEntities); entity.setCompanyPatentsList(companyPatentEntities);
...@@ -95,6 +100,8 @@ public class CompanyController extends BaseCRUDJsonBodyMappingController<Company ...@@ -95,6 +100,8 @@ public class CompanyController extends BaseCRUDJsonBodyMappingController<Company
protected int viewAfter(Long id, Map<String, Object> model, CompanyEntity entity, Context context) throws AppException { protected int viewAfter(Long id, Map<String, Object> model, CompanyEntity entity, Context context) throws AppException {
List<CompanyPatentEntity> companyPatentEntities = companyPatentService.find(new CompanyPatentQuery().companyId(entity.getId())); List<CompanyPatentEntity> companyPatentEntities = companyPatentService.find(new CompanyPatentQuery().companyId(entity.getId()));
List<CompanyLabelsEntity> companyLabelsEntities = companyLabelsService.find(new CompanyLabelsQuery().companyId(entity.getId()));
entity.setCompanyLabelsList(companyLabelsEntities);
entity.setCompanyPatentsList(companyPatentEntities); entity.setCompanyPatentsList(companyPatentEntities);
return super.viewAfter(id, model, entity, context); return super.viewAfter(id, model, entity, context);
......
...@@ -58,7 +58,7 @@ public class NewsServiceImpl extends AbstractCRUDServiceImpl<NewsDao, NewsEntity ...@@ -58,7 +58,7 @@ public class NewsServiceImpl extends AbstractCRUDServiceImpl<NewsDao, NewsEntity
List<NewsUpEntity> upList = newsUpService.find(new NewsUpQuery().newsIdList(newsIdList).upId(context.getUser().getId())); List<NewsUpEntity> upList = newsUpService.find(new NewsUpQuery().newsIdList(newsIdList).upId(context.getUser().getId()));
Map<Long,NewsUpEntity> upMap = new HashMap<>(); Map<Long,NewsUpEntity> upMap = new HashMap<>();
if(CollectionUtils.isNotEmpty(upList)){ if(CollectionUtils.isNotEmpty(upList)){
upMap = upList.parallelStream().collect(Collectors.toMap(x -> x.getId(), z -> z, (o, n) -> n)); upMap = upList.parallelStream().collect(Collectors.toMap(x -> x.getNewsId(), z -> z, (o, n) -> n));
} }
List<NewsShareEntity> shareList = newsShareService.find(new NewsShareQuery().newsIdList(newsIdList).createUserId(context.getUser().getId())); List<NewsShareEntity> shareList = newsShareService.find(new NewsShareQuery().newsIdList(newsIdList).createUserId(context.getUser().getId()));
Map<Long,NewsShareEntity> shareMap = new HashMap<>(); Map<Long,NewsShareEntity> shareMap = new HashMap<>();
......
...@@ -14,10 +14,11 @@ client.global.set("authToken", JSON.parse(response.body).data.token); ...@@ -14,10 +14,11 @@ client.global.set("authToken", JSON.parse(response.body).data.token);
%} %}
###公司列表 ###公司列表
POST {{baseUrl}}/company/list POST {{baseUrl}}/company/interlist
Content-Type: application/json Content-Type: application/json
{ {
"id": 5,
"page":1, "page":1,
"size":10 "size":10
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment