Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
S
shop
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
曲欣亮
shop
Commits
2805f5d8
Commit
2805f5d8
authored
Feb 14, 2023
by
张永
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
升成dockerfile,修改改日志
parent
85efec44
Hide whitespace changes
Inline
Side-by-side
Showing
18 changed files
with
515 additions
and
463 deletions
+515
-463
Dockerfile
Dockerfile
+18
-0
pom.xml
pom.xml
+111
-51
HeaderController.java
src/main/java/com/egolm/shop/api/HeaderController.java
+30
-0
QiyeWxService.java
src/main/java/com/egolm/shop/api/service/QiyeWxService.java
+90
-89
OrderServiceImpl.java
...ava/com/egolm/shop/api/service/impl/OrderServiceImpl.java
+9
-13
QiyeWxServiceImpl.java
...va/com/egolm/shop/api/service/impl/QiyeWxServiceImpl.java
+2
-1
UserServiceImpl.java
...java/com/egolm/shop/api/service/impl/UserServiceImpl.java
+5
-8
ExceptionHandler.java
...n/java/com/egolm/shop/common/config/ExceptionHandler.java
+1
-4
LogProducerConfig.java
.../java/com/egolm/shop/common/config/LogProducerConfig.java
+0
-35
SolrConfig.java
src/main/java/com/egolm/shop/common/config/SolrConfig.java
+21
-20
AliyunLogProducer.java
...golm/shop/common/plugins/aliyunLog/AliyunLogProducer.java
+0
-93
Express.java
src/main/java/com/egolm/shop/common/utils/Express.java
+98
-98
QiyeWxMsgTask.java
...n/java/com/egolm/shop/schedules/qiyewx/QiyeWxMsgTask.java
+3
-2
GoodsCollectTask.java
...ava/com/egolm/shop/schedules/search/GoodsCollectTask.java
+4
-3
application.properties
src/main/resources/application.properties
+2
-20
logback.xml
src/main/resources/logback.xml
+20
-26
logback2.xml_bak
src/main/resources/logback2.xml_bak
+50
-0
redmine.html
src/main/resources/templates/redmine.html
+51
-0
No files found.
Dockerfile
0 → 100644
View file @
2805f5d8
FROM
dockerhub.linkfern.com/b2c/jdk1.8_image:V1.0.0
EXPOSE
20001
#定义时区参数
ENV
TZ=Asia/Shanghai
#设置时区
RUN
ln
-snf
/usr/share/zoneinfo/
$TZ
/etc/localtime
&&
echo
'$TZ'
>
/etc/timezone
ENV
LANG C.UTF-8
ARG
JAR_FILE
ADD
target/${JAR_FILE} /data/app.jar
#ENTRYPOINT ["java", "-jar","/data/app.jar"]
#定义jvm参数变量
ENV
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M"
ENTRYPOINT
java ${JAVA_OPTS} -Djava.security.egd=file:/dev/./urandom -jar /data/app.jar
pom.xml
View file @
2805f5d8
...
...
@@ -20,11 +20,91 @@
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.1.0.RELEASE
</version>
</parent>
<distributionManagement>
<repository>
<id>
user-releases
</id>
<name>
User Porject Snapshot
</name>
<url>
http://123.157.244.130:9003/nexus/content/repositories/releases/
</url>
</repository>
<snapshotRepository>
<id>
user-snapshot
</id>
<name>
User Porject Snapshot
</name>
<url>
http://123.157.244.130:9003/nexus/content/repositories/snapshots/
</url>
</snapshotRepository>
</distributionManagement>
<repositories>
<repository>
<id>
my
</id>
<name>
my
</name>
<url>
http://123.157.244.130:9003/nexus/content/groups/public/
</url>
</repository>
<repository>
<id>
repo1
</id>
<name>
repo1
</name>
<url>
https://repo1.maven.org/maven2/
</url>
</repository>
<repository>
<id>
mvnrepository
</id>
<name>
mvnrepository
</name>
<url>
https://mvnrepository.com/
</url>
</repository>
<repository>
<id>
bintray-qcloud-maven-repo
</id>
<name>
qcloud-maven-repo
</name>
<url>
https://dl.bintray.com/qcloud/maven-repo/
</url>
<layout>
default
</layout>
<releases>
<enabled>
true
</enabled>
</releases>
<snapshots>
<enabled>
false
</enabled>
</snapshots>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter
</artifactId>
</dependency>
<!-- start 改为jetty 处理tomcat版本的 The valid characters are defined in RFC
7230 and RFC 3986 异常 -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
<exclusions>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-tomcat
</artifactId>
</exclusion>
<exclusion>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-logging
</artifactId>
</exclusion>
<exclusion>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-classic
</artifactId>
</exclusion>
<exclusion>
<groupId>
ch.qos.logback
</groupId>
<artifactId>
logback-core
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-jetty
</artifactId>
</dependency>
<!-- end 改为 jetty -->
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-redis
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.session
</groupId>
<artifactId>
spring-session-data-redis
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
...
...
@@ -52,12 +132,18 @@
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
1.2.7
0
</version>
<version>
2.0.1
0
</version>
</dependency>
<dependency>
<groupId>
com.egolm
</groupId>
<artifactId>
common
</artifactId>
<version>
0.0.1-RELEASE
</version>
<exclusions>
<exclusion>
<groupId>
org.springframework.data
</groupId>
<artifactId>
spring-data-redis
</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>
io.springfox
</groupId>
...
...
@@ -88,11 +174,7 @@
<groupId>
io.springfox
</groupId>
<artifactId>
springfox-swagger-ui
</artifactId>
<version>
2.9.2
</version>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-data-redis
</artifactId>
</dependency>
</dependency>
<dependency>
<groupId>
org.apache.solr
</groupId>
<artifactId>
solr-solrj
</artifactId>
...
...
@@ -137,7 +219,7 @@
<!-- 腾讯云 end -->
<!-- Aliyun LOG Producer start -->
<dependency>
<!--
<dependency>
<groupId>com.aliyun.openservices</groupId>
<artifactId>aliyun-log-producer</artifactId>
<version>0.3.0</version>
...
...
@@ -151,64 +233,42 @@
<groupId>com.google.protobuf</groupId>
<artifactId>protobuf-java</artifactId>
<version>2.5.0</version>
</dependency>
</dependency>
-->
<!-- Aliyun LOG Producer end -->
</dependencies>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
1.8
</source>
<target>
1.8
</target>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
</plugin>
<plugin>
<groupId>
org.mybatis.generator
</groupId>
<artifactId>
mybatis-generator-maven-plugin
</artifactId>
<version>
${mybatis.generator.version}
</version>
<configuration>
<
mainClass>
${start-class}
</mainClass
>
<
layout>
ZIP
</layout
>
<
verbose>
true
</verbose
>
<
overwrite>
true
</overwrite
>
</configuration>
</plugin>
<plugin>
<groupId>
com.spotify
</groupId>
<artifactId>
dockerfile-maven-plugin
</artifactId>
<version>
1.3.6
</version>
<executions>
<execution>
<goals>
<goal>
repackage
</goal>
</goals>
<id>
default
</id>
</execution>
</executions>
<configuration>
<repository>
dockerhub.linkfern.com/b2c/shopapi
</repository>
<tag>
V1.0.0
</tag>
<buildArgs>
<JAR_FILE>
${project.build.finalName}.jar
</JAR_FILE>
</buildArgs>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>
my
</id>
<name>
my
</name>
<url>
https://gitlab.linkfern.com/content/groups/public/
</url>
</repository>
<repository>
<id>
repo1
</id>
<name>
repo1
</name>
<url>
http://repo1.maven.org/maven2/
</url>
</repository>
<repository>
<id>
mvnrepository
</id>
<name>
mvnrepository
</name>
<url>
http://mvnrepository.com/
</url>
</repository>
<repository>
<id>
bintray-qcloud-maven-repo
</id>
<name>
qcloud-maven-repo
</name>
<url>
https://dl.bintray.com/qcloud/maven-repo/
</url>
<layout>
default
</layout>
<releases>
<enabled>
true
</enabled>
</releases>
<snapshots>
<enabled>
false
</enabled>
</snapshots>
</repository>
</repositories>
</project>
\ No newline at end of file
src/main/java/com/egolm/shop/api/HeaderController.java
0 → 100644
View file @
2805f5d8
package
com
.
egolm
.
shop
.
api
;
import
javax.servlet.http.HttpServletRequest
;
import
org.springframework.web.bind.annotation.GetMapping
;
import
org.springframework.web.bind.annotation.RequestMapping
;
import
org.springframework.web.bind.annotation.ResponseBody
;
import
org.springframework.web.bind.annotation.RestController
;
import
com.egolm.common.bean.Rjx
;
import
io.swagger.annotations.Api
;
import
io.swagger.annotations.ApiOperation
;
import
springfox.documentation.annotations.ApiIgnore
;
@ApiIgnore
@Api
(
tags
={
"接口"
})
@RestController
@RequestMapping
(
"header"
)
public
class
HeaderController
{
@ApiIgnore
@ResponseBody
@GetMapping
(
"/check"
)
@ApiOperation
(
"心跳检查"
)
public
Rjx
headerCheck
(
HttpServletRequest
request
)
{
return
Rjx
.
jsonOk
();
}
}
src/main/java/com/egolm/shop/api/service/QiyeWxService.java
View file @
2805f5d8
package
com
.
egolm
.
shop
.
api
.
service
;
import
java.util.ArrayList
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
public
interface
QiyeWxService
{
long
DevTime
=
1000
*
60
*
15
;
String
PrefixRedisTokenKey
=
"AccessTokenRedis_QY_"
;
String
UrlGetToken
=
"/gettoken?corpid={0}&corpsecret={1}"
;
String
UrlSendMsg
=
"/message/send?access_token={0}"
;
String
getTokenString
();
void
refreshToken
();
void
sendMessage
(
WxMessage
wxMessage
);
public
static
class
WxMessage
{
final
String
touser
;
final
String
msgtype
=
"miniprogram_notice"
;
MiniprogramNotice
miniprogram_notice
;
public
WxMessage
(
String
touser
)
{
this
.
touser
=
touser
;
}
public
String
getTouser
()
{
return
touser
;
}
public
String
getMsgtype
()
{
return
msgtype
;
}
public
MiniprogramNotice
getMiniprogram_notice
()
{
return
miniprogram_notice
;
}
public
void
setMiniprogram_notice
(
MiniprogramNotice
miniprogram_notice
)
{
this
.
miniprogram_notice
=
miniprogram_notice
;
}
public
static
class
MiniprogramNotice
{
String
appid
;
String
page
;
String
title
;
String
description
;
final
Boolean
emphasis_first_item
=
true
;
List
<
Map
<
String
,
?>>
content_item
=
new
ArrayList
<
Map
<
String
,
?>>();
public
String
getAppid
()
{
return
appid
;
}
public
void
setAppid
(
String
appid
)
{
this
.
appid
=
appid
;
}
public
String
getPage
()
{
return
page
;
}
public
void
setPage
(
String
page
)
{
this
.
page
=
page
;
}
public
String
getTitle
()
{
return
title
;
}
public
void
setTitle
(
String
title
)
{
this
.
title
=
title
;
}
public
String
getDescription
()
{
return
description
;
}
public
void
setDescription
(
String
description
)
{
this
.
description
=
description
;
}
public
Boolean
getEmphasis_first_item
()
{
return
emphasis_first_item
;
}
public
List
<
Map
<
String
,
?>>
getContent_item
()
{
return
content_item
;
}
public
void
setContent_item
(
List
<
Map
<
String
,
?>>
content_item
)
{
this
.
content_item
=
content_item
;
}
public
void
setContent_item
(
Map
<?,
?>
contentMap
)
{
for
(
Object
key
:
contentMap
.
keySet
())
{
Object
vlaue
=
contentMap
.
get
(
key
);
Map
<
String
,
Object
>
map
=
new
HashMap
<
String
,
Object
>();
map
.
put
(
"key"
,
key
);
map
.
put
(
"value"
,
vlaue
);
content_item
.
add
(
map
);
}
}
}
}
}
/*package com.egolm.shop.api.service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public interface QiyeWxService {
long DevTime = 1000*60*15;
String PrefixRedisTokenKey = "AccessTokenRedis_QY_";
String UrlGetToken = "/gettoken?corpid={0}&corpsecret={1}";
String UrlSendMsg = "/message/send?access_token={0}";
String getTokenString();
void refreshToken();
void sendMessage(WxMessage wxMessage);
public static class WxMessage {
final String touser;
final String msgtype = "miniprogram_notice";
MiniprogramNotice miniprogram_notice;
public WxMessage(String touser) {
this.touser = touser;
}
public String getTouser() {
return touser;
}
public String getMsgtype() {
return msgtype;
}
public MiniprogramNotice getMiniprogram_notice() {
return miniprogram_notice;
}
public void setMiniprogram_notice(MiniprogramNotice miniprogram_notice) {
this.miniprogram_notice = miniprogram_notice;
}
public static class MiniprogramNotice {
String appid;
String page;
String title;
String description;
final Boolean emphasis_first_item = true;
List<Map<String, ?>> content_item = new ArrayList<Map<String, ?>>();
public String getAppid() {
return appid;
}
public void setAppid(String appid) {
this.appid = appid;
}
public String getPage() {
return page;
}
public void setPage(String page) {
this.page = page;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
public Boolean getEmphasis_first_item() {
return emphasis_first_item;
}
public List<Map<String, ?>> getContent_item() {
return content_item;
}
public void setContent_item(List<Map<String, ?>> content_item) {
this.content_item = content_item;
}
public void setContent_item(Map<?, ?> contentMap) {
for(Object key : contentMap.keySet()) {
Object vlaue = contentMap.get(key);
Map<String, Object> map = new HashMap<String, Object>();
map.put("key", key);
map.put("value", vlaue);
content_item.add(map);
}
}
}
}
}
*/
\ No newline at end of file
src/main/java/com/egolm/shop/api/service/impl/OrderServiceImpl.java
View file @
2805f5d8
...
...
@@ -4,7 +4,6 @@ import java.math.BigDecimal;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.HashMap
;
import
java.util.LinkedHashMap
;
import
java.util.List
;
import
java.util.Map
;
import
java.util.stream.Collectors
;
...
...
@@ -25,10 +24,7 @@ import com.egolm.common.jdbc.Page;
import
com.egolm.common.jdbc.dialect.Dialect
;
import
com.egolm.common.jdbc.dialect.SqlServerDialect
;
import
com.egolm.common.jdbc.dialect.bean.Sql
;
import
com.egolm.shop.api.service.OrderService
;
import
com.egolm.shop.api.service.QiyeWxService
;
import
com.egolm.shop.api.service.QiyeWxService.WxMessage
;
import
com.egolm.shop.api.service.QiyeWxService.WxMessage.MiniprogramNotice
;
import
com.egolm.shop.api.service.OrderService
;
import
com.egolm.shop.bean.TSalesOrder
;
import
com.egolm.shop.bean.TSalesOrderDtl
;
import
com.egolm.shop.common.XException
;
...
...
@@ -39,9 +35,9 @@ public class OrderServiceImpl implements OrderService {
@Autowired
private
JdbcTemplate
jdbcTemplate
;
@Autowired
/*
@Autowired
QiyeWxService wxService;
*/
/**
* 订单检查
* <p>Title: orderCheck</p>
...
...
@@ -123,7 +119,7 @@ public class OrderServiceImpl implements OrderService {
if
(
commitMap
!=
null
&&
commitMap
.
size
()
>
0
&&
commitMap
.
get
(
0
)
!=
null
&&
Util
.
objTo
(
commitMap
.
get
(
0
).
get
(
"Status"
),
Integer
.
class
)
==
0
&&
Util
.
objTo
(
commitMap
.
get
(
commitMap
.
size
()-
1
).
get
(
"Status"
),
Integer
.
class
)
==
0
)
{
String
sSalesOrderID
=
(
String
)
commitMap
.
get
(
0
).
get
(
"SalesOrderID"
);
jdbcTemplate
.
update
(
"update tSalesOrder set sFormID = ?, sEmail = ?, sSalesmanNO = ? where sSalesOrderID = ?"
,
formId
,
email
,
salesmanNo
,
sSalesOrderID
);
this
.
sendWxMessage
(
sSalesOrderID
);
//
this.sendWxMessage(sSalesOrderID);
return
Rjx
.
jsonOk
().
setData
(
commitMap
).
toJson
();
}
else
{
String
errorMsg
=
""
;
...
...
@@ -516,7 +512,7 @@ public class OrderServiceImpl implements OrderService {
list
.
add
(
dtl
);
}
jdbcTemplate
.
batchSave
(
list
);
this
.
sendWxMessage
(
order
.
getsSalesOrderID
());
//
this.sendWxMessage(order.getsSalesOrderID());
return
order
.
getsSalesOrderID
();
}
...
...
@@ -674,7 +670,7 @@ public class OrderServiceImpl implements OrderService {
String
sqlUpdate
=
"update tZHCProject set nSalePaperQty = ?, nSaleQty = ?, nSaleAmount = ? where nProjectID = ?"
;
jdbcTemplate
.
executeUpdate
(
sqlUpdate
,
nSalePaperQty
,
nSaleQty
,
nSaleAmount
,
nProjectID
);
}
this
.
sendWxMessage
(
order
.
getsSalesOrderID
());
//
this.sendWxMessage(order.getsSalesOrderID());
return
order
.
getsSalesOrderID
();
}
...
...
@@ -794,7 +790,7 @@ public class OrderServiceImpl implements OrderService {
dtl
.
setsSalesOrderID
(
sSalesOrderID
);
dtl
.
setsWarehouseNO
(
sWarehouseNO
);
jdbcTemplate
.
save
(
dtl
);
this
.
sendWxMessage
(
order
.
getsSalesOrderID
());
//
this.sendWxMessage(order.getsSalesOrderID());
return
order
.
getsSalesOrderID
();
}
...
...
@@ -861,7 +857,7 @@ public class OrderServiceImpl implements OrderService {
}
private
void
sendWxMessage
(
String
sSalesOrderID
)
{
TSalesOrder
order
=
jdbcTemplate
.
queryForBean
(
"select * from tSalesOrder where sSalesOrderID = ?"
,
TSalesOrder
.
class
,
sSalesOrderID
);
/*
TSalesOrder order = jdbcTemplate.queryForBean("select * from tSalesOrder where sSalesOrderID = ?", TSalesOrder.class, sSalesOrderID);
String salesmanNo = order.getsSalesmanNO();
String shopNo = order.getsShopNO();
BigDecimal totalAmount = order.getnTotalSaleAmount();
...
...
@@ -897,7 +893,7 @@ public class OrderServiceImpl implements OrderService {
params.put("备注", StringUtil.isBlank(shopMemo) ? " " : shopMemo);
notice.setContent_item(params);
wxService.sendMessage(wxMessage);
}
}
*/
}
}
src/main/java/com/egolm/shop/api/service/impl/QiyeWxServiceImpl.java
View file @
2805f5d8
package
com
.
egolm
.
shop
.
api
.
service
.
impl
;
/*
package com.egolm.shop.api.service.impl;
import java.text.MessageFormat;
import java.util.Date;
...
...
@@ -96,3 +96,4 @@ public class QiyeWxServiceImpl implements QiyeWxService {
}
*/
\ No newline at end of file
src/main/java/com/egolm/shop/api/service/impl/UserServiceImpl.java
View file @
2805f5d8
...
...
@@ -36,10 +36,7 @@ import com.egolm.common.jdbc.ResultMutil;
import
com.egolm.common.jdbc.dialect.Dialect
;
import
com.egolm.common.jdbc.dialect.SqlServerDialect
;
import
com.egolm.common.jdbc.dialect.bean.Sql
;
import
com.egolm.shop.api.service.CommonService
;
import
com.egolm.shop.api.service.QiyeWxService
;
import
com.egolm.shop.api.service.QiyeWxService.WxMessage
;
import
com.egolm.shop.api.service.QiyeWxService.WxMessage.MiniprogramNotice
;
import
com.egolm.shop.api.service.CommonService
;
import
com.egolm.shop.api.service.SystemCtrlService
;
import
com.egolm.shop.api.service.UserService
;
import
com.egolm.shop.bean.TCommon
;
...
...
@@ -54,8 +51,8 @@ public class UserServiceImpl implements UserService {
private
static
final
Log
logger
=
LogFactory
.
getLog
(
UserServiceImpl
.
class
);
@Autowired
private
QiyeWxService
wxService
;
/*
@Autowired
private QiyeWxService wxService;
*/
@Value
(
"${redis.guest.key}"
)
private
String
guestRedisKey
;
...
...
@@ -631,7 +628,7 @@ public class UserServiceImpl implements UserService {
String
dateString
=
DateUtil
.
format
(
new
Date
());
String
sCompanyAccountID
=
(
String
)
salesman
.
get
(
"sCompanyAccountID"
);
if
(
StringUtil
.
isNotBlank
(
sCompanyAccountID
))
{
WxMessage
wxMessage
=
new
WxMessage
(
sCompanyAccountID
);
/*
WxMessage wxMessage = new WxMessage(sCompanyAccountID);
MiniprogramNotice notice = new MiniprogramNotice();
wxMessage.setMiniprogram_notice(notice);
notice.setDescription(dateString);
...
...
@@ -647,7 +644,7 @@ public class UserServiceImpl implements UserService {
params.put("备注", StringUtil.isBlank(memo) ? " " : memo);
notice.setContent_item(params);
wxService
.
sendMessage
(
wxMessage
);
wxService.sendMessage(wxMessage);
*/
}
}
return
Rjx
.
jsonOk
().
setMessage
(
I18NUtils
.
getMessage
(
langID
,
"Msg_Update_success"
)).
toJson
();
...
...
src/main/java/com/egolm/shop/common/config/ExceptionHandler.java
View file @
2805f5d8
...
...
@@ -13,7 +13,6 @@ import org.springframework.web.servlet.view.json.MappingJackson2JsonView;
import
com.egolm.common.bean.Rjx
;
import
com.egolm.shop.common.XException
;
import
com.egolm.shop.common.plugins.aliyunLog.AliyunLogProducer
;
import
com.egolm.shop.common.utils.I18NUtils
;
import
io.netty.util.internal.ThrowableUtil
;
...
...
@@ -23,8 +22,7 @@ public class ExceptionHandler implements HandlerExceptionResolver {
private
static
final
Log
logger
=
LogFactory
.
getLog
(
ExceptionHandler
.
class
);
@Autowired
private
AliyunLogProducer
logProducer
;
@Override
public
ModelAndView
resolveException
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
,
Exception
ex
)
{
...
...
@@ -41,7 +39,6 @@ public class ExceptionHandler implements HandlerExceptionResolver {
mav
.
addAllObjects
(
Rjx
.
jsonErr
().
setMessage
(
I18NUtils
.
getMessage
(
langID
,
"Msg_Exception_processFailure"
)));
}
finally
{
logger
.
error
(
""
,
ex
);
logProducer
.
sendLog
(
ThrowableUtil
.
stackTraceToString
(
ex
));
}
return
mav
;
}
...
...
src/main/java/com/egolm/shop/common/config/LogProducerConfig.java
deleted
100644 → 0
View file @
85efec44
package
com
.
egolm
.
shop
.
common
.
config
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
com.aliyun.openservices.aliyun.log.producer.LogProducer
;
import
com.aliyun.openservices.aliyun.log.producer.Producer
;
import
com.aliyun.openservices.aliyun.log.producer.ProducerConfig
;
import
com.aliyun.openservices.aliyun.log.producer.ProjectConfig
;
@Configuration
public
class
LogProducerConfig
{
@Value
(
"${logProducer.project}"
)
private
String
project
;
@Value
(
"${logProducer.endpoint}"
)
private
String
endpoint
;
@Value
(
"${logProducer.accessKeyId}"
)
private
String
accessKeyId
;
@Value
(
"${logProducer.accessKeySecret}"
)
private
String
accessKeySecret
;
@Bean
public
Producer
createProducer
()
{
ProducerConfig
producerConfig
=
new
ProducerConfig
();
Producer
producer
=
new
LogProducer
(
producerConfig
);
producer
.
putProjectConfig
(
new
ProjectConfig
(
project
,
endpoint
,
accessKeyId
,
accessKeySecret
));
return
producer
;
}
}
src/main/java/com/egolm/shop/common/config/SolrConfig.java
View file @
2805f5d8
package
com
.
egolm
.
shop
.
common
.
config
;
import
org.apache.solr.client.solrj.impl.HttpSolrClient
;
import
org.apache.solr.client.solrj.impl.HttpSolrClient.Builder
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
@Configuration
public
class
SolrConfig
{
@Value
(
"${solr.baseURL}"
)
private
String
baseUrl
;
@Bean
public
HttpSolrClient
getHttpSolrClient
()
{
return
new
Builder
().
withBaseSolrUrl
(
baseUrl
).
build
();
}
}
/*package com.egolm.shop.common.config;
import org.apache.solr.client.solrj.impl.HttpSolrClient;
import org.apache.solr.client.solrj.impl.HttpSolrClient.Builder;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class SolrConfig {
@Value("${solr.baseURL}")
private String baseUrl;
@Bean
public HttpSolrClient getHttpSolrClient() {
return new Builder().withBaseSolrUrl(baseUrl).build();
}
}
*/
\ No newline at end of file
src/main/java/com/egolm/shop/common/plugins/aliyunLog/AliyunLogProducer.java
deleted
100644 → 0
View file @
85efec44
package
com
.
egolm
.
shop
.
common
.
plugins
.
aliyunLog
;
import
java.util.ArrayList
;
import
java.util.List
;
import
java.util.concurrent.ExecutorService
;
import
java.util.concurrent.Executors
;
import
org.slf4j.Logger
;
import
org.slf4j.LoggerFactory
;
import
org.springframework.beans.factory.annotation.Autowired
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
com.aliyun.openservices.aliyun.log.producer.Producer
;
import
com.aliyun.openservices.aliyun.log.producer.Result
;
import
com.aliyun.openservices.aliyun.log.producer.errors.ResultFailedException
;
import
com.aliyun.openservices.log.common.LogItem
;
import
com.google.common.util.concurrent.FutureCallback
;
import
com.google.common.util.concurrent.Futures
;
import
com.google.common.util.concurrent.ListenableFuture
;
import
io.netty.util.internal.ThrowableUtil
;
@Component
public
class
AliyunLogProducer
{
@Autowired
private
Producer
producer
;
@Value
(
"${logProducer.project}"
)
private
String
project
;
@Value
(
"${logProducer.logStore}"
)
private
String
logStore
;
@Value
(
"${logProducer.isOpen}"
)
private
Boolean
isOpen
;
@Value
(
"${logProducer.logName}"
)
private
String
logName
;
private
static
final
ExecutorService
EXECUTOR_SERVICE
=
Executors
.
newCachedThreadPool
();
public
void
sendLog
(
String
logText
)
{
if
(!
isOpen
)
{
return
;
}
try
{
List
<
LogItem
>
logItems
=
new
ArrayList
<
LogItem
>();
LogItem
logItem
=
new
LogItem
();
logItem
.
PushBack
(
"id"
,
String
.
valueOf
(
System
.
currentTimeMillis
()));
logItem
.
PushBack
(
logName
,
logText
);
logItems
.
add
(
logItem
);
ListenableFuture
<
Result
>
future
=
producer
.
send
(
project
,
logStore
,
logItems
);
Futures
.
addCallback
(
future
,
new
SampleFutureCallback
(
project
,
logStore
,
logText
),
EXECUTOR_SERVICE
);
}
catch
(
Exception
e
)
{
e
.
printStackTrace
();
}
}
private
static
final
class
SampleFutureCallback
implements
FutureCallback
<
Result
>
{
private
static
final
Logger
LOGGER
=
LoggerFactory
.
getLogger
(
SampleFutureCallback
.
class
);
private
final
String
project
;
private
final
String
logStore
;
private
final
String
logText
;
SampleFutureCallback
(
String
project
,
String
logStore
,
String
logText
)
{
this
.
project
=
project
;
this
.
logStore
=
logStore
;
this
.
logText
=
logText
;
}
@Override
public
void
onSuccess
(
Result
result
)
{
LOGGER
.
info
(
"Send logs successfully."
);
}
@Override
public
void
onFailure
(
Throwable
e
)
{
if
(
e
instanceof
ResultFailedException
)
{
Result
result
=
((
ResultFailedException
)
e
).
getResult
();
LOGGER
.
error
(
"Failed to send logs, project={}, logStore={}, result={}, log={}"
,
project
,
logStore
,
result
,
logText
);
}
else
{
String
errors
=
ThrowableUtil
.
stackTraceToString
(
e
);
LOGGER
.
error
(
"Failed to send logs, project={}, logStore={}, errors={}, log={}"
,
project
,
logStore
,
errors
,
logText
);
}
}
}
}
src/main/java/com/egolm/shop/common/utils/Express.java
View file @
2805f5d8
package
com
.
egolm
.
shop
.
common
.
utils
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.HashMap
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.TimeZone
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.egolm.common.HttpUtil
;
import
com.egolm.common.StringUtil
;
import
com.egolm.shop.common.XException
;
@Component
public
class
Express
{
private
static
final
Log
logger
=
LogFactory
.
getLog
(
Express
.
class
);
@Value
(
"${opt.express.url}"
)
private
String
url
;
@Value
(
"${opt.express.secretId}"
)
private
String
secretId
;
@Value
(
"${opt.express.secretKey}"
)
private
String
secretKey
;
private
String
source
=
"market"
;
private
Map
<
String
,
String
>
getHeaders
()
{
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
headers
.
put
(
"X-Source"
,
source
);
Calendar
cd
=
Calendar
.
getInstance
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"EEE, dd MMM yyyy HH:mm:ss 'GMT'"
,
Locale
.
US
);
sdf
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"GMT"
));
String
datetime
=
sdf
.
format
(
cd
.
getTime
());
headers
.
put
(
"X-Date"
,
datetime
);
String
signStr
=
"x-date: "
+
datetime
+
"\n"
+
"x-source: "
+
source
;
String
sig
=
StringUtil
.
toHMACSHA1String
(
signStr
,
secretKey
);
String
auth
=
"hmac id=\""
+
secretId
+
"\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\""
+
sig
+
"\""
;
headers
.
put
(
"Authorization"
,
auth
);
return
headers
;
}
public
JSONArray
get
(
String
sExpressNO
,
String
sExpressType
)
{
Map
<
String
,
String
>
headers
=
this
.
getHeaders
();
Map
<
String
,
String
>
queryParams
=
new
HashMap
<
String
,
String
>();
queryParams
.
put
(
"number"
,
sExpressNO
.
trim
());
queryParams
.
put
(
"type"
,
sExpressType
==
null
?
"auto"
:
sExpressType
.
trim
());
String
result
=
HttpUtil
.
get
(
url
,
queryParams
,
headers
);
logger
.
debug
(
result
);
JSONObject
jsonObject
=
null
;
try
{
jsonObject
=
JSON
.
parseObject
(
result
);
}
catch
(
Exception
e
)
{
throw
new
XException
(
"快递查询失败"
);
}
if
(
jsonObject
!=
null
)
{
String
status
=
jsonObject
.
getString
(
"status"
);
if
(
status
!=
null
)
{
status
=
status
.
trim
();
if
(
"0"
.
equals
(
status
))
{
JSONObject
resultObject
=
jsonObject
.
getJSONObject
(
"result"
);
if
(
resultObject
!=
null
)
{
return
resultObject
.
getJSONArray
(
"list"
);
}
}
else
{
if
(
"201"
.
equals
(
status
))
{
throw
new
XException
(
"快递单号为空"
);
}
else
if
(
"202"
.
equals
(
status
))
{
throw
new
XException
(
"快递公司为空"
);
}
else
if
(
"203"
.
equals
(
status
))
{
throw
new
XException
(
"快递公司不存在"
);
}
else
if
(
"204"
.
equals
(
status
))
{
throw
new
XException
(
"快递公司识别失败"
);
}
else
if
(
"205"
.
equals
(
status
))
{
throw
new
XException
(
"没有信息"
);
}
}
}
}
return
new
JSONArray
();
}
public
JSONArray
get
(
String
sExpressNO
)
{
return
this
.
get
(
sExpressNO
,
null
);
}
}
package
com
.
egolm
.
shop
.
common
.
utils
;
import
java.text.SimpleDateFormat
;
import
java.util.Calendar
;
import
java.util.HashMap
;
import
java.util.Locale
;
import
java.util.Map
;
import
java.util.TimeZone
;
import
org.apache.commons.logging.Log
;
import
org.apache.commons.logging.LogFactory
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.stereotype.Component
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONArray
;
import
com.alibaba.fastjson.JSONObject
;
import
com.egolm.common.HttpUtil
;
import
com.egolm.common.StringUtil
;
import
com.egolm.shop.common.XException
;
@Component
public
class
Express
{
private
static
final
Log
logger
=
LogFactory
.
getLog
(
Express
.
class
);
@Value
(
"${opt.express.url}"
)
private
String
url
;
@Value
(
"${opt.express.secretId}"
)
private
String
secretId
;
@Value
(
"${opt.express.secretKey}"
)
private
String
secretKey
;
private
String
source
=
"market"
;
private
Map
<
String
,
String
>
getHeaders
()
{
Map
<
String
,
String
>
headers
=
new
HashMap
<
String
,
String
>();
headers
.
put
(
"X-Source"
,
source
);
Calendar
cd
=
Calendar
.
getInstance
();
SimpleDateFormat
sdf
=
new
SimpleDateFormat
(
"EEE, dd MMM yyyy HH:mm:ss 'GMT'"
,
Locale
.
US
);
sdf
.
setTimeZone
(
TimeZone
.
getTimeZone
(
"GMT"
));
String
datetime
=
sdf
.
format
(
cd
.
getTime
());
headers
.
put
(
"X-Date"
,
datetime
);
String
signStr
=
"x-date: "
+
datetime
+
"\n"
+
"x-source: "
+
source
;
String
sig
=
StringUtil
.
toHMACSHA1String
(
signStr
,
secretKey
);
String
auth
=
"hmac id=\""
+
secretId
+
"\", algorithm=\"hmac-sha1\", headers=\"x-date x-source\", signature=\""
+
sig
+
"\""
;
headers
.
put
(
"Authorization"
,
auth
);
return
headers
;
}
public
JSONArray
get
(
String
sExpressNO
,
String
sExpressType
)
{
Map
<
String
,
String
>
headers
=
this
.
getHeaders
();
Map
<
String
,
String
>
queryParams
=
new
HashMap
<
String
,
String
>();
queryParams
.
put
(
"number"
,
sExpressNO
.
trim
());
queryParams
.
put
(
"type"
,
sExpressType
==
null
?
"auto"
:
sExpressType
.
trim
());
String
result
=
HttpUtil
.
get
(
url
,
queryParams
,
headers
);
logger
.
debug
(
result
);
JSONObject
jsonObject
=
null
;
try
{
jsonObject
=
JSON
.
parseObject
(
result
);
}
catch
(
Exception
e
)
{
throw
new
XException
(
"快递查询失败"
);
}
if
(
jsonObject
!=
null
)
{
String
status
=
jsonObject
.
getString
(
"status"
);
if
(
status
!=
null
)
{
status
=
status
.
trim
();
if
(
"0"
.
equals
(
status
))
{
JSONObject
resultObject
=
jsonObject
.
getJSONObject
(
"result"
);
if
(
resultObject
!=
null
)
{
return
resultObject
.
getJSONArray
(
"list"
);
}
}
else
{
if
(
"201"
.
equals
(
status
))
{
throw
new
XException
(
"快递单号为空"
);
}
else
if
(
"202"
.
equals
(
status
))
{
throw
new
XException
(
"快递公司为空"
);
}
else
if
(
"203"
.
equals
(
status
))
{
throw
new
XException
(
"快递公司不存在"
);
}
else
if
(
"204"
.
equals
(
status
))
{
throw
new
XException
(
"快递公司识别失败"
);
}
else
if
(
"205"
.
equals
(
status
))
{
throw
new
XException
(
"没有信息"
);
}
}
}
}
return
new
JSONArray
();
}
public
JSONArray
get
(
String
sExpressNO
)
{
return
this
.
get
(
sExpressNO
,
null
);
}
}
\ No newline at end of file
src/main/java/com/egolm/shop/schedules/qiyewx/QiyeWxMsgTask.java
View file @
2805f5d8
package
com
.
egolm
.
shop
.
schedules
.
qiyewx
;
/*
package com.egolm.shop.schedules.qiyewx;
import java.math.BigDecimal;
import java.util.Date;
...
...
@@ -29,7 +29,7 @@ public class QiyeWxMsgTask {
@Autowired
JdbcTemplate jdbcTemplate;
/* @Scheduled(cron="${qiyewx.msg.timer}")*/
@Scheduled(cron="${qiyewx.msg.timer}")
public void execute() {
List<Map<String, Object>> list = jdbcTemplate.queryForList("select nID, sSMS from tSMS where sSendType = '2' and sChannelID = 'qywx' and sSendGroup = '6'");
if(list.size() > 0) {
...
...
@@ -88,3 +88,4 @@ public class QiyeWxMsgTask {
wxService.sendMessage(wxMessage);
}
}
*/
\ No newline at end of file
src/main/java/com/egolm/shop/schedules/search/GoodsCollectTask.java
View file @
2805f5d8
package
com
.
egolm
.
shop
.
schedules
.
search
;
/*
package com.egolm.shop.schedules.search;
import java.util.Date;
import java.util.List;
...
...
@@ -84,13 +84,13 @@ public class GoodsCollectTask extends AbstractSolrApi{
return Rjx.jsonOk().toJson();
}
/* @Scheduled(cron="${solr.goods.cron-for-day}")*/
@Scheduled(cron="${solr.goods.cron-for-day}")
public void dayExecute() {
Date date = new Date(System.currentTimeMillis() - (offsetMinuteForDay*60L*1000L));
this.updateIndex(date);
}
/*@Scheduled(cron="${solr.goods.cron-for-minute}")*/
@Scheduled(cron="${solr.goods.cron-for-minute}")
public void minuteExecute() {
Date date = new Date(System.currentTimeMillis() - (offsetMinuteForMinute*60L*1000L));
this.updateIndex(date);
...
...
@@ -121,3 +121,4 @@ public class GoodsCollectTask extends AbstractSolrApi{
}
}
*/
\ No newline at end of file
src/main/resources/application.properties
View file @
2805f5d8
...
...
@@ -17,25 +17,6 @@ spring.messages.basename=messages
###版本号
maven.build.timestamp
=
@maven.build.timestamp@
sql.goods.create-index-query
=
sql/goods/create-index-query.sql
sql.goods.delete-index-query
=
sql/goods/delete-index-query.sql
sql.goods.update-index-query
=
sql/goods/update-index-query.sql
solr.goods.core-url
=
http://10.10.0.16:9090/solr/goods
solr.goods.offset-minute-for-day
:
1500
solr.goods.offset-minute-for-minute
:
10
solr.goods.cron-for-day
:
0 0 3 * * ?
solr.goods.cron-for-minute
:
0 * * * * ?
solr.baseURL
=
http://10.10.0.16:9090/solr/goods
logProducer.logName
=
AST_SHOP_ERROR_LOG
logProducer.isOpen
=
false
logProducer.project
=
linkfernlog
logProducer.logStore
=
linkfernlogstore
logProducer.endpoint
=
cn-shanghai.log.aliyuncs.com
logProducer.accessKeyId
=
LTAI4FvaitSjFD3X6gLeyyiR
logProducer.accessKeySecret
=
5zuFHabmMWzCHziPopQyoADqjKC4cv
spring.datasource.username
=
ERP
spring.datasource.password
=
qiyang@2013
spring.datasource.url
=
jdbc:sqlserver://10.10.0.22:1433;instanceName=SQLSERVER;DatabaseName=B2BDB;allowMultiQueries=true
...
...
@@ -76,10 +57,11 @@ redis.guest.key=B2B_Guest
redis.sms.code.key
=
B2B_Sms
#以下没啥用
wx.appId
=
wxb1ec171f1bac3429
wx.md5Key
=
FFRlbnBheS5jb20gQ0EgQ2VudGVyMRsw
wx.appSecret
=
eac5fb2d91004f89dcfb3c7bfc8aac96
#以下没啥用
qiyewx.corpid
=
ww0e86cf527e3e5218
qiyewx.corpsecret
=
aOSZ6i7oHLJtRfPJB4RSZzysyRTuOXpet2W7OtqeGZs
qiyewx.baseUrl
=
https://qyapi.weixin.qq.com/cgi-bin
...
...
src/main/resources/logback.xml
View file @
2805f5d8
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property
name=
"LOG_BASE_PATH"
value=
"/data/logs/shop"
/>
<include
resource=
"org/springframework/boot/logging/logback/base.xml"
/>
<logger
name=
"org"
level=
"INFO"
/>
<logger
name=
"com"
level=
"INFO"
/>
<logger
name=
"com.egolm"
level=
"DEBUG"
/>
<appender
name=
"siftingAppender"
class=
"ch.qos.logback.classic.sift.SiftingAppender"
>
<discriminator>
<key>
CTX_PATH
</key>
<DefaultValue>
shop
</DefaultValue>
</discriminator>
<sift>
<appender
name=
"rollingFileAppender"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
${LOG_BASE_PATH}/${CTX_PATH}-%d{yyyy-MM-dd}.log
</FileNamePattern>
<MaxHistory>
30
</MaxHistory>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${CONSOLE_LOG_PATTERN}
</pattern>
</encoder>
</appender>
</sift>
<!-- Console 输出设置 -->
<appender
name=
"console"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<encoder>
<pattern>
%d{MM-dd HH:mm:ss.SSS} %-5level [%logger{50}] - %msg%n
</pattern>
<charset>
utf8
</charset>
</encoder>
</appender>
<appender
name=
"commonAppender"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<FileNamePattern>
d:/data/logs/shop-%d{yyyy-MM-dd}.log
</FileNamePattern>
<MaxHistory>
30
</MaxHistory>
</rollingPolicy>
<encoder
class=
"ch.qos.logback.classic.encoder.PatternLayoutEncoder"
>
<pattern>
${CONSOLE_LOG_PATTERN}
</pattern>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"siftingAppender"
/>
<appender-ref
ref=
"commonAppender"
/>
<appender-ref
ref=
"console"
/>
</root>
</configuration>
\ No newline at end of file
src/main/resources/logback2.xml_bak
0 → 100644
View file @
2805f5d8
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<property
name=
"LOG_BASE_PATH"
value=
"d:/data/logs/shop"
/>
<include
resource=
"org/springframework/boot/logging/logback/base.xml"
/>
<logger
name=
"org"
level=
"INFO"
/>
<logger
name=
"com"
level=
"INFO"
/>
<logger
name=
"com.egolm"
level=
"DEBUG"
/>
<!-- <appender name="siftingAppender" class="ch.qos.logback.classic.sift.SiftingAppender">
<discriminator>
<key>CTX_PATH</key>
<DefaultValue>shop</DefaultValue>
</discriminator>
<sift>
<appender name="rollingFileAppender"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<FileNamePattern>${LOG_BASE_PATH}/${CTX_PATH}-%d{yyyy-MM-dd}.log</FileNamePattern>
<MaxHistory>30</MaxHistory>
</rollingPolicy>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
</encoder>
</appender>
</sift>
</appender> -->
<appender
name=
"siftingAppender"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
${LOG_BASE_PATH}/%d{yyyy-MM-dd}/shop.%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<TimeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
50MB
</maxFileSize>
</TimeBasedFileNamingAndTriggeringPolicy>
<MaxHistory>
30
</MaxHistory>
</rollingPolicy>
<encoder>
<pattern>
%date [%thread] %-5level [%logger{50}] %file:%line - %msg%n
</pattern>
</encoder>
</appender>
<root
level=
"INFO"
>
<appender-ref
ref=
"siftingAppender"
/>
</root>
</configuration>
\ No newline at end of file
src/main/resources/templates/redmine.html
0 → 100644
View file @
2805f5d8
<!DOCTYPE HTML>
<html
xmlns:th=
"http://www.thymeleaf.org"
>
<head>
<title>
更新说明
</title>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=UTF-8"
/>
<!-- import Vue.js -->
<script
src=
"https://cdn.bootcss.com/vue/2.5.16/vue.min.js"
></script>
<link
rel=
"stylesheet"
href=
"https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css"
>
<!-- 引入样式 -->
<link
rel=
"stylesheet"
href=
"https://unpkg.com/element-ui/lib/theme-chalk/index.css"
>
<!-- 引入组件库 -->
<script
src=
"https://unpkg.com/element-ui/lib/index.js"
></script>
<style
type=
"text/css"
>
.title
{
padding-left
:
20px
;
font-size
:
14px
;
}
</style>
</head>
<body>
<div
id=
"app"
>
<el-divider
content-position=
"left"
>
V1.0.0
</el-divider>
<p
class=
"title"
>
1.项目初始化
</p>
</div>
</body>
<script
type=
"text/javascript"
>
let
app
=
new
Vue
({
el
:
'#app'
,
data
()
{
return
{
}
},
created
()
{
},
mounted
(){
},
methods
:{
}
});
</script>
</html>
\ No newline at end of file
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