Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
cloud-platform
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
youjj
cloud-platform
Commits
0ace76c0
Commit
0ace76c0
authored
Dec 05, 2019
by
libin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
抽奖
parent
dd089133
Changes
9
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
131 additions
and
24 deletions
+131
-24
ActivityPrize.java
...java/com/xxfc/platform/activity/entity/ActivityPrize.java
+2
-4
ActivityAttendanceRecordBiz.java
...fc/platform/activity/biz/ActivityAttendanceRecordBiz.java
+4
-0
ActivityPrizeBiz.java
...java/com/xxfc/platform/activity/biz/ActivityPrizeBiz.java
+57
-16
RedisConfiguration.java
...com/xxfc/platform/activity/config/RedisConfiguration.java
+35
-0
ActivityAttendanceRecordMapper.java
...tform/activity/mapper/ActivityAttendanceRecordMapper.java
+5
-0
ActivityPrizeMapper.java
...om/xxfc/platform/activity/mapper/ActivityPrizeMapper.java
+4
-1
ActivityPrizeController.java
.../xxfc/platform/activity/rest/ActivityPrizeController.java
+2
-1
ActivityAttendanceRecordMapper.xml
.../main/resources/mapper/ActivityAttendanceRecordMapper.xml
+17
-0
ActivityPrizeMapper.xml
...-server/src/main/resources/mapper/ActivityPrizeMapper.xml
+5
-2
No files found.
xx-activity/xx-activity-api/src/main/java/com/xxfc/platform/activity/entity/ActivityPrize.java
View file @
0ace76c0
...
@@ -47,10 +47,8 @@ public class ActivityPrize implements Serializable {
...
@@ -47,10 +47,8 @@ public class ActivityPrize implements Serializable {
private
Date
crtTime
;
private
Date
crtTime
;
@Column
(
name
=
"upd_time"
)
@Column
(
name
=
"upd_time"
)
private
Date
updTime
;
private
Date
updTime
;
@Column
(
name
=
"is_entity"
)
private
Integer
isEntity
;
@Column
(
name
=
"goods_id"
)
@Column
(
name
=
"goods_id"
)
private
Integer
goodsId
;
private
Integer
goodsId
;
@Column
(
name
=
"
is_priz
e"
)
@Column
(
name
=
"
prize_goods_typ
e"
)
private
Integer
isPriz
e
;
private
Integer
prizeGoodsTyp
e
;
}
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityAttendanceRecordBiz.java
View file @
0ace76c0
...
@@ -171,4 +171,8 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
...
@@ -171,4 +171,8 @@ public class ActivityAttendanceRecordBiz extends BaseBiz<ActivityAttendanceRecor
activityAttendanceRecordDTO
.
getPrizes
(),
activityAttendanceRecordDTO
.
getPrizes
(),
timeStr
};
timeStr
};
}
}
public
void
updateLotteryNumByActivityIdAndUserIdAndPrizeType
(
Integer
activityId
,
Integer
userId
,
Integer
prizeType
){
mapper
.
updateLotteryNumByActivityIdAndUserIdAndPrizeType
(
activityId
,
userId
,
prizeType
);
}
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/biz/ActivityPrizeBiz.java
View file @
0ace76c0
package
com
.
xxfc
.
platform
.
activity
.
biz
;
package
com
.
xxfc
.
platform
.
activity
.
biz
;
import
cn.hutool.core.date.DateUtil
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.admin.feign.dto.AppUserDTO
;
import
com.github.wxiaoqi.security.common.util.ReferralCodeUtil
;
import
com.github.wxiaoqi.security.common.util.ReferralCodeUtil
;
import
com.xxfc.platform.activity.constant.PrizeTypeEnum
;
import
com.xxfc.platform.activity.constant.PrizeTypeEnum
;
...
@@ -39,11 +40,15 @@ import java.util.stream.Collectors;
...
@@ -39,11 +40,15 @@ import java.util.stream.Collectors;
public
class
ActivityPrizeBiz
extends
BaseBiz
<
ActivityPrizeMapper
,
ActivityPrize
>
{
public
class
ActivityPrizeBiz
extends
BaseBiz
<
ActivityPrizeMapper
,
ActivityPrize
>
{
private
final
ActivityWinningRecordBiz
activityWinningRecordBiz
;
private
final
ActivityWinningRecordBiz
activityWinningRecordBiz
;
private
final
ActivityAttendanceRecordBiz
activityAttendanceRecordBiz
;
private
final
UserCouponBiz
userCouponBiz
;
private
final
UserCouponBiz
userCouponBiz
;
private
final
RedisTemplate
<
String
,
Object
>
redisTemplate
;
private
final
RedisTemplate
<
String
,
Object
>
redisTemplate
;
@Resource
(
name
=
"redisTemplate"
)
@Resource
(
name
=
"redisTemplate"
)
private
ValueOperations
<
String
,
Object
>
valueOperations
;
private
ValueOperations
<
String
,
Object
>
valueOperations
;
private
final
String
LOTTERY_PRE_KEY
=
"lottery"
;
/**
/**
* 查询奖品
* 查询奖品
*
*
...
@@ -74,7 +79,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -74,7 +79,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
//保存
//保存
List
<
ActivityPrize
>
activityPrizesOfSave
=
activityPrizeMap
.
get
(
Boolean
.
FALSE
);
List
<
ActivityPrize
>
activityPrizesOfSave
=
activityPrizeMap
.
get
(
Boolean
.
FALSE
);
if
(
CollectionUtils
.
isNotEmpty
(
activityPrizesOfSave
))
{
if
(
CollectionUtils
.
isNotEmpty
(
activityPrizesOfSave
))
{
activityPrizesOfSave
.
stream
().
peek
(
x
->
x
.
setCrtTime
(
new
Date
())).
count
();
activityPrizesOfSave
.
stream
().
peek
(
x
->
x
.
setCrtTime
(
new
Date
())).
count
();
mapper
.
insertList
(
activityPrizesOfSave
);
mapper
.
insertList
(
activityPrizesOfSave
);
}
}
//更新
//更新
...
@@ -97,7 +102,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -97,7 +102,7 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
Example
example
=
new
Example
(
ActivityPrize
.
class
);
Example
example
=
new
Example
(
ActivityPrize
.
class
);
example
.
orderBy
(
"serialNumber"
).
asc
();
example
.
orderBy
(
"serialNumber"
).
asc
();
Example
.
Criteria
criteria
=
example
.
createCriteria
();
Example
.
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andEqualTo
(
"type"
,
prizeType
);
criteria
.
andEqualTo
(
"type"
,
prizeType
);
List
<
ActivityPrize
>
activityPrizes
=
mapper
.
selectByExample
(
example
);
List
<
ActivityPrize
>
activityPrizes
=
mapper
.
selectByExample
(
example
);
if
(
CollectionUtils
.
isEmpty
(
activityPrizes
))
{
if
(
CollectionUtils
.
isEmpty
(
activityPrizes
))
{
return
Collections
.
EMPTY_LIST
;
return
Collections
.
EMPTY_LIST
;
...
@@ -106,54 +111,90 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
...
@@ -106,54 +111,90 @@ public class ActivityPrizeBiz extends BaseBiz<ActivityPrizeMapper, ActivityPrize
}
}
/**
/**
* 抽奖
* 抽奖
* //todo
* //todo
*
* @param activityId
* @param activityId
* @param prizeType
* @param prizeType
* @param appUserDTO
* @param appUserDTO
* @return
* @return
*/
*/
public
LotteryVo
activityLottery
(
Integer
activityId
,
Integer
prizeType
,
AppUserDTO
appUserDTO
)
{
public
LotteryVo
activityLottery
(
Integer
activityId
,
Integer
prizeType
,
String
lotteryDate
,
AppUserDTO
appUserDTO
)
{
LotteryVo
lotteryVo
=
new
LotteryVo
();
LotteryVo
lotteryVo
=
new
LotteryVo
();
/* Boolean hasNum = activityAttendanceRecordBiz.hasNumberOfLuckyDrawByType(activityId, prizeType, appUserDTO.getUserid());
if (!hasNum){
lotteryVo.setPrizeName("谢谢惠顾");
lotteryVo.setSerialNumber(8);
return lotteryVo;
}*/
List
<
ActivityPrize
>
activityPrizes
=
findActivityPrizeByType
(
prizeType
);
List
<
ActivityPrize
>
activityPrizes
=
findActivityPrizeByType
(
prizeType
);
ActivityPrize
notActivityPrize
=
activityPrizes
.
stream
().
filter
(
x
->
x
.
get
IsPrize
()
==
1
).
findFirst
().
orElseGet
(()
->
{
ActivityPrize
notActivityPrize
=
activityPrizes
.
stream
().
filter
(
x
->
x
.
get
PrizeGoodsType
()
==
0
).
findFirst
().
orElseGet
(()
->
{
ActivityPrize
activityPrize
=
new
ActivityPrize
();
ActivityPrize
activityPrize
=
new
ActivityPrize
();
activityPrize
.
setName
(
"谢谢参与"
);
activityPrize
.
setName
(
"谢谢参与"
);
activityPrize
.
setIsPrize
(
0
);
activityPrize
.
setPrizeGoodsType
(
0
);
activityPrize
.
setType
(
prizeType
);
activityPrize
.
setSerialNumber
(
8
);
return
activityPrize
;
return
activityPrize
;
});
});
int
index
=
LotteryUtils
.
getrandomIndex
(
activityPrizes
);
int
index
=
LotteryUtils
.
getrandomIndex
(
activityPrizes
);
ActivityPrize
activityPrize
=
activityPrizes
.
get
(
index
);
ActivityPrize
activityPrize
=
activityPrizes
.
get
(
index
);
if
(
activityPrize
.
getTotalStock
()
==
0
){
lotteryVo
.
setPrizeName
(
notActivityPrize
.
getName
());
//库存为0
if
(
activityPrize
.
getPrizeGoodsType
()!=
0
&&
activityPrize
.
getTotalStock
()
==
0
)
{
activityPrize
=
notActivityPrize
;
}
if
(
activityPrize
.
getDayMaxUse
()!=
null
){
String
key
=
String
.
format
(
"%s:%s:%d:%s"
,
lotteryDate
,
LOTTERY_PRE_KEY
,
activityId
,
activityPrize
.
getSerialNumber
());
Long
prizeDayUseStock
=
valueOperations
.
increment
(
key
);
//达到日上限
if
(
prizeDayUseStock
.
intValue
()
>
activityPrize
.
getDayMaxUse
()){
activityPrize
=
notActivityPrize
;
}
}
}
ActivityWinningRecord
activityWinningRecord
=
new
ActivityWinningRecord
();
ActivityWinningRecord
activityWinningRecord
=
new
ActivityWinningRecord
();
activityWinningRecord
.
setActivityId
(
activityId
);
activityWinningRecord
.
setActivityId
(
activityId
);
activityWinningRecord
.
setPrizeType
(
prizeType
);
activityWinningRecord
.
setPrizeType
(
prizeType
);
activityWinningRecord
.
setUserId
(
appUserDTO
.
getUserid
());
activityWinningRecord
.
setUserId
(
appUserDTO
.
getUserid
());
activityWinningRecord
.
set
IconPath
(
activityPrize
.
getIconPath
()
);
activityWinningRecord
.
set
HasWinning
(
0
);
if
(
activityPrize
.
get
IsPrize
()==
1
&&
activityPrize
.
getTotalStock
()!=
0
)
{
if
(
activityPrize
.
get
PrizeGoodsType
()
!=
0
&&
activityPrize
.
getTotalStock
()
!=
0
)
{
if
(
PrizeTypeEnum
.
LOCALE
.
getCode
()
==
prizeType
)
{
if
(
PrizeTypeEnum
.
LOCALE
.
getCode
()
==
prizeType
)
{
//兑奖码生成
//兑奖码生成
String
expiryDateCode
=
ReferralCodeUtil
.
encode
(
valueOperations
.
increment
(
String
.
valueOf
(
activityId
)).
intValue
());
String
expiryDateCode
=
ReferralCodeUtil
.
encode
(
valueOperations
.
increment
(
String
.
valueOf
(
activityId
)).
intValue
());
activityWinningRecord
.
setExpiryDateCode
(
expiryDateCode
);
activityWinningRecord
.
setExpiryDateCode
(
expiryDateCode
);
lotteryVo
.
setExpiryDateCode
(
expiryDateCode
);
lotteryVo
.
setExpiryDateCode
(
expiryDateCode
);
}
}
//发放优惠券
//发放优惠券
if
(
activityPrize
.
get
IsEntity
()
==
0
)
{
if
(
activityPrize
.
get
PrizeGoodsType
()
==
0
)
{
UserCouponSendDTO
userCouponSendDTO
=
new
UserCouponSendDTO
();
UserCouponSendDTO
userCouponSendDTO
=
new
UserCouponSendDTO
();
userCouponSendDTO
.
setCouponId
(
activityPrize
.
getGoodsId
());
userCouponSendDTO
.
setCouponId
(
activityPrize
.
getGoodsId
());
userCouponSendDTO
.
setCouponNum
(
1
);
userCouponSendDTO
.
setCouponNum
(
1
);
userCouponSendDTO
.
setPhone
(
appUserDTO
.
getUsername
());
userCouponSendDTO
.
setPhone
(
appUserDTO
.
getUsername
());
userCouponBiz
.
sendCoupon
(
userCouponSendDTO
);
userCouponBiz
.
sendCoupon
(
userCouponSendDTO
);
activityWinningRecord
.
setGoodsId
(
activityPrize
.
getGoodsId
());
}
}
//更改抽奖次数
activityAttendanceRecordBiz
.
updateLotteryNumByActivityIdAndUserIdAndPrizeType
(
activityId
,
appUserDTO
.
getUserid
(),
prizeType
);
//更新库存
updatePrizeStock
(
prizeType
,
activityPrize
.
getSerialNumber
());
//设置为已中奖
activityWinningRecord
.
setHasWinning
(
1
);
activityWinningRecord
.
setIconPath
(
activityPrize
.
getIconPath
());
}
}
activityWinningRecordBiz
.
saveRecord
(
activityWinningRecord
);
activityWinningRecordBiz
.
saveRecord
(
activityWinningRecord
);
lotteryVo
.
setSerialNumber
(
activityPrize
.
getSerialNumber
());
return
lotteryVo
;
return
lotteryVo
;
}
}
/**
* 更新库存
*
* @param prizeType
* @param serialNumber
*/
private
void
updatePrizeStock
(
Integer
prizeType
,
Integer
serialNumber
)
{
mapper
.
updatePrizeStock
(
prizeType
,
serialNumber
);
}
}
}
\ No newline at end of file
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/config/RedisConfiguration.java
0 → 100644
View file @
0ace76c0
package
com
.
xxfc
.
platform
.
activity
.
config
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.context.annotation.Primary
;
import
org.springframework.data.redis.connection.RedisConnectionFactory
;
import
org.springframework.data.redis.core.RedisTemplate
;
import
org.springframework.data.redis.serializer.RedisSerializer
;
import
org.springframework.data.redis.serializer.StringRedisSerializer
;
/**
* ${DESCRIPTION}
*
* @author wanghaobin
* @create 2017-06-21 8:39
*/
@Configuration
@Primary
public
class
RedisConfiguration
{
@Bean
public
RedisTemplate
<
String
,
Object
>
userRedisTemplate
(
RedisConnectionFactory
factory
)
{
RedisTemplate
redisTemplate
=
new
RedisTemplate
();
redisTemplate
.
setConnectionFactory
(
factory
);
RedisSerializer
<
String
>
stringSerializer
=
new
StringRedisSerializer
();
redisTemplate
.
setKeySerializer
(
stringSerializer
);
redisTemplate
.
setValueSerializer
(
stringSerializer
);
redisTemplate
.
setHashKeySerializer
(
stringSerializer
);
redisTemplate
.
setHashValueSerializer
(
stringSerializer
);
redisTemplate
.
afterPropertiesSet
();
return
redisTemplate
;
}
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityAttendanceRecordMapper.java
View file @
0ace76c0
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.activity.mapper;
...
@@ -3,6 +3,7 @@ package com.xxfc.platform.activity.mapper;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordDTO
;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordDTO
;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordFindDTO
;
import
com.xxfc.platform.activity.dto.ActivityAttendanceRecordFindDTO
;
import
com.xxfc.platform.activity.entity.ActivityAttendanceRecord
;
import
com.xxfc.platform.activity.entity.ActivityAttendanceRecord
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.Mapper
;
import
java.util.List
;
import
java.util.List
;
...
@@ -17,4 +18,8 @@ import java.util.List;
...
@@ -17,4 +18,8 @@ import java.util.List;
public
interface
ActivityAttendanceRecordMapper
extends
Mapper
<
ActivityAttendanceRecord
>
{
public
interface
ActivityAttendanceRecordMapper
extends
Mapper
<
ActivityAttendanceRecord
>
{
List
<
ActivityAttendanceRecordDTO
>
selectActivityAttendanceRecord
(
ActivityAttendanceRecordFindDTO
activityAttendanceRecordFindDTO
);
List
<
ActivityAttendanceRecordDTO
>
selectActivityAttendanceRecord
(
ActivityAttendanceRecordFindDTO
activityAttendanceRecordFindDTO
);
void
updateLotteryNumByActivityIdAndUserIdAndPrizeType
(
@Param
(
"activityId"
)
Integer
activityId
,
@Param
(
"userId"
)
Integer
userId
,
@Param
(
"prizeType"
)
Integer
prizeType
);
}
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/mapper/ActivityPrizeMapper.java
View file @
0ace76c0
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
package
com
.
xxfc
.
platform
.
activity
.
mapper
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
com.xxfc.platform.activity.entity.ActivityPrize
;
import
org.apache.ibatis.annotations.Param
;
import
tk.mybatis.mapper.additional.insert.InsertListMapper
;
import
tk.mybatis.mapper.additional.insert.InsertListMapper
;
import
tk.mybatis.mapper.common.Mapper
;
import
tk.mybatis.mapper.common.Mapper
;
...
@@ -12,5 +13,7 @@ import tk.mybatis.mapper.common.Mapper;
...
@@ -12,5 +13,7 @@ import tk.mybatis.mapper.common.Mapper;
* @date 2019-12-03 16:46:02
* @date 2019-12-03 16:46:02
*/
*/
public
interface
ActivityPrizeMapper
extends
Mapper
<
ActivityPrize
>,
InsertListMapper
<
ActivityPrize
>
{
public
interface
ActivityPrizeMapper
extends
Mapper
<
ActivityPrize
>,
InsertListMapper
<
ActivityPrize
>
{
void
updatePrizeStock
(
@Param
(
"prizeType"
)
Integer
prizeType
,
@Param
(
"serialNumber"
)
Integer
serialNumber
);
}
}
xx-activity/xx-activity-server/src/main/java/com/xxfc/platform/activity/rest/ActivityPrizeController.java
View file @
0ace76c0
...
@@ -48,8 +48,9 @@ public class ActivityPrizeController {
...
@@ -48,8 +48,9 @@ public class ActivityPrizeController {
@PostMapping
(
"/lottery/{activityId}/{prizeType}"
)
@PostMapping
(
"/lottery/{activityId}/{prizeType}"
)
public
ObjectRestResponse
<
LotteryVo
>
activityLottery
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
,
public
ObjectRestResponse
<
LotteryVo
>
activityLottery
(
@PathVariable
(
value
=
"activityId"
)
Integer
activityId
,
@PathVariable
(
value
=
"prizeType"
)
Integer
prizeType
,
@PathVariable
(
value
=
"prizeType"
)
Integer
prizeType
,
@RequestParam
(
value
=
"lottery"
)
String
lottery
,
AppUserDTO
appUserDTO
)
{
AppUserDTO
appUserDTO
)
{
LotteryVo
lotteryVo
=
activityPrizeBiz
.
activityLottery
(
activityId
,
prizeType
,
appUserDTO
);
LotteryVo
lotteryVo
=
activityPrizeBiz
.
activityLottery
(
activityId
,
prizeType
,
lottery
,
appUserDTO
);
return
ObjectRestResponse
.
succ
(
lotteryVo
);
return
ObjectRestResponse
.
succ
(
lotteryVo
);
}
}
...
...
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityAttendanceRecordMapper.xml
View file @
0ace76c0
...
@@ -64,4 +64,21 @@
...
@@ -64,4 +64,21 @@
order by apu.current_progress desc
order by apu.current_progress desc
</select>
</select>
<update
id=
"updateLotteryNumByActivityIdAndUserIdAndPrizeType"
>
update `activity_attendance_record`
<if
test=
"prizeType==1"
>
set `online_lottery_num`=`online_lottery_num`-1
</if>
<if
test=
"prizeType==2"
>
set `locale_lottery_num`=`locale_lottery_num`-1
</if>
where `activity_id`=#{activityId} and `user_id`=#{userId}
<if
test=
"prizeType==1"
>
and `online_lottery_num`>0
</if>
<if
test=
"prizeType==2"
>
and `locale_lottery_num`>0
</if>
</update>
</mapper>
</mapper>
\ No newline at end of file
xx-activity/xx-activity-server/src/main/resources/mapper/ActivityPrizeMapper.xml
View file @
0ace76c0
...
@@ -14,9 +14,12 @@
...
@@ -14,9 +14,12 @@
<result
property=
"probability"
column=
"probability"
/>
<result
property=
"probability"
column=
"probability"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"type"
column=
"type"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"crtTime"
column=
"crt_time"
/>
<result
property=
"isEntity"
column=
"is_entity"
/>
<result
property=
"goodsId"
column=
"goods_id"
/>
<result
property=
"goodsId"
column=
"goods_id"
/>
<result
property=
"
isPrize"
column=
"is_priz
e"
/>
<result
property=
"
prizeGoodsType"
column=
"prize_goods_typ
e"
/>
</resultMap>
</resultMap>
<update
id=
"updatePrizeStock"
>
update `activity_prize` set `total_stock`=`total_stock`-1 where `type`=#{prizeType} and `serial_number`=#{serialNumber} and `total_stock`>0;
</update>
</mapper>
</mapper>
\ 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