Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
G
gk
Project
Project
Details
Activity
Releases
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
micro_app
gk
Commits
11daef44
Commit
11daef44
authored
Jun 08, 2020
by
yangshuxing
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
bug修改
parent
2d11c98b
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
190 additions
and
197 deletions
+190
-197
SecurityInterceptor.java
...dlbridge/jadp/common/interceptor/SecurityInterceptor.java
+9
-0
WeiXin.java
...main/java/com/dlbridge/jadp/config/properties/WeiXin.java
+0
-19
WeiXinAccessToken.java
src/main/java/com/dlbridge/jadp/job/WeiXinAccessToken.java
+0
-53
Partner.java
...ain/java/com/dlbridge/jadp/plugins/cmpt/bean/Partner.java
+16
-0
NoAuthException.java
...dge/jadp/plugins/cmpt/bean/exception/NoAuthException.java
+8
-0
CmptMapper.java
...com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.java
+10
-6
CmptMapper.xml
.../com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.xml
+27
-8
CmptService.java
...a/com/dlbridge/jadp/plugins/cmpt/service/CmptService.java
+17
-7
RemoteService.java
...com/dlbridge/jadp/plugins/cmpt/service/RemoteService.java
+1
-21
WeixinInfoService.java
...dlbridge/jadp/plugins/cmpt/service/WeixinInfoService.java
+7
-7
ExceptionController.java
...m/dlbridge/jadp/plugins/cmpt/web/ExceptionController.java
+18
-0
MicroApiController.java
...om/dlbridge/jadp/plugins/cmpt/web/MicroApiController.java
+25
-9
ResourcesController.java
...m/dlbridge/jadp/plugins/cmpt/web/ResourcesController.java
+6
-25
cmptNameList.jsp
src/main/webapp/WEB-INF/views/cmpt/cmptNameList.jsp
+3
-3
contact.js
src/main/webapp/static/js/contact.js
+43
-39
No files found.
src/main/java/com/dlbridge/jadp/common/interceptor/SecurityInterceptor.java
View file @
11daef44
...
@@ -4,6 +4,7 @@
...
@@ -4,6 +4,7 @@
package
com
.
dlbridge
.
jadp
.
common
.
interceptor
;
package
com
.
dlbridge
.
jadp
.
common
.
interceptor
;
import
com.dlbridge.jadp.common.service.JService
;
import
com.dlbridge.jadp.common.service.JService
;
import
com.dlbridge.jadp.plugins.cmpt.bean.exception.NoAuthException
;
import
com.neusoft.www.utils.web.RequestParamHelper
;
import
com.neusoft.www.utils.web.RequestParamHelper
;
import
lombok.extern.log4j.Log4j
;
import
lombok.extern.log4j.Log4j
;
import
lombok.extern.log4j.Log4j2
;
import
lombok.extern.log4j.Log4j2
;
...
@@ -41,6 +42,14 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor
...
@@ -41,6 +42,14 @@ public class SecurityInterceptor extends JService implements HandlerInterceptor
Method
method
=
handlerMethod
.
getMethod
();
Method
method
=
handlerMethod
.
getMethod
();
PageView
annotation
=
method
.
getAnnotation
(
PageView
.
class
);
PageView
annotation
=
method
.
getAnnotation
(
PageView
.
class
);
String
userAgent
=
request
.
getHeader
(
"user-agent"
).
toLowerCase
();
if
(
userAgent
.
indexOf
(
"miniprogram"
)>-
1
)
{
//小程序
String
partnerId
=
request
.
getParameter
(
"partnerId"
);
if
(
partnerId
==
null
){
throw
new
NoAuthException
(
"未查询到partnerdId,没权限!"
);
}
}
if
(
annotation
!=
null
)
{
if
(
annotation
!=
null
)
{
String
[]
split
=
request
.
getRequestURI
().
split
(
"/"
);
String
[]
split
=
request
.
getRequestURI
().
split
(
"/"
);
String
cmptId
=
split
[
split
.
length
-
1
];
String
cmptId
=
split
[
split
.
length
-
1
];
...
...
src/main/java/com/dlbridge/jadp/config/properties/WeiXin.java
deleted
100644 → 0
View file @
2d11c98b
package
com
.
dlbridge
.
jadp
.
config
.
properties
;
import
lombok.Getter
;
import
lombok.Setter
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.stereotype.Component
;
@Component
@ConfigurationProperties
(
prefix
=
"weixin.micro"
)
@Setter
@Getter
public
class
WeiXin
{
private
String
appid
;
private
String
secret
;
}
src/main/java/com/dlbridge/jadp/job/WeiXinAccessToken.java
deleted
100644 → 0
View file @
2d11c98b
package
com
.
dlbridge
.
jadp
.
job
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dlbridge.jadp.config.properties.WeiXin
;
import
lombok.extern.log4j.Log4j2
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.scheduling.annotation.Scheduled
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
javax.annotation.PostConstruct
;
import
javax.annotation.Resource
;
@Component
@Log4j2
public
class
WeiXinAccessToken
{
@Resource
RestTemplate
restTemplate
;
private
static
String
ACCESS_TOKEN
;
@Resource
WeiXin
weiXin
;
@Resource
private
ValueOperations
valueOperations
;
/*@Scheduled(fixedRate = 3600 * 1000)
public void accessToken() {
log.info("获取access_token...");
ResponseEntity<String> forEntity = restTemplate.getForEntity("https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&" +
"appid=" + weiXin.getAppid() + "&secret=" + weiXin.getSecret(),
String.class);
log.info("appId:"+weiXin.getAppid()+",获取token结果:" + forEntity.getBody());
ACCESS_TOKEN = JSONObject.parseObject(forEntity.getBody()).getString("access_token");
log.info("access_token:" + ACCESS_TOKEN);
valueOperations.set("micro_gk:access_token",ACCESS_TOKEN);
}*/
@Scheduled
(
fixedRate
=
1800
*
1000
)
public
void
accessToken
()
{
ACCESS_TOKEN
=
(
String
)
valueOperations
.
get
(
"micro_gk:access_token"
);
log
.
info
(
"获取access_token: "
+
ACCESS_TOKEN
);
}
public
static
String
getAccessToken
(){
return
ACCESS_TOKEN
;
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/bean/Partner.java
0 → 100644
View file @
11daef44
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
bean
;
import
lombok.Data
;
@Data
public
class
Partner
{
private
Integer
id
;
private
String
appId
;
private
String
appSecret
;
private
int
userId
;
private
String
partnerId
;
private
int
status
;
private
String
name
;
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/bean/exception/NoAuthException.java
0 → 100644
View file @
11daef44
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
bean
.
exception
;
public
class
NoAuthException
extends
Exception
{
public
NoAuthException
(
String
message
)
{
super
(
message
);
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.java
View file @
11daef44
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
dao
.
mapper
;
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
dao
.
mapper
;
import
com.dlbridge.jadp.plugins.cmpt.bean.CmptVo
;
import
com.dlbridge.jadp.plugins.cmpt.bean.*
;
import
com.dlbridge.jadp.plugins.cmpt.bean.EnrollInfo
;
import
com.dlbridge.jadp.plugins.cmpt.bean.NeuUser
;
import
com.dlbridge.jadp.plugins.cmpt.bean.RaceEnrollUser
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.UserCmpt
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.UserCmpt
;
import
org.apache.ibatis.annotations.Param
;
import
org.apache.ibatis.annotations.Param
;
import
org.springframework.data.domain.Pageable
;
import
org.springframework.data.domain.Pageable
;
...
@@ -12,6 +9,7 @@ import org.springframework.data.domain.Pageable;
...
@@ -12,6 +9,7 @@ import org.springframework.data.domain.Pageable;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* 赛事接口
* 赛事接口
...
@@ -42,9 +40,9 @@ public interface CmptMapper {
...
@@ -42,9 +40,9 @@ public interface CmptMapper {
List
<
CmptVo
>
queryUserCmptList
(
Integer
userId
);
List
<
CmptVo
>
queryUserCmptList
(
Integer
userId
);
long
countCount
(
@Param
(
"
keyword"
)
String
keyword
,
@Param
(
"type"
)
int
type
);
long
countCount
(
@Param
(
"
param"
)
Map
<
String
,
String
>
param
);
List
<
Cmpt
>
queryCmpt
(
@Param
(
"page"
)
Pageable
page
,
@Param
(
"
keyword"
)
String
keyword
,
@Param
(
"type"
)
int
type
);
List
<
Cmpt
>
queryCmpt
(
@Param
(
"page"
)
Pageable
page
,
@Param
(
"
param"
)
Map
<
String
,
String
>
param
);
void
updateCmpt
(
Cmpt
cmpt
);
void
updateCmpt
(
Cmpt
cmpt
);
...
@@ -67,4 +65,10 @@ public interface CmptMapper {
...
@@ -67,4 +65,10 @@ public interface CmptMapper {
void
updateUserCmptById
(
@Param
(
"cmpt"
)
UserCmpt
cmpt
);
void
updateUserCmptById
(
@Param
(
"cmpt"
)
UserCmpt
cmpt
);
int
getEnrollInfoCount
(
@Param
(
"cmptId"
)
Integer
cmptId
,
@Param
(
"phone"
)
String
phone
);
int
getEnrollInfoCount
(
@Param
(
"cmptId"
)
Integer
cmptId
,
@Param
(
"phone"
)
String
phone
);
String
getPartnerId
(
Integer
cmptid
);
String
getDefaultPartnerId
(
Integer
cmptid
);
Partner
getParnterByParnterId
(
String
partnerId
);
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/dao/mapper/CmptMapper.xml
View file @
11daef44
...
@@ -132,18 +132,18 @@
...
@@ -132,18 +132,18 @@
</select>
</select>
<sql
id=
"cmpt-where-sql"
>
<sql
id=
"cmpt-where-sql"
>
<if
test=
"@org.apache.commons.lang3.StringUtils@isNotBlank(param.keyword)"
>
<if
test=
"@org.apache.commons.lang3.StringUtils@isNotBlank(keyword)"
>
and a.cmpt_name like concat('%',#{param.keyword},'%')
and a.cmpt_name like concat('%',#{keyword},'%')
</if>
</if>
<if
test=
"true"
>
<if
test=
"true"
>
and a.cmpt_status = 2
and a.cmpt_status = 2
</if>
</if>
<if
test=
"param.type == 1"
>
<if
test=
"type == 1"
>
and now() >= c.openTime and c.deadLine >= now()
and now() >= c.openTime and c.deadLine >= now()
</if>
<if
test=
"param.userId > 0"
>
and c.createUserId=#{param.userId}
</if>
</if>
</sql>
</sql>
<update
id=
"updateCmpt"
>
<update
id=
"updateCmpt"
>
...
@@ -202,7 +202,26 @@
...
@@ -202,7 +202,26 @@
<select
id=
"getEnrollInfoCount"
resultType=
"int"
>
<select
id=
"getEnrollInfoCount"
resultType=
"int"
>
select count(1)
select count(1)
from common.neucmpt a inner join raceenroll.competitionusermap b on a.gcmptid=b.cmptId
from common.neucmpt a
where b.callPhone=#{phone} and a.gtcmptid=#{cmptId} and b.isDelete=0 and b.isTeam=0
inner join raceenroll.competitionusermap b on a.gcmptid=b.cmptId
where b.callPhone=#{phone} and a.gtcmptid=#{cmptId} and b.isDelete=0 and b.isTeam=0 and b.isPay>0
</select>
<select
id=
"getPartnerId"
resultType=
"java.lang.String"
>
select c.partner_id
from common.neucmpt a inner join raceenroll.competition b
on a.gcmptid = b.cmptId
inner join gk_app_info c on b.createUserId=c.user_id
where a.gtcmptid=#{cmptId} limit 1
</select>
<select
id=
"getDefaultPartnerId"
resultType=
"java.lang.String"
>
select partner_id from gk_app_info where id=1
</select>
<select
id=
"getParnterByParnterId"
resultType=
"com.dlbridge.jadp.plugins.cmpt.bean.Partner"
>
select id,app_id appId,partner_id partnerId,app_secret appSecret,status,user_id userId
from gk_app_info
where partner_id=#{partnerId}
</select>
</select>
</mapper>
</mapper>
\ No newline at end of file
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/CmptService.java
View file @
11daef44
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
service
;
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
service
;
import
com.dlbridge.jadp.plugins.cmpt.bean.CmptVo
;
import
com.dlbridge.jadp.plugins.cmpt.bean.*
;
import
com.dlbridge.jadp.plugins.cmpt.bean.EnrollInfo
;
import
com.dlbridge.jadp.plugins.cmpt.bean.NeuUser
;
import
com.dlbridge.jadp.plugins.cmpt.bean.RaceEnrollUser
;
import
com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptMapper
;
import
com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptMapper
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.UserCmpt
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.UserCmpt
;
import
com.dlbridge.jadp.plugins.cmpt.utils.Page
;
import
com.dlbridge.jadp.plugins.cmpt.utils.Page
;
...
@@ -19,6 +16,7 @@ import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
...
@@ -19,6 +16,7 @@ import com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
java.util.List
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* 赛事
* 赛事
...
@@ -128,9 +126,9 @@ public class CmptService {
...
@@ -128,9 +126,9 @@ public class CmptService {
return
cmptMapper
.
queryUserCmptList
(
userId
);
return
cmptMapper
.
queryUserCmptList
(
userId
);
}
}
public
Page
<
List
<
Cmpt
>>
queryCmpt
(
Pageable
page
,
String
keyword
,
int
type
)
{
public
Page
<
List
<
Cmpt
>>
queryCmpt
(
Pageable
page
,
Map
<
String
,
String
>
param
)
{
long
count
=
cmptMapper
.
countCount
(
keyword
,
type
);
long
count
=
cmptMapper
.
countCount
(
param
);
List
<
Cmpt
>
list
=
cmptMapper
.
queryCmpt
(
page
,
keyword
,
type
);
List
<
Cmpt
>
list
=
cmptMapper
.
queryCmpt
(
page
,
param
);
return
PageFactory
.
setContent
(
list
,
page
,
count
);
return
PageFactory
.
setContent
(
list
,
page
,
count
);
}
}
...
@@ -174,4 +172,16 @@ public class CmptService {
...
@@ -174,4 +172,16 @@ public class CmptService {
public
int
getEnrollInfoCount
(
Integer
cmptId
,
String
phone
)
{
public
int
getEnrollInfoCount
(
Integer
cmptId
,
String
phone
)
{
return
cmptMapper
.
getEnrollInfoCount
(
cmptId
,
phone
);
return
cmptMapper
.
getEnrollInfoCount
(
cmptId
,
phone
);
}
}
public
String
getPartnerId
(
Integer
cmptid
)
{
String
parnterId
=
cmptMapper
.
getPartnerId
(
cmptid
);
if
(
parnterId
==
null
){
return
cmptMapper
.
getDefaultPartnerId
(
cmptid
);
}
return
parnterId
;
}
public
Partner
getPartnerById
(
String
parnter
)
{
return
cmptMapper
.
getParnterByParnterId
(
parnter
);
}
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/RemoteService.java
View file @
11daef44
...
@@ -61,26 +61,6 @@ public class RemoteService {
...
@@ -61,26 +61,6 @@ public class RemoteService {
public
Cmpt
getCmptByCmptId
(
Integer
cmptId
)
{
public
Cmpt
getCmptByCmptId
(
Integer
cmptId
)
{
Cmpt
cmpt
=
cmptService
.
getCmptFromEnroll
(
cmptId
);
Cmpt
cmpt
=
cmptService
.
getCmptFromEnroll
(
cmptId
);
return
cmpt
;
return
cmpt
;
/* ResponseEntity<String> forEntity = restTemplate.getForEntity(timerURL + "getCmptConfig.do?cmptId="
+ cmptId, String.class);
if (forEntity.getStatusCode() == HttpStatus.OK) {
String resultString = forEntity.getBody();
JSONObject object = JSONObject.parseObject(resultString);
Cmpt cmpt = new Cmpt();
cmpt.setCmptId(cmptId);
log.info(object.toJSONString());
JSONObject content = object.getJSONObject("content");
log.info("resultString:" + resultString);
if (content != null && !content.isEmpty()) {
cmpt.setCmptName(content.getString("cmptName"));
cmpt.setStartTime(content.getString("startTime"));
return cmpt;
} else {
return null;
}
} else {
return null;
}*/
}
}
public
EnrollInfo
getUserInfoByPhone
(
String
phone
,
Integer
cmptId
)
{
public
EnrollInfo
getUserInfoByPhone
(
String
phone
,
Integer
cmptId
)
{
...
@@ -333,7 +313,7 @@ public class RemoteService {
...
@@ -333,7 +313,7 @@ public class RemoteService {
public
HashMap
<
String
,
String
>
uploadGpsCheckpointScore
(
int
cmptId
,
String
records
){
public
HashMap
<
String
,
String
>
uploadGpsCheckpointScore
(
int
cmptId
,
String
records
){
HashMap
<
String
,
String
>
resultMap
=
new
HashMap
<
String
,
String
>();
HashMap
<
String
,
String
>
resultMap
=
new
HashMap
<
String
,
String
>();
ResponseEntity
<
String
>
forEntity
=
restTemplate
.
getForEntity
(
timerURL
+
"/cmpt/recordUpload.do?cmptId="
+
cmptId
+
"&records="
+
records
,
String
.
class
);
ResponseEntity
<
String
>
forEntity
=
restTemplate
.
getForEntity
(
timerURL
+
"/cmpt/recordUpload.do?cmptId="
+
cmptId
+
"&records="
+
records
+
"&appId=02001_1.0"
,
String
.
class
);
if
(
forEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
if
(
forEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
String
resultString
=
forEntity
.
getBody
();
String
resultString
=
forEntity
.
getBody
();
log
.
info
(
"上传成绩的信息:"
+
resultString
);
log
.
info
(
"上传成绩的信息:"
+
resultString
);
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/service/WeixinInfoService.java
View file @
11daef44
...
@@ -2,7 +2,8 @@ package com.dlbridge.jadp.plugins.cmpt.service;
...
@@ -2,7 +2,8 @@ package com.dlbridge.jadp.plugins.cmpt.service;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSON
;
import
com.alibaba.fastjson.JSONObject
;
import
com.alibaba.fastjson.JSONObject
;
import
com.dlbridge.jadp.config.properties.WeiXin
;
import
com.dlbridge.jadp.plugins.cmpt.bean.Partner
;
import
com.dlbridge.jadp.plugins.cmpt.dao.mapper.CmptMapper
;
import
lombok.extern.log4j.Log4j2
;
import
lombok.extern.log4j.Log4j2
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.HttpEntity
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
import
org.apache.http.client.methods.CloseableHttpResponse
;
...
@@ -13,8 +14,6 @@ import org.apache.http.impl.client.HttpClients;
...
@@ -13,8 +14,6 @@ import org.apache.http.impl.client.HttpClients;
import
org.apache.http.ssl.SSLContextBuilder
;
import
org.apache.http.ssl.SSLContextBuilder
;
import
org.apache.http.ssl.TrustStrategy
;
import
org.apache.http.ssl.TrustStrategy
;
import
org.apache.http.util.EntityUtils
;
import
org.apache.http.util.EntityUtils
;
import
org.apache.log4j.Logger
;
import
org.apache.log4j.spi.LoggerFactory
;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
...
@@ -30,14 +29,15 @@ import java.security.cert.X509Certificate;
...
@@ -30,14 +29,15 @@ import java.security.cert.X509Certificate;
public
class
WeixinInfoService
{
public
class
WeixinInfoService
{
@Resource
@Resource
WeiXin
weiXin
;
CmptMapper
cmptMapper
;
public
JSONObject
getOpenIdAndSessionKey
(
String
code
)
{
public
JSONObject
getOpenIdAndSessionKey
(
String
code
,
String
partnerId
)
{
try
{
try
{
log
.
info
(
"appid:"
+
weiXin
.
getAppid
()
+
",secret:"
+
weiXin
.
getSecret
());
Partner
parnter
=
cmptMapper
.
getParnterByParnterId
(
partnerId
);
log
.
info
(
"appid:"
+
parnter
.
getAppId
()
+
",secret:"
+
parnter
.
getAppSecret
());
CloseableHttpClient
hp
=
createSSLClientDefault
();
CloseableHttpClient
hp
=
createSSLClientDefault
();
HttpGet
hg
=
new
HttpGet
(
"https://api.weixin.qq.com/sns/jscode2session?appid="
+
HttpGet
hg
=
new
HttpGet
(
"https://api.weixin.qq.com/sns/jscode2session?appid="
+
weiXin
.
getAppid
()
+
"&secret="
+
weiXin
.
get
Secret
()
+
"&js_code="
+
code
+
"&grant_type=authorization_code"
);
parnter
.
getAppId
()
+
"&secret="
+
parnter
.
getApp
Secret
()
+
"&js_code="
+
code
+
"&grant_type=authorization_code"
);
CloseableHttpResponse
response
=
hp
.
execute
(
hg
);
CloseableHttpResponse
response
=
hp
.
execute
(
hg
);
HttpEntity
entity
=
response
.
getEntity
();
HttpEntity
entity
=
response
.
getEntity
();
String
content
=
EntityUtils
.
toString
(
entity
,
"utf-8"
);
String
content
=
EntityUtils
.
toString
(
entity
,
"utf-8"
);
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/ExceptionController.java
0 → 100644
View file @
11daef44
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
web
;
import
com.neusoft.www.utils.web.Result
;
import
org.springframework.core.annotation.Order
;
import
org.springframework.web.bind.annotation.ControllerAdvice
;
import
org.springframework.web.bind.annotation.ExceptionHandler
;
import
org.springframework.web.bind.annotation.ResponseBody
;
@ControllerAdvice
@Order
(
0
)
public
class
ExceptionController
{
@ResponseBody
@ExceptionHandler
(
value
=
Exception
.
class
)
public
Result
errorHandler
(
Exception
ex
)
{
return
Result
.
fail
().
setMsg
(
ex
.
getMessage
());
}
}
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/MicroApiController.java
View file @
11daef44
...
@@ -38,7 +38,6 @@ import java.net.HttpURLConnection;
...
@@ -38,7 +38,6 @@ import java.net.HttpURLConnection;
import
java.net.URL
;
import
java.net.URL
;
import
java.text.DecimalFormat
;
import
java.text.DecimalFormat
;
import
java.text.SimpleDateFormat
;
import
java.text.SimpleDateFormat
;
import
java.time.LocalTime
;
import
java.util.*
;
import
java.util.*
;
...
@@ -139,7 +138,7 @@ public class MicroApiController {
...
@@ -139,7 +138,7 @@ public class MicroApiController {
if
(
info
==
null
)
{
if
(
info
==
null
)
{
int
count
=
cmptService
.
getEnrollInfoCount
(
cmptId
,
phone
);
int
count
=
cmptService
.
getEnrollInfoCount
(
cmptId
,
phone
);
if
(
count
==
0
){
if
(
count
==
0
){
return
Result
.
fail
().
setMsg
(
"
该用户未报名
!"
);
return
Result
.
fail
().
setMsg
(
"
请完成报名,再绑定
!"
);
}
else
{
}
else
{
return
Result
.
fail
().
setMsg
(
"报名成功,未查询到组委会分配的号码牌!"
);
return
Result
.
fail
().
setMsg
(
"报名成功,未查询到组委会分配的号码牌!"
);
}
}
...
@@ -158,13 +157,14 @@ public class MicroApiController {
...
@@ -158,13 +157,14 @@ public class MicroApiController {
@ApiResponse
(
code
=
-
1
,
message
=
"失败"
),
@ApiResponse
(
code
=
-
1
,
message
=
"失败"
),
@ApiResponse
(
code
=
200
,
message
=
"成功"
,
response
=
Result
.
class
)})
@ApiResponse
(
code
=
200
,
message
=
"成功"
,
response
=
Result
.
class
)})
@ApiOperation
(
value
=
"微信手机信息绑定赛事"
,
notes
=
"微信手机信息绑定赛事"
,
tags
=
"赛事页面"
)
@ApiOperation
(
value
=
"微信手机信息绑定赛事"
,
notes
=
"微信手机信息绑定赛事"
,
tags
=
"赛事页面"
)
public
Result
<
EnrollInfo
>
bind
(
Integer
userId
,
Integer
cmptId
,
String
encryptedData
,
String
iv
,
String
code
)
{
public
Result
<
EnrollInfo
>
bind
(
HttpServletRequest
request
,
Integer
userId
,
Integer
cmptId
,
String
encryptedData
,
String
iv
,
String
code
)
{
try
{
try
{
Object
session_key
=
valueOperations
.
get
(
KEY
+
userId
);
Object
session_key
=
valueOperations
.
get
(
KEY
+
userId
);
if
(
session_key
==
null
)
{
if
(
session_key
==
null
)
{
log
.
info
(
"session_key:"
+
session_key
);
log
.
info
(
"session_key:"
+
session_key
);
if
(
StringUtils
.
isNotBlank
(
code
))
{
if
(
StringUtils
.
isNotBlank
(
code
))
{
JSONObject
json
=
weixinInfoService
.
getOpenIdAndSessionKey
(
code
);
String
partnerId
=
request
.
getParameter
(
"partnerId"
);
JSONObject
json
=
weixinInfoService
.
getOpenIdAndSessionKey
(
code
,
partnerId
);
if
(
null
!=
json
)
{
if
(
null
!=
json
)
{
if
(
json
.
containsKey
(
"errcode"
))
{
//是否有错误
if
(
json
.
containsKey
(
"errcode"
))
{
//是否有错误
return
Result
.
fail
().
setMsg
(
json
.
getString
(
"errcode"
)
+
" == "
+
json
.
getString
(
"errmsg"
));
return
Result
.
fail
().
setMsg
(
json
.
getString
(
"errcode"
)
+
" == "
+
json
.
getString
(
"errmsg"
));
...
@@ -196,7 +196,7 @@ public class MicroApiController {
...
@@ -196,7 +196,7 @@ public class MicroApiController {
if
(
info
==
null
)
{
if
(
info
==
null
)
{
int
count
=
cmptService
.
getEnrollInfoCount
(
cmptId
,
purePhoneNumber
);
int
count
=
cmptService
.
getEnrollInfoCount
(
cmptId
,
purePhoneNumber
);
if
(
count
==
0
){
if
(
count
==
0
){
return
Result
.
fail
().
setMsg
(
"
该用户未报名
!"
);
return
Result
.
fail
().
setMsg
(
"
请完成报名,再绑定
!"
);
}
else
{
}
else
{
return
Result
.
fail
().
setMsg
(
"报名成功,未查询到组委会分配的号码牌!"
);
return
Result
.
fail
().
setMsg
(
"报名成功,未查询到组委会分配的号码牌!"
);
}
}
...
@@ -275,7 +275,14 @@ public class MicroApiController {
...
@@ -275,7 +275,14 @@ public class MicroApiController {
@ApiOperation
(
value
=
"赛事列表"
,
notes
=
"赛事列表,与查询接口一致"
,
tags
=
"首页接口"
)
@ApiOperation
(
value
=
"赛事列表"
,
notes
=
"赛事列表,与查询接口一致"
,
tags
=
"首页接口"
)
public
Page
<
List
<
Cmpt
>>
cmpt
(
@ApiIgnore
Pageable
page
,
String
keyword
,
HttpServletRequest
request
)
{
public
Page
<
List
<
Cmpt
>>
cmpt
(
@ApiIgnore
Pageable
page
,
String
keyword
,
HttpServletRequest
request
)
{
int
type
=
NumberUtils
.
toInt
(
request
.
getParameter
(
"type"
),
0
);
int
type
=
NumberUtils
.
toInt
(
request
.
getParameter
(
"type"
),
0
);
Page
<
List
<
Cmpt
>>
result
=
cmptService
.
queryCmpt
(
page
,
keyword
,
type
);
String
partnerId
=
request
.
getParameter
(
"partnerId"
);
Partner
partner
=
cmptService
.
getPartnerById
(
partnerId
);
log
.
info
(
"partner:"
+
partner
);
Map
<
String
,
String
>
param
=
new
HashMap
<>();
param
.
put
(
"userId"
,
partner
.
getUserId
()+
""
);
param
.
put
(
"type"
,
type
+
""
);
param
.
put
(
"keyword"
,
keyword
);
Page
<
List
<
Cmpt
>>
result
=
cmptService
.
queryCmpt
(
page
,
param
);
result
.
setCode
(
200
);
result
.
setCode
(
200
);
return
result
;
return
result
;
}
}
...
@@ -417,7 +424,8 @@ public class MicroApiController {
...
@@ -417,7 +424,8 @@ public class MicroApiController {
//////////////// 1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid ////////////////
//////////////// 1、向微信服务器 使用登录凭证 code 获取 session_key 和 openid ////////////////
log
.
info
(
"code:"
+
code
+
",encryptedData:"
+
encryptedData
+
",code:"
+
code
);
log
.
info
(
"code:"
+
code
+
",encryptedData:"
+
encryptedData
+
",code:"
+
code
);
log
.
info
(
"请求方法:"
+
request
.
getMethod
());
log
.
info
(
"请求方法:"
+
request
.
getMethod
());
JSONObject
json
=
weixinInfoService
.
getOpenIdAndSessionKey
(
code
);
String
partnerId
=
request
.
getParameter
(
"partnerId"
);
JSONObject
json
=
weixinInfoService
.
getOpenIdAndSessionKey
(
code
,
partnerId
);
String
openid
=
null
;
String
openid
=
null
;
String
session_key
;
String
session_key
;
String
unionId
=
null
;
String
unionId
=
null
;
...
@@ -442,8 +450,16 @@ public class MicroApiController {
...
@@ -442,8 +450,16 @@ public class MicroApiController {
JSONObject
jsoninfo
=
JSONObject
.
parseObject
(
result
);
JSONObject
jsoninfo
=
JSONObject
.
parseObject
(
result
);
String
name
=
jsoninfo
.
getString
(
"nickName"
);
String
name
=
jsoninfo
.
getString
(
"nickName"
);
String
imgUrl
=
jsoninfo
.
getString
(
"avatarUrl"
);
String
imgUrl
=
jsoninfo
.
getString
(
"avatarUrl"
);
String
url
=
geexekURL
+
"registerInfo/saveOrUpdateByUnionId.do?unionId="
+
jsoninfo
.
getString
(
"unionId"
)
+
String
url
=
null
;
"&userName="
+
name
+
"&nickName="
+
name
+
"&headImgUrl="
+
imgUrl
+
"&userFrom=3"
;
if
(
jsoninfo
.
getString
(
"unionId"
)
!=
null
&&
!
"null"
.
equals
(
jsoninfo
.
getString
(
"unionId"
))){
url
=
geexekURL
+
"registerInfo/saveOrUpdateByUnionId.do?unionId="
+
jsoninfo
.
getString
(
"unionId"
)
+
"&userName="
+
name
+
"&nickName="
+
name
+
"&headImgUrl="
+
imgUrl
+
"&userFrom=3"
;
}
else
{
url
=
geexekURL
+
"registerInfo/saveOrUpdateByOpenId.do?openId="
+
openid
+
"&userName="
+
name
+
"&nickName="
+
name
+
"&headImgUrl="
+
imgUrl
+
"&userFrom=3"
;
}
log
.
info
(
"请求的URL:"
+
url
);
log
.
info
(
"请求的URL:"
+
url
);
ResponseEntity
<
String
>
forEntity
=
restTemplate
.
getForEntity
(
url
,
String
.
class
);
ResponseEntity
<
String
>
forEntity
=
restTemplate
.
getForEntity
(
url
,
String
.
class
);
if
(
forEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
if
(
forEntity
.
getStatusCode
()
==
HttpStatus
.
OK
)
{
...
...
src/main/java/com/dlbridge/jadp/plugins/cmpt/web/ResourcesController.java
View file @
11daef44
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
web
;
package
com
.
dlbridge
.
jadp
.
plugins
.
cmpt
.
web
;
import
com.dlbridge.jadp.common.interceptor.PageView
;
import
com.dlbridge.jadp.common.persistence.IStorageService
;
import
com.dlbridge.jadp.common.persistence.Result
;
import
com.dlbridge.jadp.common.properties.Global
;
import
com.dlbridge.jadp.common.service.FileSystemStorageService
;
import
com.dlbridge.jadp.job.WeiXinAccessToken
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt
;
import
com.dlbridge.jadp.plugins.cmpt.dao.model.Cmpt
;
import
com.dlbridge.jadp.plugins.cmpt.service.CmptService
;
import
com.dlbridge.jadp.plugins.cmpt.service.CmptService
;
import
com.dlbridge.jadp.plugins.cmpt.service.CmptSettingService
;
import
com.dlbridge.jadp.plugins.cmpt.service.RemoteService
;
import
org.json.JSONObject
;
import
org.json.JSONObject
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.data.redis.core.ValueOperations
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.stereotype.Controller
;
import
org.springframework.util.DigestUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.bind.annotation.*
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.client.RestTemplate
;
import
org.springframework.web.multipart.MultipartFile
;
import
org.springframework.web.multipart.support.StandardMultipartHttpServletRequest
;
import
org.springframework.web.servlet.ModelAndView
;
import
springfox.documentation.annotations.ApiIgnore
;
import
springfox.documentation.annotations.ApiIgnore
;
import
sun.misc.BASE64Decoder
;
import
sun.misc.BASE64Encoder
;
import
javax.annotation.Resource
;
import
javax.annotation.Resource
;
import
javax.imageio.ImageIO
;
import
javax.imageio.ImageIO
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.ServletOutputStream
;
import
javax.servlet.http.HttpServletRequest
;
import
javax.servlet.http.HttpServletResponse
;
import
javax.servlet.http.HttpServletResponse
;
import
java.awt.*
;
import
java.awt.*
;
import
java.awt.geom.RoundRectangle2D
;
import
java.awt.geom.RoundRectangle2D
;
import
java.awt.image.BufferedImage
;
import
java.awt.image.BufferedImage
;
import
java.io.*
;
import
java.io.*
;
import
java.net.URL
;
import
java.net.URL
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
@Controller
@Controller
@RequestMapping
(
value
=
"/img"
)
@RequestMapping
(
value
=
"/img"
)
@ApiIgnore
@ApiIgnore
public
class
ResourcesController
{
public
class
ResourcesController
{
@Resource
WeiXinAccessToken
accessToken
;
@Resource
@Resource
RestTemplate
restTemplate
;
RestTemplate
restTemplate
;
...
@@ -60,8 +39,9 @@ public class ResourcesController {
...
@@ -60,8 +39,9 @@ public class ResourcesController {
public
void
img
(
@PathVariable
(
"cmptid"
)
Integer
cmptid
,
HttpServletResponse
response
)
throws
IOException
{
public
void
img
(
@PathVariable
(
"cmptid"
)
Integer
cmptid
,
HttpServletResponse
response
)
throws
IOException
{
JSONObject
obj
=
new
JSONObject
();
JSONObject
obj
=
new
JSONObject
();
obj
.
put
(
"scene"
,
"raceId="
+
cmptid
);
obj
.
put
(
"scene"
,
"raceId="
+
cmptid
);
String
partnerId
=
cmptService
.
getPartnerId
(
cmptid
);
ResponseEntity
<
org
.
springframework
.
core
.
io
.
Resource
>
resourceResponseEntity
=
restTemplate
.
postForEntity
(
"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="
ResponseEntity
<
org
.
springframework
.
core
.
io
.
Resource
>
resourceResponseEntity
=
restTemplate
.
postForEntity
(
"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="
+
(
String
)
valueOperations
.
get
(
"micro_gk:access_token
"
)
,
obj
.
toString
(),
org
.
springframework
.
core
.
io
.
Resource
.
class
);
+
(
String
)
valueOperations
.
get
(
"micro_gk:access_token
_"
+
partnerId
)
,
obj
.
toString
(),
org
.
springframework
.
core
.
io
.
Resource
.
class
);
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
ServletOutputStream
outputStream
=
response
.
getOutputStream
();
org
.
springframework
.
core
.
io
.
Resource
body
=
resourceResponseEntity
.
getBody
();
org
.
springframework
.
core
.
io
.
Resource
body
=
resourceResponseEntity
.
getBody
();
...
@@ -81,9 +61,10 @@ public class ResourcesController {
...
@@ -81,9 +61,10 @@ public class ResourcesController {
response
.
addHeader
(
"Content-Disposition"
,
"attachment; filename=qrcode.jpg"
);
response
.
addHeader
(
"Content-Disposition"
,
"attachment; filename=qrcode.jpg"
);
JSONObject
obj
=
new
JSONObject
();
JSONObject
obj
=
new
JSONObject
();
obj
.
put
(
"scene"
,
"raceId="
+
cmptid
);
obj
.
put
(
"scene"
,
"raceId="
+
cmptid
);
;
String
partnerId
=
cmptService
.
getPartnerId
(
cmptid
);
ResponseEntity
<
org
.
springframework
.
core
.
io
.
Resource
>
resourceResponseEntity
=
restTemplate
.
postForEntity
(
"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="
ResponseEntity
<
org
.
springframework
.
core
.
io
.
Resource
>
resourceResponseEntity
=
restTemplate
.
postForEntity
(
+
(
String
)
valueOperations
.
get
(
"micro_gk:access_token"
),
obj
.
toString
(),
org
.
springframework
.
core
.
io
.
Resource
.
class
);
"https://api.weixin.qq.com/wxa/getwxacodeunlimit?access_token="
+
(
String
)
valueOperations
.
get
(
"micro_gk:access_token_"
+
partnerId
)
,
obj
.
toString
(),
org
.
springframework
.
core
.
io
.
Resource
.
class
);
Cmpt
cmpt
=
cmptService
.
queryCmptBycmptId
(
cmptid
);
Cmpt
cmpt
=
cmptService
.
queryCmptBycmptId
(
cmptid
);
BufferedImage
bg
=
ImageIO
.
read
(
resourceResponseEntity
.
getBody
().
getInputStream
());
BufferedImage
bg
=
ImageIO
.
read
(
resourceResponseEntity
.
getBody
().
getInputStream
());
...
...
src/main/webapp/WEB-INF/views/cmpt/cmptNameList.jsp
View file @
11daef44
...
@@ -204,7 +204,7 @@
...
@@ -204,7 +204,7 @@
$scope
.
mesNotify
=
function
()
{
$scope
.
mesNotify
=
function
()
{
$scope
.
findMore
(
0
)
$scope
.
findMore
(
0
)
$http
.
get
(
"https://
testevent.geexek.com.cn
/registerBalance/getBalance?userId=1"
).
success
(
$http
.
get
(
"https://
event.geexek.com
/registerBalance/getBalance?userId=1"
).
success
(
function
(
response
)
{
function
(
response
)
{
$scope
.
amount
=
response
.
result
.
amount
$scope
.
amount
=
response
.
result
.
amount
}
}
...
@@ -263,8 +263,8 @@
...
@@ -263,8 +263,8 @@
console
.
log
(
smsStr
)
console
.
log
(
smsStr
)
$
.
ajax
({
$
.
ajax
({
type
:
"POST"
,
type
:
"POST"
,
url
:
"https://
testevent.geexek.com.cn
/sms/sendMicroGroup.do"
,
url
:
"https://
event.geexek.com
/sms/sendMicroGroup.do"
,
data
:
{
userId
:
1
,
smsStr
:
JSON
.
stringify
(
smsStr
),
message
:
getMessage
(
0
)},
data
:
{
userId
:
getUId
()
,
smsStr
:
JSON
.
stringify
(
smsStr
),
message
:
getMessage
(
0
)},
async
:
false
,
async
:
false
,
dataType
:
"json"
,
dataType
:
"json"
,
success
:
function
(
data
)
{
success
:
function
(
data
)
{
...
...
src/main/webapp/static/js/contact.js
View file @
11daef44
...
@@ -90,55 +90,59 @@ $(document).ready(function () {
...
@@ -90,55 +90,59 @@ $(document).ready(function () {
smsRevStr
.
push
(
con
);
smsRevStr
.
push
(
con
);
$
.
ajax
({
$
.
ajax
({
type
:
"POST"
,
type
:
"POST"
,
url
:
"https://
testevent.geexek.com.cn
/sms/sendMicroGroup.do"
,
url
:
"https://
event.geexek.com
/sms/sendMicroGroup.do"
,
data
:
{
data
:
{
userId
:
1
,
smsStr
:
JSON
.
stringify
(
smsRevStr
),
message
:
userId
:
getUId
()
,
smsStr
:
JSON
.
stringify
(
smsRevStr
),
message
:
getMessage
(
dataName
,
dataPhone
,
dataLat
+
', '
+
dataLng
)
getMessage
(
dataName
,
dataPhone
,
dataLat
+
', '
+
dataLng
)
},
},
async
:
false
,
async
:
false
,
dataType
:
"json"
,
dataType
:
"json"
,
success
:
function
(
data
)
{
success
:
function
(
data
)
{
// layer.msg('救援发送成功:'+JSON.stringify(data),{icon:4,time:1000})
if
(
data
.
code
==
1
){
param
.
acceptTime
=
Date
.
now
();
param
.
acceptTime
=
Date
.
now
();
$
.
ajax
({
$
.
ajax
({
type
:
"POST"
,
type
:
"POST"
,
//正式环境
//正式环境
// url : "http://timerbackend.geexek.com/updateRescuePhone.do",
// url : "http://timerbackend.geexek.com/updateRescuePhone.do",
//测试环境
//测试环境
url
:
"http://testtimerbackend.geexek.cn/updateRescuePhone.do"
,
url
:
"http://testtimerbackend.geexek.cn/updateRescuePhone.do"
,
data
:
{
cmptId
:
getCmptId
(),
markNo
:
markNo
,
rescuePhone
:
$
(
'#contact-input'
).
val
()},
data
:
{
cmptId
:
getCmptId
(),
markNo
:
markNo
,
rescuePhone
:
$
(
'#contact-input'
).
val
()},
async
:
false
,
async
:
false
,
dataType
:
"json"
,
dataType
:
"json"
,
success
:
function
(
data
)
{
success
:
function
(
data
)
{
if
(
data
.
status
==
0
)
{
if
(
data
.
status
==
0
)
{
layer
.
msg
(
"救援电话更新成功!"
,
{
icon
:
1
,
time
:
1500
})
layer
.
msg
(
"救援电话更新成功!"
,
{
icon
:
1
,
time
:
1500
})
}
}
}
}
});
});
$
.
ajax
({
$
.
ajax
({
url
:
"/gk/contact/updateStatus"
,
url
:
"/gk/contact/updateStatus"
,
type
:
'post'
,
type
:
'post'
,
data
:
param
,
data
:
param
,
success
:
function
(
data
)
{
success
:
function
(
data
)
{
if
(
data
.
status
)
{
if
(
data
.
status
)
{
layer
.
msg
(
"处理成功!"
,
{
icon
:
1
,
time
:
1500
})
layer
.
msg
(
"处理成功!"
,
{
icon
:
1
,
time
:
1500
})
}
else
{
}
else
{
layer
.
msg
(
"处理失败!"
,
{
icon
:
5
,
time
:
1500
})
layer
.
msg
(
"处理失败!"
,
{
icon
:
5
,
time
:
1500
})
}
if
(
param
.
status
==
1
)
{
obj
.
text
(
'完成救援'
);
obj
.
css
({
'background'
:
'#EC8401'
});
obj
.
attr
(
'data-status'
,
param
.
status
)
}
else
if
(
param
.
status
==
2
)
{
obj
.
text
(
'已完成'
);
obj
.
css
({
'background'
:
'gray'
});
obj
.
attr
(
'data-status'
,
param
.
status
)
obj
.
parent
().
parent
().
parent
().
remove
();
}
}
}
if
(
param
.
status
==
1
)
{
});
obj
.
text
(
'完成救援'
);
}
else
{
obj
.
css
({
'background'
:
'#EC8401'
});
alert
(
data
.
msg
);
obj
.
attr
(
'data-status'
,
param
.
status
)
}
}
else
if
(
param
.
status
==
2
)
{
obj
.
text
(
'已完成'
);
obj
.
css
({
'background'
:
'gray'
});
obj
.
attr
(
'data-status'
,
param
.
status
)
obj
.
parent
().
parent
().
parent
().
remove
();
}
}
});
},
},
error
:
function
(
error
)
{
error
:
function
(
error
)
{
// layer.msg('救援发送失败:'+JSON.stringify(error),{icon:4,time:1000})
// layer.msg('救援发送失败:'+JSON.stringify(error),{icon:4,time:1000})
...
...
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