From 25ef12504f10cb066db53541bd7bc7bac4c09ac4 Mon Sep 17 00:00:00 2001
From: jiangqs <jiangqs>
Date: 星期二, 11 七月 2023 18:39:10 +0800
Subject: [PATCH] 管理台bug和用户端

---
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java                     |    4 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/MemberCouponRecordServiceImpl.java |   11 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java                          |    9 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java       |   53 ++++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppCouponController.java            |   37 ++
 ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java                                           |    8 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java            |    8 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/birthday/BirthdayCardMapper.java                |   16 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java                        |   74 +++++
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml                                     |    3 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/AppMemberCouponPageDto.java                 |   21 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java                         |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java                 |   42 +++
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsFileServiceImpl.java             |   17 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/birthday/BirthdayCardServiceImpl.java     |   17 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java                  |   13 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberPageVo.java                         |    8 
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/birthday/BirthdayCardMapper.xml                             |   23 +
 ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/poji/member/MemberGiftRecord.java           |    2 
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml                               |   23 +
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGetVo.java                          |    3 
 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsFileService.java                      |    9 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java             |   84 ++++++
 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java                     |    4 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java             |   49 +++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java                      |   14 +
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java                 |   12 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java                  |   18 +
 ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml                                     |   42 +-
 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java              |    2 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberPrizePageVo.java                    |   34 ++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java                |   12 
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberCouponPageVo.java                   |   49 +++
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java              |   17 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/miniapp/AppMemberController.java            |   14 +
 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java                        |   17 
 36 files changed, 703 insertions(+), 69 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
index d96ecdc..7c1e24f 100644
--- a/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
+++ b/ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -83,4 +83,8 @@
     String BIRTHDAY_NULL = "未填写生日";
 
     String BIRTHDAY_ERROR = "只有生日当月领取";
+
+    String COUPON_GET_ERROR = "该优惠券不可领取";
+
+    String COUPON_GET_ALL = "该优惠券已领取完";
 }
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 39f1691..e6bd7c0 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
@@ -126,6 +126,8 @@
     @TableField("verify_status")
     private Integer verifyStatus;
 
+    @TableField("verify_time")
+    private Date verifyTime;
 
     @Override
     protected Serializable pkVal() {
diff --git a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
index 3ebe162..a4a33db 100644
--- a/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
+++ b/ruoyi-auth/src/main/java/com/ruoyi/auth/controller/QwH5Controller.java
@@ -61,10 +61,10 @@
     public R<OauthUserVo> oauthUser(@ApiParam(value = "成员授权获取到的code", required = true) @RequestParam("code") String code) throws IOException {
         // 通过code获取访问用户敏感信息
         JSONObject result = qywxInnerService.getOauthUser(code);
-        QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class);
-        //QwUserDetailDto qwUserDetail = new QwUserDetailDto();
-        //qwUserDetail.setMobile("13882237106");
-        //qwUserDetail.setUserid("146");
+        //QwUserDetailDto qwUserDetail = JSONObject.parseObject(result.toJSONString(), QwUserDetailDto.class);
+        QwUserDetailDto qwUserDetail = new QwUserDetailDto();
+        qwUserDetail.setMobile("13882237106");
+        qwUserDetail.setUserid("146");
         // 1、查数据库获取人员
         QwH5LoginVo qwH5LoginVo = sysLoginService.qwH5Login(qwUserDetail);
         // 2、生成Token
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
index 381e7c1..d0c167d 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -7,6 +7,7 @@
 import com.ruoyi.common.log.enums.BusinessType;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.goods.domain.dto.*;
+import com.ruoyi.goods.domain.vo.MgtGoodsEditInfoVo;
 import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
 import com.ruoyi.goods.domain.vo.MgtGoodsTotalVo;
 import com.ruoyi.goods.service.goods.GoodsService;
@@ -118,4 +119,11 @@
         List<MgtSelectGoodsPageVo> mgtSelectGoodsPageVos = goodsService.pageMgtSelectGoods(page,mgtSelectGoodsPageDto);
         return R.ok(page.setRecords(mgtSelectGoodsPageVos));
     }
