提交 86140a70 authored 作者: 吕本才's avatar 吕本才

feat(weChatMiniProgram): 完善抽奖活动与用户参与功能,查询活动列表、修改地址、参与抽奖等接口

上级 d0788b80
package com.link.hub.controller.bms;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity;
import com.link.hub.service.weChatMiniProgram.LotteryActivityService;
import com.sfa.common.core.domain.R;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
/**
* 后台管理-抽奖活动
*/
@RestController
@RequestMapping("/manager/query")
public class LotteryActivityQueryManagerController {
@Resource
private LotteryActivityService lotteryActivityService;
/**
* 查询活动列表
* 小程序端查询上线的list
*/
@GetMapping("/activity/list")
public List<LotteryActivity> listActivities() {
List<LotteryActivity> activityList = lotteryActivityService.queryActiveActivityList();
return activityList;
}
/**
* 查询活动列表
* 后台管理查询
*/
@GetMapping("/lottery/page")
public R<?> pageActivities(
@RequestParam(required = false) Integer status,
@RequestParam int pageNum,
@RequestParam int pageSize) {
IPage<LotteryActivity> page = lotteryActivityService.queryActiveActivities(status, pageNum, pageSize);
return R.ok(page);
}
/**
* 查询活动详情
*/
@GetMapping("/{id}")
// @ApiOperation("查询活动详情")
public LotteryActivity getActivityDetail(@PathVariable Long id) {
LotteryActivity activity = lotteryActivityService.getDetailById(id);
return activity;
}
/**
* 创建抽奖活动
*/
@PostMapping("/create")
// @ApiOperation("创建抽奖活动")
public Boolean createActivity(@RequestBody LotteryActivity activity) {
boolean result = lotteryActivityService.createActivity(activity);
return result;
}
/**
* 更新抽奖活动
*/
@PutMapping("/update")
// @ApiOperation("更新抽奖活动")
public Boolean updateActivity(@RequestBody LotteryActivity activity) {
boolean result = lotteryActivityService.updateActivity(activity);
return result;
}
}
...@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -16,6 +16,8 @@ import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource; import javax.annotation.Resource;
/** /**
* 修改接口-参与抽奖、填写抽奖地址、填写用户信息
*
* @author : lvbencai * @author : lvbencai
* @date : 2025-12-10 * @date : 2025-12-10
* @describe : 抽奖查询接口 * @describe : 抽奖查询接口
...@@ -30,7 +32,8 @@ public class LotteryCoreController { ...@@ -30,7 +32,8 @@ public class LotteryCoreController {
/** /**
* 用户参与抽奖活动 * 用户参与抽奖活动
*
* @param lotteryParticipateBo * @param lotteryParticipateBo
* @return * @return
*/ */
...@@ -40,7 +43,8 @@ public class LotteryCoreController { ...@@ -40,7 +43,8 @@ public class LotteryCoreController {
} }
/** /**
* 用户填写抽奖地址信息 * 用户填写-抽奖地址信息
*
* @param lotteryParticipateBo * @param lotteryParticipateBo
* @return * @return
*/ */
...@@ -50,7 +54,8 @@ public class LotteryCoreController { ...@@ -50,7 +54,8 @@ public class LotteryCoreController {
} }
/** /**
* 用户填写抽奖地址信息 * 用户填写用户头像信息
*
* @param mpUserBo * @param mpUserBo
* @return * @return
*/ */
......
package com.link.hub.controller.mp.query; package com.link.hub.controller.mp.query;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity; import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity;
import com.link.hub.service.weChatMiniProgram.LotteryActivityService; import com.link.hub.service.weChatMiniProgram.LotteryActivityService;
import com.sfa.common.core.domain.R;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource; import javax.annotation.Resource;
...@@ -16,7 +14,6 @@ import java.util.List; ...@@ -16,7 +14,6 @@ import java.util.List;
@RestController @RestController
@RequestMapping("/miniProgram/query") @RequestMapping("/miniProgram/query")
public class LotteryActivityQueryController { public class LotteryActivityQueryController {
@Resource @Resource
private LotteryActivityService lotteryActivityService; private LotteryActivityService lotteryActivityService;
...@@ -25,56 +22,18 @@ public class LotteryActivityQueryController { ...@@ -25,56 +22,18 @@ public class LotteryActivityQueryController {
* 小程序端查询上线的list * 小程序端查询上线的list
*/ */
@GetMapping("/lottery/list") @GetMapping("/lottery/list")
public List<LotteryActivity> listActivities( public List<LotteryActivity> listActivities() {
@RequestParam(required = false) Integer status, List<LotteryActivity> activityList = lotteryActivityService.queryActiveActivityList();
@RequestParam int pageNum,
@RequestParam int pageSize) {
List<LotteryActivity> activityList = lotteryActivityService.queryActiveActivityList(status);
return activityList; return activityList;
} }
/**
* 查询活动列表
* 后台管理查询
*/
@GetMapping("/lottery/page")
public R<?> pageActivities(
@RequestParam(required = false) Integer status,
@RequestParam int pageNum,
@RequestParam int pageSize) {
IPage<LotteryActivity> page = lotteryActivityService.queryActiveActivities(status, pageNum, pageSize);
return R.ok(page);
}
/** /**
* 查询活动详情 * 查询活动详情
*/ */
@GetMapping("/{id}") @GetMapping("/activity/info/{id}")
// @ApiOperation("查询活动详情")
public LotteryActivity getActivityDetail(@PathVariable Long id) { public LotteryActivity getActivityDetail(@PathVariable Long id) {
LotteryActivity activity = lotteryActivityService.getDetailById(id); LotteryActivity activity = lotteryActivityService.getDetailById(id);
return activity; return activity;
} }
/**
* 创建抽奖活动
*/
@PostMapping("/create")
// @ApiOperation("创建抽奖活动")
public Boolean createActivity(@RequestBody LotteryActivity activity) {
boolean result = lotteryActivityService.createActivity(activity);
return result;
}
/**
* 更新抽奖活动
*/
@PutMapping("/update")
// @ApiOperation("更新抽奖活动")
public Boolean updateActivity(@RequestBody LotteryActivity activity) {
boolean result = lotteryActivityService.updateActivity(activity);
return result;
}
} }
...@@ -11,6 +11,7 @@ import javax.annotation.Resource; ...@@ -11,6 +11,7 @@ import javax.annotation.Resource;
import java.util.List; import java.util.List;
/** /**
* 抽奖查询接口
* @author : lvbencai * @author : lvbencai
* @date : 2025-12-10 * @date : 2025-12-10
* @describe : 抽奖查询接口 * @describe : 抽奖查询接口
...@@ -23,7 +24,7 @@ public class LotteryParticipateQueryController { ...@@ -23,7 +24,7 @@ public class LotteryParticipateQueryController {
/** /**
* 查询抽奖列表信息 * 查询抽奖公示信息-包含抽奖列表和详情
*/ */
@RequestMapping("/lottery/announcement") @RequestMapping("/lottery/announcement")
public List<LotteryVo> announcementList() { public List<LotteryVo> announcementList() {
...@@ -36,17 +37,17 @@ public class LotteryParticipateQueryController { ...@@ -36,17 +37,17 @@ public class LotteryParticipateQueryController {
* 查询抽奖信息 * 查询抽奖信息
*/ */
@GetMapping("/lottery/info") @GetMapping("/lottery/info")
public LotteryVo info(Long lotteryId) { public LotteryVo info(Long activityId) {
// 查询活动列表 // 查询活动列表
LotteryVo lotteryVo = lotteryParticipateService.queryLotteryInfo(lotteryId); LotteryVo lotteryVo = lotteryParticipateService.queryLotteryInfo(activityId);
return lotteryVo; return lotteryVo;
} }
/** /**
* 查询抽奖历史记录 * 我的-查询抽奖历史记录
*/ */
@RequestMapping("/record") @GetMapping("/lottery/record")
public List<MyLotteryVo> record() { public List<MyLotteryVo> record() {
// 查询活动列表 // 查询活动列表
List<MyLotteryVo> lotteryVos = lotteryParticipateService.queryMyRecord(); List<MyLotteryVo> lotteryVos = lotteryParticipateService.queryMyRecord();
......
...@@ -39,7 +39,7 @@ public class WechatMiniProgramController { ...@@ -39,7 +39,7 @@ public class WechatMiniProgramController {
*/ */
@GetMapping("/query/isSubscribe") @GetMapping("/query/isSubscribe")
public Boolean isSubscribe(String openid) { public Boolean isSubscribe(String openid) {
return wechatOfficeAccountService.isSubscribe(openid); return wechatOfficeAccountService.checkIsSubscribe(openid);
} }
......
...@@ -34,4 +34,5 @@ public interface LotteryActivityDao { ...@@ -34,4 +34,5 @@ public interface LotteryActivityDao {
LotteryActivity selectById(Long activityId); LotteryActivity selectById(Long activityId);
List<LotteryActivity> queryActiveActivityList();
} }
...@@ -61,9 +61,9 @@ public interface LotteryParticipateDao { ...@@ -61,9 +61,9 @@ public interface LotteryParticipateDao {
long countParticipateByActivity(Long activityId); long countParticipateByActivity(Long activityId);
LotteryDto queryLotteryInfo(Long lotteryId);
boolean hasWinning(Long activityId, Long userId);
List<LotteryVo> announcementList(); List<LotteryVo> announcementList();
LotteryDto queryLotteryInfo(LotteryDto dto);
} }
...@@ -48,4 +48,9 @@ public interface LotteryWinningDao { ...@@ -48,4 +48,9 @@ public interface LotteryWinningDao {
* 查询未领取奖品记录 * 查询未领取奖品记录
*/ */
List<LotteryWinning> queryUnreceivedPrizes(Long userId); List<LotteryWinning> queryUnreceivedPrizes(Long userId);
boolean hasWinning(Long activityId, Long userId);
LotteryWinning getWinningDetail(Long activityId, Long userId);
} }
...@@ -8,10 +8,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -8,10 +8,10 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.link.hub.domain.weChatMiniProgram.dao.LotteryActivityDao; import com.link.hub.domain.weChatMiniProgram.dao.LotteryActivityDao;
import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity; import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity;
import com.link.hub.domain.weChatMiniProgram.enums.ActivityStatus;
import com.link.hub.domain.weChatMiniProgram.mapper.LotteryActivityMapper; import com.link.hub.domain.weChatMiniProgram.mapper.LotteryActivityMapper;
import com.link.hub.domain.weChatMiniProgram.wq.LotteryWq; import com.link.hub.domain.weChatMiniProgram.wq.LotteryWq;
import com.link.hub.pojo.mp.dto.LotteryActivityRelDto; import com.link.hub.pojo.mp.dto.LotteryActivityRelDto;
import com.link.hub.pojo.mp.dto.MyLotteryDto;
import com.sfa.common.core.utils.bean.BeanUtils; import com.sfa.common.core.utils.bean.BeanUtils;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
...@@ -42,11 +42,11 @@ public class LotteryActivityDaoImpl implements LotteryActivityDao { ...@@ -42,11 +42,11 @@ public class LotteryActivityDaoImpl implements LotteryActivityDao {
new QueryWrapper<LotteryActivity>() new QueryWrapper<LotteryActivity>()
.lambda() .lambda()
// 状态为进行中 // 状态为进行中
.eq(LotteryActivity::getStatus, 1) .eq(LotteryActivity::getStatus, ActivityStatus.ONGOING.getStatus())
// 开始时间 <= 当前时间 // 开始时间 <= 当前时间
.ge(LotteryActivity::getStartTime, LocalDateTime.now()) .le(LotteryActivity::getStartTime, LocalDateTime.now())
// 结束时间 >= 当前时间 // 结束时间 >= 当前时间
.le(LotteryActivity::getEndTime, LocalDateTime.now()) .ge(LotteryActivity::getEndTime, LocalDateTime.now())
// 未删除 // 未删除
.eq(LotteryActivity::getDeleteFlag, 0) .eq(LotteryActivity::getDeleteFlag, 0)
); );
...@@ -60,9 +60,9 @@ public class LotteryActivityDaoImpl implements LotteryActivityDao { ...@@ -60,9 +60,9 @@ public class LotteryActivityDaoImpl implements LotteryActivityDao {
.lambda() .lambda()
.eq(ObjectUtil.isNotEmpty(wq.getStatus()), LotteryActivity::getStatus, wq.getStatus()) .eq(ObjectUtil.isNotEmpty(wq.getStatus()), LotteryActivity::getStatus, wq.getStatus())
// 开始时间 <= 当前时间 // 开始时间 <= 当前时间
// .ge(LotteryActivity::getStartTime, LocalDateTime.now()) .le(LotteryActivity::getStartTime, LocalDateTime.now())
// 结束时间 >= 当前时间 // 结束时间 >= 当前时间
// .le(LotteryActivity::getEndTime, LocalDateTime.now()) .ge(LotteryActivity::getEndTime, LocalDateTime.now())
.eq(LotteryActivity::getDeleteFlag, 0) .eq(LotteryActivity::getDeleteFlag, 0)
.orderByDesc(LotteryActivity::getCreateTime) .orderByDesc(LotteryActivity::getCreateTime)
); );
...@@ -102,6 +102,29 @@ public class LotteryActivityDaoImpl implements LotteryActivityDao { ...@@ -102,6 +102,29 @@ public class LotteryActivityDaoImpl implements LotteryActivityDao {
} }
/**
* 查询活动列表
* @return
*/
@Override
public List<LotteryActivity> queryActiveActivityList() {
// 调用 MyBatis Mapper 方法
List<LotteryActivity> lotteryActivities = lotteryActivityMapper.selectList(
new QueryWrapper<LotteryActivity>()
.lambda()
// 状态为进行中
.eq(LotteryActivity::getStatus, ActivityStatus.ONGOING.getStatus())
// 开始时间 <= 当前时间
.le(LotteryActivity::getStartTime, LocalDateTime.now())
// 结束时间 >= 当前时间
.ge(LotteryActivity::getEndTime, LocalDateTime.now())
// 未删除
.eq(LotteryActivity::getDeleteFlag, 0)
.orderByDesc(LotteryActivity::getCreateTime)
);
return lotteryActivities;
}
private Wrapper<LotteryActivity> getWrapper(LotteryWq wq) { private Wrapper<LotteryActivity> getWrapper(LotteryWq wq) {
LambdaQueryWrapper<LotteryActivity> lotteryActivityLambdaQueryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LotteryActivity> lotteryActivityLambdaQueryWrapper = new LambdaQueryWrapper<>();
......
package com.link.hub.domain.weChatMiniProgram.dao.impl; package com.link.hub.domain.weChatMiniProgram.dao.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.link.hub.domain.weChatMiniProgram.dao.LotteryParticipateDao; import com.link.hub.domain.weChatMiniProgram.dao.LotteryParticipateDao;
...@@ -32,21 +33,21 @@ public class LotteryParticipateDaoImpl implements LotteryParticipateDao { ...@@ -32,21 +33,21 @@ public class LotteryParticipateDaoImpl implements LotteryParticipateDao {
@Override @Override
public List<LotteryParticipate> queryList(LotteryParticipateWq wq) { public List<LotteryParticipate> queryList(LotteryParticipateWq wq) {
QueryWrapper<LotteryParticipate> wrapper = new QueryWrapper<>(); LambdaQueryWrapper<LotteryParticipate> wrapper = new LambdaQueryWrapper<>();
if (wq.getActivityId() != null) { if (wq.getActivityId() != null) {
wrapper.eq("activity_id", wq.getActivityId()); wrapper.eq(LotteryParticipate::getActivityId, wq.getActivityId());
} }
if (wq.getUserId() != null) { if (wq.getUserId() != null) {
wrapper.eq("user_id", wq.getUserId()); wrapper.eq(LotteryParticipate::getUserId, wq.getUserId());
} }
if (wq.getParticipateTimeStart() != null && wq.getParticipateTimeEnd() != null) { if (wq.getParticipateTimeStart() != null && wq.getParticipateTimeEnd() != null) {
wrapper.between("participate_time", wq.getParticipateTimeStart(), wq.getParticipateTimeEnd()); wrapper.between(LotteryParticipate::getParticipateTime, wq.getParticipateTimeStart(), wq.getParticipateTimeEnd());
} }
if (wq.getSource() != null) { if (wq.getSource() != null) {
wrapper.eq("source", wq.getSource()); wrapper.eq(LotteryParticipate::getSource, wq.getSource());
} }
wrapper.eq("delete_flag", wq.getDeleteFlag()); wrapper.eq(LotteryParticipate::getDeleteFlag, wq.getDeleteFlag());
return lotteryParticipateMapper.selectList(wrapper); return lotteryParticipateMapper.selectList(wrapper);
} }
...@@ -127,27 +128,21 @@ public class LotteryParticipateDaoImpl implements LotteryParticipateDao { ...@@ -127,27 +128,21 @@ public class LotteryParticipateDaoImpl implements LotteryParticipateDao {
* @return * @return
*/ */
@Override @Override
public LotteryDto queryLotteryInfo(Long lotteryId) { public LotteryDto queryLotteryInfo(LotteryDto dto) {
// 查询我的抽奖信息 // 查询我的抽奖信息
LambdaQueryWrapper<LotteryParticipate> wrapper =new LambdaQueryWrapper<LotteryParticipate>(); LambdaQueryWrapper<LotteryParticipate> wrapper =new LambdaQueryWrapper<LotteryParticipate>();
wrapper.eq(LotteryParticipate::getId, lotteryId); wrapper.eq(ObjectUtil.isNotEmpty(dto.getActivityId()),LotteryParticipate::getActivityId, dto.getActivityId());
wrapper.eq(LotteryParticipate::getUserId, dto.getUserId());
LotteryParticipate lotteryParticipate = lotteryParticipateMapper.selectOne(wrapper); LotteryParticipate lotteryParticipate = lotteryParticipateMapper.selectOne(wrapper);
if (lotteryParticipate == null) {
return null;
}
LotteryDto myLotteryDto = LotteryDto.convert(lotteryParticipate); LotteryDto myLotteryDto = LotteryDto.convert(lotteryParticipate);
return myLotteryDto; return myLotteryDto;
} }
@Override
public boolean hasWinning(Long activityId, Long userId) {
// 获取中奖信息
LambdaQueryWrapper<LotteryParticipate> wrapper =new LambdaQueryWrapper<LotteryParticipate>();
wrapper.eq(LotteryParticipate::getActivityId, activityId)
.eq(LotteryParticipate::getUserId, userId)
.eq(LotteryParticipate::getLotteryStatus, 1);
return false;
}
@Override @Override
public List<LotteryVo> announcementList() { public List<LotteryVo> announcementList() {
......
...@@ -86,4 +86,25 @@ public class LotteryWinningDaoImpl implements LotteryWinningDao { ...@@ -86,4 +86,25 @@ public class LotteryWinningDaoImpl implements LotteryWinningDao {
.eq(LotteryWinning::getDeleteFlag, 0); .eq(LotteryWinning::getDeleteFlag, 0);
return lotteryWinningMapper.selectList(wrapper); return lotteryWinningMapper.selectList(wrapper);
} }
@Override
public boolean hasWinning(Long activityId, Long userId) {
// 获取
LambdaQueryWrapper<LotteryWinning> wrapper =new LambdaQueryWrapper<LotteryWinning>();
wrapper.eq(LotteryWinning::getActivityId, activityId)
.eq(LotteryWinning::getUserId, userId);
if (lotteryWinningMapper.selectCount(wrapper) > 0) {
return true;
}
return false;
}
@Override
public LotteryWinning getWinningDetail(Long activityId, Long userId) {
LambdaQueryWrapper<LotteryWinning> wrapper =new LambdaQueryWrapper<LotteryWinning>();
wrapper.eq(LotteryWinning::getActivityId, activityId)
.eq(LotteryWinning::getUserId, userId)
.eq(LotteryWinning::getDeleteFlag, 0);
return lotteryWinningMapper.selectOne(wrapper);
}
} }
...@@ -3,10 +3,11 @@ package com.link.hub.domain.weChatMiniProgram.entity; ...@@ -3,10 +3,11 @@ package com.link.hub.domain.weChatMiniProgram.entity;
import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime;
import java.util.Date; import java.util.Date;
import java.util.Map;
/** /**
* 抽奖活动配置实体类 * 抽奖活动配置实体类
...@@ -33,12 +34,20 @@ public class LotteryActivity { ...@@ -33,12 +34,20 @@ public class LotteryActivity {
/** /**
* 活动开始时间 * 活动开始时间
*/ */
private Date startTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime startTime;
/** /**
* 活动结束时间 * 活动结束时间
*/ */
private Date endTime; @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime endTime;
/**
* 开奖时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
private LocalDateTime lotteryTime;
/** /**
* 活动状态:0-未开始 1-进行中 2-已结束 3-已下架 * 活动状态:0-未开始 1-进行中 2-已结束 3-已下架
...@@ -60,11 +69,6 @@ public class LotteryActivity { ...@@ -60,11 +69,6 @@ public class LotteryActivity {
*/ */
private Long totalParticipate; private Long totalParticipate;
/**
* 扩展字段(JSON格式)
*/
private Map<String, Object> extJson;
/** /**
* 创建时间 * 创建时间
*/ */
...@@ -77,6 +81,7 @@ public class LotteryActivity { ...@@ -77,6 +81,7 @@ public class LotteryActivity {
// @TableField(fill = FieldFill.INSERT_UPDATE) // @TableField(fill = FieldFill.INSERT_UPDATE)
private Date updateTime; private Date updateTime;
/** /**
* 创建人 * 创建人
*/ */
......
...@@ -21,6 +21,16 @@ public class LotteryParticipate { ...@@ -21,6 +21,16 @@ public class LotteryParticipate {
@TableId(type = IdType.AUTO) @TableId(type = IdType.AUTO)
private Long id; private Long id;
/**
* 活动标题
*/
private String title;
/**
* 活动开奖时间
*/
private LocalDateTime lotteryTime;
/** /**
* 关联活动ID * 关联活动ID
*/ */
...@@ -32,8 +42,9 @@ public class LotteryParticipate { ...@@ -32,8 +42,9 @@ public class LotteryParticipate {
private Long userId; private Long userId;
/** /**
* 抽奖状态 * 抽奖状态
* 0-未参与 1-已参与(待开奖) 2-未中奖, 3-已中奖 4、未填写收获地址 5已填写-待发货 6已发货 * 1 已参与(待开奖) 2未中奖, 3已中奖 -未填写收获地址 4已中奖-已填写待发货 5已中奖-已发货 6已中奖-未领奖
*/ * @see com.link.hub.domain.weChatMiniProgram.enums.LotteryStatusEnum
*/
private Integer lotteryStatus; private Integer lotteryStatus;
/** /**
...@@ -89,12 +100,14 @@ public class LotteryParticipate { ...@@ -89,12 +100,14 @@ public class LotteryParticipate {
lotteryParticipate.setActivityId(dto.getActivityId()); lotteryParticipate.setActivityId(dto.getActivityId());
lotteryParticipate.setUserId(dto.getUserId()); lotteryParticipate.setUserId(dto.getUserId());
// 默认状态为1 已参与待开奖 // 默认状态为1 已参与待开奖
lotteryParticipate.setLotteryStatus(1); lotteryParticipate.setLotteryStatus(1);
lotteryParticipate.setParticipateTime(LocalDateTime.now()); lotteryParticipate.setParticipateTime(LocalDateTime.now());
lotteryParticipate.setIpAddress(dto.getIpAddress()); lotteryParticipate.setIpAddress(dto.getIpAddress());
lotteryParticipate.setDeviceInfo(dto.getDeviceInfo()); lotteryParticipate.setDeviceInfo(dto.getDeviceInfo());
lotteryParticipate.setSource(dto.getSource()); lotteryParticipate.setSource(dto.getSource());
lotteryParticipate.setTitle(dto.getTitle());
lotteryParticipate.setLotteryTime(dto.getLotteryTime());
return lotteryParticipate; return lotteryParticipate;
} }
} }
...@@ -42,16 +42,15 @@ public class LotteryWinning { ...@@ -42,16 +42,15 @@ public class LotteryWinning {
* 是否领奖:0-未领奖 1-已领奖 2-已作废 * 是否领奖:0-未领奖 1-已领奖 2-已作废
*/ */
private Integer isReceive; private Integer isReceive;
/** /**
* 领奖时间 * 领奖物流单号
*/ */
private LocalDateTime receiveTime; private String logisticsNumber;
/** /**
* 扩展字段(如领奖地址、备注) * 领奖时间
*/ */
private String extJson; private LocalDateTime receiveTime;
/** /**
* 创建时间 * 创建时间
...@@ -81,11 +80,19 @@ public class LotteryWinning { ...@@ -81,11 +80,19 @@ public class LotteryWinning {
@TableLogic @TableLogic
private Integer deleteFlag; private Integer deleteFlag;
/**
* 中奖物品名称
*/
private String prizeName;
/**
* 中奖等级:1-一等奖 2-二等奖 3-三等奖
*/
private Integer winningLevel;
/**
* 中奖奖品图片URL
*/
private String prizeImg;
public static LotteryWinning convert(LotteryWinningDto lotteryWinningDto) { public static LotteryWinning convert(LotteryWinningDto lotteryWinningDto) {
if (lotteryWinningDto == null) {
return null;
}
LotteryWinning lotteryWinning = new LotteryWinning(); LotteryWinning lotteryWinning = new LotteryWinning();
lotteryWinning.setId(lotteryWinningDto.getId()); lotteryWinning.setId(lotteryWinningDto.getId());
...@@ -95,7 +102,6 @@ public class LotteryWinning { ...@@ -95,7 +102,6 @@ public class LotteryWinning {
lotteryWinning.setWinningTime(lotteryWinningDto.getWinningTime()); lotteryWinning.setWinningTime(lotteryWinningDto.getWinningTime());
lotteryWinning.setIsReceive(lotteryWinningDto.getIsReceive()); lotteryWinning.setIsReceive(lotteryWinningDto.getIsReceive());
lotteryWinning.setReceiveTime(lotteryWinningDto.getReceiveTime()); lotteryWinning.setReceiveTime(lotteryWinningDto.getReceiveTime());
lotteryWinning.setExtJson(lotteryWinningDto.getExtJson());
return lotteryWinning; return lotteryWinning;
} }
} }
......
package com.link.hub.domain.weChatMiniProgram.entity; package com.link.hub.domain.weChatMiniProgram.entity;
import cn.hutool.crypto.digest.DigestUtil;
import com.baomidou.mybatisplus.annotation.*; import com.baomidou.mybatisplus.annotation.*;
import com.link.hub.pojo.mp.bo.LotteryWinningAddresssBo; import com.link.hub.pojo.mp.bo.LotteryWinningAddresssBo;
import com.sfa.common.security.utils.SecurityUtils;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
/** /**
...@@ -31,6 +34,10 @@ public class LotteryWinningAddress { ...@@ -31,6 +34,10 @@ public class LotteryWinningAddress {
* 关联用户ID(便于查询用户所有地址) * 关联用户ID(便于查询用户所有地址)
*/ */
private Long userId; private Long userId;
/**
* 物流单号
*/
private String logisticsNumber;
/** /**
* 收货地址-省 * 收货地址-省
...@@ -41,6 +48,10 @@ public class LotteryWinningAddress { ...@@ -41,6 +48,10 @@ public class LotteryWinningAddress {
* 收货地址-市 * 收货地址-市
*/ */
private String city; private String city;
/**
* 收货地址-区县
*/
private String district;
/** /**
* 收货地址-详细地址(区/街道/门牌号) * 收货地址-详细地址(区/街道/门牌号)
...@@ -92,16 +103,22 @@ public class LotteryWinningAddress { ...@@ -92,16 +103,22 @@ public class LotteryWinningAddress {
public static LotteryWinningAddress create(LotteryWinningAddresssBo lotteryParticipateBo) { public static LotteryWinningAddress create(LotteryWinningAddresssBo lotteryParticipateBo) {
LotteryWinningAddress address= new LotteryWinningAddress(); LotteryWinningAddress address= new LotteryWinningAddress();
// 编辑时有id // 编辑时有id 则为修改操作
address.setId(lotteryParticipateBo.getId()); if (lotteryParticipateBo.getId() != null) {
address.setId(lotteryParticipateBo.getId());
}
address.setActivityId(lotteryParticipateBo.getActivityId()); address.setActivityId(lotteryParticipateBo.getActivityId());
address.setUserId(lotteryParticipateBo.getUserId()); address.setUserId(SecurityUtils.getUserId());
address.setProvince(lotteryParticipateBo.getProvince()); address.setProvince(lotteryParticipateBo.getProvince());
address.setCity(lotteryParticipateBo.getCity()); address.setCity(lotteryParticipateBo.getCity());
address.setDistrict(lotteryParticipateBo.getDistrict());
address.setDetailAddress(lotteryParticipateBo.getDetailAddress()); address.setDetailAddress(lotteryParticipateBo.getDetailAddress());
address.setReceiverName(lotteryParticipateBo.getReceiverName()); address.setReceiverName(lotteryParticipateBo.getReceiverName());
address.setReceiverPhone(lotteryParticipateBo.getReceiverPhone()); // 手机号加密存储
String boReceiverPhone = lotteryParticipateBo.getReceiverPhone();
String encryptedPhone = DigestUtil.md5(boReceiverPhone, "UTF-8").toString();
address.setReceiverPhone(encryptedPhone);
address.setIsDefault(lotteryParticipateBo.getIsDefault()); address.setIsDefault(lotteryParticipateBo.getIsDefault());
return address; return address;
......
package com.link.hub.domain.weChatMiniProgram.enums;
/**
* 活动状态
*/
//@Data
public enum ActivityStatus {
/**
* 待开始
*/
WAITING(0),
/**
* 进行中
*/
ONGOING(1),
/**
* 已结束
*/
ENDED(2);
private Integer status;
private ActivityStatus(Integer status) {
this.status = status;
}
public Integer getStatus() {
return status;
}
}
package com.link.hub.domain.weChatMiniProgram.enums;
import lombok.AllArgsConstructor;
import lombok.Getter;
/**
* 抽奖活动状态枚举
*/
@Getter
@AllArgsConstructor
public enum LotteryStatusEnum {
/**
* 0未参与 1 已参与(待开奖) 2未中奖
* 3已中奖-未填写收获地址 4已中奖-已填写待发货
* 5已中奖-已发货 6已中奖-未领奖 7已中奖-已领奖
*/
NOT_PARTICIPATED(0, "未参与", false),
PARTICIPATED_PENDING(1, "已参与(待开奖)", false),
NOT_WIN(2, "未中奖", false),
WIN_NO_ADDRESS(3, "已中奖-未填写收获地址", true),
WIN_PENDING_SHIPMENT(4, "已中奖-已填写待发货", true),
WIN_SHIPPED(5, "已中奖-已发货", true),
WIN_NOT_RECEIVED(6, "已中奖-未领奖", true);
/**
* 状态码
*/
private final Integer code;
/**
* 状态描述
*/
private final String desc;
/**
* 是否中奖
*/
private final boolean isWinning;
/**
* 根据状态码获取枚举
*/
public static LotteryStatusEnum getEnumByCode(Integer code) {
for (LotteryStatusEnum status : values()) {
if (status.code.equals(code)) {
return status;
}
}
return null;
}
}
...@@ -132,6 +132,7 @@ public class WechatOfficialAccountUserDaoImpl implements WechatOfficialAccountUs ...@@ -132,6 +132,7 @@ public class WechatOfficialAccountUserDaoImpl implements WechatOfficialAccountUs
private LambdaQueryWrapper<WechatOfficialAccountUser> buildWrapper(WeChatOaUserQueryWq wq) { private LambdaQueryWrapper<WechatOfficialAccountUser> buildWrapper(WeChatOaUserQueryWq wq) {
LambdaQueryWrapper<WechatOfficialAccountUser> queryWrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<WechatOfficialAccountUser> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ObjectUtil.isNotEmpty(wq.getUnionid()),WechatOfficialAccountUser::getUnionid, wq.getUnionid()); queryWrapper.eq(ObjectUtil.isNotEmpty(wq.getUnionid()),WechatOfficialAccountUser::getUnionid, wq.getUnionid());
queryWrapper.eq(ObjectUtil.isNotEmpty(wq.getOpenid()),WechatOfficialAccountUser::getOpenid, wq.getOpenid()); queryWrapper.eq(ObjectUtil.isNotEmpty(wq.getOpenid()),WechatOfficialAccountUser::getOpenid, wq.getOpenid());
return queryWrapper; return queryWrapper;
} }
......
...@@ -3,6 +3,7 @@ package com.link.hub.pojo.mp.bo; ...@@ -3,6 +3,7 @@ package com.link.hub.pojo.mp.bo;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
/** /**
* 用户参与抽奖BO类 * 用户参与抽奖BO类
...@@ -15,6 +16,18 @@ public class LotteryParticipateBo { ...@@ -15,6 +16,18 @@ public class LotteryParticipateBo {
@NotNull(message = "活动ID不能为空") @NotNull(message = "活动ID不能为空")
private Long activityId; private Long activityId;
/**
* 活动标题
*/
private String title;
/**
* 活动开奖时间
*/
private LocalDateTime lotteryTime;
/** /**
* 关联用户ID * 关联用户ID
*/ */
......
...@@ -17,12 +17,6 @@ public class LotteryWinningAddresssBo { ...@@ -17,12 +17,6 @@ public class LotteryWinningAddresssBo {
@NotNull(message = "活动ID不能为空") @NotNull(message = "活动ID不能为空")
private Long activityId; private Long activityId;
/**
* 关联用户ID
*/
@NotNull(message = "用户ID不能为空")
private Long userId;
/** /**
* 收货地址-省 * 收货地址-省
*/ */
......
...@@ -8,6 +8,7 @@ import com.sfa.common.security.utils.SecurityUtils; ...@@ -8,6 +8,7 @@ import com.sfa.common.security.utils.SecurityUtils;
import lombok.Data; import lombok.Data;
import javax.validation.constraints.NotNull; import javax.validation.constraints.NotNull;
import java.time.LocalDateTime;
/** /**
* 用户参与抽奖记录DTO类 * 用户参与抽奖记录DTO类
...@@ -40,16 +41,28 @@ public class LotteryParticipateDto { ...@@ -40,16 +41,28 @@ public class LotteryParticipateDto {
* 参与来源:1微信小程序2抖音小程序 * 参与来源:1微信小程序2抖音小程序
*/ */
private Integer source; private Integer source;
/**
* 活动标题
*/
private String title;
/**
* 活动开奖时间
*/
private LocalDateTime lotteryTime;
// 核心业务规则:创建订单(封装状态初始化、金额计算) // 核心业务规则:创建订单(封装状态初始化、金额计算)
public static LotteryParticipateDto create(LotteryParticipateBo participateBo ) { public static LotteryParticipateDto convert(LotteryParticipateBo participateBo ) {
LotteryParticipateDto dto = new LotteryParticipateDto(); LotteryParticipateDto dto = new LotteryParticipateDto();
dto.setActivityId(participateBo.getActivityId()); dto.setActivityId(participateBo.getActivityId());
dto.setUserId(SecurityUtils.getUserId()); dto.setUserId(SecurityUtils.getUserId());
dto.setSource(ObjectUtil.defaultIfNull(participateBo.getSource(), SourceEnum.WECHAT_MINI_PROGRAM.getCode())); dto.setSource(ObjectUtil.defaultIfNull(participateBo.getSource(), SourceEnum.WECHAT_MINI_PROGRAM.getCode()));
dto.setIpAddress(IpUtils.getIpAddr()); dto.setIpAddress(IpUtils.getIpAddr());
dto.setLotteryTime(participateBo.getLotteryTime());
dto.setTitle(participateBo.getTitle());
return dto; return dto;
} }
} }
...@@ -45,10 +45,7 @@ public class LotteryWinningDto { ...@@ -45,10 +45,7 @@ public class LotteryWinningDto {
*/ */
private LocalDateTime receiveTime; private LocalDateTime receiveTime;
/**
* 扩展字段(如领奖地址、备注)
*/
private String extJson;
/** /**
* 创建时间 * 创建时间
...@@ -91,7 +88,6 @@ public class LotteryWinningDto { ...@@ -91,7 +88,6 @@ public class LotteryWinningDto {
dto.setWinningTime(entity.getWinningTime()); dto.setWinningTime(entity.getWinningTime());
dto.setIsReceive(entity.getIsReceive()); dto.setIsReceive(entity.getIsReceive());
dto.setReceiveTime(entity.getReceiveTime()); dto.setReceiveTime(entity.getReceiveTime());
dto.setExtJson(entity.getExtJson());
dto.setCreateTime(entity.getCreateTime()); dto.setCreateTime(entity.getCreateTime());
dto.setUpdateTime(entity.getUpdateTime()); dto.setUpdateTime(entity.getUpdateTime());
dto.setCreateBy(entity.getCreateBy()); dto.setCreateBy(entity.getCreateBy());
...@@ -117,7 +113,6 @@ public class LotteryWinningDto { ...@@ -117,7 +113,6 @@ public class LotteryWinningDto {
entity.setWinningTime(dto.getWinningTime()); entity.setWinningTime(dto.getWinningTime());
entity.setIsReceive(dto.getIsReceive()); entity.setIsReceive(dto.getIsReceive());
entity.setReceiveTime(dto.getReceiveTime()); entity.setReceiveTime(dto.getReceiveTime());
entity.setExtJson(dto.getExtJson());
entity.setCreateTime(dto.getCreateTime()); entity.setCreateTime(dto.getCreateTime());
entity.setUpdateTime(dto.getUpdateTime()); entity.setUpdateTime(dto.getUpdateTime());
entity.setCreateBy(dto.getCreateBy()); entity.setCreateBy(dto.getCreateBy());
......
package com.link.hub.pojo.mp.vo; package com.link.hub.pojo.mp.vo;
import com.link.hub.domain.weChatMiniProgram.entity.LotteryParticipate;
import com.link.hub.domain.weChatMiniProgram.enums.SourceEnum;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -38,4 +40,13 @@ public class LotteryParticipateVo { ...@@ -38,4 +40,13 @@ public class LotteryParticipateVo {
* 参与来源名称 * 参与来源名称
*/ */
private String sourceName; private String sourceName;
public static LotteryParticipateVo convert(LotteryParticipate participate) {
LotteryParticipateVo vo = new LotteryParticipateVo();
vo.setId(participate.getId());
vo.setActivityId(participate.getActivityId());
vo.setParticipateTime(participate.getParticipateTime());
vo.setSourceName(SourceEnum.getSourceName(participate.getSource()));
return vo;
}
} }
...@@ -34,6 +34,10 @@ public class LotteryVo { ...@@ -34,6 +34,10 @@ public class LotteryVo {
private Integer status; private Integer status;
/**
* 未参与抽奖
* @return
*/
public static LotteryVo convertNoParticipate() { public static LotteryVo convertNoParticipate() {
LotteryVo lotteryVo = new LotteryVo(); LotteryVo lotteryVo = new LotteryVo();
lotteryVo.setStatus(0); lotteryVo.setStatus(0);
......
...@@ -2,7 +2,8 @@ package com.link.hub.pojo.mp.vo; ...@@ -2,7 +2,8 @@ package com.link.hub.pojo.mp.vo;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.annotation.JsonInclude;
import com.link.hub.pojo.mp.dto.MyLotteryDto; import com.link.hub.domain.weChatMiniProgram.entity.LotteryParticipate;
import com.link.hub.domain.weChatMiniProgram.enums.LotteryStatusEnum;
import lombok.Data; import lombok.Data;
import java.time.LocalDateTime; import java.time.LocalDateTime;
...@@ -14,7 +15,7 @@ public class MyLotteryVo { ...@@ -14,7 +15,7 @@ public class MyLotteryVo {
*/ */
private Long id; private Long id;
/** /**
* 抽奖名称 * 抽奖活动名称
*/ */
private String title; private String title;
/** /**
...@@ -37,7 +38,6 @@ public class MyLotteryVo { ...@@ -37,7 +38,6 @@ public class MyLotteryVo {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime endTime; private LocalDateTime endTime;
/** /**
* 关联活动ID * 关联活动ID
*/ */
...@@ -49,26 +49,46 @@ public class MyLotteryVo { ...@@ -49,26 +49,46 @@ public class MyLotteryVo {
private Long userId; private Long userId;
/** /**
* 抽奖状态 * 抽奖状态
* 0-未参与 1-已参与(待开奖) 2-未中奖, 3-已中奖 4、未填写收获地址 5已填写-待发货 6已发货 * 0未参与 1 已参与(待开奖) 2未中奖, 3已中奖 -未填写收获地址 4已中奖-已填写待发货 5已中奖-已发货 6已中奖-未领奖
* @see LotteryStatusEnum
*/ */
private Integer lotteryStatus; private Integer lotteryStatus;
public static MyLotteryVo convert(MyLotteryDto myLotteryDto) { /**
* 开奖时间
* @param participate
* @return
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lotteryTime;
/**
* 中奖奖品名称
*/
private String lotteryPrizeName;
/**
* 中奖奖品图片
*/
private String lotteryPrizeImg;
/**
* 中奖等级
*/
private Integer winningLevel;
/**
* 物流单号
*/
private String logisticsNumber;
public static MyLotteryVo convert4LotteryParticipate(LotteryParticipate participate) {
MyLotteryVo vo = new MyLotteryVo();
vo.setId(participate.getId());
vo.setActivityId(participate.getActivityId());
vo.setUserId(participate.getUserId());
vo.setLotteryStatus(participate.getLotteryStatus());
vo.setLotteryTime(participate.getLotteryTime());
vo.setTitle(participate.getTitle());
MyLotteryVo myLotteryVo = new MyLotteryVo(); return vo;
if(myLotteryDto == null){
}
myLotteryVo.setId(myLotteryDto.getId());
myLotteryVo.setTitle(myLotteryDto.getTitle());
myLotteryVo.setDescription(myLotteryDto.getDescription());
myLotteryVo.setCoverImg(myLotteryDto.getCoverImg());
myLotteryVo.setStartTime(myLotteryDto.getStartTime());
myLotteryVo.setEndTime(myLotteryDto.getEndTime());
myLotteryVo.setActivityId(myLotteryDto.getActivityId());
myLotteryVo.setUserId(myLotteryDto.getUserId());
myLotteryVo.setLotteryStatus(myLotteryDto.getLotteryStatus());
myLotteryVo.setCoverImg(myLotteryDto.getCoverImg());
return myLotteryVo ;
} }
} }
...@@ -5,7 +5,7 @@ import com.link.hub.pojo.oa.dto.WechatOaUserDto; ...@@ -5,7 +5,7 @@ import com.link.hub.pojo.oa.dto.WechatOaUserDto;
import java.util.List; import java.util.List;
public interface WechatOfficeAccountService { public interface WechatOfficeAccountService {
Boolean isSubscribe(String openid); Boolean checkIsSubscribe(String openid);
List<String> getUserList(String nextOpenId); List<String> getUserList(String nextOpenId);
......
...@@ -14,6 +14,7 @@ import com.link.hub.service.officeAccount.WechatOfficeAccountService; ...@@ -14,6 +14,7 @@ import com.link.hub.service.officeAccount.WechatOfficeAccountService;
import com.link.hub.service.officeAccount.WechatOfficialAccountUserService; import com.link.hub.service.officeAccount.WechatOfficialAccountUserService;
import com.link.hub.service.weChatMiniProgram.WechatMiniProgramUserService; import com.link.hub.service.weChatMiniProgram.WechatMiniProgramUserService;
import com.link.hub.util.WeChatPlatFormUtils; import com.link.hub.util.WeChatPlatFormUtils;
import com.sfa.common.core.exception.ServiceException;
import com.sfa.common.redis.service.RedisService; import com.sfa.common.redis.service.RedisService;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
...@@ -42,9 +43,13 @@ public class WechatOfficeAccountServiceServiceImpl implements WechatOfficeAccoun ...@@ -42,9 +43,13 @@ public class WechatOfficeAccountServiceServiceImpl implements WechatOfficeAccoun
private WeChatOfficeAccountConfig accountConfig; private WeChatOfficeAccountConfig accountConfig;
/**
* 检查用户是否关注公众号
* @param openid
* @return
*/
@Override @Override
public Boolean isSubscribe(String openid) { public Boolean checkIsSubscribe(String openid) {
// 使用 openid openid查询小程序用户 // 使用 openid openid查询小程序用户
WeChatMpUserDto dto = new WeChatMpUserDto(); WeChatMpUserDto dto = new WeChatMpUserDto();
...@@ -52,18 +57,20 @@ public class WechatOfficeAccountServiceServiceImpl implements WechatOfficeAccoun ...@@ -52,18 +57,20 @@ public class WechatOfficeAccountServiceServiceImpl implements WechatOfficeAccoun
WechatMiniProgramUser user = miniProgramUserService.queryMiniProgramUserOne(dto); WechatMiniProgramUser user = miniProgramUserService.queryMiniProgramUserOne(dto);
log.info("unionid: {}", user); log.info("unionid: {}", user);
// // 使用unionid查询微信公众号用户 if (user == null || user.getUnionid() == null) {
log.error("用户未关联小程序,openid: {}", openid);
throw new ServiceException("小程序用户错误");
}
// 使用unionid查询微信公众号用户
WeChatOaUserQueryDto oaUserDto = new WeChatOaUserQueryDto(); WeChatOaUserQueryDto oaUserDto = new WeChatOaUserQueryDto();
oaUserDto.setUnionid(user.getUnionid()); oaUserDto.setUnionid(user.getUnionid());
WechatOfficialAccountUser wechatOfficialAccountUser = oaUserService.selectOne(oaUserDto); WechatOfficialAccountUser wechatOfficialAccountUser = oaUserService.selectOne(oaUserDto);
if (wechatOfficialAccountUser == null) { if (wechatOfficialAccountUser == null) {
log.error("用户还未关注公众号,openid: {},unionid: {}", openid,user.getUnionid()); log.error("用户还未关注公众号,openid: {},unionid: {}", openid,user.getUnionid());
// throw new ServiceException("用户还未关注公众号");
return false; return false;
} }
if(wechatOfficialAccountUser.getSubscribeStatus() == 0){ if(wechatOfficialAccountUser.getSubscribeStatus() == 0){
log.error("用户未关注公众号,状态是未关注,openid: {},unionid: {}", openid,user.getUnionid()); log.error("用户未关注公众号,状态是未关注,openid: {},unionid: {}", openid,user.getUnionid());
// throw new ServiceException("用户未关联公众号");
return false; return false;
} }
......
...@@ -112,6 +112,9 @@ public class WechatOfficialAccountUserServiceImpl ...@@ -112,6 +112,9 @@ public class WechatOfficialAccountUserServiceImpl
@Override @Override
public WechatOfficialAccountUser selectOne(WeChatOaUserQueryDto oaUserDto) { public WechatOfficialAccountUser selectOne(WeChatOaUserQueryDto oaUserDto) {
if (oaUserDto == null || (oaUserDto.getOpenid() == null && oaUserDto.getUnionid() == null)) {
return null;
}
WeChatOaUserQueryWq wq = new WeChatOaUserQueryWq(); WeChatOaUserQueryWq wq = new WeChatOaUserQueryWq();
wq.setUnionid(oaUserDto.getUnionid()); wq.setUnionid(oaUserDto.getUnionid());
......
...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage; ...@@ -4,7 +4,6 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity; import com.link.hub.domain.weChatMiniProgram.entity.LotteryActivity;
import com.link.hub.pojo.mp.vo.LotteryVo; import com.link.hub.pojo.mp.vo.LotteryVo;
import com.link.hub.pojo.mp.vo.MyLotteryVo;
import java.util.List; import java.util.List;
...@@ -41,7 +40,7 @@ public interface LotteryActivityService extends IService<LotteryActivity> { ...@@ -41,7 +40,7 @@ public interface LotteryActivityService extends IService<LotteryActivity> {
* @return 是否成功 * @return 是否成功
*/ */
boolean updateActivity(LotteryActivity activity); boolean updateActivity(LotteryActivity activity);
List<LotteryActivity> queryActiveActivityList(Integer status); List<LotteryActivity> queryActiveActivityList();
List<LotteryVo> queryList(); List<LotteryVo> queryList();
......
...@@ -49,7 +49,7 @@ public interface LotteryParticipateService extends IService<LotteryParticipate> ...@@ -49,7 +49,7 @@ public interface LotteryParticipateService extends IService<LotteryParticipate>
List<MyLotteryVo> queryMyRecord(); List<MyLotteryVo> queryMyRecord();
LotteryVo queryLotteryInfo(Long lotteryId); LotteryVo queryLotteryInfo(Long activityId);
List<LotteryVo> queryList(); List<LotteryVo> queryList();
......
...@@ -64,5 +64,5 @@ public interface LotteryWinningAddressService extends IService<LotteryWinningAdd ...@@ -64,5 +64,5 @@ public interface LotteryWinningAddressService extends IService<LotteryWinningAdd
*/ */
LotteryWinningAddress getDefaultAddress(Long userId); LotteryWinningAddress getDefaultAddress(Long userId);
LotteryWinningAddress hasAddressFilled(Long activityId, Long userId); LotteryWinningAddress selectAddressOne(Long activityId, Long userId);
} }
...@@ -55,4 +55,7 @@ public interface LotteryWinningService { ...@@ -55,4 +55,7 @@ public interface LotteryWinningService {
*/ */
boolean claimPrize(Long winningId); boolean claimPrize(Long winningId);
boolean hasWinning(Long activityId, Long userId);
LotteryWinning selectWinningDetail(Long activityId, Long userId);
} }
...@@ -12,7 +12,6 @@ import org.springframework.stereotype.Service; ...@@ -12,7 +12,6 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Date;
import java.util.List; import java.util.List;
/** /**
...@@ -30,8 +29,8 @@ public class LotteryActivityServiceImpl extends ServiceImpl<LotteryActivityMappe ...@@ -30,8 +29,8 @@ public class LotteryActivityServiceImpl extends ServiceImpl<LotteryActivityMappe
LambdaQueryWrapper<LotteryActivity> wrapper = new LambdaQueryWrapper<>(); LambdaQueryWrapper<LotteryActivity> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(LotteryActivity::getDeleteFlag, 0) wrapper.eq(LotteryActivity::getDeleteFlag, 0)
.eq(status != null, LotteryActivity::getStatus, status) .eq(status != null, LotteryActivity::getStatus, status)
.ge(LotteryActivity::getStartTime, new Date()) // .ge(LotteryActivity::getStartTime, new Date())
.le(LotteryActivity::getEndTime, new Date()) // .le(LotteryActivity::getEndTime, new Date())
.orderByDesc(LotteryActivity::getStartTime); .orderByDesc(LotteryActivity::getStartTime);
return lotteryActivityDao.selectPage(page, wrapper); return lotteryActivityDao.selectPage(page, wrapper);
} }
...@@ -63,14 +62,13 @@ public class LotteryActivityServiceImpl extends ServiceImpl<LotteryActivityMappe ...@@ -63,14 +62,13 @@ public class LotteryActivityServiceImpl extends ServiceImpl<LotteryActivityMappe
/** /**
* 查询活动列表 * 查询活动列表
* @param status
* @return * @return
*/ */
@Override @Override
public List<LotteryActivity> queryActiveActivityList(Integer status) { public List<LotteryActivity> queryActiveActivityList() {
// 小程序端查询列表 // 小程序端查询列表
List<LotteryActivity> list = lotteryActivityDao.queryActiveActivityList();
return null; return list;
} }
......
...@@ -41,16 +41,8 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning ...@@ -41,16 +41,8 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean saveOrUpdateAddress(LotteryWinningAddress address) { public boolean saveOrUpdateAddress(LotteryWinningAddress address) {
if (address.getId() == null) { if (address.getId() == null) {
// 新增地址时,如果是默认地址,则取消其他默认地址
// if (address.getIsDefault() != null && address.getIsDefault() == 1) {
// cancelOtherDefaultAddresses(address.getUserId());
// }
return lotteryWinningAddressDao.saveAddress(address); return lotteryWinningAddressDao.saveAddress(address);
} else { } else {
// 更新地址时,如果是设置为默认地址,则取消其他默认地址
// if (address.getIsDefault() != null && address.getIsDefault() == 1) {
// cancelOtherDefaultAddresses(address.getUserId());
// }
return lotteryWinningAddressDao.updateAddress(address); return lotteryWinningAddressDao.updateAddress(address);
} }
} }
...@@ -69,9 +61,6 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning ...@@ -69,9 +61,6 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public boolean setDefaultAddress(Long userId, Long addressId) { public boolean setDefaultAddress(Long userId, Long addressId) {
// 先取消该用户的所有默认地址
cancelOtherDefaultAddresses(userId);
// 设置指定地址为默认地址 // 设置指定地址为默认地址
LotteryWinningAddress address = new LotteryWinningAddress(); LotteryWinningAddress address = new LotteryWinningAddress();
address.setId(addressId); address.setId(addressId);
...@@ -85,7 +74,7 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning ...@@ -85,7 +74,7 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning
} }
@Override @Override
public LotteryWinningAddress hasAddressFilled(Long activityId, Long userId) { public LotteryWinningAddress selectAddressOne(Long activityId, Long userId) {
LotteryWinningAddressWq wq = new LotteryWinningAddressWq(); LotteryWinningAddressWq wq = new LotteryWinningAddressWq();
wq.setActivityId(activityId); wq.setActivityId(activityId);
wq.setUserId(userId); wq.setUserId(userId);
...@@ -93,13 +82,5 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning ...@@ -93,13 +82,5 @@ public class LotteryWinningAddressServiceImpl extends ServiceImpl<LotteryWinning
return address; return address;
} }
/**
* 取消用户其他默认地址
* @param userId 用户ID
*/
private void cancelOtherDefaultAddresses(Long userId) {
// 这里应该通过DAO更新数据库中的其他地址为非默认状态
// 实现细节根据具体业务需求确定
}
} }
...@@ -110,4 +110,14 @@ public class LotteryWinningServiceImpl implements LotteryWinningService { ...@@ -110,4 +110,14 @@ public class LotteryWinningServiceImpl implements LotteryWinningService {
winning.setReceiveTime(LocalDateTime.now()); winning.setReceiveTime(LocalDateTime.now());
return lotteryWinningDao.updateById(winning) > 0; return lotteryWinningDao.updateById(winning) > 0;
} }
@Override
public boolean hasWinning(Long activityId, Long userId) {
return lotteryWinningDao.hasWinning(activityId, userId);
}
@Override
public LotteryWinning selectWinningDetail(Long activityId, Long userId) {
return lotteryWinningDao.getWinningDetail(activityId, userId);
}
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论