Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
T
taobao-mini-template
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
2
Issues
2
List
Board
Labels
Milestones
Merge Requests
1
Merge Requests
1
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
qinhaitao
taobao-mini-template
Commits
54f9315e
Commit
54f9315e
authored
Sep 08, 2020
by
李硕
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
导出中奖名单的奖池类型字段prizeDataType修改和保存活动接口的防连点
parent
e36dc314
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
73 additions
and
59 deletions
+73
-59
prize-dialog.js
client/components/dialog/prize-dialog/prize-dialog.js
+10
-2
add.js
client/pages/activity/addBackup/add.js
+30
-29
awards.controller.js
server/duiba/controller/awards.controller.js
+6
-6
endingNodify.controller.js
server/duiba/controller/endingNodify.controller.js
+27
-22
No files found.
client/components/dialog/prize-dialog/prize-dialog.js
View file @
54f9315e
...
...
@@ -379,6 +379,14 @@ Component({
this
.
showItemTips
(
'useUrlTips'
,
'success'
,
''
);
}
}
if
(
type
==
OBJECT_TYPE
)
{
if
(
!
goodId
)
{
this
.
showItemTips
(
'goodIdTips'
,
'error'
,
'请选择商品链接'
);
}
else
{
this
.
showItemTips
(
'goodIdTips'
,
'success'
,
''
);
}
}
if
(
type
==
EQUITY_TYPE
||
type
==
OBJECT_TYPE
)
{
if
(
!
desc
)
{
this
.
showItemTips
(
'prizeDescTips'
,
'error'
,
'请填写奖品描述'
);
...
...
@@ -458,7 +466,7 @@ Component({
return
;
}
}
const
{
probabilityTips
,
prizeNumberTips
,
creditsValueTips
,
useUrlTips
,
prizeDescTips
}
=
this
.
data
;
const
{
probabilityTips
,
prizeNumberTips
,
creditsValueTips
,
useUrlTips
,
prizeDescTips
,
goodIdTips
}
=
this
.
data
;
const
isImagePass
=
image
&&
imageTips
.
status
!==
"error"
;
let
stockPass
=
true
;
...
...
@@ -481,7 +489,7 @@ Component({
isImagePass
&&
probabilityTips
.
status
!==
"error"
&&
prizeNumberTips
.
status
!==
"error"
&&
useUrl
Tips
.
status
!==
"error"
&&
goodId
Tips
.
status
!==
"error"
&&
prizeDescTips
.
status
!==
"error"
;
const
isCreditsPass
=
type
==
CREDITS_TYPE
&&
...
...
client/pages/activity/addBackup/add.js
View file @
54f9315e
...
...
@@ -47,7 +47,7 @@ Component({
image
:
""
,
credits
:
""
,
name
:
""
,
switchStock
:
STOCK_NO_LIMIT
,
switchStock
:
STOCK_NO_LIMIT
,
useStock
:
0
,
rank
:
"2"
},
...
...
@@ -68,7 +68,7 @@ Component({
commandImg
:
''
,
logoImg
:
''
,
beenInvitedText
:
''
,
taskList
:[
taskList
:
[
// {
// type: "beMembership",//会员
// value: 20,//完成任务获得值
...
...
@@ -132,7 +132,7 @@ Component({
// value: '',
// },
beMembership
:
{
value
:
''
,
value
:
''
,
checked
:
false
},
// sign: {
...
...
@@ -179,7 +179,8 @@ Component({
isStart
:
false
,
originalStartTime
:
''
,
prizeDialogData
:
{},
formState
:
formatValidator
(
descriptor
)
formState
:
formatValidator
(
descriptor
),
isPostParams
:
true
},
props
:
{},
didMount
()
{
...
...
@@ -229,12 +230,12 @@ Component({
},
setDataByKey
(
name
,
val
)
{
const
keys
=
name
.
split
(
'.'
);
if
(
keys
.
length
===
1
)
{
if
(
keys
.
length
===
1
)
{
this
.
setData
({
[
keys
[
0
]]:
val
})
}
if
(
keys
.
length
===
2
)
{
if
(
keys
.
length
===
2
)
{
let
targetKey
=
this
.
data
[
keys
[
0
]];
targetKey
[
keys
[
1
]]
=
val
;
let
newVal
=
Object
.
assign
({},
targetKey
)
...
...
@@ -242,7 +243,7 @@ Component({
[
keys
[
0
]]:
newVal
})
}
if
(
keys
.
length
===
3
)
{
if
(
keys
.
length
===
3
)
{
let
targetKey
=
this
.
data
[
keys
[
0
]];
targetKey
[
keys
[
1
]][
keys
[
2
]]
=
val
;
let
newVal
=
Object
.
assign
({},
targetKey
)
...
...
@@ -302,7 +303,7 @@ Component({
console
.
log
(
'fields'
,
fields
);
const
{
formState
}
=
_this
.
data
;
_this
.
setFormTips
(
formState
,
errors
,
target
)
if
(
errors
)
{
if
(
errors
)
{
resolve
(
false
);
}
else
{
resolve
(
true
);
...
...
@@ -317,10 +318,7 @@ Component({
let
newValidator
=
{};
Object
.
keys
(
formState
).
forEach
(
key
=>
{
let
error
=
errors
.
filter
(
v
=>
target
?
v
.
field
===
target
&&
v
.
field
===
key
:
v
.
field
===
key
).
length
&&
errors
.
filter
(
v
=>
v
.
field
===
key
)[
0
];
// 时间实时校验
if
(
key
===
'timeRange'
&&
formState
[
key
].
status
===
'error'
)
{
return
}
newValidator
[
key
]
=
{
status
:
error
?
'error'
:
'success'
,
message
:
error
?
error
.
message
:
''
...
...
@@ -337,11 +335,11 @@ Component({
async
onSubmit
()
{
const
isValidForm
=
await
this
.
validateForm
(
this
.
data
);
// console.log(this.formatActivityParams(this.data))
if
(
!
isValidForm
)
return
;
if
(
!
isValidForm
)
return
;
console
.
log
(
'成功'
)
...
...
@@ -349,17 +347,20 @@ Component({
console
.
log
(
params
)
saveActivityInfo
(
params
)
.
then
(
res
=>
{
if
(
res
.
success
)
{
this
.
backList
()
}
else
{
this
.
showFailToast
(
res
.
message
)
}
}).
catch
(
err
=>
{
console
.
log
(
err
)
if
(
this
.
data
.
isPostParams
)
{
this
.
setData
({
isPostParams
:
false
})
const
{
success
,
message
}
=
await
saveActivityInfo
(
params
);
if
(
success
)
{
this
.
backList
();
this
.
setData
({
isPostParams
:
true
})
}
else
{
this
.
showFailToast
(
message
);
}
}
},
showFailToast
(
text
)
{
my
.
showToast
({
...
...
@@ -386,7 +387,7 @@ Component({
beenInvitedText
,
}
=
params
;
return
{
id
,
activityId
,
...
...
@@ -407,7 +408,7 @@ Component({
formatTaskMapToList
(
taskMap
)
{
let
list
=
[];
Object
.
keys
(
taskMap
).
forEach
(
type
=>
{
if
(
!
taskMap
[
type
].
checked
)
return
;
if
(
!
taskMap
[
type
].
checked
)
return
;
let
task
=
{
...
taskMap
[
type
],
type
...
...
@@ -427,10 +428,10 @@ Component({
// 补足谢谢参与类型
formatPobalityPrizeList
(
prizeInfoList
=
[])
{
let
totalPercent
=
prizeInfoList
.
reduce
((
total
,
next
)
=>
{
return
total
=
addFloat
(
total
,
+
next
.
probability
)
return
total
=
addFloat
(
total
,
+
next
.
probability
)
},
0
)
// 排名类型不含谢谢参与
if
(
prizeInfoList
[
0
].
rank
)
return
prizeInfoList
;
if
(
prizeInfoList
[
0
].
rank
)
return
prizeInfoList
;
let
prizeInfoListCopy
=
prizeInfoList
.
concat
().
map
((
v
,
index
)
=>
({
...
v
,
level
:
index
}));
if
(
totalPercent
<
100
)
{
...
...
server/duiba/controller/awards.controller.js
View file @
54f9315e
...
...
@@ -63,7 +63,7 @@ const findWinnerInfoList = async (context) => {
let
ad
=
item
.
province
+
item
.
city
+
item
.
area
+
item
.
addressdetail
,
type0
=
item
.
type
;
item
.
createTime
=
formatTime
(
new
Date
(
item
.
createTime
))
||
""
;
item
.
receiveTime
=
item
.
receiveTime
?
formatTime
(
new
Date
(
item
.
receiveTime
))
:
'未填'
;
item
.
awardsType
=
prizePoolType
[
item
.
awards
Type
];
item
.
prizeDataType
=
prizePoolType
[
item
.
prizeData
Type
];
item
.
type
=
prizeKind
[
item
.
type
];
item
.
receiveName
=
type0
==
3
?
(
item
.
receiveName
||
"未填"
)
:
'/'
;
item
.
phone
=
type0
==
3
?
(
item
.
phone
||
"未填"
)
:
'/'
;
...
...
@@ -127,9 +127,9 @@ const exportAwardsList = async (context) => {
v
.
createTime
?
formatTime
(
new
Date
(
v
.
createTime
+
EIGHT_HOURS
))
:
""
,
v
.
type
==
1
?
"/"
:
v
.
receiveTime
?
formatTime
(
new
Date
(
v
.
receiveTime
+
EIGHT_HOURS
))
:
"未填"
,
v
.
userNick
||
"/"
,
prizePoolType
[
v
.
awards
Type
],
prizePoolType
[
v
.
prizeData
Type
],
prizeKind
[
v
.
type
],
v
.
n
ame
||
""
,
v
.
prizeN
ame
||
""
,
v
.
type
==
1
?
"/"
:
v
.
receiveName
||
""
,
v
.
type
==
1
?
"/"
:
v
.
phone
||
"未填"
,
v
.
type
==
1
?
"/"
:
(
v
.
province
?
v
.
province
+
v
.
city
+
v
.
area
+
v
.
addressdetail
:
"未填"
),
...
...
@@ -233,9 +233,9 @@ const exportAwardsInfoBySearch = async (context) => {
v
.
createTime
?
formatTime
(
new
Date
(
v
.
createTime
+
EIGHT_HOURS
))
:
""
,
v
.
type
==
1
?
"/"
:
v
.
receiveTime
?
formatTime
(
new
Date
(
v
.
receiveTime
+
EIGHT_HOURS
))
:
"未填"
,
v
.
userNick
||
"/"
,
prizePoolType
[
v
.
awards
Type
],
prizePoolType
[
v
.
prizeData
Type
],
prizeKind
[
v
.
type
],
v
.
n
ame
||
""
,
v
.
prizeN
ame
||
""
,
v
.
type
==
1
?
"/"
:
v
.
receiveName
||
""
,
v
.
type
==
1
?
"/"
:
v
.
phone
||
"未填"
,
v
.
type
==
1
?
"/"
:
(
v
.
province
?
v
.
province
+
v
.
city
+
v
.
area
+
v
.
addressdetail
:
"未填"
),
...
...
@@ -325,7 +325,7 @@ const findWinnerInfoListBySearch = async (context) => {
let
ad
=
item
.
province
+
item
.
city
+
item
.
area
+
item
.
addressdetail
,
type0
=
item
.
type
;
item
.
createTime
=
formatTime
(
new
Date
(
item
.
createTime
))
||
""
;
item
.
receiveTime
=
item
.
receiveTime
?
formatTime
(
new
Date
(
item
.
receiveTime
))
:
'未填'
;
item
.
awardsType
=
prizePoolType
[
item
.
awards
Type
];
item
.
prizeDataType
=
prizePoolType
[
item
.
prizeData
Type
];
item
.
type
=
prizeKind
[
item
.
type
];
item
.
receiveName
=
type0
==
3
?
(
item
.
receiveName
||
"未填"
)
:
'/'
;
item
.
phone
=
type0
==
3
?
(
item
.
phone
||
"未填"
)
:
'/'
;
...
...
server/duiba/controller/endingNodify.controller.js
View file @
54f9315e
...
...
@@ -50,6 +50,7 @@ const getPrizeListAndAwards = async (activityId) => {
};
};
// 获取待开奖列表
const
getWaitAwardsList
=
(
prizeList
,
topscoreList
,
totalAwards
,
shopId
)
=>
{
let
waitAwardslist
=
[];
...
...
@@ -57,37 +58,40 @@ const getWaitAwardsList = (prizeList, topscoreList, totalAwards, shopId) => {
if
(
!
totalAwards
||
!
topscoreList
.
length
)
{
return
waitAwardslist
;
}
prizeList
.
forEach
((
v
,
index
,
arr
)
=>
{
if
(
!
v
.
rank
)
{
prizeList
.
forEach
((
prizeItem
,
index
,
arr
)
=>
{
if
(
!
prizeItem
.
rank
)
{
return
;
}
let
rankPeriod
=
~
v
.
rank
.
indexOf
(
"-"
)
?
v
.
rank
.
split
(
"-"
)
:
[
v
.
rank
,
v
.
rank
];
let
rankPeriod
=
~
prizeItem
.
rank
.
indexOf
(
"-"
)
?
prizeItem
.
rank
.
split
(
"-"
)
:
[
prizeItem
.
rank
,
prizeItem
.
rank
];
// 截取排行区间的分数排行列表
let
ranklist
=
topscoreList
.
slice
(
+
rankPeriod
[
0
]
-
1
,
Math
.
min
(
+
rankPeriod
[
1
],
totalAwards
)
);
// 整合开奖数据
ranklist
.
map
((
rank
)
=>
{
ranklist
.
map
((
userItem
)
=>
{
waitAwardslist
.
push
({
activityId
:
v
.
activityId
,
openId
:
rank
.
openId
,
rankRange
:
v
.
rank
,
rank
:
rank
.
rank
,
ename
:
v
.
ename
,
startTime
:
v
.
startTime
,
endTime
:
v
.
endTime
,
prizeId
:
v
.
_id
,
prizeName
:
v
.
name
,
userNick
:
rank
.
userNick
,
rankTime
:
rank
.
updateTime
,
image
:
v
.
image
,
maxScore
:
rank
.
maxScore
,
shopId
:
shopId
,
type
:
v
.
type
||
""
,
amount
:
v
.
amount
||
""
,
activityId
:
prizeItem
.
activityId
,
rankRange
:
prizeItem
.
rank
,
ename
:
prizeItem
.
ename
,
prizeDataType
:
prizeItem
.
prizeDataType
,
startTime
:
prizeItem
.
startTime
,
endTime
:
prizeItem
.
endTime
,
prizeId
:
prizeItem
.
_id
,
prizeName
:
prizeItem
.
name
,
image
:
prizeItem
.
image
,
type
:
prizeItem
.
type
||
""
,
amount
:
prizeItem
.
amount
||
""
,
openId
:
userItem
.
openId
,
avatar
:
userItem
.
avatar
,
rank
:
userItem
.
rank
,
userNick
:
userItem
.
userNick
,
rankTime
:
userItem
.
updateTime
,
totalScore
:
userItem
.
totalScore
,
drawStatus
:
DRAW_STATUS
.
WAITAWARD
,
createTime
:
Date
.
now
(),
createDay
:
Utils
.
default
.
dateFormatter
(
new
Date
(
Date
.
now
()
+
EIGHT_HOURS
),
"yyyy/MM/dd"
...
...
@@ -98,6 +102,7 @@ const getWaitAwardsList = (prizeList, topscoreList, totalAwards, shopId) => {
return
waitAwardslist
;
};
// 设置活动开奖
const
setActivity2openprize
=
async
(
waitAwardslist
,
_id
)
=>
{
// 插入排行榜开奖记录表 rank_open_prize 若失败,则变更
...
...
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