+
+    @RequestMapping(value = "/getMgtGoodsEditInfo", method = RequestMethod.POST)
+    @ApiOperation(value = "获取商品编辑信息")
+    public R<MgtGoodsEditInfoVo> getMgtGoodsEditInfo(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
+        MgtGoodsEditInfoVo mgtGoodsEditInfoVo = goodsService.getMgtGoodsEditInfo(mgtBaseGetDto);
+        return R.ok(mgtGoodsEditInfoVo);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java
index 3e6fe2f..48e84d0 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerActivityPageVo.java
@@ -1,5 +1,6 @@
 package com.ruoyi.goods.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
@@ -22,9 +23,11 @@
     private String activityName;
 
     @ApiModelProperty(value = "活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date activityStartTime;
 
     @ApiModelProperty(value = "活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date activityEndTime;
 
     @ApiModelProperty(value = "活动状态")
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGetVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGetVo.java
index 9ff960b..2242f41 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGetVo.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGetVo.java
@@ -1,5 +1,6 @@
 package com.ruoyi.goods.domain.vo;
 
+import com.fasterxml.jackson.annotation.JsonFormat;
 import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
@@ -24,9 +25,11 @@
     private String activityName;
 
     @ApiModelProperty(value = "活动开始时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date activityStartTime;
 
     @ApiModelProperty(value = "活动结束时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
     private Date activityEndTime;
 
     @ApiModelProperty(value = "成团人数")
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java
new file mode 100644
index 0000000..e6cb27e
--- /dev/null
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java
@@ -0,0 +1,74 @@
+package com.ruoyi.goods.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @ClassName MgtGoodsEditInfoVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/7/11 16:46
+ * @Version 1.0
+ */
+@Data
+public class MgtGoodsEditInfoVo {
+
+    @ApiModelProperty(value = "商品id")
+    private String goodsId;
+
+    @ApiModelProperty(value = "商品状态1上架2下架")
+    private Integer goodsStatus;
+
+    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
+    private Integer goodsType;
+
+    @ApiModelProperty(value = "商品分类id")
+    private Long goodsClassId;
+
+    @ApiModelProperty(value = "商品名称")
+    private String goodsName;
+
+    @ApiModelProperty(value = "商品图片")
+    private String goodsPicture;
+
+    @ApiModelProperty(value = "商品视频")
+    private String goodsVideo;
+
+    @ApiModelProperty(value = "商品banner 多个用,号隔开")
+    private String goodsBanners;
+
+    @ApiModelProperty(value = "是否明确次数0否1是")
+    private Integer cycleNumFlag;
+
+    @ApiModelProperty(value = "服务次数")
+    private Integer serviceNum;
+
+    @ApiModelProperty(value = "商品简介")
+    private String goodsIntroduction;
+
+    @ApiModelProperty(value = "建议售价")
+    private BigDecimal salesPrice;
+
+    @ApiModelProperty(value = "最低售价")
+    private BigDecimal mininumPrice;
+
+    @ApiModelProperty(value = "订金")
+    private BigDecimal subscription;
+
+    @ApiModelProperty(value = "商品详情")
+    private String goodsDetail;
+
+    @ApiModelProperty(value = "是否推荐0否1是")
+    private Integer recommendFlag;
+
+    @ApiModelProperty(value = "商品调理问题")
+    private String goodsNurses;
+
+    @ApiModelProperty(value = "商品标签")
+    private String goodsTags;
+
+
+
+}
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsFileService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsFileService.java
index df7a525..91bf5e8 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsFileService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsFileService.java
@@ -30,4 +30,13 @@
     * @version 1.0
     */
     List<GoodsFile> listByGoodsId(String goodsId);
+
+    /**
+     * @description  通过goodsId删除
+     * @author  jqs
+     * @date    2023/7/11 16:50
+     * @param goodsId
+     * @return  void
+     */
+    void deleteByGoodsId(String goodsId);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
index 39c1482..6865398 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/goods/GoodsService.java
@@ -4,6 +4,7 @@
 import com.ruoyi.goods.domain.dto.*;
 import com.ruoyi.goods.domain.vo.*;
 import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
@@ -183,4 +184,12 @@
      */
     List<AppSimpleActivityGoodsVo> pageAppActivityGoods(Page page, AppActivityGoodsPageDto appActivityGoodsPageDto);
 
+    /**
+     * @description  获取商品编辑详情
+     * @author  jqs
+     * @date    2023/7/11 16:48
+     * @param mgtBaseGetDto
+     * @return  MgtGoodsEditInfoVo
+     */
+    MgtGoodsEditInfoVo getMgtGoodsEditInfo(MgtBaseGetDto mgtBaseGetDto);
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsFileServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsFileServiceImpl.java
index 8ad35fa..b799fc7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsFileServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsFileServiceImpl.java
@@ -1,6 +1,7 @@
 package com.ruoyi.goods.service.impl.goods;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
@@ -54,4 +55,20 @@
         List<GoodsFile> goodsFileList = this.list(queryWrapper);
         return goodsFileList;
     }
+
+    /**
+     * @description  通过goodsId删除
+     * @author  jqs
+     * @date    2023/7/11 16:50
+     * @param goodsId
+     * @return  void
+     */
+    @Override
+    public void deleteByGoodsId(String goodsId){
+        LambdaUpdateWrapper<GoodsFile> updateWrapper = new LambdaUpdateWrapper<>();
+        updateWrapper.eq(GoodsFile::getDelFlag,0);
+        updateWrapper.eq(GoodsFile::getGoodsId,goodsId);
+        updateWrapper.set(GoodsFile::getDelFlag,1);
+        this.update(updateWrapper);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
index ff358d3..fcecda7 100644
--- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
+++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/goods/GoodsServiceImpl.java
@@ -22,6 +22,7 @@
 import com.ruoyi.goods.service.goods.ShopGoodsService;
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.domain.dto.AppActivityGoodsPageDto;
+import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
 import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
 import com.ruoyi.system.api.domain.poji.config.SysClassification;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
@@ -34,6 +35,7 @@
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
+import java.nio.charset.StandardCharsets;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -341,6 +343,8 @@
             if(goods.getGoodsStatus()==-1){
                 throw new ServiceException(AppErrorConstant.GOODS_DELETED);
             }
+            //删除历史数据
+            goodsFileService.deleteByGoodsId(goodsId);
         } else {
             if(goodsSame!=null){
                 throw new ServiceException(AppErrorConstant.GOODS_DOUBLE);
@@ -371,7 +375,12 @@
             goods.setSubscriptionFlag(0);
         }
         goods.setSubscription(mgtGoodsEditDto.getSubscription());
-        goods.setGoodsDetail(mgtGoodsEditDto.getGoodsDetail());
+        String goodsDetail = mgtGoodsEditDto.getGoodsDetail();
+        if(StringUtils.isNotBlank(goodsDetail)){
+            byte[] decodedBytes = Base64.getDecoder().decode(goodsDetail);
+            goodsDetail = new String(decodedBytes, StandardCharsets.UTF_8);
+            goods.setGoodsDetail(goodsDetail);
+        }
         goods.setRecommendFlag(mgtGoodsEditDto.getRecommendFlag());
         goods.setGoodsNurses(mgtGoodsEditDto.getGoodsNurses());
         goods.setGoodsTags(mgtGoodsEditDto.getGoodsNurses());
@@ -561,4 +570,35 @@
         // 返回结果
         return appSimpleGoodsVoList;
     }
+
+    /**
+     * @description  获取商品编辑详情
+     * @author  jqs
+     * @date    2023/7/11 16:48
+     * @param mgtBaseGetDto
+     * @return  MgtGoodsEditInfoVo
+     */
+    @Override
+    public MgtGoodsEditInfoVo getMgtGoodsEditInfo(MgtBaseGetDto mgtBaseGetDto){
+        MgtGoodsEditInfoVo mgtGoodsEditInfoVo = new MgtGoodsEditInfoVo();
+        Goods goods = this.getById(mgtBaseGetDto.getId());
+        BeanUtils.copyProperties(goods,mgtGoodsEditInfoVo);
+        List<GoodsFile> goodsFileList = goodsFileService.listByGoodsId(goods.getGoodsId());
+        if(goodsFileList!=null&&!goodsFileList.isEmpty()){
+            StringJoiner goodsBannersSj = new StringJoiner(",");
+            for(GoodsFile goodsFile : goodsFileList){
+                if(goodsFile.getFileType()==1){
+                    mgtGoodsEditInfoVo.setGoodsPicture(goodsFile.getFileUrl());
+                }else if(goodsFile.getFileType()==2){
+                    mgtGoodsEditInfoVo.setGoodsVideo(goodsFile.getFileUrl());
+                }else if(goodsFile.getFileType()==2){
+                    goodsBannersSj.add(goodsFile.getFileUrl());
+                }
+            }
+            if(goodsBannersSj!=null){
+                mgtGoodsEditInfoVo.setGoodsBanners(goodsBannersSj.toString());
+            }
+        }
+        return mgtGoodsEditInfoVo;
+    }
 }
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 9a73c81..49a398f 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
@@ -3,9 +3,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.security.utils.SecurityUtils;
+import com.ruoyi.member.domain.dto.AppMemberCouponPageDto;
 import com.ruoyi.member.domain.vo.AppGetAbleCouponPageVo;
+import com.ruoyi.member.domain.vo.AppMemberCouponPageVo;
 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.member.Member;
 import io.swagger.annotations.Api;
@@ -37,22 +41,43 @@
     @Resource
     private MemberService memberService;
 
+    @Resource
+    private MemberCouponService memberCouponService;
+
     @RequestMapping(value = "/pageAppUserGetAbleCoupon", method = RequestMethod.POST)
     @ApiOperation(value = "用户分页获取可领取优惠券列表")
     public R<Page<AppGetAbleCouponPageVo>> pagePlatformMerCoupon(@RequestBody AppPageDto appPageDto) {
         Long userId = SecurityUtils.getUserId();
-        if(userId!=null){
-            Member member = memberService.getByUserId(userId);
-            if(member!=null&&member.getRelationShopId()!=null){
-            }
-        }
+        Member member = memberService.getByUserId(userId);
+        Long shopId = member.getRelationShopId();
         appPageDto.setUserId(userId);
         Page<AppGetAbleCouponPageVo> page = new Page<>();
         page.setSize(appPageDto.getPageSize());
         page.setCurrent(appPageDto.getPageNum());
-        List<AppGetAbleCouponPageVo> unGetCouponPageVoList = couponService.pageAppUserGetAbleCoupon(page,appPageDto);
+        List<AppGetAbleCouponPageVo> unGetCouponPageVoList = couponService.pageAppUserGetAbleCoupon(page,appPageDto,shopId);
         return R.ok(page.setRecords(unGetCouponPageVoList));
     }
 
+    @RequestMapping(value = "/appGetCoupon", method = RequestMethod.POST)
+    @ApiOperation(value = "用户领取优惠券")
+    public R appGetCoupon(@RequestBody AppBaseGetDto appBaseGetDto) {
+        Long userId = SecurityUtils.getUserId();
+        Member member = memberService.getByUserId(userId);
+        Long shopId = member.getRelationShopId();
+        appBaseGetDto.setUserId(userId);
+        couponService.appGetCoupon(appBaseGetDto.getId(),userId,shopId);
+        return R.ok();
+    }
 
+    @RequestMapping(value = "/pageAppUserGetCoupon", method = RequestMethod.POST)
+    @ApiOperation(value = "用户分页获取已领取优惠券列表")
+    public R<Page<AppMemberCouponPageVo>> pageAppUserGetCoupon(@RequestBody AppMemberCouponPageDto appMemberCouponPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        appMemberCouponPageDto.setUserId(userId);
+        Page<AppMemberCouponPageVo> page = new Page<>();
+        page.setSize(appMemberCouponPageDto.getPageSize());
+        page.setCurrent(appMemberCouponPageDto.getPageNum());
+        List<AppMemberCouponPageVo> memberCouponPageVoList = memberCouponService.pageAppUserGetCoupon(page,appMemberCouponPageDto);
+        return R.ok(page.setRecords(memberCouponPageVoList));
+    }
 }
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 0931a3e..9064269 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
@@ -6,6 +6,7 @@
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.security.utils.SecurityUtils;
 import com.ruoyi.member.domain.vo.AppBirthdayCardVo;
+import com.ruoyi.member.domain.vo.AppMemberPrizePageVo;
 import com.ruoyi.member.domain.vo.AppSuggestPageVo;
 import com.ruoyi.member.domain.vo.AppUserInfoVo;
 import com.ruoyi.member.service.birthday.BirthdayCardService;
@@ -13,6 +14,7 @@
 import com.ruoyi.member.service.member.MemberSuggestService;
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.domain.dto.AppEditUserDto;
+import com.ruoyi.system.api.domain.dto.AppPageDto;
 import com.ruoyi.system.api.domain.dto.AppSuggestPageDto;
 import com.ruoyi.system.api.domain.dto.AppUserSuggestDto;
 import com.ruoyi.system.api.domain.poji.member.Member;
@@ -137,4 +139,16 @@
         }
         return R.ok(appBirthdayCardVo);
     }
