Compare commits
40 Commits
Author | SHA1 | Date |
---|---|---|
ccongli | 48f9bdca7c | 1 year ago |
ccongli | e08e65995f | 1 year ago |
ccongli | 76d9a8bf86 | 1 year ago |
ccongli | 29d30c5581 | 1 year ago |
ccongli | 45a8e573e0 | 1 year ago |
杨世强 | 42020ecc7b | 1 year ago |
杨世强 | 599015f6c1 | 1 year ago |
qiuhongwu | e320886ff7 | 1 year ago |
qiuhongwu | e955c98eab | 1 year ago |
ccongli | a5a703479a | 1 year ago |
杨世强 | 39135c13a8 | 1 year ago |
杨世强 | cbafb07278 | 1 year ago |
ccongli | c79db68acb | 1 year ago |
17602169347 | 615a86d50a | 1 year ago |
17602169347 | 2c16788d8f | 1 year ago |
ccongli | 39ad4dfb72 | 1 year ago |
杨世强 | f19083e8a7 | 1 year ago |
杨世强 | 0350cdae6b | 1 year ago |
qiuhongwu | ba7c34ac0e | 1 year ago |
杨世强 | d1ce48e28b | 1 year ago |
杨世强 | f95b8abb5d | 1 year ago |
qiuhongwu | 98a0015579 | 1 year ago |
qiuhongwu | e566c2bac7 | 1 year ago |
mhsnet | add9532e04 | 1 year ago |
杨世强 | ccc73b1696 | 1 year ago |
ccongli | 19a3825c62 | 1 year ago |
杨世强 | d19160843e | 1 year ago |
LI-CCONG\李聪聪 | 6d37489385 | 1 year ago |
huchuanhu | 68f2af1d49 | 1 year ago |
tengxi | 7fa223db42 | 1 year ago |
mhsnet | dbc20379eb | 1 year ago |
杨世强 | 78f052b3ac | 1 year ago |
杨世强 | c31ed02f9b | 1 year ago |
17602169347 | c1f4520e85 | 1 year ago |
mhsnet | a871d77903 | 1 year ago |
qiuhongwu | 52df6c6b76 | 1 year ago |
17602169347 | 716df92a68 | 1 year ago |
杨世强 | 7a83d4e067 | 1 year ago |
杨世强 | b517aec7d7 | 1 year ago |
LI-CCONG\李聪聪 | b358c9989f | 1 year ago |
@ -1,8 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# shellcheck source=./_/husky.sh
|
|
||||||
. "$(dirname "$0")/_/husky.sh"
|
|
||||||
|
|
||||||
PATH="/usr/local/bin:$PATH"
|
|
||||||
|
|
||||||
npx --no-install commitlint --edit "$1"
|
|
@ -1,9 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
command_exists () {
|
|
||||||
command -v "$1" >/dev/null 2>&1
|
|
||||||
}
|
|
||||||
|
|
||||||
# Workaround for Windows 10, Git Bash and Yarn
|
|
||||||
if command_exists winpty && test -t 1; then
|
|
||||||
exec < /dev/tty
|
|
||||||
fi
|
|
@ -1,10 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
. "$(dirname "$0")/_/husky.sh"
|
|
||||||
. "$(dirname "$0")/common.sh"
|
|
||||||
|
|
||||||
[ -n "$CI" ] && exit 0
|
|
||||||
|
|
||||||
PATH="/usr/local/bin:$PATH"
|
|
||||||
|
|
||||||
# Format and submit code according to lintstagedrc.js configuration
|
|
||||||
npm run lint:lint-staged
|
|
@ -1,20 +0,0 @@
|
|||||||
{
|
|
||||||
"recommendations": [
|
|
||||||
"christian-kohler.path-intellisense",
|
|
||||||
"vscode-icons-team.vscode-icons",
|
|
||||||
"davidanson.vscode-markdownlint",
|
|
||||||
"stylelint.vscode-stylelint",
|
|
||||||
"dbaeumer.vscode-eslint",
|
|
||||||
"esbenp.prettier-vscode",
|
|
||||||
"usernamehw.errorlens",
|
|
||||||
"mrmlnc.vscode-less",
|
|
||||||
"lokalise.i18n-ally",
|
|
||||||
"redhat.vscode-yaml",
|
|
||||||
"csstools.postcss",
|
|
||||||
"mikestead.dotenv",
|
|
||||||
"eamodio.gitlens",
|
|
||||||
"antfu.iconify",
|
|
||||||
"antfu.unocss",
|
|
||||||
"Vue.volar"
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,13 +0,0 @@
|
|||||||
{
|
|
||||||
"version": "0.2.0",
|
|
||||||
"configurations": [
|
|
||||||
{
|
|
||||||
"type": "chrome",
|
|
||||||
"request": "launch",
|
|
||||||
"name": "Launch Chrome",
|
|
||||||
"url": "http://localhost:80",
|
|
||||||
"webRoot": "${workspaceFolder}/src",
|
|
||||||
"sourceMaps": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
@ -1,181 +0,0 @@
|
|||||||
{
|
|
||||||
"typescript.tsdk": "./node_modules/typescript/lib",
|
|
||||||
"npm.packageManager": "pnpm",
|
|
||||||
"editor.tabSize": 2,
|
|
||||||
"prettier.printWidth": 140, // 超过最大值换行
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
||||||
"files.eol": "\n",
|
|
||||||
"search.exclude": {
|
|
||||||
"**/node_modules": true,
|
|
||||||
"**/*.log": true,
|
|
||||||
"**/*.log*": true,
|
|
||||||
"**/bower_components": true,
|
|
||||||
"**/dist": true,
|
|
||||||
"**/elehukouben": true,
|
|
||||||
"**/.git": true,
|
|
||||||
"**/.gitignore": true,
|
|
||||||
"**/.svn": true,
|
|
||||||
"**/.DS_Store": true,
|
|
||||||
"**/.idea": true,
|
|
||||||
"**/.vscode": false,
|
|
||||||
"**/yarn.lock": true,
|
|
||||||
"pnpm-lock.yaml": true,
|
|
||||||
"**/tmp": true,
|
|
||||||
"out": true,
|
|
||||||
"dist": true,
|
|
||||||
"public": true,
|
|
||||||
"node_modules": true,
|
|
||||||
"CHANGELOG.md": true,
|
|
||||||
"examples": true,
|
|
||||||
"res": true,
|
|
||||||
"screenshots": true,
|
|
||||||
"yarn-error.log": true,
|
|
||||||
"**/.yarn": true
|
|
||||||
},
|
|
||||||
"files.exclude": {
|
|
||||||
"**/.cache": true,
|
|
||||||
"**/.editorconfig": true,
|
|
||||||
"**/.eslintcache": true,
|
|
||||||
"**/bower_components": true,
|
|
||||||
"**/.idea": true,
|
|
||||||
"**/tmp": true,
|
|
||||||
"**/.git": true,
|
|
||||||
"**/.svn": true,
|
|
||||||
"**/.hg": true,
|
|
||||||
"**/CVS": true,
|
|
||||||
"**/.DS_Store": true
|
|
||||||
},
|
|
||||||
"files.watcherExclude": {
|
|
||||||
"**/.git/objects/**": true,
|
|
||||||
"**/.git/subtree-cache/**": true,
|
|
||||||
"**/.vscode/**": true,
|
|
||||||
"**/node_modules/**": true,
|
|
||||||
"**/tmp/**": true,
|
|
||||||
"**/bower_components/**": true,
|
|
||||||
"**/dist/**": true,
|
|
||||||
"**/yarn.lock": true
|
|
||||||
},
|
|
||||||
"stylelint.enable": true,
|
|
||||||
"stylelint.validate": ["css", "less", "postcss", "scss", "vue", "sass"],
|
|
||||||
"path-intellisense.mappings": {
|
|
||||||
"@/": "${workspaceRoot}/src"
|
|
||||||
},
|
|
||||||
"prettier.enable": false,
|
|
||||||
"editor.formatOnSave": false,
|
|
||||||
"editor.codeActionsOnSave": {
|
|
||||||
"source.fixAll.eslint": true,
|
|
||||||
"source.organizeImports": false
|
|
||||||
},
|
|
||||||
"eslint.rules.customizations": [
|
|
||||||
{
|
|
||||||
"rule": "@stylistic/*",
|
|
||||||
"severity": "off"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"eslint.validate": [
|
|
||||||
"javascript",
|
|
||||||
"javascriptreact",
|
|
||||||
"typescript",
|
|
||||||
"typescriptreact",
|
|
||||||
"vue",
|
|
||||||
"html",
|
|
||||||
"markdown",
|
|
||||||
"json",
|
|
||||||
"jsonc",
|
|
||||||
"yaml"
|
|
||||||
],
|
|
||||||
"[javascriptreact]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[typescript]": {
|
|
||||||
"editor.defaultFormatter": "rvest.vs-code-prettier-eslint"
|
|
||||||
},
|
|
||||||
"[typescriptreact]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[html]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[css]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[less]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[scss]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[markdown]": {
|
|
||||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
|
||||||
},
|
|
||||||
"[vue]": {
|
|
||||||
"editor.codeActionsOnSave": {
|
|
||||||
"source.fixAll.eslint": true,
|
|
||||||
"source.organizeImports": false,
|
|
||||||
"source.fixAll.stylelint": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"i18n-ally.localesPaths": ["src/locales/lang"],
|
|
||||||
"i18n-ally.keystyle": "nested",
|
|
||||||
"i18n-ally.sortKeys": true,
|
|
||||||
"i18n-ally.namespace": true,
|
|
||||||
"i18n-ally.pathMatcher": "{locale}/{namespaces}.{ext}",
|
|
||||||
"i18n-ally.enabledParsers": ["ts"],
|
|
||||||
"i18n-ally.sourceLanguage": "en",
|
|
||||||
"i18n-ally.displayLanguage": "zh-CN",
|
|
||||||
"i18n-ally.enabledFrameworks": ["vue", "react"],
|
|
||||||
"cSpell.words": [
|
|
||||||
"antd",
|
|
||||||
"antdv",
|
|
||||||
"antfu",
|
|
||||||
"antv",
|
|
||||||
"brotli",
|
|
||||||
"browserslist",
|
|
||||||
"Cascader",
|
|
||||||
"codemirror",
|
|
||||||
"commitlint",
|
|
||||||
"cropperjs",
|
|
||||||
"echarts",
|
|
||||||
"esnext",
|
|
||||||
"esno",
|
|
||||||
"iconify",
|
|
||||||
"INTLIFY",
|
|
||||||
"lintstagedrc",
|
|
||||||
"logicflow",
|
|
||||||
"nprogress",
|
|
||||||
"pinia",
|
|
||||||
"pnpm",
|
|
||||||
"qrcode",
|
|
||||||
"sider",
|
|
||||||
"sortablejs",
|
|
||||||
"stylelint",
|
|
||||||
"tailwind",
|
|
||||||
"tailwindcss",
|
|
||||||
"tinymce",
|
|
||||||
"unocss",
|
|
||||||
"unref",
|
|
||||||
"vben",
|
|
||||||
"vditor",
|
|
||||||
"videojs",
|
|
||||||
"vitejs",
|
|
||||||
"vuedraggable",
|
|
||||||
"vueuse",
|
|
||||||
"xingyuv",
|
|
||||||
"yudao",
|
|
||||||
"zxcvbn"
|
|
||||||
],
|
|
||||||
// 控制相关文件嵌套展示
|
|
||||||
"explorer.fileNesting.enabled": true,
|
|
||||||
"explorer.fileNesting.expand": false,
|
|
||||||
"explorer.fileNesting.patterns": {
|
|
||||||
"*.ts": "$(capture).test.ts, $(capture).test.tsx",
|
|
||||||
"*.tsx": "$(capture).test.ts, $(capture).test.tsx",
|
|
||||||
"*.env": "$(capture).env.*",
|
|
||||||
"package.json": ".hintrc,pnpm-lock.yaml,yarn.lock,LICENSE,README*,CHANGELOG*,CNAME,.gitattributes,.gitignore,prettier.config.js,stylelint.config.js,commitlint.config.js,.stylelintignore,.prettierignore,.gitpod.yml,.eslintrc.js,.eslintignore"
|
|
||||||
},
|
|
||||||
"eslint.codeAction.showDocumentation": {
|
|
||||||
"enable": true
|
|
||||||
},
|
|
||||||
"terminal.integrated.scrollback": 10000,
|
|
||||||
"nuxt.isNuxtApp": false
|
|
||||||
}
|
|
@ -1,69 +0,0 @@
|
|||||||
import { generate } from '@ant-design/colors'
|
|
||||||
|
|
||||||
export const primaryColor = '#0960bd'
|
|
||||||
|
|
||||||
export const darkMode = 'light'
|
|
||||||
|
|
||||||
type Fn = (...arg: any) => any
|
|
||||||
|
|
||||||
type GenerateTheme = 'default' | 'dark'
|
|
||||||
|
|
||||||
export interface GenerateColorsParams {
|
|
||||||
mixLighten: Fn
|
|
||||||
mixDarken: Fn
|
|
||||||
tinycolor: any
|
|
||||||
color?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
export function generateAntColors(color: string, theme: GenerateTheme = 'default') {
|
|
||||||
return generate(color, {
|
|
||||||
theme,
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getThemeColors(color?: string) {
|
|
||||||
const tc = color || primaryColor
|
|
||||||
const lightColors = generateAntColors(tc)
|
|
||||||
const primary = lightColors[5]
|
|
||||||
const modeColors = generateAntColors(primary, 'dark')
|
|
||||||
|
|
||||||
return [...lightColors, ...modeColors]
|
|
||||||
}
|
|
||||||
|
|
||||||
export function generateColors({ color = primaryColor, mixLighten, mixDarken, tinycolor }: GenerateColorsParams) {
|
|
||||||
const arr = Array.from({ length: 19 }).fill(0)
|
|
||||||
const lightens = arr.map((_t, i) => {
|
|
||||||
return mixLighten(color, i / 5)
|
|
||||||
})
|
|
||||||
|
|
||||||
const darkens = arr.map((_t, i) => {
|
|
||||||
return mixDarken(color, i / 5)
|
|
||||||
})
|
|
||||||
|
|
||||||
const alphaColors = arr.map((_t, i) => {
|
|
||||||
return tinycolor(color)
|
|
||||||
.setAlpha(i / 20)
|
|
||||||
.toRgbString()
|
|
||||||
})
|
|
||||||
|
|
||||||
const shortAlphaColors = alphaColors.map(item => item.replace(/\s/g, '').replace(/0\./g, '.'))
|
|
||||||
|
|
||||||
const tinycolorLightens = arr
|
|
||||||
.map((_t, i) => {
|
|
||||||
return tinycolor(color)
|
|
||||||
.lighten(i * 5)
|
|
||||||
.toHexString()
|
|
||||||
})
|
|
||||||
.filter(item => item !== '#ffffff')
|
|
||||||
|
|
||||||
const tinycolorDarkens = arr
|
|
||||||
.map((_t, i) => {
|
|
||||||
return tinycolor(color)
|
|
||||||
.darken(i * 5)
|
|
||||||
.toHexString()
|
|
||||||
})
|
|
||||||
.filter(item => item !== '#000000')
|
|
||||||
return [...lightens, ...darkens, ...alphaColors, ...shortAlphaColors, ...tinycolorDarkens, ...tinycolorLightens].filter(
|
|
||||||
item => !item.includes('-'),
|
|
||||||
)
|
|
||||||
}
|
|
@ -1,6 +0,0 @@
|
|||||||
/**
|
|
||||||
* The name of the configuration file entered in the production environment
|
|
||||||
*/
|
|
||||||
export const GLOB_CONFIG_FILE_NAME = '_app.config.js'
|
|
||||||
|
|
||||||
export const OUTPUT_DIR = 'dist'
|
|
@ -1,18 +0,0 @@
|
|||||||
import { resolve } from 'node:path'
|
|
||||||
import { generateAntColors, primaryColor } from '../config/themeConfig'
|
|
||||||
|
|
||||||
/**
|
|
||||||
* less global variable
|
|
||||||
*/
|
|
||||||
export function generateModifyVars() {
|
|
||||||
const palettes = generateAntColors(primaryColor)
|
|
||||||
|
|
||||||
const primaryColorObj: Record<string, string> = {}
|
|
||||||
|
|
||||||
for (let index = 0; index < 10; index++)
|
|
||||||
primaryColorObj[`primary-${index + 1}`] = palettes[index]
|
|
||||||
|
|
||||||
return {
|
|
||||||
hack: `true; @import (reference) "${resolve('src/design/config.less')}";`,
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,68 +0,0 @@
|
|||||||
import path from 'node:path'
|
|
||||||
import fs from 'fs-extra'
|
|
||||||
import inquirer from 'inquirer'
|
|
||||||
import colors from 'picocolors'
|
|
||||||
import pkg from '../../../package.json'
|
|
||||||
|
|
||||||
async function generateIcon() {
|
|
||||||
const dir = path.resolve(process.cwd(), 'node_modules/@iconify/json')
|
|
||||||
|
|
||||||
const raw = await fs.readJSON(path.join(dir, 'collections.json'))
|
|
||||||
|
|
||||||
const collections = Object.entries(raw).map(([id, v]) => ({
|
|
||||||
...(v as any),
|
|
||||||
id,
|
|
||||||
}))
|
|
||||||
|
|
||||||
const choices = collections.map(item => ({ key: item.id, value: item.id, name: item.name }))
|
|
||||||
|
|
||||||
inquirer
|
|
||||||
.prompt([
|
|
||||||
{
|
|
||||||
type: 'list',
|
|
||||||
name: 'useType',
|
|
||||||
choices: [
|
|
||||||
{ key: 'local', value: 'local', name: 'Local' },
|
|
||||||
{ key: 'onLine', value: 'onLine', name: 'OnLine' },
|
|
||||||
],
|
|
||||||
message: 'How to use icons?',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'list',
|
|
||||||
name: 'iconSet',
|
|
||||||
choices,
|
|
||||||
message: 'Select the icon set that needs to be generated?',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
type: 'input',
|
|
||||||
name: 'output',
|
|
||||||
message: 'Select the icon set that needs to be generated?',
|
|
||||||
default: 'src/components/Icon/data',
|
|
||||||
},
|
|
||||||
])
|
|
||||||
.then(async (answers) => {
|
|
||||||
const { iconSet, output, useType } = answers
|
|
||||||
const outputDir = path.resolve(process.cwd(), output)
|
|
||||||
await fs.ensureDir(outputDir)
|
|
||||||
const genCollections = collections.filter(item => [iconSet].includes(item.id))
|
|
||||||
const prefixSet: string[] = []
|
|
||||||
for (const info of genCollections) {
|
|
||||||
const data = await fs.readJSON(path.join(dir, 'json', `${info.id}.json`))
|
|
||||||
if (data) {
|
|
||||||
const { prefix } = data
|
|
||||||
const isLocal = useType === 'local'
|
|
||||||
const icons = Object.keys(data.icons).map(item => `${isLocal ? `${prefix}:` : ''}${item}`)
|
|
||||||
|
|
||||||
fs.writeFileSync(
|
|
||||||
path.join(output, 'icons.data.ts'),
|
|
||||||
`export default ${isLocal ? JSON.stringify(icons) : JSON.stringify({ prefix, icons })}`,
|
|
||||||
)
|
|
||||||
prefixSet.push(prefix)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
await fs.emptyDir(path.join(process.cwd(), 'node_modules/.vite'))
|
|
||||||
console.log(`✨ ${colors.cyan(`[${pkg.name}]`)}` + ' - Icon generated successfully:' + `[${prefixSet}]`)
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
generateIcon()
|
|
@ -1,7 +0,0 @@
|
|||||||
/**
|
|
||||||
* Get the configuration file variable name
|
|
||||||
* @param env
|
|
||||||
*/
|
|
||||||
export function getConfigFileName(env: Record<string, any>) {
|
|
||||||
return `__PRODUCTION__${env.VITE_GLOB_APP_SHORT_NAME || '__APP'}__CONF__`.toUpperCase().replace(/\s/g, '')
|
|
||||||
}
|
|
@ -1,48 +0,0 @@
|
|||||||
/**
|
|
||||||
* Generate additional configuration files when used for packaging. The file can be configured with some global variables, so that it can be changed directly externally without repackaging
|
|
||||||
*/
|
|
||||||
import fs, { writeFileSync } from 'fs-extra'
|
|
||||||
import colors from 'picocolors'
|
|
||||||
import { GLOB_CONFIG_FILE_NAME, OUTPUT_DIR } from '../constant'
|
|
||||||
|
|
||||||
import { getEnvConfig, getRootPath } from '../utils'
|
|
||||||
import { getConfigFileName } from '../getConfigFileName'
|
|
||||||
|
|
||||||
import pkg from '../../package.json'
|
|
||||||
|
|
||||||
interface CreateConfigParams {
|
|
||||||
configName: string
|
|
||||||
config: any
|
|
||||||
configFileName?: string
|
|
||||||
}
|
|
||||||
|
|
||||||
function createConfig(params: CreateConfigParams) {
|
|
||||||
const { configName, config, configFileName } = params
|
|
||||||
try {
|
|
||||||
const windowConf = `window.${configName}`
|
|
||||||
// Ensure that the variable will not be modified
|
|
||||||
let configStr = `${windowConf}=${JSON.stringify(config)};`
|
|
||||||
configStr += `
|
|
||||||
Object.freeze(${windowConf});
|
|
||||||
Object.defineProperty(window, "${configName}", {
|
|
||||||
configurable: false,
|
|
||||||
writable: false,
|
|
||||||
});
|
|
||||||
`.replace(/\s/g, '')
|
|
||||||
|
|
||||||
fs.mkdirp(getRootPath(OUTPUT_DIR))
|
|
||||||
writeFileSync(getRootPath(`${OUTPUT_DIR}/${configFileName}`), configStr)
|
|
||||||
|
|
||||||
console.log(`${colors.cyan(`✨ [${pkg.name}]`)} - configuration file is build successfully:`)
|
|
||||||
console.log(`${colors.gray(`${OUTPUT_DIR}/${colors.green(configFileName)}`)}\n`)
|
|
||||||
}
|
|
||||||
catch (error: any) {
|
|
||||||
console.log(colors.red(`configuration file configuration file failed to package:\n${error}`))
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export function runBuildConfig() {
|
|
||||||
const config = getEnvConfig()
|
|
||||||
const configFileName = getConfigFileName(config)
|
|
||||||
createConfig({ config, configName: configFileName, configFileName: GLOB_CONFIG_FILE_NAME })
|
|
||||||
}
|
|
@ -1,23 +0,0 @@
|
|||||||
// #!/usr/bin/env node
|
|
||||||
|
|
||||||
import colors from 'picocolors'
|
|
||||||
|
|
||||||
import pkg from '../../package.json'
|
|
||||||
import { runBuildConfig } from './buildConf'
|
|
||||||
|
|
||||||
export function runBuild() {
|
|
||||||
try {
|
|
||||||
const argvList = process.argv.splice(2)
|
|
||||||
|
|
||||||
// Generate configuration file
|
|
||||||
if (!argvList.includes('disabled-config'))
|
|
||||||
runBuildConfig()
|
|
||||||
|
|
||||||
console.log(`✨ ${colors.cyan(`[${pkg.name}]`)}` + ' - build successfully!')
|
|
||||||
}
|
|
||||||
catch (error: any) {
|
|
||||||
console.log(colors.red(`vite build error:\n${error}`))
|
|
||||||
process.exit(1)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
runBuild()
|
|
@ -1,93 +0,0 @@
|
|||||||
import fs from 'node:fs'
|
|
||||||
import path from 'node:path'
|
|
||||||
import dotenv from 'dotenv'
|
|
||||||
|
|
||||||
export function isDevFn(mode: string): boolean {
|
|
||||||
return mode === 'development'
|
|
||||||
}
|
|
||||||
|
|
||||||
export function isProdFn(mode: string): boolean {
|
|
||||||
return mode === 'production'
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Whether to generate package preview
|
|
||||||
*/
|
|
||||||
export function isReportMode(): boolean {
|
|
||||||
return process.env.REPORT === 'true'
|
|
||||||
}
|
|
||||||
|
|
||||||
// Read all environment variable configuration files to process.env
|
|
||||||
export function wrapperEnv(envConf: Recordable): ViteEnv {
|
|
||||||
const ret: any = {}
|
|
||||||
|
|
||||||
for (const envName of Object.keys(envConf)) {
|
|
||||||
let realName = envConf[envName].replace(/\\n/g, '\n')
|
|
||||||
realName = realName === 'true' ? true : realName === 'false' ? false : realName
|
|
||||||
|
|
||||||
if (envName === 'VITE_PORT')
|
|
||||||
realName = Number(realName)
|
|
||||||
|
|
||||||
if (envName === 'VITE_PROXY' && realName) {
|
|
||||||
try {
|
|
||||||
realName = JSON.parse(realName.replace(/'/g, '"'))
|
|
||||||
}
|
|
||||||
catch (error) {
|
|
||||||
realName = ''
|
|
||||||
}
|
|
||||||
}
|
|
||||||
ret[envName] = realName
|
|
||||||
// if (typeof realName === 'string') {
|
|
||||||
// process.env[envName] = realName;
|
|
||||||
// } else if (typeof realName === 'object') {
|
|
||||||
// process.env[envName] = JSON.stringify(realName);
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
return ret
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 获取当前环境下生效的配置文件名
|
|
||||||
*/
|
|
||||||
function getConfFiles() {
|
|
||||||
const script = process.env.npm_lifecycle_script
|
|
||||||
const reg = /--mode ([a-z_\d]+)/
|
|
||||||
const result = reg.exec(script as string) as any
|
|
||||||
if (result) {
|
|
||||||
const mode = result[1] as string
|
|
||||||
return ['.env', `.env.${mode}`]
|
|
||||||
}
|
|
||||||
return ['.env', '.env.production']
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get the environment variables starting with the specified prefix
|
|
||||||
* @param match prefix
|
|
||||||
* @param confFiles ext
|
|
||||||
*/
|
|
||||||
export function getEnvConfig(match = 'VITE_GLOB_', confFiles = getConfFiles()) {
|
|
||||||
let envConfig = {}
|
|
||||||
confFiles.forEach((item) => {
|
|
||||||
try {
|
|
||||||
const env = dotenv.parse(fs.readFileSync(path.resolve(process.cwd(), item)))
|
|
||||||
envConfig = { ...envConfig, ...env }
|
|
||||||
}
|
|
||||||
catch (e) {
|
|
||||||
console.error(`Error in parsing ${item}`, e)
|
|
||||||
}
|
|
||||||
})
|
|
||||||
const reg = new RegExp(`^(${match})`)
|
|
||||||
Object.keys(envConfig).forEach((key) => {
|
|
||||||
if (!reg.test(key))
|
|
||||||
Reflect.deleteProperty(envConfig, key)
|
|
||||||
})
|
|
||||||
return envConfig
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Get user root directory
|
|
||||||
* @param dir file path
|
|
||||||
*/
|
|
||||||
export function getRootPath(...dir: string[]) {
|
|
||||||
return path.resolve(process.cwd(), ...dir)
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
const include = [
|
|
||||||
'qs',
|
|
||||||
'vue',
|
|
||||||
'less',
|
|
||||||
'axios',
|
|
||||||
'pinia',
|
|
||||||
'dayjs',
|
|
||||||
'echarts',
|
|
||||||
'cropperjs',
|
|
||||||
'crypto-js',
|
|
||||||
'lodash-es',
|
|
||||||
'nprogress',
|
|
||||||
'vue-i18n',
|
|
||||||
'vue-types',
|
|
||||||
'vue-router',
|
|
||||||
'codemirror',
|
|
||||||
'sortablejs',
|
|
||||||
'vuedraggable',
|
|
||||||
'echarts/core',
|
|
||||||
'echarts/charts',
|
|
||||||
'echarts/components',
|
|
||||||
'echarts/renderers',
|
|
||||||
'@vueuse/core',
|
|
||||||
'@zxcvbn-ts/core',
|
|
||||||
'@iconify/iconify',
|
|
||||||
'vue-json-pretty',
|
|
||||||
'ant-design-vue',
|
|
||||||
'ant-design-vue/es/style',
|
|
||||||
'ant-design-vue/es/locale/zh_CN',
|
|
||||||
'ant-design-vue/es/locale/en_US',
|
|
||||||
]
|
|
||||||
|
|
||||||
const exclude = ['@iconify/json']
|
|
||||||
|
|
||||||
export { include, exclude }
|
|
@ -1,35 +0,0 @@
|
|||||||
/**
|
|
||||||
* Used to package and output gzip. Note that this does not work properly in Vite, the specific reason is still being investigated
|
|
||||||
* https://github.com/anncwb/vite-plugin-compression
|
|
||||||
*/
|
|
||||||
import type { PluginOption } from 'vite'
|
|
||||||
import compressPlugin from 'vite-plugin-compression'
|
|
||||||
|
|
||||||
export function configCompressPlugin(
|
|
||||||
compress: 'gzip' | 'brotli' | 'none' = 'none',
|
|
||||||
deleteOriginFile = false,
|
|
||||||
): PluginOption | PluginOption[] {
|
|
||||||
const compressList = compress.split(',')
|
|
||||||
|
|
||||||
const plugins: PluginOption[] = []
|
|
||||||
|
|
||||||
if (compressList.includes('gzip')) {
|
|
||||||
plugins.push(
|
|
||||||
compressPlugin({
|
|
||||||
ext: '.gz',
|
|
||||||
deleteOriginFile,
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
if (compressList.includes('brotli')) {
|
|
||||||
plugins.push(
|
|
||||||
compressPlugin({
|
|
||||||
ext: '.br',
|
|
||||||
algorithm: 'brotliCompress',
|
|
||||||
deleteOriginFile,
|
|
||||||
}),
|
|
||||||
)
|
|
||||||
}
|
|
||||||
return plugins
|
|
||||||
}
|
|
@ -1,40 +0,0 @@
|
|||||||
/**
|
|
||||||
* Plugin to minimize and use ejs template syntax in index.html.
|
|
||||||
* https://github.com/xingyuv/vite-vue-plugin-html
|
|
||||||
*/
|
|
||||||
import type { PluginOption } from 'vite'
|
|
||||||
import { createHtmlPlugin } from 'vite-vue-plugin-html'
|
|
||||||
import pkg from '../../../package.json'
|
|
||||||
import { GLOB_CONFIG_FILE_NAME } from '../../constant'
|
|
||||||
|
|
||||||
export function configHtmlPlugin(env: ViteEnv, isBuild: boolean) {
|
|
||||||
const { VITE_GLOB_APP_TITLE, VITE_PUBLIC_PATH } = env
|
|
||||||
|
|
||||||
const path = VITE_PUBLIC_PATH.endsWith('/') ? VITE_PUBLIC_PATH : `${VITE_PUBLIC_PATH}/`
|
|
||||||
|
|
||||||
const getAppConfigSrc = () => {
|
|
||||||
return `${path || '/'}${GLOB_CONFIG_FILE_NAME}?v=${pkg.version}-${new Date().getTime()}`
|
|
||||||
}
|
|
||||||
|
|
||||||
const htmlPlugin: PluginOption[] = createHtmlPlugin({
|
|
||||||
minify: isBuild,
|
|
||||||
inject: {
|
|
||||||
// Inject data into ejs template
|
|
||||||
data: {
|
|
||||||
title: VITE_GLOB_APP_TITLE,
|
|
||||||
},
|
|
||||||
// Embed the generated app.config.js file
|
|
||||||
tags: isBuild
|
|
||||||
? [
|
|
||||||
{
|
|
||||||
tag: 'script',
|
|
||||||
attrs: {
|
|
||||||
src: getAppConfigSrc(),
|
|
||||||
},
|
|
||||||
},
|
|
||||||
]
|
|
||||||
: [],
|
|
||||||
},
|
|
||||||
})
|
|
||||||
return htmlPlugin
|
|
||||||
}
|
|
@ -1,53 +0,0 @@
|
|||||||
import type { PluginOption } from 'vite'
|
|
||||||
import vue from '@vitejs/plugin-vue'
|
|
||||||
import vueJsx from '@vitejs/plugin-vue-jsx'
|
|
||||||
import progress from 'vite-plugin-progress'
|
|
||||||
import purgeIcons from 'vite-plugin-purge-icons'
|
|
||||||
import VitePluginCertificate from 'vite-plugin-mkcert'
|
|
||||||
import UnoCSS from 'unocss/vite'
|
|
||||||
import { configPwaConfig } from './pwa'
|
|
||||||
import { configHtmlPlugin } from './html'
|
|
||||||
import { configCompressPlugin } from './compress'
|
|
||||||
import { configVisualizerConfig } from './visualizer'
|
|
||||||
import { configSvgIconsPlugin } from './svgSprite'
|
|
||||||
|
|
||||||
export function createVitePlugins(viteEnv: ViteEnv, isBuild: boolean) {
|
|
||||||
const { VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE } = viteEnv
|
|
||||||
|
|
||||||
const vitePlugins: PluginOption[] = [
|
|
||||||
// have to
|
|
||||||
vue(),
|
|
||||||
// have to
|
|
||||||
vueJsx(),
|
|
||||||
// UnoCSS
|
|
||||||
UnoCSS(),
|
|
||||||
// 打包进度条
|
|
||||||
progress(),
|
|
||||||
VitePluginCertificate({
|
|
||||||
source: 'coding',
|
|
||||||
}),
|
|
||||||
]
|
|
||||||
|
|
||||||
// vite-vue-plugin-html
|
|
||||||
vitePlugins.push(configHtmlPlugin(viteEnv, isBuild))
|
|
||||||
|
|
||||||
// vite-plugin-svg-icons
|
|
||||||
vitePlugins.push(configSvgIconsPlugin(isBuild))
|
|
||||||
|
|
||||||
// vite-plugin-purge-icons
|
|
||||||
vitePlugins.push(purgeIcons())
|
|
||||||
|
|
||||||
// rollup-plugin-visualizer
|
|
||||||
vitePlugins.push(configVisualizerConfig())
|
|
||||||
|
|
||||||
// The following plugins only work in the production environment
|
|
||||||
if (isBuild) {
|
|
||||||
// rollup-plugin-gzip
|
|
||||||
vitePlugins.push(configCompressPlugin(VITE_BUILD_COMPRESS, VITE_BUILD_COMPRESS_DELETE_ORIGIN_FILE))
|
|
||||||
|
|
||||||
// vite-plugin-pwa
|
|
||||||
vitePlugins.push(configPwaConfig(viteEnv))
|
|
||||||
}
|
|
||||||
|
|
||||||
return vitePlugins
|
|
||||||
}
|
|
@ -1,33 +0,0 @@
|
|||||||
/**
|
|
||||||
* Zero-config PWA for Vite
|
|
||||||
* https://github.com/antfu/vite-plugin-pwa
|
|
||||||
*/
|
|
||||||
import { VitePWA } from 'vite-plugin-pwa'
|
|
||||||
|
|
||||||
export function configPwaConfig(env: ViteEnv) {
|
|
||||||
const { VITE_USE_PWA, VITE_GLOB_APP_TITLE, VITE_GLOB_APP_SHORT_NAME } = env
|
|
||||||
|
|
||||||
if (VITE_USE_PWA) {
|
|
||||||
// vite-plugin-pwa
|
|
||||||
const pwaPlugin = VitePWA({
|
|
||||||
manifest: {
|
|
||||||
name: VITE_GLOB_APP_TITLE,
|
|
||||||
short_name: VITE_GLOB_APP_SHORT_NAME,
|
|
||||||
icons: [
|
|
||||||
{
|
|
||||||
src: './resource/img/pwa-192x192.png',
|
|
||||||
sizes: '192x192',
|
|
||||||
type: 'image/png',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: './resource/img/pwa-512x512.png',
|
|
||||||
sizes: '512x512',
|
|
||||||
type: 'image/png',
|
|
||||||
},
|
|
||||||
],
|
|
||||||
},
|
|
||||||
})
|
|
||||||
return pwaPlugin
|
|
||||||
}
|
|
||||||
return []
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/**
|
|
||||||
* Vite Plugin for fast creating SVG sprites.
|
|
||||||
* https://github.com/anncwb/vite-plugin-svg-icons
|
|
||||||
*/
|
|
||||||
|
|
||||||
import path from 'node:path'
|
|
||||||
import { createSvgIconsPlugin } from 'vite-plugin-svg-icons'
|
|
||||||
import type { PluginOption } from 'vite'
|
|
||||||
|
|
||||||
export function configSvgIconsPlugin(isBuild: boolean) {
|
|
||||||
const svgIconsPlugin = createSvgIconsPlugin({
|
|
||||||
iconDirs: [path.resolve(process.cwd(), 'src/assets/icons')],
|
|
||||||
svgoOptions: isBuild,
|
|
||||||
// default
|
|
||||||
symbolId: 'icon-[dir]-[name]',
|
|
||||||
})
|
|
||||||
return svgIconsPlugin as PluginOption
|
|
||||||
}
|
|
@ -1,18 +0,0 @@
|
|||||||
/**
|
|
||||||
* Package file volume analysis
|
|
||||||
*/
|
|
||||||
import visualizer from 'rollup-plugin-visualizer'
|
|
||||||
import type { PluginOption } from 'vite'
|
|
||||||
import { isReportMode } from '../../utils'
|
|
||||||
|
|
||||||
export function configVisualizerConfig() {
|
|
||||||
if (isReportMode()) {
|
|
||||||
return visualizer({
|
|
||||||
filename: './node_modules/.cache/visualizer/stats.html',
|
|
||||||
open: true,
|
|
||||||
gzipSize: true,
|
|
||||||
brotliSize: true,
|
|
||||||
}) as PluginOption
|
|
||||||
}
|
|
||||||
return []
|
|
||||||
}
|
|
@ -1,34 +0,0 @@
|
|||||||
/**
|
|
||||||
* Used to parse the .env.development proxy configuration
|
|
||||||
*/
|
|
||||||
import type { ProxyOptions } from 'vite'
|
|
||||||
|
|
||||||
type ProxyItem = [string, string]
|
|
||||||
|
|
||||||
type ProxyList = ProxyItem[]
|
|
||||||
|
|
||||||
type ProxyTargetList = Record<string, ProxyOptions>
|
|
||||||
|
|
||||||
const httpsRE = /^https:\/\//
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generate proxy
|
|
||||||
* @param list
|
|
||||||
*/
|
|
||||||
export function createProxy(list: ProxyList = []) {
|
|
||||||
const ret: ProxyTargetList = {}
|
|
||||||
for (const [prefix, target] of list) {
|
|
||||||
const isHttps = httpsRE.test(target)
|
|
||||||
|
|
||||||
// https://github.com/http-party/node-http-proxy#options
|
|
||||||
ret[prefix] = {
|
|
||||||
target,
|
|
||||||
changeOrigin: true,
|
|
||||||
ws: true,
|
|
||||||
rewrite: path => path.replace(new RegExp(`^${prefix}`), ''),
|
|
||||||
// https is require secure=false
|
|
||||||
...(isHttps ? { secure: false } : {}),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return ret
|
|
||||||
}
|
|
Binary file not shown.
@ -0,0 +1,102 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import javax.servlet.http.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||||
|
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||||
|
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
|
||||||
|
import com.yunxi.scm.module.system.convert.businessenterpriserelational.BusinessEnterpriseRelationalConvert;
|
||||||
|
import com.yunxi.scm.module.system.service.businessenterpriserelational.BusinessEnterpriseRelationalService;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 业务线和机构关联")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/system/business-enterprise-relational")
|
||||||
|
@Validated
|
||||||
|
public class BusinessEnterpriseRelationalController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessEnterpriseRelationalService businessEnterpriseRelationalService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建业务线和机构关联")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:create')")
|
||||||
|
public CommonResult<Long> createBusinessEnterpriseRelational(@Valid @RequestBody BusinessEnterpriseRelationalCreateReqVO createReqVO) {
|
||||||
|
return success(businessEnterpriseRelationalService.createBusinessEnterpriseRelational(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新业务线和机构关联")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:update')")
|
||||||
|
public CommonResult<Boolean> updateBusinessEnterpriseRelational(@Valid @RequestBody BusinessEnterpriseRelationalUpdateReqVO updateReqVO) {
|
||||||
|
businessEnterpriseRelationalService.updateBusinessEnterpriseRelational(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除业务线和机构关联")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:delete')")
|
||||||
|
public CommonResult<Boolean> deleteBusinessEnterpriseRelational(@RequestParam("id") Long id) {
|
||||||
|
businessEnterpriseRelationalService.deleteBusinessEnterpriseRelational(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得业务线和机构关联")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
|
||||||
|
public CommonResult<BusinessEnterpriseRelationalRespVO> getBusinessEnterpriseRelational(@RequestParam("id") Long id) {
|
||||||
|
BusinessEnterpriseRelationalDO businessEnterpriseRelational = businessEnterpriseRelationalService.getBusinessEnterpriseRelational(id);
|
||||||
|
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convert(businessEnterpriseRelational));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@Operation(summary = "获得业务线和机构关联列表")
|
||||||
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
|
||||||
|
public CommonResult<List<BusinessEnterpriseRelationalRespVO>> getBusinessEnterpriseRelationalList(@RequestParam("ids") Collection<Long> ids) {
|
||||||
|
List<BusinessEnterpriseRelationalDO> list = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalList(ids);
|
||||||
|
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convertList(list));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得业务线和机构关联分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:query')")
|
||||||
|
public CommonResult<PageResult<BusinessEnterpriseRelationalRespVO>> getBusinessEnterpriseRelationalPage(@Valid BusinessEnterpriseRelationalPageReqVO pageVO) {
|
||||||
|
PageResult<BusinessEnterpriseRelationalDO> pageResult = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalPage(pageVO);
|
||||||
|
return success(BusinessEnterpriseRelationalConvert.INSTANCE.convertPage(pageResult));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出业务线和机构关联 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-enterprise-relational:export')")
|
||||||
|
@OperateLog(type = EXPORT)
|
||||||
|
public void exportBusinessEnterpriseRelationalExcel(@Valid BusinessEnterpriseRelationalExportReqVO exportReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
List<BusinessEnterpriseRelationalDO> list = businessEnterpriseRelationalService.getBusinessEnterpriseRelationalList(exportReqVO);
|
||||||
|
// 导出 Excel
|
||||||
|
List<BusinessEnterpriseRelationalExcelVO> datas = BusinessEnterpriseRelationalConvert.INSTANCE.convertList02(list);
|
||||||
|
ExcelUtils.write(response, "业务线和机构关联.xls", "数据", BusinessEnterpriseRelationalExcelVO.class, datas);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和机构关联创建 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessEnterpriseRelationalCreateReqVO extends BusinessEnterpriseRelationalBaseVO {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和机构关联 Excel VO
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class BusinessEnterpriseRelationalExcelVO {
|
||||||
|
|
||||||
|
@ExcelProperty("主键id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ExcelProperty("业务线id")
|
||||||
|
private Long businessId;
|
||||||
|
|
||||||
|
@ExcelProperty("企业id")
|
||||||
|
private Long enterpriseId;
|
||||||
|
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和机构关联分页 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessEnterpriseRelationalPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "业务线id", example = "3256")
|
||||||
|
private Long businessId;
|
||||||
|
|
||||||
|
@Schema(description = "企业id", example = "15640")
|
||||||
|
private Long enterpriseId;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和机构关联 Response VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessEnterpriseRelationalRespVO extends BusinessEnterpriseRelationalBaseVO {
|
||||||
|
|
||||||
|
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21519")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和机构关联更新 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessEnterpriseRelationalUpdateReqVO extends BusinessEnterpriseRelationalBaseVO {
|
||||||
|
|
||||||
|
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "21519")
|
||||||
|
@NotNull(message = "主键id不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,102 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessuserrelational;
|
||||||
|
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
import org.springframework.security.access.prepost.PreAuthorize;
|
||||||
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
|
import io.swagger.v3.oas.annotations.Parameter;
|
||||||
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
|
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import javax.servlet.http.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.CommonResult;
|
||||||
|
import static com.yunxi.scm.framework.common.pojo.CommonResult.success;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.excel.core.util.ExcelUtils;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.operatelog.core.annotations.OperateLog;
|
||||||
|
import static com.yunxi.scm.framework.operatelog.core.enums.OperateTypeEnum.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
|
||||||
|
import com.yunxi.scm.module.system.convert.businessuserrelational.BusinessUserRelationalConvert;
|
||||||
|
import com.yunxi.scm.module.system.service.businessuserrelational.BusinessUserRelationalService;
|
||||||
|
|
||||||
|
@Tag(name = "管理后台 - 业务线和用户关联")
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/system/business-user-relational")
|
||||||
|
@Validated
|
||||||
|
public class BusinessUserRelationalController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessUserRelationalService businessUserRelationalService;
|
||||||
|
|
||||||
|
@PostMapping("/create")
|
||||||
|
@Operation(summary = "创建业务线和用户关联")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:create')")
|
||||||
|
public CommonResult<Long> createBusinessUserRelational(@Valid @RequestBody BusinessUserRelationalCreateReqVO createReqVO) {
|
||||||
|
return success(businessUserRelationalService.createBusinessUserRelational(createReqVO));
|
||||||
|
}
|
||||||
|
|
||||||
|
@PutMapping("/update")
|
||||||
|
@Operation(summary = "更新业务线和用户关联")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:update')")
|
||||||
|
public CommonResult<Boolean> updateBusinessUserRelational(@Valid @RequestBody BusinessUserRelationalUpdateReqVO updateReqVO) {
|
||||||
|
businessUserRelationalService.updateBusinessUserRelational(updateReqVO);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@DeleteMapping("/delete")
|
||||||
|
@Operation(summary = "删除业务线和用户关联")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true)
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:delete')")
|
||||||
|
public CommonResult<Boolean> deleteBusinessUserRelational(@RequestParam("id") Long id) {
|
||||||
|
businessUserRelationalService.deleteBusinessUserRelational(id);
|
||||||
|
return success(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/get")
|
||||||
|
@Operation(summary = "获得业务线和用户关联")
|
||||||
|
@Parameter(name = "id", description = "编号", required = true, example = "1024")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
|
||||||
|
public CommonResult<BusinessUserRelationalRespVO> getBusinessUserRelational(@RequestParam("id") Long id) {
|
||||||
|
BusinessUserRelationalDO businessUserRelational = businessUserRelationalService.getBusinessUserRelational(id);
|
||||||
|
return success(BusinessUserRelationalConvert.INSTANCE.convert(businessUserRelational));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/list")
|
||||||
|
@Operation(summary = "获得业务线和用户关联列表")
|
||||||
|
@Parameter(name = "ids", description = "编号列表", required = true, example = "1024,2048")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
|
||||||
|
public CommonResult<List<BusinessUserRelationalRespVO>> getBusinessUserRelationalList(@RequestParam("ids") Collection<Long> ids) {
|
||||||
|
List<BusinessUserRelationalDO> list = businessUserRelationalService.getBusinessUserRelationalList(ids);
|
||||||
|
return success(BusinessUserRelationalConvert.INSTANCE.convertList(list));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/page")
|
||||||
|
@Operation(summary = "获得业务线和用户关联分页")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:query')")
|
||||||
|
public CommonResult<PageResult<BusinessUserRelationalRespVO>> getBusinessUserRelationalPage(@Valid BusinessUserRelationalPageReqVO pageVO) {
|
||||||
|
PageResult<BusinessUserRelationalDO> pageResult = businessUserRelationalService.getBusinessUserRelationalPage(pageVO);
|
||||||
|
return success(BusinessUserRelationalConvert.INSTANCE.convertPage(pageResult));
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/export-excel")
|
||||||
|
@Operation(summary = "导出业务线和用户关联 Excel")
|
||||||
|
@PreAuthorize("@ss.hasPermission('system:business-user-relational:export')")
|
||||||
|
@OperateLog(type = EXPORT)
|
||||||
|
public void exportBusinessUserRelationalExcel(@Valid BusinessUserRelationalExportReqVO exportReqVO,
|
||||||
|
HttpServletResponse response) throws IOException {
|
||||||
|
List<BusinessUserRelationalDO> list = businessUserRelationalService.getBusinessUserRelationalList(exportReqVO);
|
||||||
|
// 导出 Excel
|
||||||
|
List<BusinessUserRelationalExcelVO> datas = BusinessUserRelationalConvert.INSTANCE.convertList02(list);
|
||||||
|
ExcelUtils.write(response, "业务线和用户关联.xls", "数据", BusinessUserRelationalExcelVO.class, datas);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,14 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和用户关联创建 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessUserRelationalCreateReqVO extends BusinessUserRelationalBaseVO {
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,31 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import com.alibaba.excel.annotation.ExcelProperty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和用户关联 Excel VO
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class BusinessUserRelationalExcelVO {
|
||||||
|
|
||||||
|
@ExcelProperty("主键id")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@ExcelProperty("业务线/仓库id")
|
||||||
|
private Long businessId;
|
||||||
|
|
||||||
|
@ExcelProperty("用户id")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@ExcelProperty("创建时间")
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,28 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和用户关联分页 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessUserRelationalPageReqVO extends PageParam {
|
||||||
|
|
||||||
|
@Schema(description = "业务线/仓库id", example = "29863")
|
||||||
|
private Long businessId;
|
||||||
|
|
||||||
|
@Schema(description = "用户id", example = "2593")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和用户关联 Response VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessUserRelationalRespVO extends BusinessUserRelationalBaseVO {
|
||||||
|
|
||||||
|
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17732")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
|
||||||
|
private LocalDateTime createTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,18 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo;
|
||||||
|
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.constraints.*;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线和用户关联更新 Request VO")
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
public class BusinessUserRelationalUpdateReqVO extends BusinessUserRelationalBaseVO {
|
||||||
|
|
||||||
|
@Schema(description = "主键id", requiredMode = Schema.RequiredMode.REQUIRED, example = "17732")
|
||||||
|
@NotNull(message = "主键id不能为空")
|
||||||
|
private Long id;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,44 @@
|
|||||||
|
package com.yunxi.scm.module.system.controller.admin.businesswarehouse.vo;
|
||||||
|
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageParam;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businesswarehouse.BusinessWarehouseDO;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.user.AdminUserDO;
|
||||||
|
import io.swagger.v3.oas.annotations.media.Schema;
|
||||||
|
import lombok.AllArgsConstructor;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.NoArgsConstructor;
|
||||||
|
import org.springframework.format.annotation.DateTimeFormat;
|
||||||
|
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
|
||||||
|
import static com.yunxi.scm.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
|
||||||
|
|
||||||
|
@Schema(description = "管理后台 - 业务线员工信息 Response VO")
|
||||||
|
@Data
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class BusinessUserVO extends AdminUserDO {
|
||||||
|
|
||||||
|
|
||||||
|
@Schema(description = "帐号状态")
|
||||||
|
private Integer accountStatus;
|
||||||
|
@Schema(description = "业务编号")
|
||||||
|
private Integer businessId;
|
||||||
|
@Schema(description = "业务名称")
|
||||||
|
private String businessName;
|
||||||
|
@Schema(description = "员工编号")
|
||||||
|
private Integer userId;
|
||||||
|
@Schema(description = "分页")
|
||||||
|
private Integer pageNo;
|
||||||
|
@Schema(description = "分页")
|
||||||
|
private Integer pageSize;
|
||||||
|
@Schema(description = "部门名称")
|
||||||
|
private String deptName;
|
||||||
|
@Schema(description = "职务名称")
|
||||||
|
private String postName;
|
||||||
|
@Schema(description = "创建时间", example = "[2022-07-01 00:00:00, 2022-07-01 23:59:59]")
|
||||||
|
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
|
||||||
|
private LocalDateTime[] loginTime;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package com.yunxi.scm.module.system.convert.businessenterpriserelational;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和机构关联 Convert
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface BusinessEnterpriseRelationalConvert {
|
||||||
|
|
||||||
|
BusinessEnterpriseRelationalConvert INSTANCE = Mappers.getMapper(BusinessEnterpriseRelationalConvert.class);
|
||||||
|
|
||||||
|
BusinessEnterpriseRelationalDO convert(BusinessEnterpriseRelationalCreateReqVO bean);
|
||||||
|
|
||||||
|
BusinessEnterpriseRelationalDO convert(BusinessEnterpriseRelationalUpdateReqVO bean);
|
||||||
|
|
||||||
|
BusinessEnterpriseRelationalRespVO convert(BusinessEnterpriseRelationalDO bean);
|
||||||
|
|
||||||
|
List<BusinessEnterpriseRelationalRespVO> convertList(List<BusinessEnterpriseRelationalDO> list);
|
||||||
|
|
||||||
|
PageResult<BusinessEnterpriseRelationalRespVO> convertPage(PageResult<BusinessEnterpriseRelationalDO> page);
|
||||||
|
|
||||||
|
List<BusinessEnterpriseRelationalExcelVO> convertList02(List<BusinessEnterpriseRelationalDO> list);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,34 @@
|
|||||||
|
package com.yunxi.scm.module.system.convert.businessuserrelational;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import org.mapstruct.Mapper;
|
||||||
|
import org.mapstruct.factory.Mappers;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和用户关联 Convert
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface BusinessUserRelationalConvert {
|
||||||
|
|
||||||
|
BusinessUserRelationalConvert INSTANCE = Mappers.getMapper(BusinessUserRelationalConvert.class);
|
||||||
|
|
||||||
|
BusinessUserRelationalDO convert(BusinessUserRelationalCreateReqVO bean);
|
||||||
|
|
||||||
|
BusinessUserRelationalDO convert(BusinessUserRelationalUpdateReqVO bean);
|
||||||
|
|
||||||
|
BusinessUserRelationalRespVO convert(BusinessUserRelationalDO bean);
|
||||||
|
|
||||||
|
List<BusinessUserRelationalRespVO> convertList(List<BusinessUserRelationalDO> list);
|
||||||
|
|
||||||
|
PageResult<BusinessUserRelationalRespVO> convertPage(PageResult<BusinessUserRelationalDO> page);
|
||||||
|
|
||||||
|
List<BusinessUserRelationalExcelVO> convertList02(List<BusinessUserRelationalDO> list);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和机构关联 DO
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@TableName("system_business_enterprise_relational")
|
||||||
|
@KeySequence("system_business_enterprise_relational_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class BusinessEnterpriseRelationalDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 业务线id
|
||||||
|
*/
|
||||||
|
private Long businessId;
|
||||||
|
/**
|
||||||
|
* 企业id
|
||||||
|
*/
|
||||||
|
private Long enterpriseId;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,39 @@
|
|||||||
|
package com.yunxi.scm.module.system.dal.dataobject.businessuserrelational;
|
||||||
|
|
||||||
|
import lombok.*;
|
||||||
|
import java.util.*;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import java.time.LocalDateTime;
|
||||||
|
import com.baomidou.mybatisplus.annotation.*;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.dataobject.BaseDO;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和用户关联 DO
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@TableName("system_business_user_relational")
|
||||||
|
@KeySequence("system_business_user_relational_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库,可不写。
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
@ToString(callSuper = true)
|
||||||
|
@Builder
|
||||||
|
@NoArgsConstructor
|
||||||
|
@AllArgsConstructor
|
||||||
|
public class BusinessUserRelationalDO extends BaseDO {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 主键id
|
||||||
|
*/
|
||||||
|
@TableId
|
||||||
|
private Long id;
|
||||||
|
/**
|
||||||
|
* 业务线/仓库id
|
||||||
|
*/
|
||||||
|
private Long businessId;
|
||||||
|
/**
|
||||||
|
* 用户id
|
||||||
|
*/
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.yunxi.scm.module.system.dal.mysql.businessenterpriserelational;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和机构关联 Mapper
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface BusinessEnterpriseRelationalMapper extends BaseMapperX<BusinessEnterpriseRelationalDO> {
|
||||||
|
|
||||||
|
default PageResult<BusinessEnterpriseRelationalDO> selectPage(BusinessEnterpriseRelationalPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessEnterpriseRelationalDO>()
|
||||||
|
.eqIfPresent(BusinessEnterpriseRelationalDO::getBusinessId, reqVO.getBusinessId())
|
||||||
|
.eqIfPresent(BusinessEnterpriseRelationalDO::getEnterpriseId, reqVO.getEnterpriseId())
|
||||||
|
.betweenIfPresent(BusinessEnterpriseRelationalDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(BusinessEnterpriseRelationalDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default List<BusinessEnterpriseRelationalDO> selectList(BusinessEnterpriseRelationalExportReqVO reqVO) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<BusinessEnterpriseRelationalDO>()
|
||||||
|
.eqIfPresent(BusinessEnterpriseRelationalDO::getBusinessId, reqVO.getBusinessId())
|
||||||
|
.eqIfPresent(BusinessEnterpriseRelationalDO::getEnterpriseId, reqVO.getEnterpriseId())
|
||||||
|
.betweenIfPresent(BusinessEnterpriseRelationalDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(BusinessEnterpriseRelationalDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,36 @@
|
|||||||
|
package com.yunxi.scm.module.system.dal.mysql.businessuserrelational;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.query.LambdaQueryWrapperX;
|
||||||
|
import com.yunxi.scm.framework.mybatis.core.mapper.BaseMapperX;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
|
||||||
|
import org.apache.ibatis.annotations.Mapper;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和用户关联 Mapper
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Mapper
|
||||||
|
public interface BusinessUserRelationalMapper extends BaseMapperX<BusinessUserRelationalDO> {
|
||||||
|
|
||||||
|
default PageResult<BusinessUserRelationalDO> selectPage(BusinessUserRelationalPageReqVO reqVO) {
|
||||||
|
return selectPage(reqVO, new LambdaQueryWrapperX<BusinessUserRelationalDO>()
|
||||||
|
.eqIfPresent(BusinessUserRelationalDO::getBusinessId, reqVO.getBusinessId())
|
||||||
|
.eqIfPresent(BusinessUserRelationalDO::getUserId, reqVO.getUserId())
|
||||||
|
.betweenIfPresent(BusinessUserRelationalDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(BusinessUserRelationalDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
default List<BusinessUserRelationalDO> selectList(BusinessUserRelationalExportReqVO reqVO) {
|
||||||
|
return selectList(new LambdaQueryWrapperX<BusinessUserRelationalDO>()
|
||||||
|
.eqIfPresent(BusinessUserRelationalDO::getBusinessId, reqVO.getBusinessId())
|
||||||
|
.eqIfPresent(BusinessUserRelationalDO::getUserId, reqVO.getUserId())
|
||||||
|
.betweenIfPresent(BusinessUserRelationalDO::getCreateTime, reqVO.getCreateTime())
|
||||||
|
.orderByDesc(BusinessUserRelationalDO::getId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.yunxi.scm.module.system.service.businessenterpriserelational;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和机构关联 Service 接口
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
public interface BusinessEnterpriseRelationalService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建业务线和机构关联
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createBusinessEnterpriseRelational(@Valid BusinessEnterpriseRelationalCreateReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新业务线和机构关联
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateBusinessEnterpriseRelational(@Valid BusinessEnterpriseRelationalUpdateReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除业务线和机构关联
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteBusinessEnterpriseRelational(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和机构关联
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 业务线和机构关联
|
||||||
|
*/
|
||||||
|
BusinessEnterpriseRelationalDO getBusinessEnterpriseRelational(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和机构关联列表
|
||||||
|
*
|
||||||
|
* @param ids 编号
|
||||||
|
* @return 业务线和机构关联列表
|
||||||
|
*/
|
||||||
|
List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(Collection<Long> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和机构关联分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 业务线和机构关联分页
|
||||||
|
*/
|
||||||
|
PageResult<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalPage(BusinessEnterpriseRelationalPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和机构关联列表, 用于 Excel 导出
|
||||||
|
*
|
||||||
|
* @param exportReqVO 查询条件
|
||||||
|
* @return 业务线和机构关联列表
|
||||||
|
*/
|
||||||
|
List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(BusinessEnterpriseRelationalExportReqVO exportReqVO);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package com.yunxi.scm.module.system.service.businessenterpriserelational;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessenterpriserelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessenterpriserelational.BusinessEnterpriseRelationalDO;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.system.convert.businessenterpriserelational.BusinessEnterpriseRelationalConvert;
|
||||||
|
import com.yunxi.scm.module.system.dal.mysql.businessenterpriserelational.BusinessEnterpriseRelationalMapper;
|
||||||
|
|
||||||
|
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和机构关联 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class BusinessEnterpriseRelationalServiceImpl implements BusinessEnterpriseRelationalService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessEnterpriseRelationalMapper businessEnterpriseRelationalMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createBusinessEnterpriseRelational(BusinessEnterpriseRelationalCreateReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
BusinessEnterpriseRelationalDO businessEnterpriseRelational = BusinessEnterpriseRelationalConvert.INSTANCE.convert(createReqVO);
|
||||||
|
businessEnterpriseRelationalMapper.insert(businessEnterpriseRelational);
|
||||||
|
// 返回
|
||||||
|
return businessEnterpriseRelational.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateBusinessEnterpriseRelational(BusinessEnterpriseRelationalUpdateReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateBusinessEnterpriseRelationalExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
BusinessEnterpriseRelationalDO updateObj = BusinessEnterpriseRelationalConvert.INSTANCE.convert(updateReqVO);
|
||||||
|
businessEnterpriseRelationalMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteBusinessEnterpriseRelational(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateBusinessEnterpriseRelationalExists(id);
|
||||||
|
// 删除
|
||||||
|
businessEnterpriseRelationalMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateBusinessEnterpriseRelationalExists(Long id) {
|
||||||
|
if (businessEnterpriseRelationalMapper.selectById(id) == null) {
|
||||||
|
throw exception(BUSINESS_ENTERPRISE_RELATIONAL_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BusinessEnterpriseRelationalDO getBusinessEnterpriseRelational(Long id) {
|
||||||
|
return businessEnterpriseRelationalMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(Collection<Long> ids) {
|
||||||
|
return businessEnterpriseRelationalMapper.selectBatchIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalPage(BusinessEnterpriseRelationalPageReqVO pageReqVO) {
|
||||||
|
return businessEnterpriseRelationalMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BusinessEnterpriseRelationalDO> getBusinessEnterpriseRelationalList(BusinessEnterpriseRelationalExportReqVO exportReqVO) {
|
||||||
|
return businessEnterpriseRelationalMapper.selectList(exportReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,70 @@
|
|||||||
|
package com.yunxi.scm.module.system.service.businessuserrelational;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import javax.validation.*;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和用户关联 Service 接口
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
public interface BusinessUserRelationalService {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 创建业务线和用户关联
|
||||||
|
*
|
||||||
|
* @param createReqVO 创建信息
|
||||||
|
* @return 编号
|
||||||
|
*/
|
||||||
|
Long createBusinessUserRelational(@Valid BusinessUserRelationalCreateReqVO createReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 更新业务线和用户关联
|
||||||
|
*
|
||||||
|
* @param updateReqVO 更新信息
|
||||||
|
*/
|
||||||
|
void updateBusinessUserRelational(@Valid BusinessUserRelationalUpdateReqVO updateReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 删除业务线和用户关联
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
*/
|
||||||
|
void deleteBusinessUserRelational(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和用户关联
|
||||||
|
*
|
||||||
|
* @param id 编号
|
||||||
|
* @return 业务线和用户关联
|
||||||
|
*/
|
||||||
|
BusinessUserRelationalDO getBusinessUserRelational(Long id);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和用户关联列表
|
||||||
|
*
|
||||||
|
* @param ids 编号
|
||||||
|
* @return 业务线和用户关联列表
|
||||||
|
*/
|
||||||
|
List<BusinessUserRelationalDO> getBusinessUserRelationalList(Collection<Long> ids);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和用户关联分页
|
||||||
|
*
|
||||||
|
* @param pageReqVO 分页查询
|
||||||
|
* @return 业务线和用户关联分页
|
||||||
|
*/
|
||||||
|
PageResult<BusinessUserRelationalDO> getBusinessUserRelationalPage(BusinessUserRelationalPageReqVO pageReqVO);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 获得业务线和用户关联列表, 用于 Excel 导出
|
||||||
|
*
|
||||||
|
* @param exportReqVO 查询条件
|
||||||
|
* @return 业务线和用户关联列表
|
||||||
|
*/
|
||||||
|
List<BusinessUserRelationalDO> getBusinessUserRelationalList(BusinessUserRelationalExportReqVO exportReqVO);
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,82 @@
|
|||||||
|
package com.yunxi.scm.module.system.service.businessuserrelational;
|
||||||
|
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import org.springframework.validation.annotation.Validated;
|
||||||
|
|
||||||
|
import java.util.*;
|
||||||
|
import com.yunxi.scm.module.system.controller.admin.businessuserrelational.vo.*;
|
||||||
|
import com.yunxi.scm.module.system.dal.dataobject.businessuserrelational.BusinessUserRelationalDO;
|
||||||
|
import com.yunxi.scm.framework.common.pojo.PageResult;
|
||||||
|
|
||||||
|
import com.yunxi.scm.module.system.convert.businessuserrelational.BusinessUserRelationalConvert;
|
||||||
|
import com.yunxi.scm.module.system.dal.mysql.businessuserrelational.BusinessUserRelationalMapper;
|
||||||
|
|
||||||
|
import static com.yunxi.scm.framework.common.exception.util.ServiceExceptionUtil.exception;
|
||||||
|
import static com.yunxi.scm.module.system.enums.ErrorCodeConstants.*;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 业务线和用户关联 Service 实现类
|
||||||
|
*
|
||||||
|
* @author 长江云息
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Validated
|
||||||
|
public class BusinessUserRelationalServiceImpl implements BusinessUserRelationalService {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BusinessUserRelationalMapper businessUserRelationalMapper;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Long createBusinessUserRelational(BusinessUserRelationalCreateReqVO createReqVO) {
|
||||||
|
// 插入
|
||||||
|
BusinessUserRelationalDO businessUserRelational = BusinessUserRelationalConvert.INSTANCE.convert(createReqVO);
|
||||||
|
businessUserRelationalMapper.insert(businessUserRelational);
|
||||||
|
// 返回
|
||||||
|
return businessUserRelational.getId();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void updateBusinessUserRelational(BusinessUserRelationalUpdateReqVO updateReqVO) {
|
||||||
|
// 校验存在
|
||||||
|
validateBusinessUserRelationalExists(updateReqVO.getId());
|
||||||
|
// 更新
|
||||||
|
BusinessUserRelationalDO updateObj = BusinessUserRelationalConvert.INSTANCE.convert(updateReqVO);
|
||||||
|
businessUserRelationalMapper.updateById(updateObj);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void deleteBusinessUserRelational(Long id) {
|
||||||
|
// 校验存在
|
||||||
|
validateBusinessUserRelationalExists(id);
|
||||||
|
// 删除
|
||||||
|
businessUserRelationalMapper.deleteById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void validateBusinessUserRelationalExists(Long id) {
|
||||||
|
if (businessUserRelationalMapper.selectById(id) == null) {
|
||||||
|
throw exception(BUSINESS_USER_RELATIONAL_NOT_EXISTS);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BusinessUserRelationalDO getBusinessUserRelational(Long id) {
|
||||||
|
return businessUserRelationalMapper.selectById(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BusinessUserRelationalDO> getBusinessUserRelationalList(Collection<Long> ids) {
|
||||||
|
return businessUserRelationalMapper.selectBatchIds(ids);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PageResult<BusinessUserRelationalDO> getBusinessUserRelationalPage(BusinessUserRelationalPageReqVO pageReqVO) {
|
||||||
|
return businessUserRelationalMapper.selectPage(pageReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<BusinessUserRelationalDO> getBusinessUserRelationalList(BusinessUserRelationalExportReqVO exportReqVO) {
|
||||||
|
return businessUserRelationalMapper.selectList(exportReqVO);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue