liujunchi преди 2 години
родител
ревизия
5997e2e6ab

+ 77 - 0
cooleshow-user/user-biz/src/main/java/com/yonge/cooleshow/biz/dal/vo/activity/UserRewardWrapper.java

@@ -1,5 +1,11 @@
 package com.yonge.cooleshow.biz.dal.vo.activity;
 
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.common.enums.RewardTypeEnum;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
 /**
  * Description
  *
@@ -7,4 +13,75 @@ package com.yonge.cooleshow.biz.dal.vo.activity;
  * @date 2022-10-09
  */
 public class UserRewardWrapper {
+
+
+    // ("领奖id")
+    private Long receiveRewardId;
+
+    // ("奖品名称 ")
+    private String rewardName;
+
+     // ("奖品类型:  ACTUAL 实物 VIP 小酷AI会员 PIAMO_ROOM 琴房时长 COUPON(优惠券)")
+    private RewardTypeEnum rewardType;
+
+    // ("奖品描述 ")
+    private String rewardDescribe;
+
+    // ("奖品图片 ")
+    private String imgUrl;
+
+    // ("获奖时间")
+    private Date winningTime;
+
+    public Long getReceiveRewardId() {
+        return receiveRewardId;
+    }
+
+    public void setReceiveRewardId(Long receiveRewardId) {
+        this.receiveRewardId = receiveRewardId;
+    }
+
+    public String getRewardName() {
+        return rewardName;
+    }
+
+    public void setRewardName(String rewardName) {
+        this.rewardName = rewardName;
+    }
+
+    public RewardTypeEnum getRewardType() {
+        return rewardType;
+    }
+
+    public void setRewardType(RewardTypeEnum rewardType) {
+        this.rewardType = rewardType;
+    }
+
+    public String getRewardDescribe() {
+        return rewardDescribe;
+    }
+
+    public void setRewardDescribe(String rewardDescribe) {
+        this.rewardDescribe = rewardDescribe;
+    }
+
+    public String getImgUrl() {
+        return imgUrl;
+    }
+
+    public void setImgUrl(String imgUrl) {
+        this.imgUrl = imgUrl;
+    }
+
+    public Date getWinningTime() {
+        return winningTime;
+    }
+
+    public void setWinningTime(Date winningTime) {
+        this.winningTime = winningTime;
+    }
+
+    public String jsonString() {
+        return JSON.toJSONString(this);
+    }
 }

+ 10 - 2
cooleshow-user/user-biz/src/main/resources/config/mybatis/ActivityUserRewardMapper.xml

@@ -106,7 +106,7 @@
     </update>
     <sql id="selectReceiveRewardSql">
         <where>
-            ar.reward_type != 'ACTUAL'
+            ar.reward_type_ != 'ACTUAL'
             <if test="query.userId != null">
                 and aur.user_id_ = #{query.userId}
             </if>
@@ -120,9 +120,17 @@
     </sql>
 
     <select id="selectReceiveRewardList" resultType="com.yonge.cooleshow.biz.dal.vo.activity.UserRewardWrapper">
-        select * from
+        select
+            aur.id_ as receiveRewardId,
+            ar.reward_name_ as rewardName,
+            ar.reward_type_ as rewardType,
+            ar.reward_describe_ as rewardDescribe,
+            ar.img_url_ as imgUrl,
+            aur.winning_time_ as winningTime
+        from
         activity_user_reward aur
         left join activity_plan ap on ap.id_ = aur.activity_id_
+        left join activity_reward ar on ar.id_ = aur.reward_id_
         <include refid="selectReceiveRewardSql"/>
     </select>
     <!--分享活动关联老师-->

+ 4 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/controller/StudentActivityController.java

@@ -115,6 +115,10 @@ public class StudentActivityController extends BaseController {
             return failed(HttpStatus.FORBIDDEN, "请登录");
         }
 
+        query.setClient(ClientEnum.TEACHER);
+        query.setReceive(YesOrNoEnum.NO);
+        query.setUserId(user.getId());
+
         IPage<UserRewardWrapper> iPage = activityUserRewardService.receiveRewardList(PageUtil.getPage(query), UserRewardQueryInfo.from(query.jsonString()));
 
         // 数据转换

+ 91 - 0
cooleshow-user/user-student/src/main/java/com/yonge/cooleshow/student/io/request/ActivityVo.java

@@ -1,11 +1,15 @@
 package com.yonge.cooleshow.student.io.request;
 
 import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
 import com.yonge.cooleshow.common.enums.RewardTypeEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
 import com.yonge.toolset.base.page.QueryInfo;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 
+import java.util.Date;
+
 /**
  * Description
  *
@@ -17,12 +21,48 @@ public class ActivityVo {
     @ApiModel("ReceiveRewardQuery-活动领取奖品查询")
     public static class ReceiveRewardQuery extends QueryInfo {
 
+        // 用户id
+        @ApiModelProperty(hidden = true)
+        private Long userId;
+
+        // 客户端类型
+        @ApiModelProperty(hidden = true)
+        private ClientEnum client;
+
+
+        // 是否领取
+        @ApiModelProperty("是否已领取,1是 2:否")
+        private YesOrNoEnum receive;
 
 
         public String jsonString() {
             return JSON.toJSONString(this);
         }
 
+        public Long getUserId() {
+            return userId;
+        }
+
+        public void setUserId(Long userId) {
+            this.userId = userId;
+        }
+
+        public ClientEnum getClient() {
+            return client;
+        }
+
+        public void setClient(ClientEnum client) {
+            this.client = client;
+        }
+
+        public YesOrNoEnum getReceive() {
+            return receive;
+        }
+
+        public void setReceive(YesOrNoEnum receive) {
+            this.receive = receive;
+        }
+
     }
 
     @ApiModel("ReceiveRewardList-活动领取奖品列表")
@@ -42,5 +82,56 @@ public class ActivityVo {
 
         @ApiModelProperty("奖品图片 ")
         private String imgUrl;
+
+        @ApiModelProperty("获奖时间")
+        private Date winningTime;
+
+        public Long getReceiveRewardId() {
+            return receiveRewardId;
+        }
+
+        public void setReceiveRewardId(Long receiveRewardId) {
+            this.receiveRewardId = receiveRewardId;
+        }
+
+        public String getRewardName() {
+            return rewardName;
+        }
+
+        public void setRewardName(String rewardName) {
+            this.rewardName = rewardName;
+        }
+
+        public RewardTypeEnum getRewardType() {
+            return rewardType;
+        }
+
+        public void setRewardType(RewardTypeEnum rewardType) {
+            this.rewardType = rewardType;
+        }
+
+        public String getRewardDescribe() {
+            return rewardDescribe;
+        }
+
+        public void setRewardDescribe(String rewardDescribe) {
+            this.rewardDescribe = rewardDescribe;
+        }
+
+        public String getImgUrl() {
+            return imgUrl;
+        }
+
+        public void setImgUrl(String imgUrl) {
+            this.imgUrl = imgUrl;
+        }
+
+        public Date getWinningTime() {
+            return winningTime;
+        }
+
+        public void setWinningTime(Date winningTime) {
+            this.winningTime = winningTime;
+        }
     }
 }

+ 43 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/controller/ActivityController.java

@@ -1,17 +1,24 @@
 package com.yonge.cooleshow.teacher.controller;
 
 
+import com.alibaba.fastjson.JSON;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.yonge.cooleshow.auth.api.client.SysUserFeignService;
 import com.yonge.cooleshow.auth.api.entity.SysUser;
 import com.yonge.cooleshow.biz.dal.dto.EvaluationRecordDto;
 import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.biz.dal.queryInfo.UserRewardQueryInfo;
 import com.yonge.cooleshow.biz.dal.service.ActivityEvaluationRecordService;
 import com.yonge.cooleshow.biz.dal.service.ActivityPlanService;
 import com.yonge.cooleshow.biz.dal.service.ActivityUserRewardService;
 import com.yonge.cooleshow.biz.dal.vo.CheckVo;
+import com.yonge.cooleshow.biz.dal.vo.activity.UserRewardWrapper;
 import com.yonge.cooleshow.common.controller.BaseController;
 import com.yonge.cooleshow.common.entity.HttpResponseResult;
 import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.cooleshow.teacher.io.request.ActivityVo;
+import com.yonge.toolset.base.page.PageInfo;
+import com.yonge.toolset.mybatis.support.PageUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.slf4j.Logger;
@@ -20,6 +27,8 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.http.HttpStatus;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.List;
+
 
 @Api(tags = "活动接口")
 @RestController
@@ -48,5 +57,39 @@ public class ActivityController extends BaseController {
 
         return succeed(checkVo);
     }
+
+
+    @ApiOperation(value = "查看领奖列表")
+    @PostMapping("/receiveRewardList")
+    public HttpResponseResult<PageInfo<ActivityVo.ReceiveRewardList>> receiveRewardList(@RequestBody ActivityVo.ReceiveRewardQuery query){
+
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        query.setClient(ClientEnum.TEACHER);
+        query.setReceive(YesOrNoEnum.NO);
+        query.setUserId(user.getId());
+
+        IPage<UserRewardWrapper> iPage = activityUserRewardService.receiveRewardList(PageUtil.getPage(query), UserRewardQueryInfo.from(query.jsonString()));
+
+        // 数据转换
+        List<ActivityVo.ReceiveRewardList> pageInfos = JSON.parseArray(JSON.toJSONString(iPage.getRecords()),
+                                                                       ActivityVo.ReceiveRewardList.class);
+
+        return succeed(PageUtil.getPageInfo(iPage,pageInfos));
+    }
+
+
+    @ApiOperation(value = "领取奖品")
+    @PostMapping("/receiveReward/{receiveRewardId}")
+    public HttpResponseResult<CheckVo> receiveReward(@PathVariable Long receiveRewardId){
+
+        SysUser user = sysUserFeignService.queryUserInfo();
+        if (user == null || null == user.getId()) {
+            return failed(HttpStatus.FORBIDDEN, "请登录");
+        }
+        return status(activityUserRewardService.receiveReward(user.getId(), receiveRewardId));
+    }
 }
 

+ 136 - 0
cooleshow-user/user-teacher/src/main/java/com/yonge/cooleshow/teacher/io/request/ActivityVo.java

@@ -0,0 +1,136 @@
+package com.yonge.cooleshow.teacher.io.request;
+
+import com.alibaba.fastjson.JSON;
+import com.yonge.cooleshow.biz.dal.enums.ClientEnum;
+import com.yonge.cooleshow.common.enums.RewardTypeEnum;
+import com.yonge.cooleshow.common.enums.YesOrNoEnum;
+import com.yonge.toolset.base.page.QueryInfo;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+
+import java.util.Date;
+
+/**
+ * Description
+ *
+ * @author liujunchi
+ * @date 2022-10-09
+ */
+public class ActivityVo {
+
+    @ApiModel("ReceiveRewardQuery-活动领取奖品查询")
+    public static class ReceiveRewardQuery extends QueryInfo {
+
+        // 用户id
+        @ApiModelProperty(hidden = true)
+        private Long userId;
+
+        // 客户端类型
+        @ApiModelProperty(hidden = true)
+        private ClientEnum client;
+
+
+        // 是否领取
+        @ApiModelProperty("是否已领取,1是 2:否")
+        private YesOrNoEnum receive;
+
+
+        public String jsonString() {
+            return JSON.toJSONString(this);
+        }
+
+        public Long getUserId() {
+            return userId;
+        }
+
+        public void setUserId(Long userId) {
+            this.userId = userId;
+        }
+
+        public ClientEnum getClient() {
+            return client;
+        }
+
+        public void setClient(ClientEnum client) {
+            this.client = client;
+        }
+
+        public YesOrNoEnum getReceive() {
+            return receive;
+        }
+
+        public void setReceive(YesOrNoEnum receive) {
+            this.receive = receive;
+        }
+    }
+
+    @ApiModel("ReceiveRewardList-活动领取奖品列表")
+    public static class ReceiveRewardList {
+
+        @ApiModelProperty("领奖id")
+        private Long receiveRewardId;
+
+        @ApiModelProperty("奖品名称 ")
+        private String rewardName;
+
+        @ApiModelProperty("奖品类型:  ACTUAL 实物 VIP 小酷AI会员 PIAMO_ROOM 琴房时长 COUPON(优惠券)")
+        private RewardTypeEnum rewardType;
+
+        @ApiModelProperty("奖品描述 ")
+        private String rewardDescribe;
+
+        @ApiModelProperty("奖品图片 ")
+        private String imgUrl;
+
+        @ApiModelProperty("获奖时间")
+        private Date winningTime;
+
+        public Long getReceiveRewardId() {
+            return receiveRewardId;
+        }
+
+        public void setReceiveRewardId(Long receiveRewardId) {
+            this.receiveRewardId = receiveRewardId;
+        }
+
+        public String getRewardName() {
+            return rewardName;
+        }
+
+        public void setRewardName(String rewardName) {
+            this.rewardName = rewardName;
+        }
+
+        public RewardTypeEnum getRewardType() {
+            return rewardType;
+        }
+
+        public void setRewardType(RewardTypeEnum rewardType) {
+            this.rewardType = rewardType;
+        }
+
+        public String getRewardDescribe() {
+            return rewardDescribe;
+        }
+
+        public void setRewardDescribe(String rewardDescribe) {
+            this.rewardDescribe = rewardDescribe;
+        }
+
+        public String getImgUrl() {
+            return imgUrl;
+        }
+
+        public void setImgUrl(String imgUrl) {
+            this.imgUrl = imgUrl;
+        }
+
+        public Date getWinningTime() {
+            return winningTime;
+        }
+
+        public void setWinningTime(Date winningTime) {
+            this.winningTime = winningTime;
+        }
+    }
+}