+
+    @RequestMapping(value = "/pageAppMemberPrize", method = RequestMethod.POST)
+    @ApiOperation(value = "分页获取用户奖品列表")
+    public R<Page<AppMemberPrizePageVo>> pageAppMemberPrize(@RequestBody AppPageDto appPageDto) {
+        Long userId = SecurityUtils.getUserId();
+        appPageDto.setUserId(userId);
+        Page<AppMemberPrizePageVo> page = new Page<>();
+        page.setSize(appPageDto.getPageSize());
+        page.setCurrent(appPageDto.getPageNum());
+        List<AppMemberPrizePageVo> memberPrizePageVoList = birthdayCardService.pageAppMemberPrize(page,userId);
+        return R.ok(page.setRecords(memberPrizePageVoList));
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/AppMemberCouponPageDto.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/AppMemberCouponPageDto.java
new file mode 100644
index 0000000..fa1aeb3
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/dto/AppMemberCouponPageDto.java
@@ -0,0 +1,21 @@
+package com.ruoyi.member.domain.dto;
+
+import com.ruoyi.system.api.domain.dto.AppPageDto;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * @ClassName AppMemberCouponPageDto
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/7/11 17:08
+ * @Version 1.0
+ */
+@Data
+public class AppMemberCouponPageDto extends AppPageDto {
+
+
+    @ApiModelProperty(value = "优惠券状态0已过期1已领取2已使用")
+    private Integer couponStatus;
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java
index 6e272d5..c1a7e59 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppGetAbleCouponPageVo.java
@@ -4,6 +4,7 @@
 import lombok.Data;
 
 import java.math.BigDecimal;
+import java.util.List;
 
 /**
  * @ClassName AppUnGetCouponPageVo
@@ -19,14 +20,20 @@
     @ApiModelProperty(value = "优惠券id")
     private String couponId;
 
-    @ApiModelProperty("优惠券名称")
+    @ApiModelProperty(value = "优惠券名称")
     private String couponName;
 
-    @ApiModelProperty("优惠券类型1.满减2.折扣3.代金4.商品")
+    @ApiModelProperty(value = "优惠券类型1.满减2.折扣3.代金4.商品")
     private Integer couponType;
 
+    @ApiModelProperty(value ="优惠券关联商户",hidden = true)
+    private Long shopId;
+
+    @ApiModelProperty(value ="优惠券关联商品",hidden = true)
+    private String relGoodsIds;
+
     @ApiModelProperty(value = "使用限制")
-    private String shopName;
+    private List<String> goodsLimitList;
 
     @ApiModelProperty(value = "门槛金额")
     private BigDecimal moneyThreshold;
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberCouponPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberCouponPageVo.java
new file mode 100644
index 0000000..dd34bd1
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberCouponPageVo.java
@@ -0,0 +1,49 @@
+package com.ruoyi.member.domain.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.List;
+
+/**
+ * @ClassName AppMemberCouponPageVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/7/11 15:55
+ * @Version 1.0
+ */
+@Data
+public class AppMemberCouponPageVo {
+
+    @ApiModelProperty(value = "用户优惠券id")
+    private String memberCouponId;
+
+    @ApiModelProperty(value = "优惠券名称")
+    private String couponName;
+
+    @ApiModelProperty(value = "优惠券类型1.满减2.折扣3.代金4.商品")
+    private Integer couponType;
+
+    @ApiModelProperty(value ="优惠券关联商户",hidden = true)
+    private Long shopId;
+
+    @ApiModelProperty(value ="优惠券关联商品",hidden = true)
+    private String relGoodsIds;
+
+    @ApiModelProperty(value = "使用限制")
+    private List<String> goodsLimitList;
+
+    @ApiModelProperty(value = "门槛金额")
+    private BigDecimal moneyThreshold;
+
+    @ApiModelProperty(value = "折扣金额")
+    private BigDecimal discountMoney;
+
+    @ApiModelProperty(value = "折扣百分比")
+    private BigDecimal discountPercent;
+
+
+
+
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberPrizePageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberPrizePageVo.java
new file mode 100644
index 0000000..08e6bbb
--- /dev/null
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/AppMemberPrizePageVo.java
@@ -0,0 +1,34 @@
+package com.ruoyi.member.domain.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName AppPrizePageVo
+ * @Description TODO
+ * @Author jqs
+ * @Date 2023/7/11 17:49
+ * @Version 1.0
+ */
+@Data
+public class AppMemberPrizePageVo {
+
+    @ApiModelProperty(value = "奖品id")
+    private String prizeId;
+
+    @ApiModelProperty(value = "奖品名称")
+    private String prizeName;
+
+    @ApiModelProperty(value = "奖品来源")
+    private String prizeFrom;
+
+    @ApiModelProperty(value = "核销状态1未核销2已核销")
+    private Integer verifyStatus;
+
+    @ApiModelProperty(value = "获奖时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+    private Date createTime;
+}
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberPageVo.java
index c97bc15..1353e22 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberPageVo.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MerMemberPageVo.java
@@ -3,6 +3,8 @@
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 
+import java.util.Date;
+
 /**
  * @author jqs34
  * @ClassName MerMemberPageVo
@@ -45,4 +47,10 @@
 
     @ApiModelProperty(value = "商品类型")
     private String goodsType;
+
+    @ApiModelProperty(value = "最近消费时间",hidden = true)
+    private Date lastPayTime;
+
+    @ApiModelProperty(value = "活跃度")
+    private String memberActiveness;
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/birthday/BirthdayCardMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/birthday/BirthdayCardMapper.java
index a32f2ee..5cddbe7 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/birthday/BirthdayCardMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/birthday/BirthdayCardMapper.java
@@ -1,8 +1,12 @@
 package com.ruoyi.member.mapper.birthday;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.member.domain.pojo.birthday.BirthdayCard;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.ruoyi.member.domain.vo.AppMemberPrizePageVo;
 import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
 
 /**
  * <p>
@@ -31,4 +35,16 @@
      * @return  BirthdayCard
      */
     BirthdayCard getMerShopBirthdayCard(@Param("shopId") Long shopId);
+
+
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/7/11 18:12
+     * @param page
+     * @param userId
+     * @return  List<AppMemberPrizePageVo>
+     */
+    List<AppMemberPrizePageVo> pageAppMemberPrize(Page page, @Param("userId")Long userId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
index 827b69f..54048b2 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/coupon/CouponMapper.java
@@ -7,10 +7,7 @@
 import com.ruoyi.member.domain.dto.MgtCouponListDto;
 import com.ruoyi.member.domain.dto.MgtCouponPageDto;
 import com.ruoyi.member.domain.pojo.coupon.Coupon;
-import com.ruoyi.member.domain.vo.MerCouponPageVo;
-import com.ruoyi.member.domain.vo.MgtCouponAuditPageVo;
-import com.ruoyi.member.domain.vo.MgtCouponPageVo;
-import com.ruoyi.member.domain.vo.MgtCouponSimpleListVo;
+import com.ruoyi.member.domain.vo.*;
 import com.ruoyi.system.api.domain.dto.MerPageDto;
 import org.apache.ibatis.annotations.Param;
 
@@ -96,6 +93,14 @@
      */
     List<String> listUserUnGetCoupon(@Param("userId")Long userId);
 
-
-
+    /**
+     * @description  可领取优惠券列表
+     * @author  jqs
+     * @date    2023/7/11 10:32
+     * @param page
+     * @param shopId
+     * @param unGetList
+     * @return  List<AppGetAbleCouponPageVo>
+     */
+    List<AppGetAbleCouponPageVo> getAbleCouponPageVoList(Page page, @Param("shopId") Long shopId, @Param("unGetList") List<String> unGetList);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
index f646096..3c358a3 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
@@ -1,8 +1,12 @@
 package com.ruoyi.member.mapper.member;
 
-import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.member.domain.dto.AppMemberCouponPageDto;
+import com.ruoyi.member.domain.vo.AppMemberCouponPageVo;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
+import org.apache.ibatis.annotations.Param;
 
 import java.util.List;
 
@@ -22,5 +26,15 @@
      * @date 2023/5/3 1:47
      * @version 1.0
      */
-    List<AppMemberCouponVo> listVoMemberCouponByUserId(Long userId);
+    List<AppMemberCouponVo> listVoMemberCouponByUserId(@Param("userId") Long userId);
+
+    /**
+     * @description  用户分页获取已领取优惠券列表
+     * @author  jqs
+     * @date    2023/7/11 16:25
+     * @param page
+     * @param appMemberCouponPageDto
+     * @return  List<AppMemberCouponPageVo>
+     */
+    List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page,@Param("param") AppMemberCouponPageDto appMemberCouponPageDto);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java
index 2bff0e8..5f5fd5a 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/birthday/BirthdayCardService.java
@@ -1,14 +1,14 @@
 package com.ruoyi.member.service.birthday;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.ruoyi.member.domain.dto.MerBirthdayEditDto;
 import com.ruoyi.member.domain.dto.MgtBirthdayEditDto;
 import com.ruoyi.member.domain.dto.MgtBirthdayGetDto;
 import com.ruoyi.member.domain.pojo.birthday.BirthdayCard;
-import com.ruoyi.member.domain.vo.AppBirthdayCardVo;
-import com.ruoyi.member.domain.vo.MerBirthdayEditInfoVo;
-import com.ruoyi.member.domain.vo.MerBirthdayGetVo;
-import com.ruoyi.member.domain.vo.MgtBirthdayGetVo;
+import com.ruoyi.member.domain.vo.*;
+
+import java.util.List;
 
 /**
  * <p>
@@ -103,4 +103,13 @@
      */
     AppBirthdayCardVo getBirthdayGift(Long userId, Long shopId);
 
+    /**
+     * @description  
+     * @author  jqs
+     * @date    2023/7/11 18:12
+     * @param page
+     * @param userId
+     * @return  List<AppMemberPrizePageVo>
+     */
+    List<AppMemberPrizePageVo> pageAppMemberPrize(Page page, Long userId);
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
index 7061378..dc260e1 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/coupon/CouponService.java
@@ -168,5 +168,17 @@
      * @param appPageDto
      * @return  List<AppUnGetCouponPageVo>
      */
-    List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto);
+    List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Long shopId);
+
+
+
+    /**
+     * @description  用户领取优惠券
+     * @author  jqs
+     * @date    2023/7/11 15:04
+     * @param couponId
+     * @param shopId
+     * @return  void
+     */
+    void appGetCoupon(String couponId,Long userId,Long shopId);
 }
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 87b5845..e0b731f 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
@@ -1,6 +1,7 @@
 package com.ruoyi.member.service.impl.birthday;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.utils.uuid.IdUtils;
@@ -230,6 +231,7 @@
                 giftDesc = giftSj.toString();
                 birthdayGetVo.setGiftDesc(giftDesc);
             }
+            birthdayGetVo.setCardStatus(birthdayCard.getCardStatus());
         }else{
             birthdayGetVo.setCardStatus(2);
         }
@@ -346,7 +348,7 @@
         // 创建新的生日卡
         BirthdayCard birthdayCard = new BirthdayCard();
         birthdayCard.setDelFlag(0);
-        birthdayCard.setShopId(0L);
+        birthdayCard.setShopId(merBirthdayEditDto.getShopId());
         birthdayCard.setCardStatus(merBirthdayEditDto.getCardStatus());
         // 根据卡状态设置开启或关闭时间
         if(merBirthdayEditDto.getCardStatus()==1){
@@ -625,4 +627,17 @@
         appBirthdayCardVo.setBirthdayGiftVoList(birthdayGiftVoList);
         return appBirthdayCardVo;
     }
+
+    /**
+     * @description
+     * @author  jqs
+     * @date    2023/7/11 18:02
+     * @param page
+     * @param userId
+     * @return  List<AppMemberPrizePageVo>
+     */
+    @Override
+    public List<AppMemberPrizePageVo> pageAppMemberPrize(Page page, Long userId){
+        return birthdayCardMapper.pageAppMemberPrize(page, userId);
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
index af793ed..61a5e66 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -10,15 +10,15 @@
 import com.ruoyi.common.core.utils.uuid.IdUtils;
 import com.ruoyi.member.domain.dto.*;
 import com.ruoyi.member.domain.pojo.coupon.*;
-import com.ruoyi.member.service.coupon.*;
-import com.ruoyi.system.api.domain.dto.*;
-import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.member.domain.vo.*;
 import com.ruoyi.member.mapper.coupon.CouponMapper;
+import com.ruoyi.member.service.coupon.*;
 import com.ruoyi.member.service.member.MemberCouponService;
 import com.ruoyi.member.service.member.MemberService;
 import com.ruoyi.system.api.constant.AppErrorConstant;
+import com.ruoyi.system.api.domain.dto.*;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
+import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.system.api.domain.vo.MerGoodsPriceListVo;
 import com.ruoyi.system.api.service.RemoteActivityService;
 import com.ruoyi.system.api.service.RemoteGoodsService;
@@ -893,10 +893,82 @@
      * @return  List<AppUnGetCouponPageVo>
      */
     @Override
-    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto){
+    public List<AppGetAbleCouponPageVo> pageAppUserGetAbleCoupon(Page page, AppPageDto appPageDto, Long shopId){
         //获取当前已领取完优惠券
         List<String> unGetList = couponMapper.listUserUnGetCoupon(appPageDto.getUserId());
-        //List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList( unGetList);
-        return null;
+        List<AppGetAbleCouponPageVo> getAbleCouponPageVoList = couponMapper.getAbleCouponPageVoList(page, shopId, unGetList);
+        //处理商品限制
+        if(!getAbleCouponPageVoList.isEmpty()){
+            String relGoodsIds;
+            List<Goods> goodsList;
+            List<String> goodsLimitList;
+            for(AppGetAbleCouponPageVo appGetAbleCouponPageVo : getAbleCouponPageVoList){
+                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
+                goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+                if(!goodsList.isEmpty()){
+                    goodsLimitList = goodsList.stream().map(goods -> {
+                        String goodsName = goods.getGoodsName();
+                        goodsName = "限制" + goodsName + "适用";
+                        return goodsName;
+                    }).collect(Collectors.toList());
+                    appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
+                }
+            }
+        }
+        return getAbleCouponPageVoList;
+    }
+
+
+
+
+    /**
+     * @description  用户领取优惠券
+     * @author  jqs
+     * @date    2023/7/11 15:04
+     * @param couponId
+     * @param shopId
+     * @return  void
+     */
+    @Override
+    public void appGetCoupon(String couponId,Long userId,Long shopId){
+        Coupon coupon = this.getById(couponId);
+        if(coupon==null||coupon.getDelFlag()==1||coupon.getCouponStatus()!=1||coupon.getSendType()!=1){
+            throw new ServiceException(AppErrorConstant.COUPON_GET_ERROR);
+        }
+        MemberCouponRecord memberCouponRecord = memberCouponRecordService.getByCouponIdAndUserId(couponId,userId);
+        if(memberCouponRecord!=null&&memberCouponRecord.getLimitFlag()==1){
+            throw new ServiceException(AppErrorConstant.COUPON_GET_ALL);
+        }
+        MemberCoupon memberCoupon = new MemberCoupon();
+        String memberCouponId = IdUtils.simpleUUID();
+        memberCoupon.setId(memberCouponId);
+        memberCoupon.setDelFlag(0);
+        memberCoupon.setCouponId(couponId);
+        memberCoupon.setUserId(userId);
+        memberCoupon.setShopId(shopId);
+        memberCoupon.setCouponType(coupon.getCouponType());
+        memberCoupon.setCouponStatus(coupon.getCouponStatus());
+        memberCoupon.setCouponName(coupon.getCouponName());
+        memberCoupon.setSendType(coupon.getSendType());
+        memberCoupon.setSendTimeType(coupon.getSendTimeType());
+        memberCoupon.setSendTime(coupon.getSendTime());
+        memberCoupon.setMoneyThreshold(coupon.getMoneyThreshold());
+        memberCoupon.setDiscountMoney(coupon.getDiscountMoney());
+        memberCoupon.setDiscountPercent(coupon.getDiscountPercent());
+        memberCoupon.setUseScope(coupon.getUseScope());
+        memberCoupon.setValidTimeType(coupon.getValidTimeType());
+        memberCoupon.setValidStartTime(coupon.getValidStartTime());
+        memberCoupon.setValidEndTime(coupon.getValidEndTime());
+        memberCoupon.setValidDay(coupon.getValidDay());
+        memberCoupon.setReceiveTime(new Date());
+        //有效期处理1.时间段2.领取之日起
+        if(coupon.getValidTimeType()==1){
+            memberCoupon.setDeadlineTime(coupon.getValidEndTime());
+        }else if(coupon.getValidTimeType()==2){
+            memberCoupon.setDeadlineTime(DateUtils.addDays(new Date(),coupon.getValidDay()));
+        }
+        memberCoupon.setRelGoodsIds(coupon.getRelGoodsIds());
+        memberCouponService.save(memberCoupon);
+        memberCouponRecordService.updateMemberCouponRecord(coupon,userId,1);
     }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/MemberCouponRecordServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/MemberCouponRecordServiceImpl.java
index d93e1b9..b11a98b 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/MemberCouponRecordServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/MemberCouponRecordServiceImpl.java
@@ -2,11 +2,15 @@
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.ruoyi.member.domain.pojo.coupon.Coupon;
+import com.ruoyi.member.domain.pojo.coupon.CouponTotal;
 import com.ruoyi.member.domain.pojo.coupon.MemberCouponRecord;
 import com.ruoyi.member.mapper.coupon.MemberCouponRecordMapper;
+import com.ruoyi.member.service.coupon.CouponTotalService;
 import com.ruoyi.member.service.coupon.MemberCouponRecordService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
 
 /**
  * <p>
@@ -19,6 +23,9 @@
 @Service
 public class MemberCouponRecordServiceImpl extends ServiceImpl<MemberCouponRecordMapper, MemberCouponRecord> implements MemberCouponRecordService {
 
+
+    @Resource
+    private CouponTotalService couponTotalService;
 
     /**
      * @description  获取用户优惠券领取记录
@@ -48,6 +55,7 @@
     public void updateMemberCouponRecord(Coupon coupon, Long userId, Integer number) {
         // 根据优惠券ID和用户ID获取会员优惠券记录
         MemberCouponRecord memberCouponRecord = this.getByCouponIdAndUserId(coupon.getCouponId(), userId);
+        CouponTotal couponTotal = couponTotalService.getById(coupon.getCouponId());
         if (memberCouponRecord != null) {
             // 如果会员优惠券记录存在,则更新数量
             memberCouponRecord.setNum(memberCouponRecord.getNum() + number);
@@ -81,8 +89,11 @@
             } else {
                 memberCouponRecord.setLimitFlag(0);
             }
+            couponTotal.setSendUserCount(couponTotal.getSendUserCount()+1);
         }
         // 保存或更新会员优惠券记录
         this.saveOrUpdate(memberCouponRecord);
+        couponTotal.setSendCount(couponTotal.getSendCount()+number);
+        couponTotalService.saveOrUpdate(couponTotal);
     }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
index f5d5e86..7621352 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberCouponServiceImpl.java
@@ -1,21 +1,28 @@
 package com.ruoyi.member.service.impl.member;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.ruoyi.common.core.exception.ServiceException;
+import com.ruoyi.member.domain.dto.AppMemberCouponPageDto;
+import com.ruoyi.member.domain.vo.AppMemberCouponPageVo;
 import com.ruoyi.member.mapper.member.MemberCouponMapper;
 import com.ruoyi.member.service.member.MemberCouponService;
 import com.ruoyi.system.api.constant.AppErrorConstant;
 import com.ruoyi.system.api.domain.poji.goods.Goods;
 import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
+import com.ruoyi.system.api.domain.poji.shop.Shop;
 import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
 import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
 import com.ruoyi.system.api.service.RemoteGoodsService;
+import com.ruoyi.system.api.service.RemoteShopService;
 import org.springframework.stereotype.Service;
 
 import javax.annotation.Resource;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -34,6 +41,8 @@
     @Resource
     private RemoteGoodsService remoteGoodsService;
 
+    @Resource
+    private RemoteShopService remoteShopService;
 
     /**
      * @description: TODO
@@ -109,7 +118,7 @@
             throw new ServiceException(AppErrorConstant.COUPON_EXPIRED);
         }else if(memberCoupon.getCouponStatus()==2){
             throw new ServiceException(AppErrorConstant.COUPON_USED);
-        }else if(memberCoupon.getCouponStatus()!=0){
+        }else if(memberCoupon.getCouponStatus()==-1){
             throw new ServiceException(AppErrorConstant.COUPON_NO_FIND);
         }
         if(memberCoupon.getCouponType()!=4){
@@ -152,4 +161,46 @@
         return total;
     }
 
+    /**
+     * @description 用户分页获取已领取优惠券列表
+     * @author  jqs
+     * @date    2023/7/11 16:25
+     * @param page
+     * @param appMemberCouponPageDto
+     * @return  List<AppMemberCouponPageVo>
+     */
+    @Override
+    public List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page, AppMemberCouponPageDto appMemberCouponPageDto){
+        List<AppMemberCouponPageVo> memberCouponPageVoList = memberCouponMapper.pageAppUserGetCoupon(page, appMemberCouponPageDto);
+        if(!memberCouponPageVoList.isEmpty()){
+            String relGoodsIds;
+            List<Goods> goodsList;
+            List<String> goodsLimitList;
+            Shop shop = null;
+            for(AppMemberCouponPageVo appGetAbleCouponPageVo : memberCouponPageVoList){
+                relGoodsIds = appGetAbleCouponPageVo.getRelGoodsIds();
+                goodsList = remoteGoodsService.listGoodsByGoodsId(relGoodsIds).getData();
+                if(!goodsList.isEmpty()){
+                    goodsLimitList = goodsList.stream().map(goods -> {
+                        String goodsName = goods.getGoodsName();
+                        goodsName = "限制" + goodsName + "适用";
+                        return goodsName;
+                    }).collect(Collectors.toList());
+                }else{
+                    goodsLimitList = new ArrayList<>();
+                    if(appGetAbleCouponPageVo.getShopId()!=null){
+                        if(shop!=null&&shop.getShopId().equals(appGetAbleCouponPageVo.getShopId())){
+                        }else{
+                            shop = remoteShopService.getShop(appGetAbleCouponPageVo.getShopId()).getData();
+                        }
+                        goodsLimitList.add(shop.getShopName()+"通用");
+                    }else{
+                        goodsLimitList.add("全场通用");
+                    }
+                }
+                appGetAbleCouponPageVo.setGoodsLimitList(goodsLimitList);
+            }
+        }
+        return memberCouponPageVoList;
+    }
 }
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
index b6e59dd..ffa4cfc 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -355,17 +355,52 @@
      */
     @Override
     public List<MerMemberPageVo> pageMerMember(Page page, MerMemberPageDto merMemberPageDto) {
+        List<Activeness> activenessList = remoteConfigService.listActiveness().getData();
         if (StringUtils.isNotBlank(merMemberPageDto.getMemberActiveness())) {
-            Activeness activeness = remoteConfigService.getActivenessByName(merMemberPageDto.getMemberActiveness()).getData();
-            if (activeness != null) {
-                Date nowDay = DateUtils.getNowDate();
-                String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
-                String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
-                merMemberPageDto.setActStartDate(actStartDate);
-                merMemberPageDto.setActEndDate(actEndDate);
+            if(!activenessList.isEmpty()){
+                for(Activeness activeness : activenessList){
+                    if(activeness.getActivenessName().equals(merMemberPageDto.getMemberActiveness())){
+                        Date nowDay = DateUtils.getNowDate();
+                        String actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay()));
+                        String actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay()));
+                        merMemberPageDto.setActStartDate(actStartDate);
+                        merMemberPageDto.setActEndDate(actEndDate);
+                        break;
+                    }
+                }
             }
         }
         List<MerMemberPageVo> merMemberPageVoList = memberMapper.pageMerMember(page, merMemberPageDto);
+        //处理活跃度返回
+        if (merMemberPageVoList != null && !merMemberPageVoList.isEmpty()) {
+            if (activenessList != null && !activenessList.isEmpty()) {
+                //生成活跃度时间段列表
+                List<MgtActivenessJudgeVo> mgtActivenessJudgeVoList = new ArrayList<>();
+                MgtActivenessJudgeVo mgtActivenessJudgeVo;
+                for (Activeness activeness : activenessList) {
+                    mgtActivenessJudgeVo = new MgtActivenessJudgeVo();
+                    mgtActivenessJudgeVo.setStartDay(DateUtils.addDays(new Date(), activeness.getEndDay()));
+                    mgtActivenessJudgeVo.setEndDay(DateUtils.addDays(new Date(), activeness.getStartDay() - 1));
+                    mgtActivenessJudgeVo.setActivenessName(activeness.getActivenessName());
+                }
+                //活跃度赋值
+                Date lastPayTime;
+                for (MerMemberPageVo mgtMemberPageVo : merMemberPageVoList) {
+                    lastPayTime = mgtMemberPageVo.getLastPayTime();
+                    StringJoiner sj = new StringJoiner(",");
+                    if (lastPayTime != null) {
+                        for (MgtActivenessJudgeVo entity : mgtActivenessJudgeVoList) {
+                            if (lastPayTime.compareTo(entity.getStartDay()) >= 0 && lastPayTime.compareTo(entity.getEndDay()) <= 0) {
+                                sj.add(entity.getActivenessName());
+                            }
+                        }
+                        if (sj.length() > 0) {
+                            mgtMemberPageVo.setMemberActiveness(sj.toString());
+                        }
+                    }
+                }
+            }
+        }
         return merMemberPageVoList;
     }
 
diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
index c70926b..7e9565e 100644
--- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
+++ b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberCouponService.java
@@ -1,6 +1,9 @@
 package com.ruoyi.member.service.member;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.ruoyi.member.domain.dto.AppMemberCouponPageDto;
+import com.ruoyi.member.domain.vo.AppMemberCouponPageVo;
 import com.ruoyi.system.api.domain.poji.member.MemberCoupon;
 import com.ruoyi.system.api.domain.vo.AppMemberCouponVo;
 import com.ruoyi.system.api.domain.vo.MerVerifyCouponGetVo;
@@ -54,4 +57,13 @@
     Integer totalMemberCouponByUserAndCoupon(Long userId,String couponId);
 
 
+    /**
+     * @description  用户分页获取已领取优惠券列表
+     * @author  jqs
+     * @date    2023/7/11 16:25
+     * @param page
+     * @param appMemberCouponPageDto
+     * @return  List<AppMemberCouponPageVo>
+     */
+    List<AppMemberCouponPageVo> pageAppUserGetCoupon(Page page, AppMemberCouponPageDto appMemberCouponPageDto);
 }
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 7b4b8fa..219f625 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
@@ -6,13 +6,30 @@
         SELECT *
         FROM t_birthday_card
         WHERE del_flag = 0 AND card_status = 1 AND shop_id = 0
