Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
A
Aidea
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
sa_aidea
Aidea
Commits
d65c82f6
Commit
d65c82f6
authored
Sep 24, 2020
by
卜远杰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
产品分类
parent
c6a99534
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
1361 additions
and
1 deletion
+1361
-1
pom.xml
aidea-modules/pom.xml
+2
-0
pom.xml
aidea-modules/product-classify-module-web/pom.xml
+29
-0
productclassifyform.html
...pp/WEB-INF/views/productclassify/productclassifyform.html
+322
-0
productclassifylist.html
...pp/WEB-INF/views/productclassify/productclassifylist.html
+338
-0
pom.xml
aidea-modules/product-classify-module/pom.xml
+22
-0
ProductclassifyMapper.java
...com/cftech/productclassify/dao/ProductclassifyMapper.java
+24
-0
ProductclassifyMapper.xml
.../com/cftech/productclassify/dao/ProductclassifyMapper.xml
+201
-0
Productclassify.java
...ava/com/cftech/productclassify/model/Productclassify.java
+71
-0
ProductclassifyService.java
...ftech/productclassify/service/ProductclassifyService.java
+28
-0
ProductclassifyServiceImpl.java
...ductclassify/service/impl/ProductclassifyServiceImpl.java
+46
-0
ProductclassifyController.java
...cftech/productclassify/web/ProductclassifyController.java
+276
-0
common-test.properties
cftech-common-web/src/main/resources/common-test.properties
+1
-0
SystemConfig.java
...mmon/src/main/java/com/cftech/core/util/SystemConfig.java
+1
-1
No files found.
aidea-modules/pom.xml
View file @
d65c82f6
...
...
@@ -14,6 +14,8 @@
<modules>
<module>
consult-module
</module>
<module>
consult-module-web
</module>
<module>
product-classify-module
</module>
<module>
product-classify-module-web
</module>
</modules>
<dependencies>
...
...
aidea-modules/product-classify-module-web/pom.xml
0 → 100644
View file @
d65c82f6
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"
>
<parent>
<artifactId>
aidea-modules
</artifactId>
<groupId>
com.cftech
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
product-classify-module-web
</artifactId>
<packaging>
war
</packaging>
<name>
product-classify-module-web Maven Webapp
</name>
<url>
http://maven.apache.org
</url>
<dependencies>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<version>
3.8.1
</version>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
com.cftech
</groupId>
<artifactId>
product-classify-module
</artifactId>
<version>
1.0-SNAPSHOT
</version>
</dependency>
</dependencies>
<build>
<finalName>
product-classify-module-web
</finalName>
</build>
</project>
aidea-modules/product-classify-module-web/src/main/webapp/WEB-INF/views/productclassify/productclassifyform.html
0 → 100644
View file @
d65c82f6
<!DOCTYPE html>
<!--[if IE 8]>
<html lang="en" class="ie8 no-js"> <![endif]-->
<!--[if IE 9]>
<html lang="en" class="ie9 no-js"> <![endif]-->
<!--[if !IE]><!-->
<html>
<!--<![endif]-->
<!-- BEGIN HEAD -->
<head>
<base
href=
"#springUrl('/assets/adminlte/')"
/>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<title>
工作台
</title>
<!-- Tell the browser to be responsive to screen width -->
<meta
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
name=
"viewport"
>
<!-- Bootstrap 3.3.5 -->
<link
rel=
"stylesheet"
href=
"bootstrap/css/bootstrap.min.css"
>
<!-- Font Awesome -->
<link
rel=
"stylesheet"
href=
"plugins/font-awesome/css/font-awesome.min.css"
>
<!-- Ionicons -->
<link
rel=
"stylesheet"
href=
"plugins/ionicons/css/ionicons.min.css"
>
<!-- DataTables -->
<link
rel=
"stylesheet"
href=
"plugins/datatables/dataTables.bootstrap.css"
>
<!-- Theme style -->
<link
rel=
"stylesheet"
href=
"dist/css/AdminLTE.min.css"
>
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link
rel=
"stylesheet"
href=
"dist/css/skins/_all-skins.min.css"
>
<!-- iCheck -->
<link
rel=
"stylesheet"
href=
"plugins/iCheck/flat/blue.css"
>
<!-- Date Picker -->
<link
rel=
"stylesheet"
href=
"plugins/datepicker/datepicker3.css"
>
<!-- Daterange picker -->
<link
rel=
"stylesheet"
href=
"plugins/daterangepicker/daterangepicker-bs3.css"
>
<!-- bootstrap wysihtml5 - text editor -->
<link
rel=
"stylesheet"
href=
"plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"
>
<!--validate css-->
<link
rel=
"stylesheet"
href=
"plugins/jquery-validation/css/validate.css"
>
<!-- ztree css -->
<link
rel=
"stylesheet"
href=
"plugins/ztree/css/metroStyle/metroStyle.css"
type=
"text/css"
/>
<!--fileinput css-->
<link
rel=
"stylesheet"
href=
"plugins/bootstrap-fileinput/bootstrap-fileinput.css"
>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
<link
rel=
"stylesheet"
href=
"common/css/uePicPicker.css"
>
</head>
<!-- END HEAD -->
<body
class=
"hold-transition skin-blue sidebar-mini"
>
<div
class=
"wrapper"
>
<div
class=
"content-wrapper"
style=
"margin-left:0;"
>
<section
class=
"content-header"
>
<h1>
产品分类管理
<small>
产品分类
</small>
</h1>
<ol
class=
"breadcrumb"
>
<li><a
href=
"#"
><i
class=
"fa fa-dashboard"
></i>
首页
</a></li>
<li><a
class=
"active"
>
产品分类
</a></li>
</ol>
</section>
<!-- Main content -->
<section
class=
"content"
>
<div
class=
"row"
>
<div
class=
"col-xs-12"
>
<!-- general form elements disabled -->
<div
class=
"box box-primary"
>
<form
role=
"form"
id=
"myForm"
>
<input
name=
"id"
value=
"$!{data.id}"
hidden=
"true"
/>
<div
class=
"box-body"
>
</div>
<div
class=
"form-group form-md-line-input"
>
<label>
上级分类
</label>
<div
class=
"input-group"
>
<input
type=
"text"
id=
"parentId"
name=
"parentId"
value=
"$!{data.parentId}"
class=
"form-control"
style=
"display: none"
>
<input
type=
"text"
id=
"parentName"
name=
"parentName"
value=
"$!{data.parentName}"
class=
"form-control"
required=
"required"
disabled
>
<span
class=
"input-group-btn"
>
<button
type=
"button"
id=
"parentSelect"
class=
"btn btn-info btn-flat"
>
选择
</button>
</span>
</div>
</div>
<div
class=
"form-group form-md-line-input col-md-12"
>
<label>
产品分类名称
</label>
<input
type=
"text"
required
class=
"form-control pull-right"
value=
"$!{data.classifyName}"
maxlength=
"500"
required
name=
"classifyName"
placeholder=
"产品分类名称"
>
</div>
<div
class=
"form-group form-md-line-input col-md-12"
>
<label>
产品分类编码
</label>
<input
type=
"text"
required
class=
"form-control pull-right"
readonly
value=
"$!{data.classifyNumber}"
maxlength=
"500"
name=
"classifyNumber"
placeholder=
"产品分类编码"
>
</div>
<div
class=
"form-group form-md-line-input col-md-12"
>
<label>
序号
</label>
<input
type=
"text"
required
class=
"form-control pull-right"
value=
"$!{data.sort}"
maxlength=
"500"
required
name=
"sort"
placeholder=
"序号"
>
</div>
<div
class=
"form-group form-md-line-input col-md-12"
id=
"img"
>
</div>
<div
class=
"form-group form-md-line-input col-md-12"
>
<label>
是否推荐
</label>
#if($data.whetherRecommend == '是')
<input
type=
"radio"
name=
"whetherRecommend"
value=
"是"
checked=
"true"
/>
是
<input
type=
"radio"
name=
"whetherRecommend"
value=
"否"
/>
否
#elseif($data.whetherRecommend == '否')
<input
type=
"radio"
name=
"whetherRecommend"
value=
"是"
/>
是
<input
type=
"radio"
name=
"whetherRecommend"
value=
"否"
checked=
"true"
/>
否
#else
<input
type=
"radio"
name=
"whetherRecommend"
value=
"是"
checked=
"true"
/>
是
<input
type=
"radio"
name=
"whetherRecommend"
value=
"否"
/>
否
#end
</div>
<input
type=
"text"
style=
"display: none"
name=
"_csrf"
value=
"${_csrf.token}"
/>
<input
type=
"text"
style=
"display: none"
name=
"_csrf_header"
value=
"${_csrf.headerName}"
/>
<div
class=
"form-group form-md-line-input col-md-12"
>
<label>
备注
</label>
<textarea
type=
"text"
class=
"form-control pull-right"
maxlength=
"500"
name=
"description"
placeholder=
"备注"
>
$!{data.description}
</textarea>
</div>
<div
class=
"box-footer"
>
#if($shiro.hasPermission("qy:productclassify:edit"))
<input
class=
"btn btn-primary"
id=
"save"
value=
"保存"
type=
"submit"
>
#end
<a
href=
"#springUrl('/a/productclassify/list')"
class=
"btn btn-default"
>
取消
</a>
</div>
</form>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<!-- Add the sidebar's background. This div must be placed
immediately after the control sidebar -->
<div
class=
"control-sidebar-bg"
></div>
</div>
<!-- ./wrapper -->
<script
src=
"plugins/jQuery/jQuery-2.1.4.min.js"
></script>
<!-- Bootstrap 3.3.5 -->
<script
src=
"bootstrap/js/bootstrap.min.js"
></script>
<!-- DataTables -->
<script
src=
"plugins/datatables/jquery.dataTables.min.js"
></script>
<script
src=
"plugins/datatables/extensions/i18n/lanauage_ch.js"
></script>
<script
src=
"plugins/datatables/dataTables.bootstrap.min.js"
></script>
<!-- SlimScroll -->
<script
src=
"plugins/slimScroll/jquery.slimscroll.min.js"
></script>
<!-- FastClick -->
<script
src=
"plugins/fastclick/fastclick.min.js"
></script>
<!--fileinput js-->
<script
src=
"plugins/bootstrap-fileinput/bootstrap-fileinput.js"
></script>
<!-- ztree -->
<script
src=
"plugins/ztree/js/jquery.ztree.all.min.js"
type=
"text/javascript"
></script>
<!-- AdminLTE App -->
<script
src=
"dist/js/app.min.js"
></script>
<script
src=
"plugins/bootstrap-maxlength/bootstrap-maxlength.min.js"
type=
"text/javascript"
></script>
<script
src=
"plugins/security/sha256.js"
type=
"text/javascript"
></script>
<script
src=
"plugins/jquery-validation/js/jquery.validate.min.js"
></script>
<script
src=
"js/jquery.form.min.js"
></script>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"plugins/ueditor-min-1.4.3/ueditor.config.js"
></script>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"plugins/ueditor-min-1.4.3/ueditor.all.js"
></script>
<script
type=
"text/javascript"
charset=
"utf-8"
src=
"plugins/ueditor-min-1.4.3/lang/zh-cn/zh-cn.js"
></script>
<script
src=
"common/js/cfapp.js"
></script>
<script
src=
"js/jquery.serializejson.js"
></script>
<script
src=
"plugins/jquery-validation/js/localization/messages_zh.js"
></script>
<script
src=
"plugins/Sortable/Sortable.min.js"
></script>
<script
src=
"common/component/uePicPicker.js"
></script>
<!-- END PAGE LEVEL PLUGINS -->
<script>
$
().
ready
(
function
()
{
Cfapp
.
init
();
recdTypeAdd
.
init
();
initPicsSel
();
});
var
coverPP
=
null
;
var
initPicsSel
=
function
()
{
var
smallimg
=
"$!{data.classifyImg}"
;
coverPP
=
new
uePicPicker
({
tarId
:
'img'
,
title
:
'banner图'
,
sizeDes
:
'205*202'
,
max
:
1
,
datas
:
smallimg
==
''
?
null
:
smallimg
.
split
(
","
),
success
:
null
});
coverPP
.
init
();
};
var
sSource
=
"#springUrl('/a/productclassify/treeData')"
;
var
recdTypeAdd
=
function
()
{
var
initForm
=
function
()
{
var
initFormCtrl
=
function
()
{
bindEvent
();
};
var
bindEvent
=
function
()
{
$
(
'#parentSelect'
).
on
(
'click'
,
function
()
{
Cfapp
.
treeSingleSelect
({
title
:
'上级分类选择'
,
url
:
sSource
,
displayFields
:
'parentName'
,
storeFields
:
'parentId'
,
success
:
function
()
{
console
.
log
(
'success'
);
},
cancel
:
function
()
{
console
.
log
(
'cancel'
);
}
})
});
$
(
"#myForm"
).
validate
({
rules
:
{},
messages
:
{},
submitHandler
:
function
(
form
)
{
var
data
=
$
(
"#myForm"
).
serializeJSON
();
var
classifyImg
=
coverPP
.
getStringValues
();
var
flag
=
true
;
if
(
classifyImg
==
''
){
flag
=
false
;
Cfapp
.
alert
({
message
:
"请上传图片"
,
btntext
:
"确定"
,
success
:
function
()
{
return
false
;
}
});
}
if
(
flag
){
data
.
classifyImg
=
classifyImg
;
$
(
"#save"
).
attr
(
"disabled"
,
true
);
$
.
post
(
"#springUrl('/a/productclassify/formData')"
,
data
,
function
(
returnobj
)
{
$
(
"#save"
).
attr
(
"disabled"
,
false
);
if
(
returnobj
.
errorNo
==
2
)
{
//保存成功
Cfapp
.
confirm
({
message
:
"添加成功"
,
btnoktext
:
"继续添加"
,
btncanceltext
:
"关闭"
,
success
:
function
()
{
location
.
href
=
"#springUrl('/a/productclassify/form')"
;
},
cancel
:
function
()
{
location
.
href
=
"#springUrl('/a/productclassify/list')"
;
}
});
}
else
if
(
returnobj
.
errorNo
==
0
)
{
//修改成功
Cfapp
.
alert
({
message
:
"更新成功"
,
btntext
:
"确定"
,
success
:
function
()
{
location
.
href
=
"#springUrl('/a/productclassify/list')"
;
}
});
}
else
{
Cfapp
.
alert
({
message
:
"创建失败"
,
btntext
:
"确定"
,
success
:
function
()
{
location
.
href
=
"#springUrl('/a/productclassify/list')"
;
}
});
}
});
}
}
})
}
initFormCtrl
();
}
return
{
//main function to initiate the module
init
:
function
()
{
initForm
();
}
};
}();
</script>
</body>
<!-- END BODY -->
</html>
\ No newline at end of file
aidea-modules/product-classify-module-web/src/main/webapp/WEB-INF/views/productclassify/productclassifylist.html
0 → 100644
View file @
d65c82f6
<!DOCTYPE html>
<!--[if IE 8]>
<html lang="en" class="ie8 no-js"> <![endif]-->
<!--[if IE 9]>
<html lang="en" class="ie9 no-js"> <![endif]-->
<!--[if !IE]><!-->
<html>
<!--<![endif]-->
<!-- BEGIN HEAD -->
<head>
<base
href=
"#springUrl('/assets/adminlte/')"
/>
<meta
charset=
"utf-8"
>
<meta
http-equiv=
"X-UA-Compatible"
content=
"IE=edge"
>
<title>
工作台
</title>
<!-- Tell the browser to be responsive to screen width -->
<meta
content=
"width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no"
name=
"viewport"
>
<!-- Bootstrap 3.3.5 -->
<link
rel=
"stylesheet"
href=
"bootstrap/css/bootstrap.min.css"
>
<!-- Font Awesome -->
<link
rel=
"stylesheet"
href=
"plugins/font-awesome/css/font-awesome.min.css"
>
<!-- Ionicons -->
<link
rel=
"stylesheet"
href=
"plugins/ionicons/css/ionicons.min.css"
>
<!-- DataTables -->
<link
rel=
"stylesheet"
href=
"plugins/datatables/dataTables.bootstrap.css"
>
<!-- Theme style -->
<link
rel=
"stylesheet"
href=
"dist/css/AdminLTE.min.css"
>
<!-- AdminLTE Skins. Choose a skin from the css/skins
folder instead of downloading all of them to reduce the load. -->
<link
rel=
"stylesheet"
href=
"dist/css/skins/_all-skins.min.css"
>
<!-- iCheck -->
<link
rel=
"stylesheet"
href=
"plugins/iCheck/flat/blue.css"
>
<!-- Morris chart -->
<link
rel=
"stylesheet"
href=
"plugins/morris/morris.css"
>
<!-- jvectormap -->
<link
rel=
"stylesheet"
href=
"plugins/jvectormap/jquery-jvectormap-1.2.2.css"
>
<!-- Date Picker -->
<link
rel=
"stylesheet"
href=
"plugins/datepicker/datepicker3.css"
>
<!-- Daterange picker -->
<link
rel=
"stylesheet"
href=
"plugins/daterangepicker/daterangepicker-bs3.css"
>
<link
rel=
"stylesheet"
href=
"plugins\bootstrap-fileinput\fileinput.min.css"
>
<!-- bootstrap wysihtml5 - text editor -->
<link
rel=
"stylesheet"
href=
"plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"
>
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
<![endif]-->
</head>
<body
class=
"hold-transition skin-blue sidebar-mini"
>
<div
class=
"wrapper"
>
<div
class=
"content-wrapper"
style=
"margin-left:0;"
>
<div
id=
"importExcelDiv"
></div>
<section
class=
"content-header"
>
<h1>
产品分类管理
<small>
产品分类
</small>
</h1>
<ol
class=
"breadcrumb"
>
<li><a><i
class=
"fa fa-dashboard"
></i>
首页
</a></li>
<li><a
class=
"active"
>
产品分类管理列表
</a></li>
</ol>
</section>
<!-- Main content -->
<section
class=
"content"
>
<div
class=
"row"
>
<div
class=
"col-xs-12"
>
<div
class=
"box"
>
<div
class=
"box-header"
>
<form
id=
"seachTableForm"
action=
"#springUrl('/a/productclassify/list')"
method=
"get"
>
<div
class=
"col-xs-2"
>
<input
type=
"text"
class=
"form-control "
name=
"classifyName"
placeholder=
"产品分类名称"
>
</div>
<div
class=
"col-xs-5"
>
<button
type=
"button"
class=
"search btn btn-primary"
>
搜索
</button>
#if($shiro.hasPermission("qy:productclassify:edit"))
<a
href=
"#springUrl('/a/productclassify/form')"
class=
"btn btn-primary"
>
新增
</a>
<a
onclick=
"importExcel();"
class=
"btn btn-primary"
>
导入
</a>
#end
</div>
</form>
</div>
<!-- /.box-header -->
<div
class=
"box-body"
>
<table
id=
"table"
class=
"table table-bordered table-striped"
>
<thead>
<tr>
<td
hidden=
"true"
>
Id
</td>
<td>
产品分类名称
</td>
<td>
产品分类编码
</td>
<td>
序号
</td>
<td>
banner图
</td>
<td>
是否推荐
</td>
<td>
备注
</td>
<th>
创建时间
</th>
<th>
操作
</th>
</tr>
</thead>
<tbody
id=
"tablebody"
>
</tbody>
</table>
</div>
<!-- /.box-body -->
</div>
<!-- /.box -->
</div>
<!-- /.col -->
</div>
<!-- /.row -->
</section>
<!-- /.content -->
</div>
<!-- /.content-wrapper -->
<!-- Add the sidebar's background. This div must be placed
immediately after the control sidebar -->
<div
class=
"control-sidebar-bg"
></div>
</div>
<!-- ./wrapper -->
<!-- jQuery 2.1.4 -->
<script
src=
"plugins/jQuery/jQuery-2.1.4.min.js"
></script>
<!-- Bootstrap 3.3.5 -->
<script
src=
"bootstrap/js/bootstrap.min.js"
></script>
<!-- DataTables -->
<script
src=
"plugins/datatables/jquery.dataTables.min.js"
></script>
<script
src=
"plugins/datatables/extensions/i18n/lanauage_ch.js"
></script>
<script
src=
"plugins/datatables/dataTables.bootstrap.min.js"
></script>
<!-- SlimScroll -->
<script
src=
"plugins/slimScroll/jquery.slimscroll.min.js"
></script>
<script
src=
"plugins/datepicker/bootstrap-datepicker.js"
></script>
<script
src=
"plugins/datepicker/locales/bootstrap-datepicker.zh-CN.js"
></script>
<!-- FastClick -->
<script
src=
"plugins/fastclick/fastclick.min.js"
></script>
<!--fileinput js-->
<script
src=
"plugins\bootstrap-fileinput\fileinput.js"
></script>
<script
src=
"plugins/bootstrap-fileinput/zh.js"
></script>
<script
src=
"plugins/bootstrap-fileinput/zh2.js"
></script>
<!-- AdminLTE App -->
<script
src=
"dist/js/app.min.js"
></script>
<script
type=
"text/javascript"
src=
"plugins/jquery-validation/js/jquery.validate.min.js"
></script>
<!-- AdminLTE for demo purposes -->
<script>
var
csrfheader
=
{
name
:
'_csrf_header'
,
value
:
'${_csrf.headerName}'
};
var
csrftoken
=
{
name
:
'_csrf'
,
value
:
'${_csrf.token}'
};
</script>
<script
src=
"common/js/cfapp.js"
></script>
<script>
function
formatDates
(
now
)
{
var
now
=
new
Date
(
now
);
var
year
=
now
.
getFullYear
();
var
month
=
now
.
getMonth
()
+
1
;
var
date
=
now
.
getDate
();
var
hour
=
now
.
getHours
();
var
minute
=
now
.
getMinutes
();
var
second
=
now
.
getSeconds
();
return
year
+
"-"
+
month
+
"-"
+
date
+
" "
+
hour
+
":"
+
minute
+
":"
+
second
;
}
function
seachTable
()
{
var
sSource
=
"#springUrl('/a/productclassify/listData')"
;
var
aoData
=
{
iDisplayStart
:
1
,
iDosplayLength
:
10
}
var
retrieveData
=
function
(
sSource
,
aoData
,
fnCallback
)
{
$
(
"#seachTableForm input"
).
each
(
function
()
{
var
params
=
{
name
:
$
(
this
).
attr
(
"name"
),
value
:
$
(
this
).
val
()
};
aoData
.
push
(
params
);
})
$
.
ajax
({
"type"
:
"GET"
,
"url"
:
sSource
,
"dataType"
:
"json"
,
"data"
:
aoData
,
//以json格式传递
"success"
:
fnCallback
});
};
$
(
'#table'
).
DataTable
({
"lengthChange"
:
false
,
"searching"
:
false
,
"ordering"
:
false
,
"bFiltered"
:
false
,
"bStateSave"
:
true
,
// save datatable state(pagination, sort, etc) in cookie.
"bProcessing"
:
true
,
"bServerSide"
:
true
,
"sAjaxSource"
:
sSource
,
"fnServerData"
:
retrieveData
,
"pagingType"
:
"full_numbers"
,
"aoColumns"
:
[
{
"mData"
:
"id"
},
{
"mData"
:
"classifyName"
},
{
"mData"
:
"classifyNumber"
},
{
"mData"
:
"sort"
},
{
"mData"
:
"classifyImg"
},
{
"mData"
:
"whetherRecommend"
},
{
"mData"
:
"description"
},
{
"mData"
:
"createTime"
},
{
"mData"
:
"id"
}],
"aoColumnDefs"
:
[
{
// set default column settings
'visible'
:
false
,
'targets'
:
[
0
]
},
{
"aTargets"
:[
4
],
"mData"
:
"classifyImg"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
){
return
"<img src='"
+
a
+
"' style='width: 80px;height: 80px;'>"
;
}
},
{
"aTargets"
:
[
7
],
"mData"
:
"createTime"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
return
formatDates
(
a
,
"yyyy-MM-dd HH:mm:ss"
);
}
},
{
"aTargets"
:
[
8
],
"mData"
:
"id"
,
"mRender"
:
function
(
a
,
b
,
c
,
d
)
{
//a表示id对应的值,c表示当前记录行对象
var
html
=
'#if($shiro.hasPermission("qy:productclassify:edit"))'
;
//
html
+=
'<a href="#springUrl("/a/productclassify/form?id='
+
a
+
'")" data-id="'
+
a
+
'" data-action="view" class="btn green">修改</a>'
;
html
+=
'<a href="javascript:void(0);" data-id="'
+
a
+
'" data-action="remove" onclick="removeData('
+
a
+
')" class="btn red">删除</a>'
;
html
+=
'#end'
;
return
html
;
}
}
]
});
}
jQuery
(
document
).
ready
(
function
()
{
seachTable
();
$
(
'.datepicker'
).
datepicker
({
show
:
true
,
format
:
'yyyy-mm-dd'
,
autoclose
:
true
,
language
:
'zh-CN'
,
todayBtn
:
'linked'
,
clearBtn
:
'linked'
});
$
(
'.search'
).
click
(
function
()
{
$
(
"#table"
).
dataTable
().
fnClearTable
();
});
});
Cfapp
.
init
();
function
removeData
(
data
)
{
Cfapp
.
confirm
({
message
:
"确定要删除吗"
,
btnoktext
:
"确定"
,
btncanceltext
:
"取消"
,
success
:
function
()
{
$
.
ajax
({
type
:
"POST"
,
url
:
"#springUrl('/a/productclassify/delete')"
,
data
:
{
id
:
data
},
dataType
:
"json"
,
success
:
function
(
data
)
{
if
(
data
.
errorNo
==
0
)
{
Cfapp
.
alert
({
message
:
"删除成功"
,
btntext
:
"确定"
,
success
:
function
()
{
location
.
href
=
"#springUrl('/a/productclassify/list')"
;
}
});
}
},
error
:
function
()
{
}
})
},
cancel
:
function
()
{
$
(
".modal-backdrop"
).
fadeOut
();
}
});
}
function
importExcel
()
{
var
templateExcelUrl
=
"#springUrl('/a/productclassify/templateExcel')"
;
var
importExcelUrl
=
"#springUrl('/a/productclassify/importExcel')?_csrf_header="
+
csrfheader
.
value
+
"&_csrf="
+
csrftoken
.
value
;
Cfapp
.
importExcel
({
title
:
'产品分类导入'
,
importurl
:
importExcelUrl
,
templateurl
:
templateExcelUrl
,
cancel
:
function
()
{
},
success
:
function
(
retjson
)
{
location
.
href
=
"#springUrl('/a/productclassify/list')"
;
}
});
}
</script>
</body>
</html>
aidea-modules/product-classify-module/pom.xml
0 → 100644
View file @
d65c82f6
<?xml version="1.0" encoding="UTF-8"?>
<project
xmlns=
"http://maven.apache.org/POM/4.0.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation=
"http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
>
<parent>
<artifactId>
aidea-modules
</artifactId>
<groupId>
com.cftech
</groupId>
<version>
1.0-SNAPSHOT
</version>
</parent>
<modelVersion>
4.0.0
</modelVersion>
<artifactId>
product-classify-module
</artifactId>
<dependencies>
<dependency>
<groupId>
com.cftech
</groupId>
<artifactId>
sys-module
</artifactId>
<version>
1.0-SNAPSHOT
</version>
<scope>
compile
</scope>
</dependency>
</dependencies>
</project>
\ No newline at end of file
aidea-modules/product-classify-module/src/main/java/com/cftech/productclassify/dao/ProductclassifyMapper.java
0 → 100644
View file @
d65c82f6
package
com
.
cftech
.
productclassify
.
dao
;
import
com.cftech.productclassify.model.Productclassify
;
import
com.cftech.core.generic.GenericDao
;
import
java.util.List
;
import
java.util.Map
;
/**
* 产品分类Mapper
*
* @author Buyj
* @date: 2020-09-22 18:06
*/
public
interface
ProductclassifyMapper
extends
GenericDao
<
Productclassify
>
{
/**
* 查产品分类
* @param params
* @return
*/
List
<
Productclassify
>
fetchTreeByPage
(
Map
<
String
,
Object
>
params
);
}
\ No newline at end of file
aidea-modules/product-classify-module/src/main/java/com/cftech/productclassify/dao/ProductclassifyMapper.xml
0 → 100644
View file @
d65c82f6
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper
namespace=
"com.cftech.productclassify.dao.ProductclassifyMapper"
>
<resultMap
id=
"resultMap"
type=
"com.cftech.productclassify.model.Productclassify"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"classify_name"
property=
"classifyName"
/>
<result
column=
"classify_number"
property=
"classifyNumber"
/>
<result
column=
"classify_img"
property=
"classifyImg"
/>
<result
column=
"sort"
property=
"sort"
/>
<result
column=
"whether_recommend"
property=
"whetherRecommend"
/>
<result
column=
"parent_id"
property=
"parentId"
/>
<result
column=
"parentName"
property=
"parentName"
/>
<result
column=
"accounts_id"
property=
"accountsId"
/>
<result
column=
"del_flag"
property=
"delFlag"
/>
<result
column=
"status"
property=
"status"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
<result
column=
"description"
property=
"description"
/>
<result
column=
"create_by"
property=
"createBy"
/>
<result
column=
"update_by"
property=
"updateBy"
/>
</resultMap>
<sql
id=
"sqlWhere"
>
<if
test=
"conds!=null"
>
<trim
prefix=
"WHERE"
prefixOverrides=
"AND|OR"
>
<foreach
collection=
"conds.conds"
index=
"index"
item=
"cond"
>
${cond.linkType}
<if
test=
"cond.condType == 'EQUAL'"
>
${cond.param} = #{cond.value}
</if>
<if
test=
"cond.condType == 'NOTEQUAL'"
>
${cond.param}
<>
#{cond.value}
</if>
<if
test=
"cond.condType == 'GREATEQUAL'"
>
${cond.param}
>
= #{cond.value}
</if>
<if
test=
"cond.condType == 'GREATTHAN'"
>
${cond.param}
>
#{cond.value}
</if>
<if
test=
"cond.condType == 'LESSEQUAL'"
>
${cond.param}
<
= #{cond.value}
</if>
<if
test=
"cond.condType == 'LESSTHAN'"
>
${cond.param}
<
#{cond.value}
</if>
<if
test=
"cond.condType == 'BETWEEN'"
>
${cond.param} BETWEEN #{cond.startValue} AND
#{cond.endValue}
</if>
<if
test=
"cond.condType == 'ISNULL'"
>
${cond.param} IS NULL
</if>
<if
test=
"cond.condType == 'NOTNULL'"
>
${cond.param} IS NOT NULL
</if>
<if
test=
"cond.condType == 'LIKE'"
>
${cond.param} LIKE #{cond.value}
</if>
<if
test=
"cond.condType == 'IN'"
>
${cond.param} IN
<foreach
item=
"item"
index=
"index"
collection=
"cond.value"
open=
"("
separator=
","
close=
")"
>
#{item}
</foreach>
</if>
</foreach>
</trim>
</if>
</sql>
<sql
id=
"sqlColumns"
>
id,
classify_name,
classify_number,
classify_img,
sort,
whether_recommend,
parent_id,
accounts_id,
del_flag,
status,
create_time,
update_time,
description,
create_by,
update_by
</sql>
<insert
id=
"save"
parameterType=
"com.cftech.productclassify.model.Productclassify"
useGeneratedKeys=
"true"
keyProperty=
"id"
>
insert into t_aidea_product_classify
(
<include
refid=
"sqlColumns"
/>
)
values
(
#{id, jdbcType=BIGINT},
#{classifyName, jdbcType=VARCHAR},
#{classifyNumber, jdbcType=VARCHAR},
#{classifyImg, jdbcType=VARCHAR},
#{sort, jdbcType=VARCHAR},
#{whetherRecommend, jdbcType=VARCHAR},
#{parentId, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR},
now(),
now(),
#{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT}
)
</insert>
<select
id=
"fetchTreeByPage"
parameterType=
"java.util.Map"
resultMap=
"resultMap"
>
SELECT
<include
refid=
"sqlColumns"
/>
FROM t_aidea_product_classify
<include
refid=
"sqlWhere"
/>
<if
test=
"sort!=null"
>
ORDER BY ${sort.param} ${sort.type}
</if>
<if
test=
"limit>0"
>
limit #{offset},#{limit}
</if>
</select>
<select
id=
"fetchById"
parameterType=
"java.lang.Long"
resultMap=
"resultMap"
>
SELECT
<include
refid=
"sqlColumns"
/>
FROM t_aidea_product_classify t
WHERE t.id=#{id}
</select>
<select
id=
"count"
parameterType=
"java.util.Map"
resultType=
"java.lang.Integer"
>
SELECT
COUNT(1)
FROM
t_aidea_product_classify a
LEFT JOIN t_aidea_product_classify b ON b.id = a.parent_id
AND b.del_flag = '0'
<include
refid=
"sqlWhere"
/>
</select>
<select
id=
"fetchSearchByPage"
parameterType=
"java.util.Map"
resultMap=
"resultMap"
>
SELECT
a.id id,
a.classify_name classifyName,
a.classify_number classifyNumber,
a.classify_img classifyImg,
a.sort sort,
a.whether_recommend whetherRecommend,
a.parent_id parentId,
a.del_flag delFlag,
a.create_time createTime,
a.update_time updateTime,
a.description description,
a.create_by crateBy,
a.update_by updateBy,
b.classify_name parentName
FROM
t_aidea_product_classify a
LEFT JOIN t_aidea_product_classify b ON b.id = a.parent_id
AND b.del_flag = '0'
<include
refid=
"sqlWhere"
/>
<if
test=
"sort!=null"
>
ORDER BY ${sort.param} ${sort.type}
</if>
<if
test=
"limit>0"
>
limit #{offset},#{limit}
</if>
</select>
<update
id=
"update"
parameterType=
"com.cftech.productclassify.model.Productclassify"
>
update t_aidea_product_classify
<set>
<if
test=
"id != null"
>
id = #{id, jdbcType=BIGINT},
</if>
<if
test=
"classifyName != null"
>
classify_name = #{classifyName, jdbcType=VARCHAR},
</if>
<if
test=
"classifyNumber != null"
>
classify_number = #{classifyNumber, jdbcType=VARCHAR},
</if>
<if
test=
"classifyImg != null"
>
classify_img = #{classifyImg, jdbcType=VARCHAR},
</if>
<if
test=
"sort != null"
>
sort = #{sort, jdbcType=VARCHAR},
</if>
<if
test=
"whetherRecommend != null"
>
whether_recommend = #{whetherRecommend, jdbcType=VARCHAR},
</if>
<if
test=
"parentId != null"
>
parent_id = #{parentId, jdbcType=VARCHAR},
</if>
<if
test=
"accountsId != null"
>
accounts_id = #{accountsId, jdbcType=BIGINT},
</if>
<if
test=
"delFlag != null"
>
del_flag = #{delFlag, jdbcType=TINYINT},
</if>
<if
test=
"status != null"
>
status = #{status, jdbcType=VARCHAR},
</if>
<if
test=
"createTime != null"
>
create_time = #{createTime, jdbcType=TIMESTAMP},
</if>
<if
test=
"description != null"
>
description = #{description, jdbcType=VARCHAR},
</if>
<if
test=
"createBy != null"
>
create_by = #{createBy, jdbcType=BIGINT},
</if>
<if
test=
"updateBy != null"
>
update_by = #{updateBy, jdbcType=BIGINT},
</if>
</set>
where id=#{id,jdbcType=BIGINT}
</update>
<update
id=
"delete"
parameterType=
"java.lang.Long"
>
update t_aidea_product_classify set del_flag=1 where id=#{id,jdbcType=BIGINT}
</update>
</mapper>
\ No newline at end of file
aidea-modules/product-classify-module/src/main/java/com/cftech/productclassify/model/Productclassify.java
0 → 100644
View file @
d65c82f6
package
com
.
cftech
.
productclassify
.
model
;
import
com.cftech.core.poi.ExportConfig
;
import
lombok.Data
;
import
org.apache.cxf.jaxws.handler.types.CString
;
import
java.io.Serializable
;
import
java.util.Date
;
/**
* 产品分类
*
* @author Buyj
* @date: 2020-09-22 18:06
*/
@Data
public
class
Productclassify
implements
Serializable
{
/* 主键id */
private
Long
id
;
/* 分类名称 */
@ExportConfig
(
value
=
"分类名称"
,
width
=
100
,
showLevel
=
2
)
private
String
classifyName
;
/* 分类编码 */
@ExportConfig
(
value
=
"分类编码"
,
width
=
100
,
showLevel
=
2
)
private
String
classifyNumber
;
/* 分类banner图 */
@ExportConfig
(
value
=
"分类banner图"
,
width
=
100
,
showLevel
=
1
)
private
String
classifyImg
;
/* 序号 */
@ExportConfig
(
value
=
"序号"
,
width
=
100
,
showLevel
=
2
)
private
String
sort
;
/* 是否推荐 */
@ExportConfig
(
value
=
"是否推荐(是/否)"
,
width
=
200
,
showLevel
=
2
)
private
String
whetherRecommend
;
/**
* 父级ID
*/
private
String
parentId
;
/**
* 父级ID 对应的产品分类名称
*/
@ExportConfig
(
value
=
"父级编码(不填默认为第一级)"
,
width
=
300
,
showLevel
=
2
)
private
String
parentName
;
/**
* 父级编码
*/
private
String
parentNumber
;
/* 所属的账号 */
private
Long
accountsId
;
/* 删除标识 */
private
boolean
delFlag
;
/* 状态 */
private
String
status
;
/* 创建时间 */
private
Date
createTime
;
/* 更新时间 */
private
Date
updateTime
;
/* 备注 */
private
String
description
;
/* 创建人 */
private
Long
createBy
;
/* 更新人 */
private
Long
updateBy
;
public
Productclassify
()
{
this
.
delFlag
=
false
;
this
.
status
=
"0"
;
}
}
\ No newline at end of file
aidea-modules/product-classify-module/src/main/java/com/cftech/productclassify/service/ProductclassifyService.java
0 → 100644
View file @
d65c82f6
package
com
.
cftech
.
productclassify
.
service
;
import
com.cftech.core.sql.Conds
;
import
com.cftech.core.sql.Sort
;
import
com.cftech.productclassify.model.Productclassify
;
import
com.cftech.core.generic.GenericService
;
import
java.util.List
;
import
java.util.Map
;
/**
* 产品分类Service
*
* @author Buyj
* @date: 2020-09-22 18:06
*/
public
interface
ProductclassifyService
extends
GenericService
<
Productclassify
>
{
/**
* 查找产品分类
* @param conds
* @param sort
* @param pageNo
* @param pageSize
* @return
*/
List
<
Productclassify
>
fetchTreeByPage
(
Conds
conds
,
Sort
sort
,
int
pageNo
,
int
pageSize
);
}
aidea-modules/product-classify-module/src/main/java/com/cftech/productclassify/service/impl/ProductclassifyServiceImpl.java
0 → 100644
View file @
d65c82f6
package
com
.
cftech
.
productclassify
.
service
.
impl
;
import
com.cftech.core.sql.Sort
;
import
com.cftech.productclassify.model.Productclassify
;
import
com.cftech.productclassify.dao.ProductclassifyMapper
;
import
com.cftech.productclassify.service.ProductclassifyService
;
import
com.cftech.core.generic.GenericDao
;
import
com.cftech.core.generic.GenericServiceImpl
;
import
com.cftech.core.sql.Conds
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Qualifier
;
import
org.springframework.stereotype.Service
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
* 产品分类ServiceImpl
*
* @author Buyj
* @date: 2020-09-22 18:06
*/
@Service
(
"productclassifyService"
)
public
class
ProductclassifyServiceImpl
extends
GenericServiceImpl
<
Productclassify
>
implements
ProductclassifyService
{
@Autowired
@Qualifier
(
"productclassifyMapper"
)
private
ProductclassifyMapper
productclassifyMapper
;
@Override
public
GenericDao
<
Productclassify
>
getGenericMapper
()
{
return
productclassifyMapper
;
}
@Override
public
List
<
Productclassify
>
fetchTreeByPage
(
Conds
conds
,
Sort
sort
,
int
pageNo
,
int
pageSize
)
{
Map
<
String
,
Object
>
params
=
new
HashMap
<>();
params
.
put
(
"conds"
,
conds
);
params
.
put
(
"offset"
,
pageNo
>
0
?
pageNo
:
0
);
params
.
put
(
"limit"
,
pageSize
>
0
?
pageSize
:
0
);
params
.
put
(
"sort"
,
sort
);
return
productclassifyMapper
.
fetchTreeByPage
(
params
);
}
}
\ No newline at end of file
aidea-modules/product-classify-module/src/main/java/com/cftech/productclassify/web/ProductclassifyController.java
0 → 100644
View file @
d65c82f6
package
com
.
cftech
.
productclassify
.
web
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.cftech.base.codingrule.utils.CodingruleUtils
;
import
com.cftech.core.util.SystemConfig
;
import
com.cftech.productclassify.model.Productclassify
;
import
com.cftech.productclassify.service.ProductclassifyService
;
import
com.cftech.core.poi.ExcelKit
;
import
com.cftech.core.scope.OrderType
;
import
com.cftech.core.sql.Conds
;
import
com.cftech.core.sql.Sort
;
import
com.cftech.core.util.Constants
;
import
com.cftech.sys.security.PermissionSign
;
import
com.cftech.sys.security.UserUtils
;
import
lombok.extern.slf4j.Slf4j
;
import
org.apache.shiro.authz.annotation.RequiresPermissions
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.ui.Model
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.multipart.MultipartFile
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
java.io.File
;
import
java.io.IOException
;
import
java.util.List
;
/**
* 产品分类Controller
* <p>
* 权限字符串说明:
* 查看:public static final String PRODUCTCLASSIFY_VIEW = "qy:productclassify:view"
* 查看:public static final String PRODUCTCLASSIFY_EDIT = "qy:productclassify:edit"
*
* @author Buyj
* @date: 2020-09-22 18:06
*/
@Slf4j
@Controller
@RequestMapping
(
"/a/productclassify"
)
public
class
ProductclassifyController
{
public
static
final
String
PRODUCTCLASSIFY_VIEW
=
"qy:productclassify:view"
;
public
static
final
String
PRODUCTCLASSIFY_EDIT
=
"qy:productclassify:edit"
;
@Autowired
private
ProductclassifyService
productclassifyService
;
@Autowired
private
CodingruleUtils
codingruleUtils
;
private
static
final
String
fatherName
=
SystemConfig
.
p
.
getProperty
(
"PRODUCT_CLASSIFY_FATHER_NAME"
);
//列表页面
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_VIEW
)
@RequestMapping
(
"/list"
)
public
String
list
(
HttpServletRequest
request
,
Model
model
)
{
Long
accountId
=
UserUtils
.
getmpaccounts
(
request
);
model
.
addAttribute
(
"accountId"
,
accountId
);
return
"productclassify/productclassifylist"
;
}
//编辑页面(新增、修改)
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_VIEW
)
@RequestMapping
(
"/form"
)
public
String
form
(
HttpServletRequest
request
,
String
id
,
Model
model
)
{
if
(!
StringUtils
.
isEmpty
(
id
))
{
Productclassify
productclassify
=
productclassifyService
.
fetchById
(
id
);
if
(
productclassify
!=
null
&&
productclassify
.
getParentId
().
equals
(
"0"
)){
productclassify
.
setParentName
(
fatherName
);
}
else
{
productclassify
.
setParentName
(
productclassifyService
.
fetchById
(
productclassify
.
getParentId
()).
getClassifyName
());
}
model
.
addAttribute
(
"data"
,
productclassify
);
}
return
"productclassify/productclassifyform"
;
}
//提交数据(新增、修改)
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_EDIT
)
@RequestMapping
(
"/formData"
)
@ResponseBody
public
JSONObject
formData
(
Productclassify
productclassify
,
Model
model
,
HttpServletRequest
request
)
{
Long
accountsId
=
UserUtils
.
getmpaccounts
(
request
);
JSONObject
rtnJson
=
new
JSONObject
();
try
{
if
(
productclassify
!=
null
&&
productclassify
.
getId
()
!=
null
)
{
productclassify
.
setUpdateBy
(
UserUtils
.
getUser
().
getId
());
productclassifyService
.
update
(
productclassify
);
rtnJson
.
put
(
"errorNo"
,
0
);
}
else
{
productclassify
.
setClassifyNumber
(
codingruleUtils
.
getNumber
(
accountsId
,
Productclassify
.
class
.
getName
()));
productclassify
.
setAccountsId
(
accountsId
);
productclassify
.
setDelFlag
(
false
);
productclassify
.
setAccountsId
(
UserUtils
.
getmpaccounts
(
request
));
productclassify
.
setCreateBy
(
UserUtils
.
getUser
().
getId
());
productclassify
.
setUpdateBy
(
UserUtils
.
getUser
().
getId
());
productclassifyService
.
save
(
productclassify
);
rtnJson
.
put
(
"errorNo"
,
2
);
}
}
catch
(
Exception
e
)
{
rtnJson
.
put
(
"errorNo"
,
1
);
}
return
rtnJson
;
}
//获取列表数据
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_VIEW
)
@RequestMapping
(
value
=
"/listData"
)
@ResponseBody
public
JSONObject
listData
(
int
iDisplayStart
,
int
iDisplayLength
,
Productclassify
productclassify
,
HttpServletRequest
request
)
{
Long
accountsId
=
UserUtils
.
getmpaccounts
(
request
);
Conds
conds
=
new
Conds
();
conds
.
equal
(
"a.del_flag"
,
Constants
.
DEL_FLAG_0
);
conds
.
equal
(
"a.accounts_id"
,
accountsId
);
if
(!
StringUtils
.
isEmpty
(
productclassify
.
getClassifyName
()))
{
conds
.
like
(
"a.classify_name"
,
productclassify
.
getClassifyName
());
}
Sort
sort
=
new
Sort
(
"a.sort"
,
OrderType
.
DESC
);
List
<
Productclassify
>
list
=
productclassifyService
.
fetchSearchByPage
(
conds
,
sort
,
iDisplayStart
,
iDisplayLength
);
Integer
counts
=
productclassifyService
.
count
(
conds
);
JSONObject
rtnJson
=
new
JSONObject
();
rtnJson
.
put
(
"iTotalRecords"
,
counts
);
rtnJson
.
put
(
"iTotalDisplayRecords"
,
counts
);
rtnJson
.
put
(
"aaData"
,
list
);
return
rtnJson
;
}
//删除数据
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_EDIT
)
@RequestMapping
(
"/delete"
)
@ResponseBody
public
JSONObject
delete
(
String
id
)
{
JSONObject
rtnJosn
=
new
JSONObject
();
try
{
productclassifyService
.
delete
(
id
);
rtnJosn
.
put
(
"errorNo"
,
0
);
}
catch
(
Exception
e
)
{
rtnJosn
.
put
(
"errorNo"
,
1
);
}
return
rtnJosn
;
}
@RequestMapping
(
"/exportExcel"
)
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_VIEW
)
public
void
exportExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
Long
accountId
=
UserUtils
.
getmpaccounts
(
request
);
Sort
sort
=
new
Sort
(
"create_time"
,
OrderType
.
ASC
);
Conds
conds
=
new
Conds
();
conds
.
equal
(
"del_flag"
,
0
);
conds
.
equal
(
"accounts_id"
,
accountId
);
List
<
Productclassify
>
list
=
productclassifyService
.
fetchSearchByPage
(
conds
,
sort
,
0
,
0
);
ExcelKit
.
$Export
(
Productclassify
.
class
,
response
).
toExcel
(
list
,
"产品分类信息"
);
}
@RequestMapping
(
"/templateExcel"
)
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_VIEW
)
public
void
templateExcel
(
HttpServletRequest
request
,
HttpServletResponse
response
)
{
ExcelKit
.
$Export
(
Productclassify
.
class
,
response
).
toExcel
(
null
,
"产品分类信息"
);
}
@RequestMapping
(
"/importExcel"
)
@RequiresPermissions
(
value
=
PRODUCTCLASSIFY_EDIT
)
@ResponseBody
public
JSONObject
importExcel
(
HttpServletRequest
request
,
MultipartFile
file
,
Model
model
)
{
JSONObject
retJson
=
new
JSONObject
();
Long
accountId
=
UserUtils
.
getmpaccounts
(
request
);
StringBuffer
classifyNumber
=
new
StringBuffer
();
StringBuffer
classifyParent
=
new
StringBuffer
();
if
(
file
==
null
)
{
retJson
.
put
(
"errorNo"
,
"1"
);
retJson
.
put
(
"errorMsg"
,
"未选择导入文件"
);
return
retJson
;
}
// 构造临时路径来存储上传的文件
String
uploadPath
=
System
.
getProperty
(
"java.io.tmpdir"
);
File
uploadDir
=
new
File
(
uploadPath
);
if
(!
uploadDir
.
exists
())
{
uploadDir
.
mkdir
();
}
String
fileName
=
file
.
getOriginalFilename
();
String
filePath
=
uploadPath
+
File
.
separator
+
fileName
;
File
storeFile
=
new
File
(
filePath
);
try
{
file
.
transferTo
(
storeFile
);
ExcelKit
.
$Import
().
readExcel
(
storeFile
,
rowData
->
{
Conds
conds
=
null
;
Productclassify
productclassify
=
new
Productclassify
();
if
(!
StringUtils
.
isEmpty
(
rowData
.
get
(
1
))){
//获取产品分类编码 查看编码是否重复
conds
=
new
Conds
();
conds
.
equal
(
"a.classify_number"
,
rowData
.
get
(
1
));
conds
.
equal
(
"a.del_flag"
,
"0"
);
Productclassify
productClassfyStr
=
productclassifyService
.
fetchSearchByConds
(
conds
);
//不为空则产品分类编码已存在
if
(
productClassfyStr
!=
null
){
classifyNumber
.
append
(
" '"
+
rowData
.
get
(
1
)+
"', "
);
return
;
}
else
{
productclassify
.
setClassifyNumber
(
rowData
.
get
(
1
));
}
}
if
(!
StringUtils
.
isEmpty
(
rowData
.
get
(
4
))){
conds
=
new
Conds
();
conds
.
equal
(
"a.classify_number"
,
rowData
.
get
(
4
));
conds
.
equal
(
"a.del_flag"
,
"0"
);
Productclassify
productClassifyParent
=
productclassifyService
.
fetchSearchByConds
(
conds
);
if
(
productClassifyParent
==
null
){
//父级编码不存在
classifyParent
.
append
(
" '"
+
rowData
.
get
(
4
)+
"', "
);
return
;
}
else
{
productclassify
.
setParentId
(
String
.
valueOf
(
productClassifyParent
.
getId
()));
}
}
else
{
productclassify
.
setParentId
(
"0"
);
}
//productclassify.setClassifyNumber(codingruleUtils.getNumber(accountId,Productclassify.class.getName()));
productclassify
.
setAccountsId
(
accountId
);
productclassify
.
setClassifyName
(
rowData
.
get
(
0
));
productclassify
.
setSort
(
rowData
.
get
(
2
));
productclassify
.
setWhetherRecommend
(
rowData
.
get
(
3
));
productclassifyService
.
save
(
productclassify
);
});
}
catch
(
IOException
e
)
{
log
.
error
(
e
.
getMessage
());
}
retJson
.
put
(
"errorNo"
,
"0"
);
if
(
classifyNumber
.
length
()
>
0
){
retJson
.
put
(
"errorMsg"
,
"部分产品分类导入失败,原因:产品分类编码重复:"
+
classifyNumber
.
toString
());
}
else
if
(
classifyParent
.
length
()
>
0
){
retJson
.
put
(
"errorMsg"
,
"部分产品分类导入失败,原因:产品分类父级编码不存在:"
+
classifyParent
.
toString
());
}
else
{
retJson
.
put
(
"errorMsg"
,
"导入成功"
);
}
return
retJson
;
}
@RequestMapping
(
"treeData"
)
@ResponseBody
public
JSONObject
getTreeData
(
HttpServletRequest
request
)
{
JSONObject
rtnJson
=
new
JSONObject
();
JSONArray
array
=
new
JSONArray
();
Sort
sort
=
new
Sort
(
"parent_id"
,
OrderType
.
ASC
);
Conds
conds
=
new
Conds
();
conds
.
equal
(
"del_flag"
,
0
);
conds
.
equal
(
"accounts_id"
,
UserUtils
.
getmpaccounts
(
request
));
List
<
Productclassify
>
papercategories
=
productclassifyService
.
fetchTreeByPage
(
conds
,
sort
,
0
,
0
);
JSONObject
t
=
new
JSONObject
();
t
.
put
(
"id"
,
0
);
t
.
put
(
"pId"
,
-
1
);
t
.
put
(
"name"
,
fatherName
);
t
.
put
(
"open"
,
true
);
array
.
add
(
t
);
for
(
Productclassify
productclassify
:
papercategories
)
{
JSONObject
tmp
=
new
JSONObject
();
tmp
.
put
(
"id"
,
productclassify
.
getId
());
tmp
.
put
(
"pId"
,
productclassify
.
getParentId
());
tmp
.
put
(
"name"
,
productclassify
.
getClassifyName
());
array
.
add
(
tmp
);
}
rtnJson
.
put
(
"aaData"
,
array
);
return
rtnJson
;
}
}
cftech-common-web/src/main/resources/common-test.properties
View file @
d65c82f6
...
...
@@ -106,6 +106,7 @@ orderDeliverGoodsTemplateId=TH3I5prFYPC54M14zFJfgN4gvjx8SpJayctIHmzThwg
#\u670D\u52A1\u5B8C\u6210\u901A\u77E5
serverEndTemplateId
=
7L1KIroXNxejxotFTzll-dVLdo1xbmqoiAo7UmDKWcc
PRODUCT_CLASSIFY_FATHER_NAME
=
Ʒ
#\u54C1\u724C\u7533\u8BF7\u6D88\u606F\u6A21\u677F
brandApplyCommTemplateId
=
82ByH2tkWI1-jlYiWr_-CIihWsgjrvLdFvuO771FwBo
...
...
cftech-common/src/main/java/com/cftech/core/util/SystemConfig.java
View file @
d65c82f6
...
...
@@ -14,7 +14,7 @@ public class SystemConfig {
try
{
// inputStream = SystemConfig.class.newInstance().getClass()
// .getClassLoader().getResourceAsStream("");
p
.
load
(
new
InputStreamReader
(
SystemConfig
.
class
.
getClassLoader
().
getResourceAsStream
(
"/common-test.properties"
),
"
utf-8
"
));
p
.
load
(
new
InputStreamReader
(
SystemConfig
.
class
.
getClassLoader
().
getResourceAsStream
(
"/common-test.properties"
),
"
GBK
"
));
inputStreamRedis
=
SystemConfig
.
class
.
newInstance
().
getClass
()
.
getClassLoader
().
getResourceAsStream
(
"/redis-config-test.properties"
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment