ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/TLotteryEvent.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -63,12 +64,14 @@ */ @TableField("start_time") @ApiModelProperty("活动开始时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime startTime; /** * 活动结束时间 */ @TableField("end_time") @ApiModelProperty("活动结束时间") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime endTime; /** * 分享抽奖间隔天数 @@ -120,6 +123,7 @@ * 创建时间 */ @TableField("create_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime createTime; /** * 更新用户id @@ -130,6 +134,7 @@ * 更新时间 */ @TableField("update_time") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private LocalDateTime updateTime; @TableField(exist = false) ruoyi-auth/src/main/java/com/ruoyi/auth/controller/TokenController.java
@@ -80,6 +80,7 @@ List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(1).getData(); if (data.size() > 0) { miniToken.put("lotteryDraw", true); miniToken.put("lotteryEventId", data.get(0).getId()); } return R.ok(); } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/business/MerLotteryEventController.java
@@ -98,7 +98,7 @@ if (null == lotteryEvent) { return R.fail("抽奖活动不存在"); } if (!lotteryEvent.getShopId().equals(dto.getShopId())) { if (!lotteryEvent.getShopId().equals(dto.getShopId().intValue())) { return R.fail("查询失败"); } List<TLotteryEventPrize> list = lotteryEventPrizeService.list(new LambdaQueryWrapper<TLotteryEventPrize>().eq(TLotteryEventPrize::getLotteryEventId, dto.getId())); @@ -139,7 +139,7 @@ if (null == lotteryEvent) { return R.fail("抽奖活动不存在"); } if (!lotteryEvent.getShopId().equals(dto.getShopId())) { if (!lotteryEvent.getShopId().equals(dto.getShopId().intValue())) { return R.fail("查询失败"); } Page<ShopWinningRecordVo> page = new Page<>(); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
@@ -69,6 +69,16 @@ }) public R<LotteryEventVo> getLotteryEvent(@PathVariable("id") String id) { LotteryEventVo lotteryEvent = lotteryEventService.getLotteryEvent(id); TLotteryEvent event = lotteryEventService.getById(id); if (LocalDateTime.now().isBefore(event.getStartTime())) { lotteryEvent.setStatus(1); } if (LocalDateTime.now().isAfter(event.getEndTime())) { lotteryEvent.setStatus(3); } if (LocalDateTime.now().isAfter(event.getStartTime()) && LocalDateTime.now().isBefore(event.getEndTime())) { lotteryEvent.setStatus(2); } return R.ok(lotteryEvent); } @@ -79,7 +89,7 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "抽奖活动id", required = true, dataType = "String", paramType = "path") }) public R lotteryDraw(@PathVariable("id") String id) { public R<TLotteryEventPrize> lotteryDraw(@PathVariable("id") String id) { return lotteryEventService.lotteryDraw(id); } @@ -96,13 +106,13 @@ activityPageVoList.forEach(vo -> { String startTime = vo.getStartTime(); String endTime = vo.getEndTime(); if (LocalDateTime.now().isBefore(LocalDateTime.parse(startTime))) { if (LocalDateTime.now().isBefore(LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) { vo.setStatus(1); } if (LocalDateTime.now().isAfter(LocalDateTime.parse(endTime))) { if (LocalDateTime.now().isAfter(LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) { vo.setStatus(3); } if (LocalDateTime.now().isAfter(LocalDateTime.parse(startTime)) && LocalDateTime.now().isBefore(LocalDateTime.parse(endTime))) { if (LocalDateTime.now().isAfter(LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))) && LocalDateTime.now().isBefore(LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")))) { vo.setStatus(2); } }); @@ -124,6 +134,7 @@ vo.setName(lotteryEvent.getName()); vo.setActivityProfile(lotteryEvent.getActivityProfile()); vo.setStartTime(lotteryEvent.getStartTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); vo.setEndTime(lotteryEvent.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); vo.setActivityContent(lotteryEvent.getActivityContent()); int count = userLotteryEventService.count(new QueryWrapper<TUserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId)); vo.setParticipation(count > 0); @@ -167,7 +178,7 @@ //上一题 Integer current = dto.getCurrent(); if (-1 == dto.getStepOrDown()) { if (current - 1 <= 0) { if (current - 1 < 0) { return R.fail("操作失败"); } current--; @@ -251,6 +262,9 @@ Long userId = SecurityUtils.getUserId(); TLotteryEvent lotteryEvent = lotteryEventService.getById(id); TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId)); if (null == questionsServiceOne) { return R.fail("请先进行答题操作"); } questionsServiceOne.setStatus(2); questionsServiceOne.setEndTime(LocalDateTime.now()); //计算正确率 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventInfoVo.java
@@ -19,6 +19,8 @@ private String activityProfile; @ApiModelProperty(value = "开始时间") private String startTime; @ApiModelProperty(value = "结束时间") private String endTime; @ApiModelProperty(value = "活动详情") private String activityContent; @ApiModelProperty(value = "是否参与") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventVo.java
@@ -29,4 +29,6 @@ private BigDecimal correctAnswerRate; @ApiModelProperty(value = "您的奖品") private List<UserLotteryEventVo> yourPrizeList; @ApiModelProperty("抽奖状态(1=未开始,2=进行中,3=已结束)") private Integer status; } ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
@@ -91,7 +91,7 @@ //答题正确率 if (5 == lotteryEvent.getActivityType()) { TUserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<TUserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId)); if (null == questionsServiceOne) { if (null != questionsServiceOne) { vo.setCorrectAnswerRate(questionsServiceOne.getCorrectAnswerRate()); } } @@ -102,10 +102,12 @@ userLotteryEventVo.setName(s.getObjectName()); userLotteryEventVo.setPrizeType(s.getPrizeType()); userLotteryEventVo.setNumber(s.getNumber()); MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrizeByGiftId(s.getId()).getData(); userLotteryEventVo.setVerifyCode("3-" + memberGiftRecord.getPrizeId()); userLotteryEventVo.setIsVerify(1 == memberGiftRecord.getVerifyStatus() ? 0 : 1); userLotteryEventVo.setVerifyTime(null == memberGiftRecord.getVerifyTime() ? "" : sdf.format(memberGiftRecord.getVerifyTime())); if (Arrays.asList(2, 3).contains(s.getPrizeType())) { MemberGiftRecord memberGiftRecord = remoteMemberService.getVerifyPrizeByGiftId(s.getId()).getData(); userLotteryEventVo.setVerifyCode("3-" + memberGiftRecord.getPrizeId()); userLotteryEventVo.setIsVerify(1 == memberGiftRecord.getVerifyStatus() ? 0 : 1); userLotteryEventVo.setVerifyTime(null == memberGiftRecord.getVerifyTime() ? "" : sdf.format(memberGiftRecord.getVerifyTime())); } Member member = remoteMemberService.getMember(userId).getData(); userLotteryEventVo.setVerifyShop("全部门店"); if (null != member && null != member.getRelationShopId()) { @@ -126,7 +128,7 @@ * @return */ @Override public R lotteryDraw(String id) { public R<TLotteryEventPrize> lotteryDraw(String id) { Long userId = SecurityUtils.getUserId(); Member member = remoteMemberService.getMember(userId).getData(); TLotteryEvent lotteryEvent = this.getById(id); @@ -163,7 +165,7 @@ Collections.shuffle(list); //开始获取随机数 int random = new Random().nextInt(list.size()); TLotteryEventPrize lotteryEventPrize = lotteryEventPrizeList.get(random); TLotteryEventPrize lotteryEventPrize = list.get(random); //添加中奖商品 TUserLotteryEvent userLotteryEvent = new TUserLotteryEvent(); userLotteryEvent.setId(IdUtils.simpleUUID()); @@ -218,7 +220,7 @@ memberGiftRecord.setCreateTime(new Date()); memberGiftRecord.setVerifyStatus(1); remoteMemberService.saveMemberGiftRecord(memberGiftRecord); return R.ok(); return R.ok(lotteryEventPrize); } } catch (Exception e) { e.printStackTrace(); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/lottery/ILotteryEventService.java
@@ -4,6 +4,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.common.core.domain.R; import com.ruoyi.goods.api.domain.TLotteryEvent; import com.ruoyi.goods.api.domain.TLotteryEventPrize; import com.ruoyi.goods.domain.dto.MgtLotteryEventEditDTO; import com.ruoyi.goods.domain.dto.MgtLotteryEventPageDto; import com.ruoyi.goods.domain.vo.*; @@ -32,7 +33,7 @@ * @param id * @return */ R lotteryDraw(String id); R<TLotteryEventPrize> lotteryDraw(String id); /** ruoyi-modules/ruoyi-goods/src/main/resources/bootstrap.yml
@@ -16,7 +16,7 @@ # 服务注册地址 # server-addr: 47.109.78.184:5000 server-addr: 192.168.110.80:8848 ip: 192.168.110.21 ip: 192.168.110.85 #pro # namespace: 9591ef9f-a49a-4900-be35-d77258bdd639 #test ruoyi-modules/ruoyi-goods/src/main/resources/mapper/lottery/LotteryEventMapper.xml
@@ -23,7 +23,6 @@ where user_id = #{userId} group by lottery_event_id) b on a.id = b.lottery_event_id where a.del_flag = 0 and now() > a.end_time and a.activity_type in (4, 5)) as aa order by aa.sort, aa.startTime </select> ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java
@@ -147,12 +147,12 @@ @ApiImplicitParams({ @ApiImplicitParam(name = "id", value = "优惠券id", required = true, dataType = "String", paramType = "path") }) public R<Boolean> shareCoupon(@PathVariable("couponId") String couponId) { public R<String> shareCoupon(@PathVariable("couponId") String couponId) { //检测是否可以抽奖 List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(3).getData(); if (data.size() > 0) { return R.ok(true); return R.ok(data.get(0).getId()); } return R.ok(false); return R.ok(); } } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppIntegralController.java
@@ -81,7 +81,7 @@ @RequestMapping(value = "/signShare", method = RequestMethod.POST) @ApiOperation(value = "今日分享【2.0】") public R<Boolean> signShare() { public R<String> signShare() { Long userId = SecurityUtils.getUserId(); IntegralChangeDto integralChangeDto = new IntegralChangeDto(); integralChangeDto.setIntegralType(1); @@ -92,6 +92,6 @@ } //判断是否可以抽奖 List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(3).getData(); return R.ok(data.size() > 0); return R.ok(data.size() > 0 ? data.get(0).getId() : ""); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/AppPlaceOrderVo.java
@@ -71,4 +71,7 @@ @ApiModelProperty(value = "是否可抽奖(0=否,1=是)") private Boolean lotteryDraw; @ApiModelProperty(value = "抽奖活动id") private String lotteryEventId; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1581,8 +1581,11 @@ // 返回AppPlaceOrderVo对象 List<TLotteryEvent> data = lotteryEventClient.getLotteryEventList(2).getData(); if (data.size() > 0) { long count = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) >= 0).count(); appPlaceOrderVo.setLotteryDraw(count > 0); List<TLotteryEvent> collect = data.stream().filter(s -> s.getPayMoney().compareTo(order.getPayMoney()) >= 0).collect(Collectors.toList()); appPlaceOrderVo.setLotteryDraw(collect.size() > 0); if (collect.size() > 0) { appPlaceOrderVo.setLotteryEventId(collect.get(0).getEventId()); } } else { appPlaceOrderVo.setLotteryDraw(false); }