-            AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shop_id}, applicable_shop) > 0)
+            AND (shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, applicable_shop) > 0))
+
     </select>
 
-    <select id="getPlatformBirthdayCard" resultType="com.ruoyi.member.domain.pojo.birthday.BirthdayCard">
+    <select id="getMerShopBirthdayCard" resultType="com.ruoyi.member.domain.pojo.birthday.BirthdayCard">
         SELECT *
         FROM t_birthday_card
         WHERE del_flag = 0 AND card_status = 1
-            AND shop_id = #{shop_id}
+            AND shop_id = #{shopId}
+    </select>
+
+    <select id="pageAppMemberPrize" resultType="com.ruoyi.member.domain.vo.AppMemberPrizePageVo">
+        SELECT
+        prize_id prizeId,
+        CASE gift_type
+            WHEN 1 THEN coupon_name
+            WHEN 2 THEN goods_name
+            WHEN 3 THEN gift_name
+            WHEN 4 THEN "现金"
+            END prizeName,
+        "生日卡" prizeFrom,
+        verify_status verifyStatus,
+        create_time createTime
+        FROM t_member_gift_record
+        WHERE del_flag = 0 AND user_id = #{userId}
     </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
index 7c10ce3..89d31e2 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/coupon/CouponMapper.xml
@@ -258,16 +258,11 @@
         UPDATE t_coupon_total set send_count = send_count + #{sendTotal}, send_user_count = send_user_count + sendPerson WHERE coupon_id = #{couponId}
     </update>
 
-    <select id="pagePlatformMerCoupon" resultType="com.ruoyi.member.domain.vo.MgtCouponPageVo">
+    <select id="pagePlatformMerCoupon" resultType="com.ruoyi.member.domain.vo.MerCouponPageVo">
         SELECT
         tc.coupon_id  couponId,
         tc.coupon_name  couponName,
-        CASE tc.coupon_type
-        WHEN 1 THEN '满减'
-        WHEN 2 THEN '折扣'
-        WHEN 3 THEN '代金'
-        WHEN 4 THEN '商品'
-        END couponType,
+        tc.coupon_type  couponType,
         tc.valid_time_type  validTimeType,
         tc.valid_start_time  validStartTime,
         tc.valid_end_time  validEndTime,
@@ -294,19 +289,14 @@
         tc.create_time  createTime
         FROM t_coupon tc
         LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id
-        WHERE tc.del_flag = 0 AND tc.coupon_status = 2 AND tc.coupon_from = 1
+        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND tc.coupon_from = 1
     </select>
 
-    <select id="pageShopMerCoupon" resultType="com.ruoyi.member.domain.vo.MgtCouponPageVo">
+    <select id="pageShopMerCoupon" resultType="com.ruoyi.member.domain.vo.MerCouponPageVo">
         SELECT
             tc.coupon_id  couponId,
             tc.coupon_name  couponName,
-            CASE tc.coupon_type
-                WHEN 1 THEN '满减'
-                WHEN 2 THEN '折扣'
-                WHEN 3 THEN '代金'
-                WHEN 4 THEN '商品'
-                END couponType,
+            tc.coupon_type  couponType,
             tc.valid_time_type  validTimeType,
             tc.valid_start_time  validStartTime,
             tc.valid_end_time  validEndTime,
