From d6a0c57043e8cc20694a3c678bf8e3a8f28f6499 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 29 五月 2025 11:20:14 +0800
Subject: [PATCH] 新增加用户端接口
---
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java | 26
ruoyi-modules/ruoyi-member/src/main/resources/mapper/birthday/BirthdayCardMapper.xml | 32 +
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberGiftRecord.java | 14
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java | 2
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java | 19
ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEventQuestions.java | 6
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopAppointableTimeMapper.java | 16
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java | 97 +++++
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java | 20 +
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java | 156 ++++++++
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java | 119 +++++-
ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEvent.java | 10
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java | 78 +++
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopAppointableTimeServiceImpl.java | 22 +
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java | 35 +
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventInfoVo.java | 4
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventVo.java | 3
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopAppointableTimeService.java | 15
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/UserLotteryEventVo.java | 6
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java | 303 +++++++++--------
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java | 2
21 files changed, 735 insertions(+), 250 deletions(-)
diff --git a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEvent.java b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEvent.java
index 4dd2f3d..b42026e 100644
--- a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEvent.java
+++ b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEvent.java
@@ -60,15 +60,5 @@
*/
@TableField(value = "create_time")
private LocalDateTime createTime;
- /**
- * 核销码
- */
- @TableField(value = "verify_code")
- private String verifyCode;
- /**
- * 是否已核销(0=否,1=是)
- */
- @TableField(value = "is_verify")
- private Integer isVerify;
}
diff --git a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEventQuestions.java b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEventQuestions.java
index a3a86c7..e7f51c4 100644
--- a/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEventQuestions.java
+++ b/ruoyi-api/ruoyi-api-goods/src/main/java/com/ruoyi/goods/api/domain/UserLotteryEventQuestions.java
@@ -6,6 +6,7 @@
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;
+import java.math.BigDecimal;
import java.time.LocalDateTime;
/**
@@ -46,4 +47,9 @@
*/
@TableField(value = "status")
private Integer status;
+ /**
+ * 正确率
+ */
+ @TableField(value = "correct_answer_rate")
+ private BigDecimal correctAnswerRate;
}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberGiftRecord.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberGiftRecord.java
index e6bd7c0..8950d83 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberGiftRecord.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberGiftRecord.java
@@ -49,19 +49,24 @@
* 礼品id
*/
@TableField("gift_id")
- private Long giftId;
+ private String giftId;
/**
* 礼物来源1平台2商户
*/
@TableField("gift_from")
private Integer giftFrom;
/**
+ * 奖品来源(1=生日卡,2=抽奖)
+ */
+ @TableField("prize_from")
+ private Integer prizeFrom;
+ /**
* 商户id
*/
@TableField("shop_id")
private Long shopId;
/**
- * 礼物类型1优惠券2商品3现金4实物
+ * 礼物类型1优惠券2商品3现金4实物5积分
*/
@TableField("gift_type")
private Integer giftType;
@@ -100,6 +105,11 @@
*/
private BigDecimal money;
/**
+ * 积分数量
+ */
+ @TableField("integral_number")
+ private Integer integralNumber;
+ /**
* 创建时间
*/
@TableField("create_time")
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
index ec73b0e..f78331b 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -119,22 +119,28 @@
public R<Integer> getUnReplaySuggestVo() {
return null;
}
-
+
@Override
public R<MemberGiftRecord> getVerifyPrize(String verifyPrize) {
return R.fail("获取核销奖品信息失败:" + throwable.getMessage());
}
-
+
+
+ @Override
+ public R<MemberGiftRecord> getVerifyPrizeByGiftId(String giftId) {
+ return R.fail("根据礼品id获取数据失败:" + throwable.getMessage());
+ }
+
@Override
public R signShare(IntegralChangeDto integralChangeDto) {
return R.fail("积分变动失败:" + throwable.getMessage());
}
-
+
@Override
public R<Integer> getAreaNewMember(List<Long> shopIdList) {
return null;
}
-
+
@Override
public R updateMemberShopName(MgtMemberShopNameDto mgtMemberShopNameDto) {
return R.fail("更新商户绑定会员失败:" + throwable.getMessage());
@@ -165,6 +171,11 @@
public R addIntegralRecord(Integer integral, Long userId, String orderId) {
return R.fail("手动添加用户积分失败:" + throwable.getMessage());
}
+
+ @Override
+ public R saveMemberGiftRecord(MemberGiftRecord memberGiftRecord) {
+ return R.fail("添加奖品数据失败:" + throwable.getMessage());
+ }
};
}
}
diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
index 6a1aa7a..54f5d9c 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -203,6 +203,17 @@
/**
+ * @param giftId
+ * @return R<MemberGiftRecord>
+ * @description 根据礼品id获取数据
+ * @author jqs
+ * @date 2023/7/8 17:43
+ */
+ @PostMapping("/member/getVerifyPrizeByGiftId")
+ public R<MemberGiftRecord> getVerifyPrizeByGiftId(@RequestBody String giftId);
+
+
+ /**
* @param integralChangeDto
* @return R
* @description 积分变动
@@ -273,4 +284,13 @@
*/
@PostMapping("/member/addIntegralRecord")
R addIntegralRecord(@RequestParam("integral") Integer integral, @RequestParam("userId") Long userId, @RequestParam("orderId") String orderId);
+
+ /**
+ * 添加奖品数据
+ *
+ * @param memberGiftRecord
+ * @return
+ */
+ @PostMapping("/member/saveMemberGiftRecord")
+ R saveMemberGiftRecord(@RequestBody MemberGiftRecord memberGiftRecord);
}
\ No newline at end of file
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
index 00834ab..aaec304 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppLotteryEventController.java
@@ -3,16 +3,16 @@
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.uuid.IdUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
-import com.ruoyi.goods.api.domain.LotteryEvent;
-import com.ruoyi.goods.api.domain.UserLotteryEvent;
-import com.ruoyi.goods.api.domain.UserLotteryEventQuestions;
+import com.ruoyi.goods.api.domain.*;
+import com.ruoyi.goods.domain.dto.AnswerQuestionDto;
+import com.ruoyi.goods.domain.dto.LotteryEventQuestionsDto;
import com.ruoyi.goods.domain.vo.AppLotteryEventPageVo;
import com.ruoyi.goods.domain.vo.LotteryEventInfoVo;
+import com.ruoyi.goods.domain.vo.LotteryEventQuestionsVo;
import com.ruoyi.goods.domain.vo.LotteryEventVo;
-import com.ruoyi.goods.service.lottery.ILotteryEventService;
-import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsService;
-import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
+import com.ruoyi.goods.service.lottery.*;
import com.ruoyi.system.api.domain.dto.LotteryEventListDto;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
@@ -23,8 +23,13 @@
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.math.BigDecimal;
+import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
/**
* @author zhibing.pu
@@ -46,7 +51,14 @@
@Resource
private IUserLotteryEventQuestionsService userLotteryEventQuestionsService;
+ @Resource
+ private IUserLotteryEventQuestionsAnswersService userLotteryEventQuestionsAnswersService;
+ @Resource
+ private ILotteryEventQuestionsService lotteryEventServiceQuestionsService;
+
+ @Resource
+ private ILotteryEventQuestionsAnswersService lotteryEventQuestionsAnswersService;
@ResponseBody
@@ -103,11 +115,141 @@
int count = userLotteryEventService.count(new QueryWrapper<UserLotteryEvent>().eq("lottery_event_id", id).eq("user_id", userId));
vo.setParticipation(count > 0);
//答题抽奖需要判断是否答题完成
- if(5 == lotteryEvent.getActivityType()){
+ if (5 == lotteryEvent.getActivityType()) {
UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
vo.setContinueAnswer(null != questionsServiceOne ? questionsServiceOne.getStatus() : 0);
+ vo.setAnswerStartTime(null != questionsServiceOne ? questionsServiceOne.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null);
+ vo.setAnswerTimeLimit(lotteryEvent.getAnsweringTime());
}
return R.ok(vo);
}
+ @ResponseBody
+ @PostMapping("/getLotteryEventQuestions")
+ @ApiOperation(value = "获取答题题目【2.0】", tags = "抽奖活动")
+ public R<LotteryEventQuestionsVo> getLotteryEventQuestions(@RequestBody LotteryEventQuestionsDto dto) {
+ Long userId = SecurityUtils.getUserId();
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).eq("user_id", userId));
+ LotteryEventQuestionsVo vo = new LotteryEventQuestionsVo();
+ int count = lotteryEventServiceQuestionsService.count(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()));
+ vo.setTotal(count);
+ //没有答题,直接从第一题开始
+ if (null == questionsServiceOne) {
+ if (-1 == dto.getStepOrDown()) {
+ return R.fail("操作失败");
+ }
+ LotteryEventQuestions questions = lotteryEventServiceQuestionsService.getOne(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
+ vo.setCurrent(1);
+ vo.setName(questions.getName());
+ List<LotteryEventQuestionsAnswers> list = lotteryEventQuestionsAnswersService.list(new QueryWrapper<LotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", questions.getId()));
+ //封装答题
+ List<Map<String, String>> options = list.stream().map(item -> {
+ Map<String, String> map = new HashMap<>();
+ map.put("id", item.getId());
+ map.put("name", item.getAnswer());
+ return map;
+ }).collect(Collectors.toList());
+ vo.setOptions(options);
+ } else {
+ //上一题
+ Integer current = dto.getCurrent();
+ if (-1 == dto.getStepOrDown()) {
+ if (current - 1 <= 0) {
+ return R.fail("操作失败");
+ }
+ current--;
+ } else {
+ //下一题
+ if (current >= count) {
+ return R.fail("操作失败");
+ }
+ current++;
+ }
+ List<LotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
+ LotteryEventQuestions lotteryEventQuestions = list.get(current);
+ vo.setCurrent(current);
+ vo.setName(lotteryEventQuestions.getName());
+ List<LotteryEventQuestionsAnswers> list1 = lotteryEventQuestionsAnswersService.list(new QueryWrapper<LotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", lotteryEventQuestions.getId()));
+ //封装答题
+ List<Map<String, String>> options = list1.stream().map(item -> {
+ Map<String, String> map = new HashMap<>();
+ map.put("id", item.getId());
+ map.put("name", item.getAnswer());
+ return map;
+ }).collect(Collectors.toList());
+ if (-1 == dto.getStepOrDown()) {
+ UserLotteryEventQuestionsAnswers one = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestionsAnswers>().eq("lottery_event_id", dto.getId()).eq("user_id", userId).orderByDesc("create_time").last(" limit 0, 1"));
+ if (null != one) {
+ vo.setAnswer(lotteryEventQuestionsAnswersService.getById(one.getLotteryEventQuestionsAnswersId()).getAnswer());
+ }
+ }
+ vo.setOptions(options);
+ }
+ return R.ok(vo);
+ }
+
+ @ResponseBody
+ @PostMapping("/answerQuestion")
+ @ApiOperation(value = "答题操作【2.0】", tags = "抽奖活动")
+ public R answerQuestion(@RequestBody AnswerQuestionDto dto) {
+ List<LotteryEventQuestions> list = lotteryEventServiceQuestionsService.list(new QueryWrapper<LotteryEventQuestions>().eq("lottery_event_id", dto.getId()).orderByAsc("sort"));
+ LotteryEventQuestions lotteryEventQuestions = list.get(dto.getCurrent());
+ List<LotteryEventQuestionsAnswers> list1 = lotteryEventQuestionsAnswersService.list(new QueryWrapper<LotteryEventQuestionsAnswers>().eq("lottery_event_questions_id", lotteryEventQuestions.getId()));
+ LotteryEventQuestionsAnswers lotteryEventQuestionsAnswers = list1.stream().filter(item -> item.getAnswer().equals(dto.getAnswer())).findAny().orElse(null);
+ //构建答题数据
+ Long userId = SecurityUtils.getUserId();
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", dto.getId()).eq("user_id", userId));
+ if (null == questionsServiceOne) {
+ questionsServiceOne = new UserLotteryEventQuestions();
+ questionsServiceOne.setId(IdUtils.simpleUUID());
+ questionsServiceOne.setUserId(userId);
+ questionsServiceOne.setLotteryEventId(dto.getId());
+ questionsServiceOne.setStatus(1);
+ questionsServiceOne.setCreateTime(LocalDateTime.now());
+ userLotteryEventQuestionsService.save(questionsServiceOne);
+ }
+ //构建或者修改答题数据
+ UserLotteryEventQuestionsAnswers one = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestionsAnswers>().eq("lottery_event_question_id", lotteryEventQuestions.getId()).eq("user_id", userId));
+ if (null == one) {
+ one = new UserLotteryEventQuestionsAnswers();
+ one.setId(IdUtils.simpleUUID());
+ one.setLotteryEventId(dto.getId());
+ one.setUserId(userId);
+ one.setLotteryEventQuestionId(lotteryEventQuestions.getId());
+ one.setLotteryEventQuestionsAnswersId(lotteryEventQuestionsAnswers.getId());
+ one.setCreateTime(LocalDateTime.now());
+ }
+ one.setIsCorrect(0);
+ //答案正确
+ if (null != lotteryEventQuestionsAnswers && 1 == lotteryEventQuestionsAnswers.getIsRight()) {
+ one.setIsCorrect(1);
+ }
+ userLotteryEventQuestionsAnswersService.saveOrUpdate(one);
+ return R.ok();
+ }
+
+ @ResponseBody
+ @PostMapping("/endAnswerQuestion/{id}")
+ @ApiOperation(value = "结束答题【2.0】", tags = "抽奖活动")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "抽奖活动id", required = true, dataType = "String", paramType = "path")
+ })
+ public R<Boolean> endAnswerQuestion(@PathVariable("id") String id) {
+ Long userId = SecurityUtils.getUserId();
+ LotteryEvent lotteryEvent = lotteryEventService.getById(id);
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+ questionsServiceOne.setStatus(2);
+ questionsServiceOne.setEndTime(LocalDateTime.now());
+ //计算正确率
+ List<UserLotteryEventQuestionsAnswers> list = userLotteryEventQuestionsAnswersService.list(new QueryWrapper<UserLotteryEventQuestionsAnswers>().eq("lottery_event_id", id).eq("user_id", userId));
+ int count = list.size();
+ int right = list.stream().filter(item -> 1 == item.getIsCorrect()).collect(Collectors.toList()).size();
+ BigDecimal multiply = new BigDecimal(right).divide(new BigDecimal(count), 4, BigDecimal.ROUND_HALF_UP).setScale(4, BigDecimal.ROUND_HALF_UP).multiply(new BigDecimal(100));
+ questionsServiceOne.setCorrectAnswerRate(multiply);
+ userLotteryEventQuestionsService.updateById(questionsServiceOne);
+ if (multiply.compareTo(lotteryEvent.getAccuracy()) >= 0) {
+ return R.ok(true);
+ }
+ return R.ok(false);
+ }
}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventInfoVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventInfoVo.java
index aad7b79..ff63166 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventInfoVo.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventInfoVo.java
@@ -25,4 +25,8 @@
private Boolean participation;
@ApiModelProperty(value = "是否继续答题(0=未开始,1=已开始,2=已结束)")
private Integer continueAnswer;
+ @ApiModelProperty(value = "答题开始时间")
+ private String answerStartTime;
+ @ApiModelProperty(value = "答题时限")
+ private Integer answerTimeLimit;
}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventVo.java
index ba7f3e8..87b1fcd 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventVo.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/LotteryEventVo.java
@@ -5,6 +5,7 @@
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
+import java.math.BigDecimal;
import java.util.List;
/**
@@ -24,6 +25,8 @@
private List<LotteryEventPrize> prizeList;
@ApiModelProperty(value = "剩余次数")
private Integer laveTimes;
+ @ApiModelProperty(value = "答题正确率")
+ private BigDecimal correctAnswerRate;
@ApiModelProperty(value = "您的奖品")
private List<UserLotteryEventVo> yourPrizeList;
}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/UserLotteryEventVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/UserLotteryEventVo.java
index 775a125..ed3cd97 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/UserLotteryEventVo.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/UserLotteryEventVo.java
@@ -19,4 +19,10 @@
private Integer number;
@ApiModelProperty("核销码")
private String verifyCode;
+ @ApiModelProperty("是否已核销(0=否,1=是)")
+ private Integer isVerify;
+ @ApiModelProperty("核销时间")
+ private String verifyTime;
+ @ApiModelProperty("核销门店")
+ private String verifyShop;
}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
index 5c1bc6a..b83e9cb 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/lottery/LotteryEventServiceImpl.java
@@ -10,22 +10,27 @@
import com.ruoyi.goods.api.domain.LotteryEvent;
import com.ruoyi.goods.api.domain.LotteryEventPrize;
import com.ruoyi.goods.api.domain.UserLotteryEvent;
+import com.ruoyi.goods.api.domain.UserLotteryEventQuestions;
import com.ruoyi.goods.domain.vo.AppLotteryEventPageVo;
import com.ruoyi.goods.domain.vo.LotteryEventVo;
import com.ruoyi.goods.domain.vo.UserLotteryEventVo;
import com.ruoyi.goods.mapper.lottery.LotteryEventMapper;
import com.ruoyi.goods.service.lottery.ILotteryEventPrizeService;
import com.ruoyi.goods.service.lottery.ILotteryEventService;
-import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsAnswersService;
+import com.ruoyi.goods.service.lottery.IUserLotteryEventQuestionsService;
import com.ruoyi.goods.service.lottery.IUserLotteryEventService;
+import com.ruoyi.system.api.domain.poji.member.Member;
+import com.ruoyi.system.api.domain.poji.member.MemberGiftRecord;
+import com.ruoyi.system.api.domain.poji.shop.Shop;
import com.ruoyi.system.api.service.RemoteCouponService;
import com.ruoyi.system.api.service.RemoteMemberService;
+import com.ruoyi.system.api.service.RemoteShopService;
import org.redisson.api.RLock;
import org.redisson.api.RedissonClient;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
-import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.concurrent.TimeUnit;
@@ -54,7 +59,10 @@
private RedissonClient redissonClient;
@Resource
- private IUserLotteryEventQuestionsAnswersService userLotteryEventQuestionsService;
+ private IUserLotteryEventQuestionsService userLotteryEventQuestionsAnswersService;
+
+ @Resource
+ private RemoteShopService remoteShopService;
/**
@@ -65,6 +73,7 @@
*/
@Override
public LotteryEventVo getLotteryEvent(String id) {
+ Long userId = SecurityUtils.getUserId();
LotteryEvent lotteryEvent = this.getById(id);
//构建返回结果
LotteryEventVo vo = new LotteryEventVo();
@@ -76,14 +85,30 @@
//查询抽检活动奖品
List<LotteryEventPrize> lotteryEventPrizeList = lotteryEventPrizeService.list(new QueryWrapper<LotteryEventPrize>().eq("lottery_event_id", id));
vo.setPrizeList(lotteryEventPrizeList);
-
+ //答题正确率
+ if (5 == lotteryEvent.getActivityType()) {
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+ if (null == questionsServiceOne) {
+ vo.setCorrectAnswerRate(questionsServiceOne.getCorrectAnswerRate());
+ }
+ }
//构建我的奖品明细
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm");
List<UserLotteryEventVo> collect = userLotteryEvents.stream().map(s -> {
UserLotteryEventVo userLotteryEventVo = new UserLotteryEventVo();
userLotteryEventVo.setName(s.getObjectName());
userLotteryEventVo.setPrizeType(s.getPrizeType());
userLotteryEventVo.setNumber(s.getNumber());
- userLotteryEventVo.setVerifyCode(s.getVerifyCode());
+ 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()) {
+ Shop shop = remoteShopService.getShop(member.getRelationShopId()).getData();
+ userLotteryEventVo.setVerifyShop(shop.getShopName());
+ }
return userLotteryEventVo;
}).collect(Collectors.toList());
vo.setYourPrizeList(collect);
@@ -100,11 +125,12 @@
@Override
public R lotteryDraw(String id) {
Long userId = SecurityUtils.getUserId();
+ Member member = remoteMemberService.getMember(userId).getData();
LotteryEvent lotteryEvent = this.getById(id);
//判断答题抽奖是否满足抽奖条件
if (lotteryEvent.getActivityType() == 5) {
- BigDecimal correctAnswerRate = userLotteryEventQuestionsService.getCorrectAnswerRate(userId, id);
- if (correctAnswerRate.compareTo(lotteryEvent.getAccuracy()) < 0) {
+ UserLotteryEventQuestions questionsServiceOne = userLotteryEventQuestionsAnswersService.getOne(new QueryWrapper<UserLotteryEventQuestions>().eq("lottery_event_id", id).eq("user_id", userId));
+ if (questionsServiceOne.getCorrectAnswerRate().compareTo(lotteryEvent.getAccuracy()) < 0) {
return R.fail("答题抽奖失败,答题正确率低于活动要求");
}
}
@@ -145,11 +171,6 @@
userLotteryEvent.setObjectId(lotteryEventPrize.getObjectId());
userLotteryEvent.setObjectName(lotteryEventPrize.getObjectName());
userLotteryEvent.setNumber(lotteryEventPrize.getNumber());
- //商品需要生成核销码和核销状态
- if (Arrays.asList(2, 3).contains(lotteryEventPrize.getPrizeType())) {
- userLotteryEvent.setVerifyCode(IdUtils.simpleUUID());
- userLotteryEvent.setIsVerify(0);
- }
//中奖优惠券
if (1 == lotteryEventPrize.getPrizeType()) {
remoteCouponService.addMemberCoupon(lotteryEventPrize.getObjectId(), lotteryEventPrize.getNumber(), userId);
@@ -160,6 +181,39 @@
}
userLotteryEvent.setCreateTime(LocalDateTime.now());
userLotteryEventService.save(userLotteryEvent);
+ //添加奖品数据
+ MemberGiftRecord memberGiftRecord = new MemberGiftRecord();
+ memberGiftRecord.setPrizeId(IdUtils.simpleUUID());
+ memberGiftRecord.setDelFlag(0);
+ memberGiftRecord.setUserId(userId);
+ memberGiftRecord.setGiftId(userLotteryEvent.getId());
+ memberGiftRecord.setGiftFrom(1);
+ memberGiftRecord.setShopId(member.getRelationShopId());
+ switch (lotteryEventPrize.getPrizeType()) {
+ case 1:
+ memberGiftRecord.setGiftType(1);
+ memberGiftRecord.setCouponId(userLotteryEvent.getObjectId());
+ memberGiftRecord.setCouponNumber(userLotteryEvent.getNumber());
+ break;
+ case 2:
+ memberGiftRecord.setGiftType(2);
+ memberGiftRecord.setGoodsId(userLotteryEvent.getObjectId());
+ memberGiftRecord.setGoodsNumber(userLotteryEvent.getNumber());
+ break;
+ case 3:
+ memberGiftRecord.setGiftType(4);
+ memberGiftRecord.setGiftName(userLotteryEvent.getObjectName());
+ memberGiftRecord.setGiftNumber(userLotteryEvent.getNumber());
+ break;
+ case 4:
+ memberGiftRecord.setGiftType(5);
+ memberGiftRecord.setIntegralNumber(userLotteryEvent.getNumber());
+ break;
+ }
+ memberGiftRecord.setPrizeFrom(2);
+ memberGiftRecord.setCreateTime(new Date());
+ memberGiftRecord.setVerifyStatus(1);
+ remoteMemberService.saveMemberGiftRecord(memberGiftRecord);
return R.ok();
}
} catch (Exception e) {
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
index 8dd6dda..c9af95a 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -1,5 +1,6 @@
package com.ruoyi.member.controller.console;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.web.controller.BaseController;
import com.ruoyi.member.service.birthday.BirthdayCardService;
@@ -25,58 +26,53 @@
@RestController
@RequestMapping("/member")
public class MemberController extends BaseController {
-
+
@Resource
private MemberService memberService;
-
+
@Resource
private MemberSuggestService memberSuggestService;
-
+
@Resource
private MemberGiftRecordService memberGiftRecordService;
-
+
@Resource
private BirthdayCardService birthdayCardService;
-
+
@Resource
private RemoteShopService remoteShopService;
-
-
-
-
-
+
+
/**
- * @description: getMember
- * @param: userId
- * @return: R<Member>
- * @author jqs34
- * @date: 2023/4/30 12:49
- */
-
+ * @description: getMember
+ * @param: userId
+ * @return: R<Member>
+ * @author jqs34
+ * @date: 2023/4/30 12:49
+ */
+
@PostMapping("/getMember")
- public R<Member> getMember(@RequestBody Long userId)
- {
+ public R<Member> getMember(@RequestBody Long userId) {
Member member = memberService.getByUserId(userId);
- if(member ==null){
+ if (member == null) {
return R.fail("获取会员失败!");
}
return R.ok(member);
}
-
+
/**
* 小程序登录
*/
@PostMapping("/miniLogin")
@ApiOperation("小程序登录")
- public R<AppMiniLoginVo> getMemberByCode(@RequestBody AppMiniLoginDto appMiniLoginDto)
- {
+ public R<AppMiniLoginVo> getMemberByCode(@RequestBody AppMiniLoginDto appMiniLoginDto) {
AppMiniLoginVo appMiniLoginVo = memberService.getMemberByCode(appMiniLoginDto);
- if(appMiniLoginVo ==null){
+ if (appMiniLoginVo == null) {
return R.fail("登录失败!");
}
return R.ok(appMiniLoginVo);
}
-
+
@PostMapping(value = "/miniRegister")
@ApiOperation(value = "小程序注册")
public R<AppMiniRegisterVo> miniRegister(@RequestBody AppMiniRegisterDto appUserRegisterDto) {
@@ -86,241 +82,242 @@
}
return R.ok(appUserRegisterVo);
}
-
-
-
+
+
/**
* 更新会员绑定商户
+ *
* @param appMemberBindingDto
* @return
*/
@PostMapping("/updateMemberBinding")
- public R updateMemberBinding(@RequestBody AppMemberBindingDto appMemberBindingDto)
- {
+ public R updateMemberBinding(@RequestBody AppMemberBindingDto appMemberBindingDto) {
memberService.updateMemberBinding(appMemberBindingDto);
return R.ok();
}
-
+
/**
* 更新会员商品类型
+ *
* @param appMemberGoodsTypeDto
* @return
*/
@PostMapping("/updateMemberGoodsType")
- public R updateMemberGoodsType(@RequestBody AppMemberGoodsTypeDto appMemberGoodsTypeDto)
- {
+ public R updateMemberGoodsType(@RequestBody AppMemberGoodsTypeDto appMemberGoodsTypeDto) {
memberService.updateMemberGoodsType(appMemberGoodsTypeDto);
return R.ok();
}
-
+
/**
* 通过手机号获取会员
+ *
* @param mobile
* @return
*/
@PostMapping("/getMemberByMobile")
- public R<Member> getMemberByMobile(@RequestBody String mobile)
- {
+ public R<Member> getMemberByMobile(@RequestBody String mobile) {
Member member = memberService.getByMobile(mobile);
return R.ok(member);
}
-
+
/**
* 订单创建新用户
+ *
* @param member
* @return
*/
@PostMapping("/createNewMember")
- public R createNewMember(@RequestBody Member member)
- {
+ public R createNewMember(@RequestBody Member member) {
memberService.createNewMember(member);
return R.ok();
}
-
+
/**
- * @description 删除用户标签
- * @author jqs
- * @date 2023/6/8 15:17
* @param tag
- * @return R
+ * @return R
+ * @description 删除用户标签
+ * @author jqs
+ * @date 2023/6/8 15:17
*/
@PostMapping("/deleteMemberTag")
- public R deleteMemberTag(@RequestBody String tag)
- {
+ public R deleteMemberTag(@RequestBody String tag) {
memberService.deleteMemberTag(tag);
return R.ok();
}
-
+
/**
- * @description 删除会员建议标签
- * @author jqs
- * @date 2023/6/9 9:43
* @param suggestTag
- * @return R
+ * @return R
+ * @description 删除会员建议标签
+ * @author jqs
+ * @date 2023/6/9 9:43
*/
@PostMapping("/deleteMemberSuggestTag")
- public R deleteMemberSuggestTag(@RequestBody String suggestTag)
- {
+ public R deleteMemberSuggestTag(@RequestBody String suggestTag) {
memberSuggestService.deleteMemberSuggestTag(suggestTag);
return R.ok();
}
-
-
+
+
/**
- * @description 通过ids获取用户简易返回
- * @author jqs
- * @date 2023/6/16 11:05
* @param mgtBaseBathDto
- * @return R<List<MgtSimpleMemberVo>>
+ * @return R<List < MgtSimpleMemberVo>>
+ * @description 通过ids获取用户简易返回
+ * @author jqs
+ * @date 2023/6/16 11:05
*/
@PostMapping("/listSimpleVoByIds")
- public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(@RequestBody String userIds)
- {List<MgtSimpleMemberVo> simpleMemberVoList = memberService.listSimpleVoByIds(userIds);
+ public R<List<MgtSimpleMemberVo>> listSimpleVoByIds(@RequestBody String userIds) {
+ List<MgtSimpleMemberVo> simpleMemberVoList = memberService.listSimpleVoByIds(userIds);
return R.ok(simpleMemberVoList);
}
-
+
/**
- * @description
- * @author jqs
- * @date 2023/6/16 12:47
* @param mgtUserIdByKeywordDto
- * @return R<MgtUserIdByKeywordVo>
+ * @return R<MgtUserIdByKeywordVo>
+ * @description
+ * @author jqs
+ * @date 2023/6/16 12:47
*/
@PostMapping("/getUserIdByKeyword")
- public R<MgtUserIdByKeywordVo> getUserIdByKeyword(@RequestBody MgtUserIdByKeywordDto mgtUserIdByKeywordDto)
- {
+ public R<MgtUserIdByKeywordVo> getUserIdByKeyword(@RequestBody MgtUserIdByKeywordDto mgtUserIdByKeywordDto) {
MgtUserIdByKeywordVo mgtUserIdByKeywordVo = memberService.getUserIdByKeyword(mgtUserIdByKeywordDto);
return R.ok(mgtUserIdByKeywordVo);
}
-
+
/**
- * @description boardMemberTotal
- * @param
- * @return R<MgtBulletinBoardVo>
- * @author jqs34
- * @date 2023/6/18 16:45
- */
+ * @param
+ * @return R<MgtBulletinBoardVo>
+ * @description boardMemberTotal
+ * @author jqs34
+ * @date 2023/6/18 16:45
+ */
@PostMapping("/boardMemberTotal")
- public R<MgtBulletinBoardVo> boardMemberTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto)
- {
+ public R<MgtBulletinBoardVo> boardMemberTotal(@RequestBody BoardMemberTotalDto boardMemberTotalDto) {
List<Shop> shopList = remoteShopService.getShopBySysUserIds(boardMemberTotalDto);
List<Long> shopIds = shopList.stream().map(Shop::getShopId).collect(Collectors.toList());
MgtBulletinBoardVo bulletinBoardVo = memberService.boardMemberTotal(shopIds);
return R.ok(bulletinBoardVo);
}
-
+
/**
- * @description 筛选userId年龄段
- * @author jqs
- * @date 2023/6/20 14:31
* @param mgtActivityAgeDto
- * @return R<List<Long>>
+ * @return R<List < Long>>
+ * @description 筛选userId年龄段
+ * @author jqs
+ * @date 2023/6/20 14:31
*/
@PostMapping("/listUserIdByAge")
- public R<List<Long>> listUserIdByAge(@RequestBody MgtActivityAgeDto mgtActivityAgeDto)
- {
+ public R<List<Long>> listUserIdByAge(@RequestBody MgtActivityAgeDto mgtActivityAgeDto) {
List<Long> userIdList = memberService.listUserIdByAge(mgtActivityAgeDto);
return R.ok(userIdList);
}
-
+
/**
- * @description 通过shopId获取userId
- * @author jqs
- * @date 2023/6/21 17:11
* @param shopIdlist
- * @return R<List<Long>>
+ * @return R<List < Long>>
+ * @description 通过shopId获取userId
+ * @author jqs
+ * @date 2023/6/21 17:11
*/
@PostMapping("/listUserIdByShopId")
- public R<List<Long>> listUserIdByShopId(@RequestBody List<Long> shopIdlist)
- {
+ public R<List<Long>> listUserIdByShopId(@RequestBody List<Long> shopIdlist) {
List<Long> userIdList = memberService.listUserIdByShopId(shopIdlist);
return R.ok(userIdList);
}
-
+
/**
- * @description 通过shopId获取user统计
- * @author jqs
- * @date 2023/6/21 17:22
* @param shopIdlist
- * @return R<MgtShopTotalMemberVo>
+ * @return R<MgtShopTotalMemberVo>
+ * @description 通过shopId获取user统计
+ * @author jqs
+ * @date 2023/6/21 17:22
*/
@PostMapping("/getUserTotalByShopId")
- public R<MgtShopTotalMemberVo> getUserTotalByShopId(@RequestBody List<Long> shopIdlist)
- {
+ public R<MgtShopTotalMemberVo> getUserTotalByShopId(@RequestBody List<Long> shopIdlist) {
MgtShopTotalMemberVo shopTotalMemberVo = memberService.getUserTotalByShopId(shopIdlist);
return R.ok(shopTotalMemberVo);
}
-
+
/**
- * @description 更新会员统计
- * @author jqs
- * @date 2023/6/28 17:52
* @param memberTotalChangeDto
- * @return R
+ * @return R
+ * @description 更新会员统计
+ * @author jqs
+ * @date 2023/6/28 17:52
*/
@PostMapping("/changeMemberTotal")
- public R changeMemberTotal(@RequestBody MemberTotalChangeDto memberTotalChangeDto)
- {
+ public R changeMemberTotal(@RequestBody MemberTotalChangeDto memberTotalChangeDto) {
memberService.changeMemberTotal(memberTotalChangeDto);
return R.ok();
}
-
+
/**
- * @description 获取各年龄层userId
- * @author jqs
- * @date 2023/7/4 9:49
* @param merTotalDto
- * @return R<MerOrderAgeUserVo>
+ * @return R<MerOrderAgeUserVo>
+ * @description 获取各年龄层userId
+ * @author jqs
+ * @date 2023/7/4 9:49
*/
@PostMapping("/listOrderAgeUser")
- public R<List<MerOrderAgeUserVo>> listOrderAgeUser(@RequestBody MerTotalDto merTotalDto)
- {
+ public R<List<MerOrderAgeUserVo>> listOrderAgeUser(@RequestBody MerTotalDto merTotalDto) {
List<MerOrderAgeUserVo> orderAgeUserVoList = memberService.listOrderAgeUser(merTotalDto);
return R.ok(orderAgeUserVoList);
}
-
+
/**
- * @description 获取未回复数量
- * @author jqs
- * @date 2023/7/5 12:49
* @param
- * @return R<Integer>
+ * @return R<Integer>
+ * @description 获取未回复数量
+ * @author jqs
+ * @date 2023/7/5 12:49
*/
@PostMapping("/getUnReplaySuggestVo")
- public R<Integer> getUnReplaySuggestVo()
- {
+ public R<Integer> getUnReplaySuggestVo() {
Integer count = memberSuggestService.getUnReplaySuggestVo();
return R.ok(count);
}
-
+
/**
- * @description 获取核销奖品
- * @author jqs
- * @date 2023/7/8 17:43
* @param verifyPrize
- * @return R<MemberGiftRecord>
+ * @return R<MemberGiftRecord>
+ * @description 获取核销奖品
+ * @author jqs
+ * @date 2023/7/8 17:43
*/
@PostMapping("/getVerifyPrize")
- public R<MemberGiftRecord> getVerifyPrize(@RequestBody String verifyPrize)
- {
+ public R<MemberGiftRecord> getVerifyPrize(@RequestBody String verifyPrize) {
MemberGiftRecord memberGiftRecord = memberGiftRecordService.getById(verifyPrize);
return R.ok(memberGiftRecord);
}
-
+
+
/**
- * @description 核销奖品
- * @author jqs
- * @date 2023/8/10 11:56
+ * 根据礼品id获取数据
+ *
+ * @param giftId
+ * @return
+ */
+ @PostMapping("/getVerifyPrizeByGiftId")
+ public R<MemberGiftRecord> getVerifyPrizeByGiftId(@RequestBody String giftId) {
+ MemberGiftRecord memberGiftRecord = memberGiftRecordService.getOne(new QueryWrapper<MemberGiftRecord>().eq("gift_id", giftId));
+ return R.ok(memberGiftRecord);
+ }
+
+
+ /**
* @param merVerifyPrizeFinalDto
- * @return R
+ * @return R
+ * @description 核销奖品
+ * @author jqs
+ * @date 2023/8/10 11:56
*/
@PostMapping("/verifyPrize")
- public R verifyPrize(@RequestBody MerVerifyPrizeFinalDto merVerifyPrizeFinalDto)
- {
+ public R verifyPrize(@RequestBody MerVerifyPrizeFinalDto merVerifyPrizeFinalDto) {
memberGiftRecordService.verifyPrize(merVerifyPrizeFinalDto);
return R.ok();
}
-
+
/**
* @description 积分变动
* @author jqs
@@ -333,28 +330,27 @@
memberService.changeIntegral(integralChangeDto);
return R.ok();
}
-
+
/**
- * @description 统计商户今日新增会员
- * @author jqs
- * @date 2023/7/14 20:00
* @param shopIdList
- * @return R<Integer>
+ * @return R<Integer>
+ * @description 统计商户今日新增会员
+ * @author jqs
+ * @date 2023/7/14 20:00
*/
@PostMapping("/getAreaNewMember")
- public R<Integer> getAreaNewMember(@RequestBody List<Long> shopIdList)
- {
+ public R<Integer> getAreaNewMember(@RequestBody List<Long> shopIdList) {
Integer count = memberService.getAreaNewMember(shopIdList);
return R.ok(count);
}
-
-
+
+
/**
- * @description 更新会员绑定商户名
- * @author jqs
- * @date 2023/7/26 17:07
+ * @description 更新会员绑定商户名
+ * @author jqs
+ * @date 2023/7/26 17:07
* @param mgtMemberShopNameDto
- * @return R
+ * @return R
*/
@PostMapping("/updateMemberShopName")
public R updateMemberShopName(@RequestBody MgtMemberShopNameDto mgtMemberShopNameDto) {
@@ -386,4 +382,17 @@
public R addIntegralRecord(@RequestParam("integral") Integer integral, @RequestParam("userId") Long userId, @RequestParam("orderId") String orderId) {
return memberService.addIntegralRecord(integral, userId, orderId);
}
+
+
+ /**
+ * 添加奖品记录
+ *
+ * @param memberGiftRecord
+ * @return
+ */
+ @PostMapping("/saveMemberGiftRecord")
+ public R saveMemberGiftRecord(@RequestBody MemberGiftRecord memberGiftRecord) {
+ memberGiftRecordService.save(memberGiftRecord);
+ return R.ok();
+ }
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java
index bb0db64..270e667 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java
@@ -1,25 +1,34 @@
package com.ruoyi.member.controller.miniapp;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
+import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.goods.api.domain.LotteryEvent;
+import com.ruoyi.goods.api.service.LotteryEventClient;
import com.ruoyi.member.domain.dto.AppMemberCouponPageDto;
+import com.ruoyi.member.domain.pojo.coupon.Coupon;
import com.ruoyi.member.domain.vo.AppGetAbleCouponPageVo;
import com.ruoyi.member.domain.vo.AppMemberCouponPageVo;
+import com.ruoyi.member.domain.vo.CouponInfoVo;
import com.ruoyi.member.service.coupon.CouponService;
import com.ruoyi.member.service.member.MemberCouponService;
import com.ruoyi.member.service.member.MemberService;
import com.ruoyi.system.api.domain.dto.AppBaseGetDto;
import com.ruoyi.system.api.domain.dto.AppPageDto;
+import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.member.Member;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
+import com.ruoyi.system.api.service.RemoteGoodsService;
import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.text.SimpleDateFormat;
import java.util.List;
/**
@@ -33,17 +42,24 @@
@RestController
@RequestMapping("/app/coupon")
public class AppCouponController {
-
-
+
+
@Resource
private CouponService couponService;
-
+
@Resource
private MemberService memberService;
-
+
@Resource
private MemberCouponService memberCouponService;
-
+
+ @Resource
+ private RemoteGoodsService remoteGoodsService;
+
+ @Resource
+ private LotteryEventClient lotteryEventClient;
+
+
@RequestMapping(value = "/pageAppUserGetAbleCoupon", method = RequestMethod.POST)
@ApiOperation(value = "用户分页获取可领取优惠券列表")
public R<Page<AppGetAbleCouponPageVo>> pagePlatformMerCoupon(@RequestBody AppPageDto appPageDto) {
@@ -53,7 +69,7 @@
Page<AppGetAbleCouponPageVo> page = new Page<>();
page.setSize(appPageDto.getPageSize());
page.setCurrent(appPageDto.getPageNum());
- List<AppGetAbleCouponPageVo> unGetCouponPageVoList = couponService.pageAppUserGetAbleCoupon(page,appPageDto,member);
+ List<AppGetAbleCouponPageVo> unGetCouponPageVoList = couponService.pageAppUserGetAbleCoupon(page, appPageDto, member);
return R.ok(page.setRecords(unGetCouponPageVoList));
}
@@ -77,7 +93,66 @@
Page<AppMemberCouponPageVo> page = new Page<>();
page.setSize(appMemberCouponPageDto.getPageSize());
page.setCurrent(appMemberCouponPageDto.getPageNum());
- List<AppMemberCouponPageVo> memberCouponPageVoList = memberCouponService.pageAppUserGetCoupon(page,appMemberCouponPageDto, member);
+ List<AppMemberCouponPageVo> memberCouponPageVoList = memberCouponService.pageAppUserGetCoupon(page, appMemberCouponPageDto, member);
return R.ok(page.setRecords(memberCouponPageVoList));
}
+
+ @ResponseBody
+ @PostMapping("/getCouponInfo/{couponId}")
+ @ApiOperation(value = "获取优惠券详情【2.0】", tags = "领券中心")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "优惠券id", required = true, dataType = "String", paramType = "path")
+ })
+ public R<CouponInfoVo> getCouponInfo(@PathVariable("couponId") String couponId) {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
+ Coupon coupon = couponService.getById(couponId);
+ CouponInfoVo vo = new CouponInfoVo();
+ vo.setId(coupon.getCouponId());
+ vo.setName(coupon.getCouponName());
+ vo.setType(coupon.getCouponType());
+ vo.setMoneyThreshold(coupon.getMoneyThreshold());
+ vo.setDiscountPercent(coupon.getDiscountPercent());
+ vo.setDiscountMoney(coupon.getDiscountMoney());
+ vo.setValidType(coupon.getValidTimeType());
+ vo.setValidDays(coupon.getValidDay());
+ vo.setValidStartTime(sdf.format(coupon.getValidStartTime()));
+ vo.setValidEndTime(sdf.format(coupon.getValidEndTime()));
+ vo.setPropagandaPoster(coupon.getPropagandaPoster());
+ vo.setUseGoods("");
+ //构建特定商品数据
+ if (StringUtils.isNotEmpty(coupon.getRelGoodsIds())) {
+ String relGoodsIds = coupon.getRelGoodsIds();
+ List<Goods> data = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+ StringBuilder sb = new StringBuilder();
+ for (Goods goods : data) {
+ sb.append(goods.getGoodsName()).append(",");
+ }
+ vo.setUseGoods(sb.substring(0, sb.length() - 1));
+ }
+ vo.setLaveNum(coupon.getSendLimitFlag());
+ vo.setReceiveNum(coupon.getSendLimitNumber());
+ int count = memberCouponService.count(new QueryWrapper<MemberCoupon>().eq("coupon_id", couponId).eq("del_flag", 0));
+ vo.setLaveNum(coupon.getSendLimitNumber() - count);
+ MemberCoupon one = memberCouponService.getOne(new QueryWrapper<MemberCoupon>().eq("coupon_id", couponId).eq("user_id", SecurityUtils.getUserId()));
+ if (one != null) {
+ vo.setStatus(one.getCouponStatus());
+ }
+ return R.ok(vo);
+ }
+
+
+ @ResponseBody
+ @PostMapping("/shareCoupon/{couponId}")
+ @ApiOperation(value = "分享优惠券【2.0】", tags = "领券中心")
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "id", value = "优惠券id", required = true, dataType = "String", paramType = "path")
+ })
+ public R<Boolean> shareCoupon(@PathVariable("couponId") String couponId) {
+ //检测是否可以抽奖
+ List<LotteryEvent> data = lotteryEventClient.getLotteryEventList(3).getData();
+ if (data.size() > 0) {
+ return R.ok(true);
+ }
+ return R.ok(false);
+ }
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
index 1533e98..51cd570 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java
@@ -158,7 +158,7 @@
}
@RequestMapping(value = "/pageAppMemberPrize", method = RequestMethod.POST)
- @ApiOperation(value = "分页获取用户奖品列表")
+ @ApiOperation(value = "分页获取用户奖品列表【2.0】")
public R<Page<AppMemberPrizePageVo>> pageAppMemberPrize(@RequestBody AppPageDto appPageDto) {
Long userId = SecurityUtils.getUserId();
appPageDto.setUserId(userId);
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
index f2c2a80..238a73e 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java
@@ -543,6 +543,7 @@
memberGiftRecord.setDelFlag(0);
memberGiftRecord.setVerifyStatus(1);
memberGiftRecord.setGiftFrom(1);
+ memberGiftRecord.setPrizeFrom(1);
memberGiftRecord.setGiftYear(currentYear);
memberGiftRecord.setCreateTime(new Date());
memberGiftRecord.setUserId(userId);
@@ -622,6 +623,7 @@
memberGiftRecord.setDelFlag(0);
memberGiftRecord.setVerifyStatus(1);
memberGiftRecord.setGiftFrom(2);
+ memberGiftRecord.setPrizeFrom(1);
memberGiftRecord.setShopId(shopId);
memberGiftRecord.setGiftYear(currentYear);
memberGiftRecord.setCreateTime(new Date());
@@ -682,23 +684,23 @@
appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList);
return appBirthdayCardVo;
}
-
+
/**
- * @description
- * @author jqs
- * @date 2023/7/11 18:02
* @param page
* @param userId
- * @return List<AppMemberPrizePageVo>
+ * @return List<AppMemberPrizePageVo>
+ * @description
+ * @author jqs
+ * @date 2023/7/11 18:02
*/
@Override
- public List<AppMemberPrizePageVo> pageAppMemberPrize(Page page, Long userId){
+ public List<AppMemberPrizePageVo> pageAppMemberPrize(Page page, Long userId) {
List<AppMemberPrizePageVo> memberPrizePageVoList = birthdayCardMapper.pageAppMemberPrize(page, userId);
- if(memberPrizePageVoList!=null&&!memberPrizePageVoList.isEmpty()){
+ if (memberPrizePageVoList != null && !memberPrizePageVoList.isEmpty()) {
HashSet<Long> shopIdSet = new HashSet<>();
- for(AppMemberPrizePageVo appMemberPrizePageVo : memberPrizePageVoList){
- appMemberPrizePageVo.setVerifyCode("3-"+appMemberPrizePageVo.getPrizeId());
- if(appMemberPrizePageVo.getShopId()!=null){
+ for (AppMemberPrizePageVo appMemberPrizePageVo : memberPrizePageVoList) {
+ appMemberPrizePageVo.setVerifyCode("3-" + appMemberPrizePageVo.getPrizeId());
+ if (appMemberPrizePageVo.getShopId() != null) {
shopIdSet.add(appMemberPrizePageVo.getShopId());
}
}
@@ -708,8 +710,8 @@
List<MgtSimpleShopVo> simpleShopVoList = remoteShopService.listShopSimpleVoByIds(mgtBaseBathDto).getData();
Map<Long, MgtSimpleShopVo> shopMap = simpleShopVoList.stream()
.collect(Collectors.toMap(MgtSimpleShopVo::getShopId, Function.identity()));
- for(AppMemberPrizePageVo appMemberPrizePageVo : memberPrizePageVoList){
- if(appMemberPrizePageVo.getShopId()!=null){
+ for (AppMemberPrizePageVo appMemberPrizePageVo : memberPrizePageVoList) {
+ if (appMemberPrizePageVo.getShopId() != null) {
appMemberPrizePageVo.setVerifyShopName(shopMap.get(appMemberPrizePageVo.getShopId()).getShopName());
}
}
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/birthday/BirthdayCardMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/birthday/BirthdayCardMapper.xml
index 0e02a5e..93a003c 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/birthday/BirthdayCardMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/birthday/BirthdayCardMapper.xml
@@ -17,21 +17,25 @@
</select>
<select id="pageAppMemberPrize" resultType="com.ruoyi.member.domain.vo.AppMemberPrizePageVo">
- SELECT
- prize_id prizeId,
- CASE gift_type
- WHEN 1 THEN CONCAT(coupon_name,"优惠券")
- WHEN 2 THEN CONCAT(goods_name,"商品")
- WHEN 4 THEN CONCAT(gift_name,"实物")
- WHEN 3 THEN CONCAT("现金",money,"元")
- END prizeName,
- "生日卡" prizeFrom,
- verify_status verifyStatus,
- create_time createTime,
- verify_time verifyTime,
- shop_id shopId
+ SELECT prize_id prizeId,
+ CASE gift_type
+ WHEN 1 THEN CONCAT(coupon_name, "优惠券")
+ WHEN 2 THEN CONCAT(goods_name, "商品")
+ WHEN 4 THEN CONCAT(gift_name, "实物")
+ WHEN 3 THEN CONCAT("现金", money, "元")
+ WHEN 5 THEN "积分"
+ END prizeName,
+ CASE prize_from
+ WHEN 1 THEN "生日卡"
+ ELSE "抽奖"
+ END prizeFrom,
+ verify_status verifyStatus,
+ create_time createTime,
+ verify_time verifyTime,
+ shop_id shopId
FROM t_member_gift_record
- WHERE del_flag = 0 AND user_id = #{userId}
+ WHERE del_flag = 0
+ AND user_id = #{userId}
ORDER BY verify_status ASC
</select>
</mapper>
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
index fda482f..7f472e7 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/pojo/order/Order.java
@@ -56,7 +56,7 @@
private String outTradeNo;
/**
- * 订单来源1.商城2.秒杀活动3.线下创建
+ * 订单来源1.商城2.秒杀活动3.线下创建4.抽奖
*/
@TableField("order_from")
private Integer orderFrom;
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
index bba0315..1ab53ad 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -2413,20 +2413,20 @@
Long shopId = shopRelUserVo.getShopId();
Shop shop = remoteShopService.getShop(shopId).getData();
//平台奖品判断
- if (memberGiftRecord.getGiftFrom() == 1) {
+ if (memberGiftRecord.getGiftFrom() == 1 && memberGiftRecord.getPrizeFrom() == 1) {
BirthdayCard birthdayCard = remoteMemberService.getBirthdayCard().getData();
//判断生日活动状态
- if(birthdayCard!=null&&birthdayCard.getCardStatus()==1){
+ if (birthdayCard != null && birthdayCard.getCardStatus() == 1) {
shop = remoteShopService.getShop(shopId).getData();
//判断指定区域全部店铺
- if(birthdayCard.getAreaFlag()==2&&birthdayCard.getShopFlag()==1&&!StringUtils.checkString(birthdayCard.getDesignatedArea(),shop.getShopCityCode())){
+ if (birthdayCard.getAreaFlag() == 2 && birthdayCard.getShopFlag() == 1 && !StringUtils.checkString(birthdayCard.getDesignatedArea(), shop.getShopCityCode())) {
throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
}
//判断指定店铺
- if(birthdayCard.getShopFlag()==2&&!StringUtils.checkString(birthdayCard.getApplicableShop(),shopId.toString())){
+ if (birthdayCard.getShopFlag() == 2 && !StringUtils.checkString(birthdayCard.getApplicableShop(), shopId.toString())) {
throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
}
- }else{
+ } else {
throw new ServiceException(AppErrorConstant.BIRTHDAY_CARD_ERROR);
}
}
@@ -2435,29 +2435,35 @@
throw new ServiceException(AppErrorConstant.VERIFY_SHOP_ERROR);
}
Member member = remoteMemberService.getMember(memberGiftRecord.getUserId()).getData();
-
+
merVerifyAwardVo.setUserName(member.getRealName());
merVerifyAwardVo.setUserMobile(member.getMobile());
- if (memberGiftRecord.getGiftFrom() == 1) {
- merVerifyAwardVo.setGiftFrom("平台生日卡");
+ if (memberGiftRecord.getPrizeFrom() == 1) {
+ if (memberGiftRecord.getGiftFrom() == 1) {
+ merVerifyAwardVo.setGiftFrom("平台生日卡");
+ } else {
+ merVerifyAwardVo.setGiftFrom("商户生日卡");
+ }
} else {
- merVerifyAwardVo.setGiftFrom("商户生日卡");
+ merVerifyAwardVo.setGiftFrom("抽奖");
}
merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
List<BirthdayGiftSendDto> giftSendDtoList = new ArrayList<>();
BirthdayGiftSendDto birthdayGiftSendDto = new BirthdayGiftSendDto();
switch (memberGiftRecord.getGiftType()) {
case 1:
- merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
- merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getCouponNumber()));
- birthdayGiftSendDto.setUserId(memberGiftRecord.getUserId());
- birthdayGiftSendDto.setGiftType(memberGiftRecord.getGiftType());
- birthdayGiftSendDto.setGiftFrom(memberGiftRecord.getGiftFrom());
- birthdayGiftSendDto.setShopId(memberGiftRecord.getShopId());
- birthdayGiftSendDto.setCouponId(memberGiftRecord.getCouponId());
- birthdayGiftSendDto.setCouponNumber(memberGiftRecord.getCouponNumber());
- giftSendDtoList.add(birthdayGiftSendDto);
- remoteCouponService.sendCouponGift(giftSendDtoList);
+ if (memberGiftRecord.getPrizeFrom() == 1) {
+ merVerifyAwardVo.setGiftName(memberGiftRecord.getCouponName());
+ merVerifyAwardVo.setGiftNumber(Double.valueOf(memberGiftRecord.getCouponNumber()));
+ birthdayGiftSendDto.setUserId(memberGiftRecord.getUserId());
+ birthdayGiftSendDto.setGiftType(memberGiftRecord.getGiftType());
+ birthdayGiftSendDto.setGiftFrom(memberGiftRecord.getGiftFrom());
+ birthdayGiftSendDto.setShopId(memberGiftRecord.getShopId());
+ birthdayGiftSendDto.setCouponId(memberGiftRecord.getCouponId());
+ birthdayGiftSendDto.setCouponNumber(memberGiftRecord.getCouponNumber());
+ giftSendDtoList.add(birthdayGiftSendDto);
+ remoteCouponService.sendCouponGift(giftSendDtoList);
+ }
break;
case 2:
Goods goods = remoteGoodsService.getGoods(memberGiftRecord.getGoodsId()).getData();
@@ -2480,10 +2486,16 @@
birthdayGiftSendDto.setGoodsNumber(memberGiftRecord.getGoodsNumber());
giftSendDtoList.add(birthdayGiftSendDto);
consumerGoodsService.sendGoodsGift(giftSendDtoList);
+ //抽奖奖品中的平台商品需要生成订单数据
+ if (memberGiftRecord.getPrizeFrom() == 2) {
+ addOrder(memberGiftRecord.getShopId(), memberGiftRecord.getUserId(), goods, memberGiftRecord.getGoodsNumber(), memberGiftRecord.getGiftId());
+ }
break;
case 3:
- merVerifyAwardVo.setGiftName("现金");
- merVerifyAwardVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue());
+ if (memberGiftRecord.getPrizeFrom() == 1) {
+ merVerifyAwardVo.setGiftName("现金");
+ merVerifyAwardVo.setGiftNumber(memberGiftRecord.getMoney().doubleValue());
+ }
break;
case 4:
merVerifyAwardVo.setGiftName(memberGiftRecord.getGiftName());
@@ -2511,8 +2523,65 @@
merVerifyAwardVo.setVerifyStatus(2);
return merVerifyAwardVo;
}
-
-
+
+
+ /**
+ * 核销抽奖的平台商品生成订单
+ *
+ * @param shopId
+ * @param userId
+ * @param goods
+ * @param goodsNum
+ */
+ public void addOrder(Long shopId, Long userId, Goods goods, Integer goodsNum, String giftId) {
+ Order order = new Order();
+ order.setOrderId(IdUtils.simpleUUID());
+ order.setDelFlag(0);
+ order.setOrderStatus(3);
+ order.setOrderNo(CodeFactoryUtil.getShopOrderNo());
+ order.setOrderFrom(4);
+ order.setShopId(shopId);
+ order.setUserId(userId);
+ order.setOrderMoney(BigDecimal.ZERO);
+ order.setCouponMoney(BigDecimal.ZERO);
+ order.setDiscountMoney(BigDecimal.ZERO);
+ order.setReceivableMoney(BigDecimal.ZERO);
+ order.setPayType(1);
+ order.setPayMoney(BigDecimal.ZERO);
+ order.setOrderRemark("抽奖订单");
+ order.setCreateTime(new Date());
+ order.setPayTime(new Date());
+ order.setUseTime(new Date());
+ order.setUseUserId(userId);
+ order.setGoodsNum(goodsNum);
+ order.setReceivableDeposit(BigDecimal.ZERO);
+ order.setCloseFlag(1);
+ order.setActivityId(giftId);
+ this.save(order);
+ OrderGoods orderGoods = new OrderGoods();
+ orderGoods.setOrderGoodsId(IdUtils.simpleUUID());
+ orderGoods.setDelFlag(0);
+ orderGoods.setOrderId(order.getOrderId());
+ orderGoods.setGoodsId(goods.getGoodsId());
+ orderGoods.setBuyNum(goodsNum);
+ orderGoods.setGoodsPrice(goods.getSalesPrice());
+ orderGoods.setGoodsDeposit(goods.getSubscription());
+ orderGoods.setGoodsTotalMoney(goods.getSalesPrice().multiply(new BigDecimal(goodsNum)));
+ orderGoods.setGoodsReceivableMoney(BigDecimal.ZERO);
+ orderGoods.setCycleNumFlag(goods.getCycleNumFlag());
+ orderGoods.setServiceNum(goods.getServiceNum());
+ orderGoods.setGoodsType(goods.getGoodsType());
+ orderGoods.setGoodsName(goods.getGoodsName());
+ GoodsFile goodsFile = remoteGoodsService.getGoodsFile(goods.getGoodsId()).getData();
+ if (null != goodsFile) {
+ orderGoods.setGoodsPicture(goodsFile.getFileUrl());
+ }
+ orderGoods.setGoodsIntroduction(goods.getGoodsIntroduction());
+ orderGoods.setGoodsTag(goods.getGoodsTags());
+ orderGoodsService.save(orderGoods);
+ }
+
+
/**
* 收银未结清订单列表
*
@@ -2529,14 +2598,14 @@
if (merMemberNoClearOrderVo.getUnPaidMoney() == null) {
merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
}
- if(merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig)<0){
+ if (merMemberNoClearOrderVo.getUnPaidMoney().compareTo(zeroBig) < 0) {
merMemberNoClearOrderVo.setUnPaidMoney(zeroBig);
}
}
}
return merMemberNoClearOrderVoList;
}
-
+
/**
* 结清订单
*
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java
index e73b8fb..a55bab3 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/miniapp/AppHomeController.java
@@ -3,11 +3,14 @@
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.plugins.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.shop.domain.dto.AppNearbyShopDto;
+import com.ruoyi.shop.domain.dto.MyAppointmentListDto;
import com.ruoyi.shop.domain.vo.AppNearbyShopVo;
import com.ruoyi.shop.domain.vo.AppShopInfoVo;
+import com.ruoyi.shop.domain.vo.MyAppointmentListVo;
import com.ruoyi.shop.service.shop.ShopAppointableTimeService;
import com.ruoyi.shop.service.shop.ShopNonAppointableTimeService;
import com.ruoyi.shop.service.shop.ShopService;
@@ -21,10 +24,7 @@
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.log4j.Log4j2;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RequestMethod;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.time.LocalDateTime;
@@ -104,4 +104,31 @@
shopAppointableTimeService.save(one);
return R.ok();
}
+
+ @RequestMapping(value = "/getMyAppointmentList", method = RequestMethod.POST)
+ @ApiOperation(value = "获取我的预约列表【2.0】")
+ public R<Page<MyAppointmentListVo>> getMyAppointmentList(@RequestBody MyAppointmentListDto dto) {
+ Page<MyAppointmentListVo> page = new Page<>();
+ page.setSize(dto.getPageSize());
+ page.setCurrent(dto.getPageNum());
+ List<MyAppointmentListVo> myAppointmentListVos = shopAppointableTimeService.pageMyAppointmentList(page, dto);
+ return R.ok(page.setRecords(myAppointmentListVos));
+ }
+
+
+ @RequestMapping(value = "/cancelAppointmentTime/{id}", method = RequestMethod.POST)
+ @ApiOperation(value = "取消预约【2.0】")
+ public R cancelAppointmentTime(@PathVariable("id") String id) {
+ Long userId = SecurityUtils.getUserId();
+ ShopAppointableTime one = shopAppointableTimeService.getById(id);
+ if (null == one) {
+ return R.fail("预约不存在");
+ }
+ if (!one.getUserId().equals(userId)) {
+ return R.fail("不能取消别人的预约");
+ }
+ one.setStatus(0);
+ shopAppointableTimeService.updateById(one);
+ return R.ok();
+ }
}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopAppointableTimeMapper.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopAppointableTimeMapper.java
index 3cfdc6e..36a7535 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopAppointableTimeMapper.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/mapper/shop/ShopAppointableTimeMapper.java
@@ -1,11 +1,27 @@
package com.ruoyi.shop.mapper.shop;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.ruoyi.shop.domain.vo.MyAppointmentListVo;
import com.ruoyi.system.api.domain.poji.shop.ShopAppointableTime;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
/**
* @author zhibing.pu
* @Date 2025/5/26 15:13
*/
public interface ShopAppointableTimeMapper extends BaseMapper<ShopAppointableTime> {
+
+
+ /**
+ * 分页查询我的预约列表
+ *
+ * @param page
+ * @param userId
+ * @param status
+ * @return
+ */
+ List<MyAppointmentListVo> pageMyAppointmentList(Page<MyAppointmentListVo> page, @Param("userId") Long userId, @Param("status") Integer status);
}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopAppointableTimeServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopAppointableTimeServiceImpl.java
index 00ea027..2cf08f1 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopAppointableTimeServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopAppointableTimeServiceImpl.java
@@ -1,13 +1,35 @@
package com.ruoyi.shop.service.impl.shop;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.shop.domain.dto.MyAppointmentListDto;
+import com.ruoyi.shop.domain.vo.MyAppointmentListVo;
import com.ruoyi.shop.mapper.shop.ShopAppointableTimeMapper;
import com.ruoyi.shop.service.shop.ShopAppointableTimeService;
import com.ruoyi.system.api.domain.poji.shop.ShopAppointableTime;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
/**
* @author zhibing.pu
* @Date 2025/5/26 15:15
*/
+@Service
public class ShopAppointableTimeServiceImpl extends ServiceImpl<ShopAppointableTimeMapper, ShopAppointableTime> implements ShopAppointableTimeService {
+
+
+ /**
+ * 分页查询我的预约
+ *
+ * @param page
+ * @param dto
+ * @return
+ */
+ @Override
+ public List<MyAppointmentListVo> pageMyAppointmentList(Page<MyAppointmentListVo> page, MyAppointmentListDto dto) {
+ Long userId = SecurityUtils.getUserId();
+ return this.baseMapper.pageMyAppointmentList(page, userId, dto.getStatus());
+ }
}
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopAppointableTimeService.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopAppointableTimeService.java
index 052c43d..76476e1 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopAppointableTimeService.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopAppointableTimeService.java
@@ -1,11 +1,26 @@
package com.ruoyi.shop.service.shop;
import com.baomidou.mybatisplus.extension.service.IService;
+import com.baomidou.mybatisplus.plugins.Page;
+import com.ruoyi.shop.domain.dto.MyAppointmentListDto;
+import com.ruoyi.shop.domain.vo.MyAppointmentListVo;
import com.ruoyi.system.api.domain.poji.shop.ShopAppointableTime;
+
+import java.util.List;
/**
* @author zhibing.pu
* @Date 2025/5/26 15:14
*/
public interface ShopAppointableTimeService extends IService<ShopAppointableTime> {
+
+
+ /**
+ * 获取用户预约列表
+ *
+ * @param page
+ * @param dto
+ * @return
+ */
+ List<MyAppointmentListVo> pageMyAppointmentList(Page<MyAppointmentListVo> page, MyAppointmentListDto dto);
}
--
Gitblit v1.7.1