From efc09045da6ca5fc06ff9221723ed9ddf81e568e Mon Sep 17 00:00:00 2001
From: liujie <liujie>
Date: 星期三, 09 八月 2023 09:32:37 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java | 7
cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java | 381 +++++++++++++++++++++++++++++++----------
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsVo.java | 17 +
cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java | 27 +-
cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java | 3
cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java | 8
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java | 5
cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java | 43 ++-
cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java | 4
cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java | 8
cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsVo.java | 17 +
11 files changed, 384 insertions(+), 136 deletions(-)
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
index ebc2f3f..1b3d580 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/MerChandiseClient.java
@@ -3,6 +3,7 @@
import com.dsh.account.feignclient.activity.model.*;
import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
+import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.ProductDetailsVo;
import org.springframework.cloud.openfeign.FeignClient;
@@ -29,7 +30,7 @@
@PostMapping("/base/pointMerchars/getDetailsOfExchange")
- List<ExchangeDetailsResponse> getIntegralExchangeDetails(@RequestBody Integer appUserId);
+ ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId);
@PostMapping("/base/pointMerchars/getSpecificsOfGoods")
public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId);
@@ -39,7 +40,7 @@
@PostMapping("/base/pointMerchars/saveDetailsUserPointMercase")
- public void saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise);
+ public void saveDetailsUserPointMercase( UserPointsMerchandise merchandise);
@PostMapping("/base/pointMerchars/updateDetailsUserPointMercase")
diff --git a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
index dd04bbe..1478c3d 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/feignclient/activity/model/UserPointsMerchandise.java
@@ -22,7 +22,7 @@
*/
private Long id;
/**
- * 优惠券id
+ * 商品id
*/
private Integer pointsMerchandiseId;
/**
@@ -65,5 +65,11 @@
* 现金的支付状态(1=待支付 2=已支付)
*/
private Integer payStatus;
+ /**
+ * 可使用的门店id
+ */
+ private Integer storeId;
+
+
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsVo.java
new file mode 100644
index 0000000..7c1f3de
--- /dev/null
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/ExchangeDetailsVo.java
@@ -0,0 +1,17 @@
+package com.dsh.account.model.vo.userBenefitDetail;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ExchangeDetailsVo {
+
+ List<ExchangeDetailsResponse> detailsResponses;
+
+}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java
index 7ddbb11..e5395ea 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/model/vo/userBenefitDetail/GoodsExchangeVo.java
@@ -31,6 +31,6 @@
@ApiModelProperty(value = "学员id列表",required = false)
List<Integer> stuIds;
- @ApiModelProperty(value = "门店id列表",required = false)
- List<Integer> storeIds;
+ @ApiModelProperty(value = "门店id",required = false)
+ Integer storeId;
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
index e87e6fd..ff27ba9 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/TAppUserServiceImpl.java
@@ -857,104 +857,290 @@
public ResultUtil productRedemptionOperation(Integer userIdFormRedis, GoodsExchangeVo exchangeType) {
System.out.println("exchangeType:--->");
System.out.println(exchangeType);
- PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
+
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
String code = sdf.format(new Date()) + UUIDUtil.getNumberRandom(5);
- for (int i = 0; i < exchangeType.getNums(); i++) {
+ PointsMerchandise merchandise = mcClient.selectPointsMerchandiseById(exchangeType.getGoodId());
+ if (ToolUtil.isEmpty(merchandise)){
+ return ResultUtil.error("商品不存在");
+ }
+ TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
+ if (ToolUtil.isEmpty(tAppUser)){
+ return ResultUtil.error("用户不存在");
+ }
+// todo 积分商品明细 查询是否超出限领数量
+ switch (exchangeType.getGoodsType()){
+ case 1:
+
+ break;
+ case 2:
+
+ break;
+ case 3:
+
+ break;
+ case 4:
+
+ break;
+ default:
+ break;
+ }
+ int goodsNums = 0;
+ if (ToolUtil.isEmpty(exchangeType.getNums())){
+ goodsNums = 1;
+ }else {
+ goodsNums = exchangeType.getNums();
+ }
+ for (int i = 0; i < goodsNums; i++) {
+// 新增积分商品兑换记录
UserPointsMerchandise pointsMerchandise = new UserPointsMerchandise();
pointsMerchandise.setPointsMerchandiseId(exchangeType.getGoodId());
pointsMerchandise.setUserId(userIdFormRedis);
+ pointsMerchandise.setStatus(1);
+ if (merchandise.getUseScope() == 3){
+ if (exchangeType.getGoodsType() == 2){
+ CoursePackage coursePackage = cpageClient.queryCoursePackageById(merchandise.getCoursePackageId());
+ pointsMerchandise.setStoreId(coursePackage.getStoreId());
+ }else {
+ pointsMerchandise.setStoreId(exchangeType.getStoreId());
+ }
+ }
pointsMerchandise.setCode(code);
mcClient.saveDetailsUserPointMercase(pointsMerchandise);
}
-// 扣减积分
- TAppUser tAppUser = this.baseMapper.selectById(userIdFormRedis);
-
-
-// 积分变更记录
- UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
- userIntegralChanges.setAppUserId(userIdFormRedis);
- userIntegralChanges.setOldIntegral(tAppUser.getIntegral());
- userIntegralChanges.setType(2);
- tAppUser.setIntegral(null == tAppUser.getIntegral() ? merchandise.getIntegral() : tAppUser.getIntegral() +merchandise.getIntegral());
- userIntegralChanges.setNewIntegral(tAppUser.getIntegral());
- userIntegralChanges.setInsertTime(new Date());
- uicMapper.insert(userIntegralChanges);
-
- this.baseMapper.updateById(tAppUser);
-// 现金支付
- if (exchangeType.getExchangeType() == 2 || exchangeType.getExchangeType() == 3) {
- switch (exchangeType.getGoodsType()) {
- case 2:
- for (int i = 0; i < exchangeType.getStuIds().size(); i++) {
- List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
-
- TCoursePackagePayment packagePayment = new TCoursePackagePayment();
- packagePayment.setAppUserId(userIdFormRedis);
- packagePayment.setStudentId(exchangeType.getStuIds().get(i));
- packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
- for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
- if (Objects.equals(coursePackagePaymentConfig.getId(),merchandise.getCoursePackageConfigId())){
- packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
- packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
- packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
- packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
- break;
+ switch (exchangeType.getExchangeType()){
+// 积分
+ case 1:
+ boolean b = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
+ if (b){
+ switch (exchangeType.getGoodsType()){
+ case 2:
+ Integer stuNums = 0;
+ if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
+ stuNums = exchangeType.getStuIds().size();
+ }else {
+ stuNums = 1;
}
+ for (int i = 0; i < stuNums; i++) {
+ List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
+ TCoursePackagePayment packagePayment = new TCoursePackagePayment();
+ packagePayment.setAppUserId(userIdFormRedis);
+ packagePayment.setStudentId(exchangeType.getStuIds().get(i));
+ packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
+ for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
+ if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
+ packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+ break;
+ }
+ }
+ packagePayment.setPlayPaiCoin(merchandise.getIntegral());
+ packagePayment.setAbsencesNumber(0);
+ packagePayment.setPayUserType(1);
+ packagePayment.setPayStatus(2);
+ packagePayment.setPayUserId(userIdFormRedis);
+ packagePayment.setStatus(1);
+ packagePayment.setState(1);
+ packagePayment.setInsertTime(new Date());
+ packagePayment.setCode(code);
+ paymentClient.savePaymentCoursePackage(packagePayment);
+ }
+ break;
+ case 4:
+ for (int i = 0; i < goodsNums; i++) {
+ UserCoupon coupon = new UserCoupon();
+ coupon.setCouponId(exchangeType.getGoodId());
+ coupon.setUserId(userIdFormRedis);
+ coupon.setStatus(1);
+ coupon.setInsertTime(new Date());
+ ucponClient.insertToAppuserCoupon(coupon);
+ }
+ break;
+ default:
+ break;
+ }
+ }else {
+ return ResultUtil.error("用户积分不足!");
+ }
+ break;
+ case 2:
+// 积分+现金
+ boolean dealt = dealAppUserIntegral(userIdFormRedis,tAppUser,merchandise.getIntegral());
+ if (dealt){
+ switch (exchangeType.getGoodsType()){
+// 1实物 2课包 3门票 4优惠券
+ case 2:
+ Integer stuNums = 0;
+ if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
+ stuNums = exchangeType.getStuIds().size();
+ }else {
+ stuNums = 1;
+ }
+ for (int i = 0; i < stuNums; i++) {
+ List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
+ TCoursePackagePayment packagePayment = new TCoursePackagePayment();
+ packagePayment.setAppUserId(userIdFormRedis);
+ packagePayment.setStudentId(exchangeType.getStuIds().get(i));
+ packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
+ for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
+ if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
+ packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+ break;
+ }
+ }
+ packagePayment.setPlayPaiCoin(merchandise.getIntegral());
+ packagePayment.setAbsencesNumber(0);
+ packagePayment.setPayUserType(1);
+ packagePayment.setPayStatus(1);
+ packagePayment.setPayUserId(userIdFormRedis);
+ packagePayment.setStatus(1);
+ packagePayment.setState(1);
+ packagePayment.setInsertTime(new Date());
+ packagePayment.setCode(code);
+ paymentClient.savePaymentCoursePackage(packagePayment);
+ }
+ break;
+ case 4:
+ for (int i = 0; i < goodsNums; i++) {
+ UserCoupon coupon = new UserCoupon();
+ coupon.setCouponId(exchangeType.getGoodId());
+ coupon.setUserId(userIdFormRedis);
+ coupon.setStatus(1);
+ coupon.setInsertTime(new Date());
+ ucponClient.insertToAppuserCoupon(coupon);
+ }
+ break;
+ default:
+ break;
+ }
+ }else {
+ return ResultUtil.error("用户积分不足!");
+ }
+ switch (exchangeType.getPayType()) {
+ case 1:
+ try {
+ if (merchandise.getType() == 2) {
+ return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+ } else {
+ return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+ }
+ } catch (Exception e) {
+ return ResultUtil.runErr();
}
- packagePayment.setPlayPaiCoin(merchandise.getIntegral());
- packagePayment.setAbsencesNumber(0);
- packagePayment.setPayUserType(1);
- packagePayment.setPayStatus(1);
- packagePayment.setPayUserId(userIdFormRedis);
- packagePayment.setStatus(1);
- packagePayment.setState(1);
- packagePayment.setInsertTime(new Date());
- packagePayment.setCode(code);
- paymentClient.savePaymentCoursePackage(packagePayment);
- }
- break;
- case 4:
- for (int i = 0; i < exchangeType.getNums(); i++) {
- UserCoupon coupon = new UserCoupon();
- coupon.setCouponId(exchangeType.getGoodId());
- coupon.setUserId(userIdFormRedis);
- coupon.setStatus(1);
- coupon.setInsertTime(new Date());
- ucponClient.insertToAppuserCoupon(coupon);
- }
- break;
- default:
- break;
- }
-
- switch (exchangeType.getPayType()){
- case 1:
- try {
- if (merchandise.getType() == 2){
- return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())),code);
+ case 2:
+ if (merchandise.getType() == 2) {
+ return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+ } else {
+ return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+ }
+ default:
+ break;
+ }
+ break;
+ case 3:
+// 现金
+ switch (exchangeType.getGoodsType()){
+ case 2:
+ Integer stuNums = 0;
+ if (ToolUtil.isNotEmpty(exchangeType.getStuIds())){
+ stuNums = exchangeType.getStuIds().size();
}else {
- return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getNums())),code);
+ stuNums = 1;
}
- }catch (Exception e){
- return ResultUtil.runErr();
- }
- case 2:
- if (merchandise.getType() == 2){
- AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())),code);
- }else {
- AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getNums())),code);
- }
- break;
- default:
- break;
- }
+ for (int i = 0; i < stuNums; i++) {
+ List<CoursePackagePaymentConfig> courseConfigList = cpconClient.getCourseConfigList(merchandise.getCoursePackageId());
+ TCoursePackagePayment packagePayment = new TCoursePackagePayment();
+ packagePayment.setAppUserId(userIdFormRedis);
+ packagePayment.setStudentId(exchangeType.getStuIds().get(i));
+ packagePayment.setCoursePackageId(merchandise.getCoursePackageId());
+ for (CoursePackagePaymentConfig coursePackagePaymentConfig : courseConfigList) {
+ if (Objects.equals(coursePackagePaymentConfig.getId(), merchandise.getCoursePackageConfigId())) {
+ packagePayment.setClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setTotalClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setLaveClassHours(coursePackagePaymentConfig.getClassHours());
+ packagePayment.setOriginalPrice(coursePackagePaymentConfig.getCashPayment());
+ break;
+ }
+ }
+ packagePayment.setCashPayment(merchandise.getCash());
+ packagePayment.setAbsencesNumber(0);
+ packagePayment.setPayUserType(1);
+ packagePayment.setPayStatus(1);
+ packagePayment.setPayUserId(userIdFormRedis);
+ packagePayment.setStatus(1);
+ packagePayment.setState(1);
+ packagePayment.setInsertTime(new Date());
+ packagePayment.setCode(code);
+ paymentClient.savePaymentCoursePackage(packagePayment);
+ }
+ break;
+ case 4:
+ for (int i = 0; i < goodsNums; i++) {
+ UserCoupon coupon = new UserCoupon();
+ coupon.setCouponId(exchangeType.getGoodId());
+ coupon.setUserId(userIdFormRedis);
+ coupon.setStatus(1);
+ coupon.setInsertTime(new Date());
+ ucponClient.insertToAppuserCoupon(coupon);
+ }
+ break;
+ default:
+ break;
+ }
+ switch (exchangeType.getPayType()) {
+ case 1:
+ try {
+ if (merchandise.getType() == 2) {
+ return WechatPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+ } else {
+ return WechatPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+ }
+ } catch (Exception e) {
+ return ResultUtil.runErr();
+ }
+ case 2:
+ if (merchandise.getType() == 2) {
+ return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(exchangeType.getStuIds().size())), code);
+ } else {
+ return AlipayPayment(merchandise.getCash().multiply(new BigDecimal(goodsNums)), code);
+ }
+ default:
+ break;
+ }
+ break;
+ default:
+ break;
}
-
return ResultUtil.success();
}
+ public boolean dealAppUserIntegral(Integer appUserId,TAppUser appUser,Integer points){
+ try {
+ if (ToolUtil.isEmpty(appUser.getIntegral()) || (ToolUtil.isNotEmpty(appUser.getIntegral()) && appUser.getIntegral() < points)){
+ return false;
+ }
+ // 积分变更记录
+ UserIntegralChanges userIntegralChanges = new UserIntegralChanges();
+ userIntegralChanges.setAppUserId(appUserId);
+ userIntegralChanges.setOldIntegral(appUser.getIntegral());
+ userIntegralChanges.setType(2);
+ appUser.setIntegral(null == appUser.getIntegral() ? points : appUser.getIntegral() - points);
+ userIntegralChanges.setNewIntegral(appUser.getIntegral());
+ userIntegralChanges.setInsertTime(new Date());
+ uicMapper.insert(userIntegralChanges);
+
+ this.baseMapper.updateById(appUser);
+ return true;
+ }catch (Exception e){
+ return false;
+ }
+ }
private ResultUtil AlipayPayment(BigDecimal cash, String code) {
ResultUtil alipay = payMoneyUtil.alipay("课包续费", "", "", code, cash.toString(),
@@ -1148,24 +1334,29 @@
List<StoreResponse> responses = new ArrayList<>();
if (goodsType == 4){
List<Integer> couponStoreIds = ucponClient.getCouponStoreIds(pointsMerId);
- for (Integer couponStoreId : couponStoreIds) {
- StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreId);
- if(ToolUtil.isNotEmpty(courseOfStore)){
- StoreResponse response = new StoreResponse();
- response.setStoreId(couponStoreId);
- response.setStoreName(courseOfStore.getStoreName());
- responses.add(response);
+ if (couponStoreIds.size() > 0 ){
+ for (Integer couponStoreId : couponStoreIds) {
+ StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(couponStoreId);
+ if(ToolUtil.isNotEmpty(courseOfStore)){
+ StoreResponse response = new StoreResponse();
+ response.setStoreId(couponStoreId);
+ response.setStoreName(courseOfStore.getStoreName());
+ responses.add(response);
+ }
}
}
+
}else {
List<Integer> integers = mcsClient.queryPointMerStoreIds(pointsMerId);
- for (Integer integer : integers) {
- StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integer);
- if(ToolUtil.isNotEmpty(courseOfStore)){
- StoreResponse response = new StoreResponse();
- response.setStoreId(integer);
- response.setStoreName(courseOfStore.getStoreName());
- responses.add(response);
+ if (integers.size() > 0 ){
+ for (Integer integer : integers) {
+ StoreDetailOfCourse courseOfStore = storeClient.getCourseOfStore(integer);
+ if(ToolUtil.isNotEmpty(courseOfStore)){
+ StoreResponse response = new StoreResponse();
+ response.setStoreId(integer);
+ response.setStoreName(courseOfStore.getStoreName());
+ responses.add(response);
+ }
}
}
}
diff --git a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
index 46a22c8..e4fa974 100644
--- a/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
+++ b/cloud-server-account/src/main/java/com/dsh/account/service/impl/UserIntegralChangesServiceImpl.java
@@ -12,6 +12,7 @@
import com.dsh.account.model.IntegralListQuery;
import com.dsh.account.model.SaveUserIntegralChangesVo;
import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsResponse;
+import com.dsh.account.model.vo.userBenefitDetail.ExchangeDetailsVo;
import com.dsh.account.model.vo.userBenefitDetail.IntegralsData;
import com.dsh.account.model.vo.userBenefitDetail.PointDetailsVo;
import com.dsh.account.service.UserIntegralChangesService;
@@ -125,18 +126,22 @@
@Override
public List<ExchangeDetailsResponse> queryExchangeGoodsdetails(Integer userIdFormRedis, Integer useType, Integer goodType) {
- List<ExchangeDetailsResponse> integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
- if (ToolUtil.isNotEmpty(useType)){
- integralExchangeDetails = integralExchangeDetails.stream()
- .filter(response -> Objects.equals(response.getUseStatus(), useType))
- .collect(Collectors.toList());
+ List<ExchangeDetailsResponse> detailsResponses = new ArrayList<>();
+ ExchangeDetailsVo integralExchangeDetails = mcClient.getIntegralExchangeDetails(userIdFormRedis);
+ if (ToolUtil.isNotEmpty(integralExchangeDetails.getDetailsResponses())){
+ detailsResponses = integralExchangeDetails.getDetailsResponses();
+ if (ToolUtil.isNotEmpty(useType)){
+ detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
+ .filter(response -> Objects.equals(response.getUseStatus(), useType))
+ .collect(Collectors.toList());
+ }
+ if (ToolUtil.isNotEmpty(goodType)){
+ detailsResponses = integralExchangeDetails.getDetailsResponses().stream()
+ .filter(response -> Objects.equals(response.getGoodType(), goodType))
+ .collect(Collectors.toList());
+ }
}
- if (ToolUtil.isNotEmpty(goodType)){
- integralExchangeDetails = integralExchangeDetails.stream()
- .filter(response -> Objects.equals(response.getGoodType(), goodType))
- .collect(Collectors.toList());
- }
- return integralExchangeDetails;
+ return detailsResponses;
}
@Override
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
index 92e4c4f..857f6f4 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/controller/PointMercharsController.java
@@ -235,10 +235,13 @@
}
detailsVo.setCost(merchandise.getPrice());
if (merchandise.getUseScope() == 1){
+ detailsVo.setExchangeAddrType(1);
detailsVo.setBelongs("全国通用");
}else if (merchandise.getUseScope() == 2){
+ detailsVo.setExchangeAddrType(2);
detailsVo.setBelongs(merchandise.getProvince()+"|"+merchandise.getCity() + "用户可用");
}else {
+ detailsVo.setExchangeAddrType(3);
List<PointsMerchandiseStore> list = pmdstoService.list(new QueryWrapper<PointsMerchandiseStore>()
.eq("pointsMerchandiseId",merchandise.getId() ));
PointsMerchandiseStore pointsMerchandiseStore = list.get(0);
@@ -257,8 +260,10 @@
Coupon coupon = iCouponService.getById(detailRequest.getGoodId());
detailsVo.setGoodId(coupon.getId());
List<String> list3 = new ArrayList<>();
- list3.add(coupon.getCover());
- list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
+ list3.add(ToolUtil.isEmpty(coupon.getCover()) ? "" : coupon.getCover());
+ if (ToolUtil.isNotEmpty(coupon.getProductImages())){
+ list3.addAll(Arrays.asList(StrUtils.splitStr2StrArr(coupon.getProductImages(), ",")));
+ }
detailsVo.setPics(list3);
Collections.sort(detailsVo.getPics(), (s1, s2) -> {
if (s1.equals(coupon.getCover())) {
@@ -276,29 +281,32 @@
detailsVo.setRedeemedNum(couponNums);
detailsVo.setResidueNum(coupon.getQuantityIssued()-couponNums);
detailsVo.setPerLimit(coupon.getPickUpQuantity());
- detailsVo.setExchangeType(merchandise.getRedemptionMethod());
- if (merchandise.getRedemptionMethod() == 1){
- detailsVo.setIntegral(merchandise.getIntegral());
+ detailsVo.setExchangeType(coupon.getRedemptionMethod());
+ if (coupon.getRedemptionMethod() == 1){
+ detailsVo.setIntegral(coupon.getIntegral().intValue());
}else {
- detailsVo.setIntegral(merchandise.getIntegral());
- detailsVo.setCash(merchandise.getCash());
+ detailsVo.setIntegral(coupon.getIntegral().intValue());
+ detailsVo.setCash(coupon.getCash());
}
if (coupon.getUseScope() == 1){
+ detailsVo.setExchangeAddrType(1);
detailsVo.setBelongs("全国通用");
}else if (coupon.getUseScope() == 2){
+ detailsVo.setExchangeAddrType(2);
List<CouponCity> list = ccityService.list(new LambdaQueryWrapper<CouponCity>()
.eq(CouponCity::getCouponId, coupon.getId()));
if (list.size() > 0){
detailsVo.setBelongs(list.get(0).getProvince()+"|"+list.get(0).getCity() + "用户可用");
}
}else {
+ detailsVo.setExchangeAddrType(3);
List<CouponStore> list = cstoreService.list(new QueryWrapper<CouponStore>()
.eq("couponId",coupon.getId() ));
StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(list.get(0).getStoreId());
detailsVo.setBelongs(courseOfStore.getStoreName()+"可用");
}
- detailsVo.setStartTime(format.format(merchandise.getStartTime()));
- detailsVo.setEndTime(format.format(merchandise.getEndTime()));
+ detailsVo.setStartTime(format.format(coupon.getStartTime()));
+ detailsVo.setEndTime(format.format(coupon.getEndTime()));
detailsVo.setContents(coupon.getIllustrate());
detailsVo.setGoodType(4);
@@ -310,9 +318,10 @@
}
-
+ @ResponseBody
@PostMapping("/base/pointMerchars/getDetailsOfExchange")
- public List<ExchangeDetailsResponse> getIntegralExchangeDetails(@RequestBody Integer appUserId){
+ public ExchangeDetailsVo getIntegralExchangeDetails(@RequestBody Integer appUserId){
+ ExchangeDetailsVo detailsVo = new ExchangeDetailsVo();
List<ExchangeDetailsResponse> responses = new ArrayList<>();
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
List<UserPointsMerchandise> pointsMerchandises = upmseService.list(new QueryWrapper<UserPointsMerchandise>()
@@ -333,16 +342,17 @@
}
detailsResponse.setStartTime(simpleDateFormat.format(merchandise.getStartTime()));
detailsResponse.setEndTime(simpleDateFormat.format(merchandise.getEndTime()));
- detailsResponse.setUseStatus(pointsMerchandise.getStatus());
+ detailsResponse.setUseStatus(pointsMerchandise.getStatus() == 1 ? 2 : 1);
detailsResponse.setGoodType(merchandise.getType());
responses.add(detailsResponse);
}
+ detailsVo.setDetailsResponses(responses);
}
- return responses;
+ return detailsVo;
}
-
+ @ResponseBody
@PostMapping("/base/pointMerchars/getSpecificsOfGoods")
public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId){
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
@@ -431,9 +441,7 @@
detailsVo.setBelongs(pmdsServiceById.getProvince()+pmdsServiceById.getCity());
break;
case 3:
- PointsMerchandiseStore one = pmdstoService.getOne(new QueryWrapper<PointsMerchandiseStore>()
- .eq("pointsMerchandiseId",pmdsServiceById.getId() ));
- StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(one.getStoreId());
+ StoreDetailOfCourse courseOfStore = stoClient.getCourseOfStore(byId.getStoreId());
detailsVo.setBelongs(courseOfStore.getStoreName()+" "+courseOfStore.getStoreAddr());
break;
default:
@@ -453,6 +461,7 @@
@PostMapping("/base/pointMerchars/saveDetailsUserPointMercase")
public void saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise){
+ merchandise.setInsertTime(new Date());
upmseService.save(merchandise);
}
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java
index 8d8e480..85ed35d 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/PointsMerchandiseStore.java
@@ -1,6 +1,7 @@
package com.dsh.activity.entity;
import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
@@ -34,10 +35,12 @@
/**
* 积分商品id
*/
+ @TableField("pointsMerchandiseId")
private Integer pointsMerchandiseId;
/**
* 门店id
*/
+ @TableField("storeId")
private Integer storeId;
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
index 37d14c1..e669475 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/entity/UserPointsMerchandise.java
@@ -34,7 +34,7 @@
@TableId(value = "id", type = IdType.NONE)
private Long id;
/**
- * 优惠券id
+ * 商品id
*/
@TableField("pointsMerchandiseId")
private Integer pointsMerchandiseId;
@@ -88,6 +88,12 @@
*/
@TableField("payStatus")
private Integer payStatus;
+ /**
+ * 可使用的门店id
+ */
+ @TableField("storeId")
+ private Integer storeId;
+
@Override
protected Serializable pkVal() {
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
index 6d4533e..3fb2b93 100644
--- a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/MerChandiseClient.java
@@ -24,9 +24,6 @@
@PostMapping("/base/pointMerchars/getGoodDetails")
ProductDetailsVo getGoodDetailsWithId(@RequestBody ProductDetailRequest detailRequest);
- @PostMapping("/base/pointMerchars/getDetailsOfExchange")
- List<ExchangeDetailsResponse> getIntegralExchangeDetails(@RequestBody Integer appUserId);
-
@PostMapping("/base/pointMerchars/getSpecificsOfGoods")
public PointDetailsVo getSpecificsOfGoods(@RequestBody Integer speMercharsId);
@@ -34,10 +31,6 @@
@PostMapping("/base/pointMerchars/selectPointsMerchandiseById")
public PointsMerchandise selectPointsMerchandiseById(@RequestBody Integer speMercharsId);
-
-
- @PostMapping("/base/pointMerchars/saveDetailsUserPointMercase")
- public void saveDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise);
@PostMapping("/base/pointMerchars/updateDetailsUserPointMercase")
public void updateDetailsUserPointMercase(@RequestBody UserPointsMerchandise merchandise);
diff --git a/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsVo.java b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsVo.java
new file mode 100644
index 0000000..89e43cc
--- /dev/null
+++ b/cloud-server-activity/src/main/java/com/dsh/activity/feignclient/model/ExchangeDetailsVo.java
@@ -0,0 +1,17 @@
+package com.dsh.activity.feignclient.model;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.List;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ExchangeDetailsVo {
+
+ List<ExchangeDetailsResponse> detailsResponses;
+
+}
--
Gitblit v1.7.1