@@ -335,7 +325,7 @@
             tc.limit_number limitNumber
         FROM t_coupon tc
                  LEFT JOIN t_coupon_total tct ON tc.coupon_id = tct.coupon_id
-        WHERE tc.del_flag = 0 AND tc.coupon_status = 2 AND tc.coupon_from = 2 AND tc.shop_id = #{param.shopId}
+        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND tc.coupon_from = 2 AND tc.shop_id = #{param.shopId}
         <if test="param.auditStatus != null and param.auditStatus != ''">
             AND tc.audit_status = #{param.auditStatus}
         </if>
@@ -346,7 +336,25 @@
             tc.coupon_id
         FROM t_coupon tc
         LEFT JOIN t_member_coupon_record tmcr ON tc.coupon_id = tmcr.coupon_id AND tmcr.user_id = #{userId}
-        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND send_type = 1 AND tmcr.limit_flag = 1
+        WHERE tc.del_flag = 0 AND tc.coupon_status = 1 AND tc.send_type = 1 AND tmcr.limit_flag = 1
     </select>
 
+    <select id="getAbleCouponPageVoList" resultType="com.ruoyi.member.domain.vo.AppGetAbleCouponPageVo">
+        SELECT
+            tc.coupon_id couponId,
+            tc.coupon_name couponName,
+            tc.coupon_type  couponType,
+            tc.money_threshold moneyThreshold,
+            tc.discount_money discountMoney,
+            tc.discount_percent discountPercent
+            tc.rel_goods_ids relGoodsIds
+        FROM t_coupon tc
+        WHERE tc.dle_flag = 0 AND tc.coupon_status = 1 AND tc.send_type = 1 AND (tc.coupon_from = 1 OR (tc.coupon_from = 2 AND tc.shop_id = #{shopId}))
+        <if test="unGetList != null and unGetList.size()>0">
+            AND tc.coupon_id NOT IN
+            <foreach collection="unGetList" item="item" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
index 8d8b9ac..2c8ed51 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
@@ -163,8 +163,27 @@
         tuc.deadline_time deadlineTime,
         tuc.rel_goods_ids relGoodsIds
         FROM t_member_coupon tuc
-        WHERE tuc.del_flag = 1 AND tuc.coupon_status = 1 AND tuc.coupon_type IN (1,2,3)
-        ORDER BY tuc.receive_time
+        WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{userId} AND tuc.coupon_type IN (1,2,3)
+        ORDER BY tuc.receive_time DESC
     </select>
 
+    <select id="pageAppUserGetCoupon" resultType="com.ruoyi.member.domain.vo.AppMemberCouponPageVo">
+        SELECT
+            tuc.id memberCouponId,
+            tuc.coupon_type couponType,
+            tuc.coupon_name couponName,
+            tuc.money_threshold moneyThreshold,
+            tuc.discount_money discountMoney,
+            tuc.discount_percent discountPercent,
+            tuc.valid_start_time validStartTime,
+            tuc.deadline_time deadlineTime,
+            tuc.rel_goods_ids relGoodsIds,
+            tuc.shop_id shopId
+        FROM t_member_coupon tuc
+        WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{param.userId}
+        <if test="param.couponStatus != null">
+            tuc.coupon_status = #{param.couponStatus}
+        </if>
+        ORDER BY tuc.receive_time DESC
+    </select>
 </mapper>
diff --git a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
index c5fff25..07c9973 100644
--- a/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
+++ b/ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -159,7 +159,8 @@
         tmt.useable_service_count surpNum,
         tm.birthday birthday,
         tm.user_tags userTags,
-        tm.goods_type goodsType
+        tm.goods_type goodsType,
+        tmt.last_pay_time lastPayTime
         FROM t_member tm
         INNER JOIN t_member_total tmt ON tm.member_id = tmt.member_id
         WHERE tm.relation_shop_id = #{param.shopId}
diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
index 807d879..94dde71 100644
--- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
+++ b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -90,7 +90,7 @@
     public R<MerVerifyAwardVo> sureVerifyPrize(@RequestBody MerVerifyPrizeDto merVerifyPrizeDto) {
         Long userId = SecurityUtils.getUserId();
         merVerifyPrizeDto.setUserId(userId);
-        MerVerifyAwardVo merVerifyAwardVo = new MerVerifyAwardVo();
+        MerVerifyAwardVo merVerifyAwardVo = orderService.sureVerifyPrize(merVerifyPrizeDto);
         return R.ok(merVerifyAwardVo);
     }
 
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 01d4970..e36ea82 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
@@ -1056,7 +1056,6 @@
         }else{
             merVerifyAwardVo.setGiftFrom("商户生日卡");
         }
-
         merVerifyAwardVo.setGiftType(memberGiftRecord.getGiftType());
         List<BirthdayGiftSendDto> giftSendDtoList = new ArrayList<>();
         BirthdayGiftSendDto birthdayGiftSendDto = new BirthdayGiftSendDto();
@@ -1107,6 +1106,17 @@
                 break;
         }
         merVerifyAwardVo.setCreateTime(memberGiftRecord.getCreateTime());
+        memberGiftRecord.setVerifyStatus(2);
+        memberGiftRecord.setVerifyTime(new Date());
+        if(member.getBindingFlag()!=1){
+            AppMemberBindingDto appMemberBindingDto = new AppMemberBindingDto();
+            appMemberBindingDto.setBindingFlag(1);
+            appMemberBindingDto.setShopId(merVerifyPrizeDto.getShopId());
+            Shop shop = remoteShopService.getShop(merVerifyPrizeDto.getShopId()).getData();
+            appMemberBindingDto.setShopName(shop.getShopName());
+            appMemberBindingDto.setUserId(merVerifyPrizeDto.getUserId());
+            remoteMemberService.updateMemberBinding(appMemberBindingDto);
+        }
         return merVerifyAwardVo;
     }
 
diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
index 5bf7f88..e268b21 100644
--- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
+++ b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopServiceImpl.java
@@ -605,7 +605,7 @@
         }
         shop.setBelongUserId(mgtTransferShopDto.getTransferUserId());
         this.saveOrUpdate(shop);
-        ShopRelUser shopRelUser = new ShopRelUser();
+        /*ShopRelUser shopRelUser = new ShopRelUser();
         shopRelUser.setDelFlag(0);
         shopRelUser.setShopId(shop.getShopId());
         shopRelUser.setUserId(mgtTransferShopDto.getTransferUserId());
@@ -613,7 +613,7 @@
         shopRelUser.setUserMobile(sysUser.getPhonenumber());
         shopRelUser.setUserDeptId(sysUser.getDeptId());
         shopRelUser.setUserName(sysUser.getNickName());
-        shopRelUserService.save(shopRelUser);
+        shopRelUserService.save(shopRelUser);*/
     }
 
     /**

--
Gitblit v1.7.1