记得上下班打卡 | git大法好,push需谨慎
Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
L
liquidnet-bus-v1
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
董敬伟
liquidnet-bus-v1
Commits
d3c7b41d
Commit
d3c7b41d
authored
Aug 10, 2021
by
Administrator
🎨
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'test' into 'master'
Test See merge request
!8
parents
6db63fa4
db23a2c8
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
156 additions
and
49 deletions
+156
-49
DateUtil.java
...c/main/java/com/liquidnet/commons/lang/util/DateUtil.java
+10
-0
liquidnet-service-sweet-dev.yml
...s-config/liquidnet-config/liquidnet-service-sweet-dev.yml
+2
-2
SweetManualAppletDto.java
...com/liquidnet/service/sweet/dto/SweetManualAppletDto.java
+6
-0
SweetManualAppletMDSKDto.java
...liquidnet/service/sweet/dto/SweetManualAppletMDSKDto.java
+7
-0
SweetWechatTemplateServiceImpl.java
...ce/sweet/service/impl/SweetWechatTemplateServiceImpl.java
+65
-43
RedisDataUtils.java
...ava/com/liquidnet/service/sweet/utils/RedisDataUtils.java
+3
-0
RedisMDSKDataUtils.java
...com/liquidnet/service/sweet/utils/RedisMDSKDataUtils.java
+3
-0
SweetManualMapper.xml
.../com/liquidnet/service/sweet/mapper/SweetManualMapper.xml
+30
-2
SweetManualMdskMapper.xml
.../liquidnet/service/sweet/mapper/SweetManualMdskMapper.xml
+30
-2
No files found.
liquidnet-bus-common/liquidnet-common-base/src/main/java/com/liquidnet/commons/lang/util/DateUtil.java
View file @
d3c7b41d
...
@@ -125,6 +125,16 @@ public abstract class DateUtil {
...
@@ -125,6 +125,16 @@ public abstract class DateUtil {
return
new
Date
(
c
.
getTimeInMillis
());
return
new
Date
(
c
.
getTimeInMillis
());
}
}
/**
* 计算日期,增加分支
*/
public
static
Date
addMin
(
Date
date
,
int
months
)
{
Calendar
c
=
Calendar
.
getInstance
();
c
.
setTime
(
date
);
c
.
set
(
Calendar
.
MINUTE
,
c
.
get
(
Calendar
.
MINUTE
)
+
months
);
return
new
Date
(
c
.
getTimeInMillis
());
}
/**
/**
* 计算日期,增加天数
* 计算日期,增加天数
*
*
...
...
liquidnet-bus-config/liquidnet-config/liquidnet-service-sweet-dev.yml
View file @
d3c7b41d
...
@@ -13,9 +13,9 @@ liquidnet:
...
@@ -13,9 +13,9 @@ liquidnet:
file-max-size
:
200MB
file-max-size
:
200MB
level
:
debug
level
:
debug
mysql
:
mysql
:
database-name
:
dev
_ln_scene
database-name
:
test
_ln_scene
mongodb
:
mongodb
:
sslEnabled
:
false
sslEnabled
:
false
database
:
dev
_ln_scene
database
:
test
_ln_scene
#以下为spring各环境个性配置
#以下为spring各环境个性配置
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/dto/SweetManualAppletDto.java
View file @
d3c7b41d
...
@@ -26,6 +26,12 @@ public class SweetManualAppletDto implements Serializable ,Cloneable{
...
@@ -26,6 +26,12 @@ public class SweetManualAppletDto implements Serializable ,Cloneable{
private
String
timeStart
;
private
String
timeStart
;
@ApiModelProperty
(
"演出结束时间"
)
@ApiModelProperty
(
"演出结束时间"
)
private
String
timeEnd
;
private
String
timeEnd
;
@ApiModelProperty
(
"演出开售时间"
)
private
String
timeSell
;
@ApiModelProperty
(
"是否会员"
)
private
Integer
isMember
;
@ApiModelProperty
(
"提前时间"
)
private
Integer
payCountdownMinute
;
@ApiModelProperty
(
"经度"
)
@ApiModelProperty
(
"经度"
)
private
String
longitude
;
private
String
longitude
;
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/dto/SweetManualAppletMDSKDto.java
View file @
d3c7b41d
...
@@ -25,6 +25,13 @@ public class SweetManualAppletMDSKDto implements Serializable ,Cloneable{
...
@@ -25,6 +25,13 @@ public class SweetManualAppletMDSKDto implements Serializable ,Cloneable{
private
String
timeStart
;
private
String
timeStart
;
@ApiModelProperty
(
"演出结束时间"
)
@ApiModelProperty
(
"演出结束时间"
)
private
String
timeEnd
;
private
String
timeEnd
;
@ApiModelProperty
(
"演出开售时间"
)
private
String
timeSell
;
@ApiModelProperty
(
"是否会员"
)
private
Integer
isMember
;
@ApiModelProperty
(
"提前时间"
)
private
Integer
payCountdownMinute
;
@ApiModelProperty
(
"经度"
)
@ApiModelProperty
(
"经度"
)
private
String
longitude
;
private
String
longitude
;
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/service/impl/SweetWechatTemplateServiceImpl.java
View file @
d3c7b41d
...
@@ -10,6 +10,7 @@ import com.liquidnet.service.sweet.constant.SweetConstant;
...
@@ -10,6 +10,7 @@ import com.liquidnet.service.sweet.constant.SweetConstant;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.entity.SweetWechatUser
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.utils.RedisDataUtils
;
import
com.liquidnet.service.sweet.vo.SweetRemindVo
;
import
com.liquidnet.service.sweet.vo.SweetRemindVo
;
import
lombok.extern.slf4j.Slf4j
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.common.error.WxErrorException
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.api.WxMpService
;
import
me.chanjar.weixin.mp.api.impl.WxMpServiceImpl
;
import
me.chanjar.weixin.mp.api.impl.WxMpServiceImpl
;
...
@@ -24,6 +25,7 @@ import org.springframework.stereotype.Service;
...
@@ -24,6 +25,7 @@ import org.springframework.stereotype.Service;
import
org.springframework.util.CollectionUtils
;
import
org.springframework.util.CollectionUtils
;
import
java.time.LocalDateTime
;
import
java.time.LocalDateTime
;
import
java.time.format.DateTimeFormatter
;
import
java.util.Set
;
import
java.util.Set
;
/**
/**
...
@@ -34,6 +36,7 @@ import java.util.Set;
...
@@ -34,6 +36,7 @@ import java.util.Set;
* @author liquidnet
* @author liquidnet
* @since 2021-07-27
* @since 2021-07-27
*/
*/
@Slf4j
@Service
@Service
public
class
SweetWechatTemplateServiceImpl
{
public
class
SweetWechatTemplateServiceImpl
{
...
@@ -56,53 +59,72 @@ public class SweetWechatTemplateServiceImpl {
...
@@ -56,53 +59,72 @@ public class SweetWechatTemplateServiceImpl {
Set
<
String
>
keys
=
redisTemplate
.
keys
(
redisKey
);
Set
<
String
>
keys
=
redisTemplate
.
keys
(
redisKey
);
if
(!
CollectionUtils
.
isEmpty
(
keys
))
{
if
(!
CollectionUtils
.
isEmpty
(
keys
))
{
for
(
String
rkey
:
keys
)
{
for
(
String
rkey
:
keys
)
{
SweetRemindVo
remindInfo
=
(
SweetRemindVo
)
redisUtil
.
get
(
rkey
);
SweetWechatUser
sweetWechatUser
=
redisDataUtils
.
getSweetWechatUser
(
remindInfo
.
getUnionId
());
KylinPerformanceVo
performanceVo
=
(
KylinPerformanceVo
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES
.
concat
(
remindInfo
.
getPerformancesId
()));
KylinTicketTimesVo
kylinTicketTimesVo
=
performanceVo
.
getTicketTimeList
().
get
(
0
);
if
(
null
==
sweetWechatUser
||
null
==
performanceVo
)
{
continue
;
}
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
LocalDateTime
newNowTime
=
nowTime
.
minusMinutes
(
5
);
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
newNowTime
);
String
sellTime
=
performanceVo
.
getSellTime
();
String
stopSellTime
=
performanceVo
.
getStopSellTime
();
if
(
1
==
DateUtil
.
compareStrDay
(
nowTimeStr
,
stopSellTime
))
{
// 超过售卖期 不推 删redis
redisDataUtils
.
delSweetRemind
(
remindInfo
.
getUnionId
());
continue
;
}
if
(-
1
==
DateUtil
.
compareStrDay
(
nowTimeStr
,
sellTime
))
{
// 还没到售卖期
continue
;
}
// 发送模板消息接口
WxMpTemplateMessage
templateMessage
=
WxMpTemplateMessage
.
builder
()
// 接收者openid
.
toUser
(
sweetWechatUser
.
getOpenId
())
// 模板id
.
templateId
(
templateId
)
// 模板跳转链接
.
url
(
h5Url
.
concat
(
"/#/ticket/detail?id="
).
concat
(
remindInfo
.
getPerformancesId
()))
.
build
();
// 添加模板数据
templateMessage
.
addData
(
new
WxMpTemplateData
(
"first"
,
"您关注的演出即将开始售票"
))
.
addData
(
new
WxMpTemplateData
(
"keyword1"
,
performanceVo
.
getTitle
()))
.
addData
(
new
WxMpTemplateData
(
"keyword2"
,
kylinTicketTimesVo
.
getTitle
()))
.
addData
(
new
WxMpTemplateData
(
"keyword3"
,
performanceVo
.
getFieldName
()))
.
addData
(
new
WxMpTemplateData
(
"remark"
,
"点击这里跳转购票"
));
String
msgId
=
null
;
try
{
try
{
// 发送模板消息
SweetRemindVo
remindInfo
=
(
SweetRemindVo
)
redisUtil
.
get
(
rkey
);
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
);
SweetWechatUser
sweetWechatUser
=
redisDataUtils
.
getSweetWechatUser
(
remindInfo
.
getUnionId
());
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
KylinPerformanceVo
performanceVo
=
(
KylinPerformanceVo
)
redisUtil
.
get
(
KylinRedisConst
.
PERFORMANCES
.
concat
(
remindInfo
.
getPerformancesId
()));
msgId
=
wxMpService
.
getTemplateMsgService
().
sendTemplateMsg
(
templateMessage
);
if
(
null
==
sweetWechatUser
)
{
if
(
null
!=
msgId
)
{
log
.
info
(
"无用户数据:[UnionId=[{}]"
,
remindInfo
.
getUnionId
());
continue
;
}
if
(
null
==
performanceVo
)
{
log
.
info
(
"无演出数据:[getPerformancesId=[{}]"
,
remindInfo
.
getPerformancesId
());
continue
;
}
KylinTicketTimesVo
kylinTicketTimesVo
=
performanceVo
.
getTicketTimeList
().
get
(
0
);
LocalDateTime
nowTime
=
LocalDateTime
.
now
();
// LocalDateTime newNowTime = nowTime.minusMinutes(5);
String
nowTimeStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
nowTime
);
String
sellTime
=
performanceVo
.
getSellTime
();
LocalDateTime
sellTimeLocal
=
LocalDateTime
.
parse
(
sellTime
,
DateTimeFormatter
.
ofPattern
(
"yyyy-MM-dd HH:mm:ss"
));
LocalDateTime
sellTimeLocalNew
=
sellTimeLocal
.
minusMinutes
(
5
);
String
sellTimeLocalNewStr
=
DateUtil
.
Formatter
.
yyyyMMddHHmmss
.
format
(
sellTimeLocalNew
);
String
stopSellTime
=
performanceVo
.
getStopSellTime
();
if
(
1
==
DateUtil
.
compareStrDay
(
nowTimeStr
,
stopSellTime
))
{
// 超过售卖期 不推 删redis
log
.
info
(
"超过售卖期:[nowTimeStr=[{}], [stopSellTime=[{}]"
,
nowTimeStr
,
stopSellTime
);
redisDataUtils
.
delSweetRemind
(
remindInfo
.
getUnionId
());
redisDataUtils
.
delSweetRemind
(
remindInfo
.
getUnionId
());
continue
;
}
if
(-
1
==
DateUtil
.
compareStrDay
(
nowTimeStr
,
sellTimeLocalNewStr
))
{
// 还没到售卖期
log
.
info
(
"还没到售卖期:[nowTimeStr=[{}], [sellTimeLocalNewStr=[{}]"
,
nowTimeStr
,
sellTimeLocalNewStr
);
continue
;
}
// 发送模板消息接口
WxMpTemplateMessage
templateMessage
=
WxMpTemplateMessage
.
builder
()
// 接收者openid
.
toUser
(
sweetWechatUser
.
getOpenId
())
// 模板id
.
templateId
(
templateId
)
// 模板跳转链接
.
url
(
h5Url
.
concat
(
"/#/ticket/detail?id="
).
concat
(
remindInfo
.
getPerformancesId
()))
.
build
();
// 添加模板数据
templateMessage
.
addData
(
new
WxMpTemplateData
(
"first"
,
"您关注的演出即将开始售票"
))
.
addData
(
new
WxMpTemplateData
(
"keyword1"
,
performanceVo
.
getTitle
()))
.
addData
(
new
WxMpTemplateData
(
"keyword2"
,
kylinTicketTimesVo
.
getTitle
()))
.
addData
(
new
WxMpTemplateData
(
"keyword3"
,
performanceVo
.
getFieldName
()))
.
addData
(
new
WxMpTemplateData
(
"remark"
,
"点击这里跳转购票"
));
String
msgId
=
null
;
try
{
// 发送模板消息
WxMpConfigStorage
wxMpConfig
=
wxMpConfig
(
appid
,
secret
);
WxMpService
wxMpService
=
wxMpService
(
wxMpConfig
);
msgId
=
wxMpService
.
getTemplateMsgService
().
sendTemplateMsg
(
templateMessage
);
if
(
null
!=
msgId
)
{
redisDataUtils
.
delSweetRemind
(
remindInfo
.
getUnionId
());
}
}
catch
(
WxErrorException
e
)
{
log
.
error
(
"小程序演出提醒消息发送异常"
,
e
);
}
}
}
catch
(
WxErrorException
e
)
{
log
.
info
(
"发送成功:[msgId=[{}]"
,
msgId
);
e
.
printStackTrace
();
}
catch
(
Exception
e
)
{
log
.
error
(
"小程序演出提醒消息处理异常"
,
e
);
}
}
System
.
out
.
println
(
msgId
);
}
}
}
}
return
ResponseDto
.
success
();
return
ResponseDto
.
success
();
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisDataUtils.java
View file @
d3c7b41d
...
@@ -50,6 +50,9 @@ public class RedisDataUtils {
...
@@ -50,6 +50,9 @@ public class RedisDataUtils {
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_MANUAL_PUSH_LIST
;
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_MANUAL_PUSH_LIST
;
List
<
SweetManualAppletDto
>
data
=
sweetManualMapper
.
getManualAppletDto
();
List
<
SweetManualAppletDto
>
data
=
sweetManualMapper
.
getManualAppletDto
();
for
(
SweetManualAppletDto
item
:
data
)
{
for
(
SweetManualAppletDto
item
:
data
)
{
if
(!
item
.
getIsMember
().
equals
(
1
)){
item
.
setTimeSell
(
DateUtil
.
format
(
DateUtil
.
addMin
(
DateUtil
.
parse
(
item
.
getTimeSell
(),
"yyyy-MM-dd HH:mm:ss"
),
item
.
getPayCountdownMinute
()),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
}
item
.
setFieldName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"name"
));
item
.
setFieldName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"name"
));
item
.
setCityName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"city_name"
));
item
.
setCityName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"city_name"
));
item
.
setLatitude
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"latitude"
));
item
.
setLatitude
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"latitude"
));
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/java/com/liquidnet/service/sweet/utils/RedisMDSKDataUtils.java
View file @
d3c7b41d
...
@@ -45,6 +45,9 @@ public class RedisMDSKDataUtils {
...
@@ -45,6 +45,9 @@ public class RedisMDSKDataUtils {
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_MDSK_MANUAL_PUSH_LIST
;
String
redisKey
=
SweetConstant
.
REDIS_KEY_SWEET_MDSK_MANUAL_PUSH_LIST
;
List
<
SweetManualAppletMDSKDto
>
data
=
sweetManualMdskMapper
.
getManualAppletDto
();
List
<
SweetManualAppletMDSKDto
>
data
=
sweetManualMdskMapper
.
getManualAppletDto
();
for
(
SweetManualAppletMDSKDto
item
:
data
)
{
for
(
SweetManualAppletMDSKDto
item
:
data
)
{
if
(!
item
.
getIsMember
().
equals
(
1
)){
item
.
setTimeSell
(
DateUtil
.
format
(
DateUtil
.
addMin
(
DateUtil
.
parse
(
item
.
getTimeSell
(),
"yyyy-MM-dd HH:mm:ss"
),-
item
.
getPayCountdownMinute
()),
DateUtil
.
Formatter
.
yyyyMMddHHmmss
));
}
item
.
setFieldName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"name"
));
item
.
setFieldName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"name"
));
item
.
setCityName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"city_name"
));
item
.
setCityName
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"city_name"
));
item
.
setLatitude
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"latitude"
));
item
.
setLatitude
((
String
)
redisUtil
.
hget
(
"kylin:fields:id"
+
":"
+
item
.
getFieldId
(),
"latitude"
));
...
...
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/com/liquidnet/service/sweet/mapper/SweetManualMapper.xml
View file @
d3c7b41d
...
@@ -32,6 +32,9 @@
...
@@ -32,6 +32,9 @@
<result
column=
"field_id"
property=
"fieldId"
/>
<result
column=
"field_id"
property=
"fieldId"
/>
<result
column=
"time_start"
property=
"timeStart"
/>
<result
column=
"time_start"
property=
"timeStart"
/>
<result
column=
"time_end"
property=
"timeEnd"
/>
<result
column=
"time_end"
property=
"timeEnd"
/>
<result
column=
"time_sell"
property=
"timeSell"
/>
<result
column=
"pay_countdown_minute"
property=
"payCountdownMinute"
/>
<result
column=
"is_member"
property=
"isMember"
/>
</resultMap>
</resultMap>
<!-- 电子手册列表 -->
<!-- 电子手册列表 -->
...
@@ -130,7 +133,10 @@
...
@@ -130,7 +133,10 @@
p.title ,
p.title ,
pr.field_id ,
pr.field_id ,
p.time_start ,
p.time_start ,
p.time_end
p.time_end,
t1.time_sell,
t1.pay_countdown_minute,
t1.is_member
FROM
FROM
kylin_performances AS p
kylin_performances AS p
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
...
@@ -153,6 +159,28 @@
...
@@ -153,6 +159,28 @@
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
GROUP BY
GROUP BY
ttr.performance_id
ttr.performance_id
) AS t ON p.performances_id = t.performance_id where sm.`status` = 1 and sm.is_release = 1
) AS t ON p.performances_id = t.performance_id
LEFT JOIN(
SELECT
ttr.performance_id ,
ts.is_member,
pay_countdown_minute,
sum(ts.total_general) AS 'total_general' ,
MIN(
DATE_SUB(
t.time_start ,
INTERVAL pay_countdown_minute MINUTE
)
) AS 'time_sell' ,
MAX(t.time_end) AS 'time_stop'
FROM
kylin_ticket_status AS ts
LEFT JOIN kylin_ticket_relations AS tr ON tr.ticket_id = ts.ticket_id
LEFT JOIN kylin_tickets AS t ON t.tickets_id = ts.ticket_id
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
GROUP BY
ttr.performance_id
) AS t1 ON p.performances_id = t1.performance_id
where sm.`status` = 1 and sm.is_release = 1
</select>
</select>
</mapper>
</mapper>
liquidnet-bus-service/liquidnet-service-sweet/src/main/resources/com/liquidnet/service/sweet/mapper/SweetManualMdskMapper.xml
View file @
d3c7b41d
...
@@ -32,6 +32,9 @@
...
@@ -32,6 +32,9 @@
<result
column=
"field_id"
property=
"fieldId"
/>
<result
column=
"field_id"
property=
"fieldId"
/>
<result
column=
"time_start"
property=
"timeStart"
/>
<result
column=
"time_start"
property=
"timeStart"
/>
<result
column=
"time_end"
property=
"timeEnd"
/>
<result
column=
"time_end"
property=
"timeEnd"
/>
<result
column=
"time_sell"
property=
"timeSell"
/>
<result
column=
"pay_countdown_minute"
property=
"payCountdownMinute"
/>
<result
column=
"is_member"
property=
"isMember"
/>
</resultMap>
</resultMap>
<!-- 电子手册列表 -->
<!-- 电子手册列表 -->
...
@@ -130,7 +133,10 @@
...
@@ -130,7 +133,10 @@
p.title ,
p.title ,
pr.field_id ,
pr.field_id ,
p.time_start ,
p.time_start ,
p.time_end
p.time_end,
t1.time_sell,
t1.pay_countdown_minute,
t1.is_member
FROM
FROM
kylin_performances AS p
kylin_performances AS p
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
LEFT JOIN kylin_performance_status AS ps ON p.performances_id = ps.performance_id
...
@@ -153,7 +159,29 @@
...
@@ -153,7 +159,29 @@
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
GROUP BY
GROUP BY
ttr.performance_id
ttr.performance_id
) AS t ON p.performances_id = t.performance_id where sm.`status` = 1 and sm.is_release = 1
) AS t ON p.performances_id = t.performance_id
LEFT JOIN(
SELECT
ttr.performance_id ,
pay_countdown_minute,
ts.is_member,
sum(ts.total_general) AS 'total_general' ,
MIN(
DATE_SUB(
t.time_start ,
INTERVAL pay_countdown_minute MINUTE
)
) AS 'time_sell' ,
MAX(t.time_end) AS 'time_stop'
FROM
kylin_ticket_status AS ts
LEFT JOIN kylin_ticket_relations AS tr ON tr.ticket_id = ts.ticket_id
LEFT JOIN kylin_tickets AS t ON t.tickets_id = ts.ticket_id
LEFT JOIN kylin_ticket_time_relation AS ttr ON tr.times_id = ttr.times_id
GROUP BY
ttr.performance_id
) AS t1 ON p.performances_id = t1.performance_id
where sm.`status` = 1 and sm.is_release = 1
</select>
</select>
</mapper>
</mapper>
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