Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
P
promotion-service
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
promotion
promotion-service
Commits
0578e7d0
提交
0578e7d0
authored
4月 27, 2026
作者:
douxy
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
修改重客抽奖小程序,用户信息存储逻辑
上级
ca0f3eb5
隐藏空白字符变更
内嵌
并排
正在显示
8 个修改的文件
包含
58 行增加
和
30 行删除
+58
-30
LotteryController.java
...iaolu/promotion/controller/lottery/LotteryController.java
+2
-2
LotteryCoreDao.java
...ngxiaolu/promotion/domain/lottery/dao/LotteryCoreDao.java
+3
-2
LotteryCoreDaoImpl.java
...promotion/domain/lottery/dao/impl/LotteryCoreDaoImpl.java
+13
-17
LotteryUserInfo.java
...aolu/promotion/domain/lottery/entity/LotteryUserInfo.java
+1
-0
LotteryUserInfoDto.java
...xiaolu/promotion/pojo/lottery/dto/LotteryUserInfoDto.java
+22
-0
LotteryRecordVo.java
...wangxiaolu/promotion/pojo/lottery/vo/LotteryRecordVo.java
+8
-1
LotteryCoreService.java
...gxiaolu/promotion/service/lottery/LotteryCoreService.java
+3
-3
LotteryCoreServiceImpl.java
...romotion/service/lottery/impl/LotteryCoreServiceImpl.java
+6
-5
没有找到文件。
src/main/java/com/wangxiaolu/promotion/controller/lottery/LotteryController.java
浏览文件 @
0578e7d0
...
...
@@ -20,7 +20,7 @@ public class LotteryController {
*/
@PostMapping
(
"/init"
)
public
LotteryRecordDto
init
(
@RequestBody
LotteryRecordVo
lotteryRecordVo
)
{
return
lotteryService
.
initLottery
(
lotteryRecordVo
.
getLongitude
(),
lotteryRecordVo
.
getLatitude
(),
lotteryRecordVo
.
getReceiptImageUrl
(),
lotteryRecordVo
.
get
UserInfo
());
return
lotteryService
.
initLottery
(
lotteryRecordVo
.
getLongitude
(),
lotteryRecordVo
.
getLatitude
(),
lotteryRecordVo
.
getReceiptImageUrl
(),
lotteryRecordVo
.
get
WxOpenId
());
}
/**
...
...
@@ -28,7 +28,7 @@ public class LotteryController {
*/
@PostMapping
(
"/draw"
)
public
LotteryRecordDto
draw
(
@RequestBody
LotteryRecordVo
lotteryRecordVo
)
{
return
lotteryService
.
doDraw
(
lotteryRecordVo
.
getId
());
return
lotteryService
.
doDraw
(
lotteryRecordVo
.
getId
()
,
lotteryRecordVo
.
getUserInfo
()
);
}
@PostMapping
(
"/upload-receipt"
)
...
...
src/main/java/com/wangxiaolu/promotion/domain/lottery/dao/LotteryCoreDao.java
浏览文件 @
0578e7d0
...
...
@@ -2,6 +2,7 @@ package com.wangxiaolu.promotion.domain.lottery.dao;
import
com.wangxiaolu.promotion.domain.lottery.entity.LotteryUserInfo
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryRecordDto
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryUserInfoDto
;
/**
* @Author: DouXinYu
...
...
@@ -9,7 +10,7 @@ import com.wangxiaolu.promotion.pojo.lottery.dto.LotteryRecordDto;
* @Description:
*/
public
interface
LotteryCoreDao
{
LotteryRecordDto
doDraw
(
Long
recordId
);
LotteryRecordDto
doDraw
(
Long
recordId
,
LotteryUserInfoDto
userInfo
);
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
LotteryUserInfo
userInfo
);
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
String
wxOpenId
);
}
src/main/java/com/wangxiaolu/promotion/domain/lottery/dao/impl/LotteryCoreDaoImpl.java
浏览文件 @
0578e7d0
...
...
@@ -10,6 +10,7 @@ import com.wangxiaolu.promotion.domain.lottery.mapper.LotteryMapper;
import
com.wangxiaolu.promotion.domain.lottery.mapper.LotteryUserInfoMapper
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryRecordDto
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryUserInfoDto
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.utils.TencentMapUtil
;
import
org.apache.poi.ss.formula.functions.Now
;
...
...
@@ -42,7 +43,7 @@ public class LotteryCoreDaoImpl implements LotteryCoreDao {
* 初始化抽奖记录
*/
@Override
public
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
LotteryUserInfo
userInfo
)
{
public
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
String
wxOpenId
)
{
// 腾讯地图逆地址解析
Map
<
String
,
String
>
location
=
tencentMapUtil
.
getAddressMapByLngLat
(
longitude
,
latitude
);
...
...
@@ -56,22 +57,11 @@ public class LotteryCoreDaoImpl implements LotteryCoreDao {
record
.
setDistrict
(
location
.
get
(
"district"
));
record
.
setAddress
(
location
.
get
(
"address"
));
record
.
setReceiptImageUrl
(
receiptImage
);
if
(
Objects
.
nonNull
(
userInfo
)
&&
userInfo
.
getOpenId
()
!=
null
)
{
LambdaQueryWrapper
<
LotteryUserInfo
>
eq
=
new
LambdaQueryWrapper
<
LotteryUserInfo
>()
.
eq
(
LotteryUserInfo:
:
getOpenId
,
userInfo
.
getOpenId
());
LotteryUserInfo
lotteryUserInfo
=
lotteryUserInfoMapper
.
selectOne
(
eq
);
if
(
lotteryUserInfo
==
null
)
{
// 保存用户信息
lotteryUserInfoMapper
.
insert
(
userInfo
);
record
.
setWxOpenId
(
userInfo
.
getOpenId
());
}
else
{
record
.
setWxOpenId
(
userInfo
.
getOpenId
());
}
}
record
.
setStatus
(
"pending"
);
record
.
setWxOpenId
(
wxOpenId
);
lotteryMapper
.
insert
(
record
);
LotteryRecordDto
result
=
BeanUtils
.
transitionDto
(
record
,
LotteryRecordDto
.
class
);
ArrayList
<
String
>
prizeList
=
new
ArrayList
<>();
prizeList
.
add
(
"三等奖"
);
prizeList
.
add
(
"一等奖"
);
...
...
@@ -90,7 +80,7 @@ public class LotteryCoreDaoImpl implements LotteryCoreDao {
* 执行抽奖(动态概率核心)
*/
@Override
public
LotteryRecordDto
doDraw
(
Long
recordId
)
{
public
LotteryRecordDto
doDraw
(
Long
recordId
,
LotteryUserInfoDto
userInfo
)
{
LotteryRecord
record
=
lotteryMapper
.
selectById
(
recordId
);
if
(
record
==
null
)
{
throw
new
ParamException
(
RCode
.
LOTTERY_RECORD_NOT_EXIST
);
...
...
@@ -100,11 +90,17 @@ public class LotteryCoreDaoImpl implements LotteryCoreDao {
throw
new
ParamException
(
RCode
.
LOTTERY_RECORD_ERROR
);
}
LotteryUserInfo
lotteryUserInfo
=
new
LotteryUserInfo
();
lotteryUserInfo
=
BeanUtils
.
transitionDto
(
userInfo
,
LotteryUserInfo
.
class
);
lotteryUserInfoMapper
.
insert
(
lotteryUserInfo
);
// 动态概率
int
prizeLevel
=
simpleDynamicPrize
();
record
.
setPrizeLevel
(
prizeLevel
);
lotteryMapper
.
updateById
(
record
);
return
BeanUtils
.
transitionDto
(
record
,
LotteryRecordDto
.
class
);
LotteryRecordDto
result
=
new
LotteryRecordDto
();
result
=
BeanUtils
.
transitionDto
(
record
,
LotteryRecordDto
.
class
);
result
.
setUserInfo
(
userInfo
);
return
result
;
}
/**
...
...
src/main/java/com/wangxiaolu/promotion/domain/lottery/entity/LotteryUserInfo.java
浏览文件 @
0578e7d0
...
...
@@ -18,6 +18,7 @@ public class LotteryUserInfo {
private
String
country
;
private
String
province
;
private
String
city
;
private
String
phone
;
private
Date
createTime
;
private
Date
updateTime
;
private
Integer
isDeleted
;
...
...
src/main/java/com/wangxiaolu/promotion/pojo/lottery/dto/LotteryUserInfoDto.java
0 → 100644
浏览文件 @
0578e7d0
package
com
.
wangxiaolu
.
promotion
.
pojo
.
lottery
.
dto
;
import
lombok.Data
;
/**
* @Author: DouXinYu
* @Date: 2026-04-27 17:25
* @Description:
*/
@Data
public
class
LotteryUserInfoDto
{
private
Long
id
;
private
String
openId
;
private
String
nickName
;
private
String
avatarUrl
;
private
String
gender
;
private
String
language
;
private
String
country
;
private
String
province
;
private
String
city
;
private
String
phone
;
}
src/main/java/com/wangxiaolu/promotion/pojo/lottery/vo/LotteryRecordVo.java
浏览文件 @
0578e7d0
...
...
@@ -3,6 +3,7 @@ package com.wangxiaolu.promotion.pojo.lottery.vo;
import
cn.hutool.system.UserInfo
;
import
com.wangxiaolu.promotion.domain.lottery.entity.LotteryUserInfo
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryUserInfoDto
;
import
lombok.Data
;
import
java.util.List
;
...
...
@@ -47,9 +48,14 @@ public class LotteryRecordVo {
*/
private
String
receiptImageUrl
;
/**
* 微信OpenId
*/
private
String
wxOpenId
;
/**
* 用户信息
*/
private
LotteryUserInfo
userInfo
;
private
LotteryUserInfo
Dto
userInfo
;
}
\ No newline at end of file
src/main/java/com/wangxiaolu/promotion/service/lottery/LotteryCoreService.java
浏览文件 @
0578e7d0
package
com
.
wangxiaolu
.
promotion
.
service
.
lottery
;
import
com.wangxiaolu.promotion.domain.lottery.entity.LotteryUserInfo
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryRecordDto
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryUserInfoDto
;
/**
* @Author: DouXinYu
...
...
@@ -9,7 +9,7 @@ import com.wangxiaolu.promotion.pojo.lottery.dto.LotteryRecordDto;
* @Description:
*/
public
interface
LotteryCoreService
{
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
LotteryUserInfo
userInfo
);
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
String
wxOpenId
);
LotteryRecordDto
doDraw
(
Long
recordId
);
LotteryRecordDto
doDraw
(
Long
recordId
,
LotteryUserInfoDto
userInfo
);
}
src/main/java/com/wangxiaolu/promotion/service/lottery/impl/LotteryCoreServiceImpl.java
浏览文件 @
0578e7d0
...
...
@@ -7,6 +7,7 @@ import com.wangxiaolu.promotion.domain.lottery.entity.LotteryUserInfo;
import
com.wangxiaolu.promotion.domain.lottery.mapper.LotteryMapper
;
import
com.wangxiaolu.promotion.exception.ParamException
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryRecordDto
;
import
com.wangxiaolu.promotion.pojo.lottery.dto.LotteryUserInfoDto
;
import
com.wangxiaolu.promotion.result.basedata.RCode
;
import
com.wangxiaolu.promotion.service.lottery.LotteryCoreService
;
import
org.springframework.beans.factory.annotation.Autowired
;
...
...
@@ -42,16 +43,15 @@ public class LotteryCoreServiceImpl implements LotteryCoreService {
* 1. 初始化:保存位置信息
*/
@Override
public
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
LotteryUserInfo
userInfo
)
{
return
lotteryCoreDao
.
initLottery
(
longitude
,
latitude
,
receiptImage
,
userInfo
);
public
LotteryRecordDto
initLottery
(
Double
longitude
,
Double
latitude
,
String
receiptImage
,
String
wxOpenId
)
{
return
lotteryCoreDao
.
initLottery
(
longitude
,
latitude
,
receiptImage
,
wxOpenId
);
}
/**
* 2. 抽奖:根据地址动态计算概率
*/
@Override
public
LotteryRecordDto
doDraw
(
Long
recordId
)
{
return
lotteryCoreDao
.
doDraw
(
recordId
);
public
LotteryRecordDto
doDraw
(
Long
recordId
,
LotteryUserInfoDto
userInfo
)
{
return
lotteryCoreDao
.
doDraw
(
recordId
,
userInfo
);
}
}
\ No newline at end of file
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论