Selaa lähdekoodia

考场会员接口修改

小么熊🐻 1 vuosi sitten
vanhempi
commit
438f3bd0f1

+ 28 - 0
nbjk-service/src/main/java/com/miaxis/exam/dto/ExamInfoDto.java

@@ -0,0 +1,28 @@
+package com.miaxis.exam.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 考场信息对象 exam_info
+ *
+ * @author miaxis
+ * @date 2023-03-20
+ */
+@Data
+@ApiModel(value = "ExamInfoDto", description = "考场信息输入对象")
+public class ExamInfoDto {
+
+    @ApiModelProperty(value = "用户id",required = true)
+    private Long userId;
+
+    @ApiModelProperty(value = "考场名称")
+    private String name;
+
+    @ApiModelProperty(value = "城市ID")
+    private String cityId;
+
+
+
+}

+ 71 - 0
nbjk-service/src/main/java/com/miaxis/exam/vo/ExamInfoVipVo.java

@@ -0,0 +1,71 @@
+package com.miaxis.exam.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * 考场信息对象 exam_info
+ *
+ * @author miaxis
+ * @date 2023-03-20
+ */
+@Data
+@ApiModel(value = "ExamInfoVipVO", description = "考场信息返回对象")
+public class ExamInfoVipVo {
+
+    @ApiModelProperty(value = "id")
+    private Long id;
+
+    /** 考场名称 */
+    @ApiModelProperty(value = "考场名称")
+    private String name;
+
+    /** 考场图片 */
+    @ApiModelProperty(value = "考场图片")
+    private String image;
+
+    /** 省份ID */
+    @ApiModelProperty(value = "省份ID")
+    private String provinceId;
+
+    /** 省份名称 */
+    @ApiModelProperty(value = "省份名称")
+    private String province;
+
+    /** 城市ID */
+    @ApiModelProperty(value = "城市ID")
+    private String cityId;
+
+    /** 城市名称 */
+    @ApiModelProperty(value = "城市名称")
+    private String city;
+
+    /** 城市名称 */
+    @ApiModelProperty(value = "价格")
+    private Integer price;
+
+    /** 课程数 */
+    @ApiModelProperty(value = "课程数")
+    private transient Integer videoCount;
+
+    /** 用户ID */
+    @ApiModelProperty(value = "用户ID")
+    private Long userId;
+
+    /** 到期时间 */
+    @ApiModelProperty(value = "到期时间")
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" )
+    private Date expirationTime;
+
+    @ApiModelProperty(value = "是否VIP")
+    private Integer isVip;
+
+    @ApiModelProperty(value = "签名")
+    private String sign;
+
+
+}

+ 5 - 1
nbjk-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java

@@ -58,7 +58,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
 
     @Override
     public void writeVipDataToDb(WxOrder order, int payType) {
-        Date now = new Date();
+        long oneYearLong = 1000 * 60 * 60 * 24 * 365l;
         OrderInfo orderInfo = new OrderInfo();
         orderInfo.setGoodsId(order.getGoodsId());
         orderInfo.setGoodsName(order.getGoodsName());
@@ -84,6 +84,10 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
             vipUserExam.setUnionId(order.getUnionId());
             vipUserExam.setExamId(examInfo.getId());
             vipUserExam.setExamName(examInfo.getName());
+            Date now = new Date();
+            long x = now.getTime() + oneYearLong * 2;
+            Date twoYear = new Date(x);
+            vipUserExam.setExpirationTime(twoYear);
             vipUserExamService.save(vipUserExam);
             this.save(orderInfo);
         } else if(order.getGoodsType()==2) { //商品

+ 10 - 120
nbjk-service/src/main/java/com/miaxis/vip/domain/VipExamVideo.java

@@ -1,16 +1,12 @@
 package com.miaxis.vip.domain;
 
-import org.apache.commons.lang3.builder.ToStringBuilder;
-import org.apache.commons.lang3.builder.ToStringStyle;
-import com.miaxis.common.annotation.Excel;
-import com.miaxis.common.core.domain.BaseEntity;
-import io.swagger.annotations.ApiModel;
-import io.swagger.annotations.ApiModelProperty;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
-import com.baomidou.mybatisplus.annotation.IdType;
-import com.baomidou.mybatisplus.annotation.TableField;
+import com.miaxis.common.annotation.Excel;
 import com.miaxis.common.core.domain.BaseBusinessEntity;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 /**
  * 考场视频对象 vip_exam_video
@@ -100,116 +96,10 @@ public class VipExamVideo extends BaseBusinessEntity{
     @ApiModelProperty(value = "考场名称")
     private String examName;
 
-    public void setId(Long id){
-        this.id = id;
-    }
-
-    public Long getId(){
-        return id;
-    }
-    public void setVideoName(String videoName){
-        this.videoName = videoName;
-    }
-
-    public String getVideoName(){
-        return videoName;
-    }
-    public void setVideoCover(String videoCover){
-        this.videoCover = videoCover;
-    }
-
-    public String getVideoCover(){
-        return videoCover;
-    }
-    public void setVideoUrl(String videoUrl){
-        this.videoUrl = videoUrl;
-    }
-
-    public String getVideoUrl(){
-        return videoUrl;
-    }
-    public void setVideoSubject(Long videoSubject){
-        this.videoSubject = videoSubject;
-    }
-
-    public Long getVideoSubject(){
-        return videoSubject;
-    }
-    public void setState(Long state){
-        this.state = state;
-    }
-
-    public Long getState(){
-        return state;
-    }
-    public void setHorizontal(Long horizontal){
-        this.horizontal = horizontal;
-    }
-
-    public Long getHorizontal(){
-        return horizontal;
-    }
-    public void setProvinceId(String provinceId){
-        this.provinceId = provinceId;
-    }
-
-    public String getProvinceId(){
-        return provinceId;
-    }
-    public void setCityId(String cityId){
-        this.cityId = cityId;
-    }
-
-    public String getCityId(){
-        return cityId;
-    }
-    public void setProvince(String province){
-        this.province = province;
-    }
-
-    public String getProvince(){
-        return province;
-    }
-    public void setCity(String city){
-        this.city = city;
-    }
-
-    public String getCity(){
-        return city;
-    }
-    public void setExamId(Long examId){
-        this.examId = examId;
-    }
-
-    public Long getExamId(){
-        return examId;
-    }
-    public void setExamName(String examName){
-        this.examName = examName;
-    }
-
-    public String getExamName(){
-        return examName;
-    }
-
-    @Override
-    public String toString() {
-        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
-            .append("id", getId())
-            .append("videoName", getVideoName())
-            .append("videoCover", getVideoCover())
-            .append("videoUrl", getVideoUrl())
-            .append("videoSubject", getVideoSubject())
-            .append("state", getState())
-            .append("horizontal", getHorizontal())
-            .append("provinceId", getProvinceId())
-            .append("cityId", getCityId())
-            .append("province", getProvince())
-            .append("city", getCity())
-            .append("createTime", getCreateTime())
-            .append("updateTime", getUpdateTime())
-            .append("examId", getExamId())
-            .append("examName", getExamName())
-            .toString();
-    }
+    /** 观看模式 0:免费   2:会员 */
+    @Excel(name = "观看模式")
+    @TableField("permission")
+    @ApiModelProperty(value = "观看模式 0:免费  2:会员")
+    private Integer permission;
+
 }

+ 1 - 1
nbjk-service/src/main/java/com/miaxis/vip/mapper/VipUserExamMapper.java

@@ -19,7 +19,7 @@ public interface VipUserExamMapper extends BaseMapper<VipUserExam> {
      * @param vipUserExam 考场会员
      * @return 考场会员集合
      */
-    public List<VipUserExam> selectVipUserExamList(VipUserExam vipUserExam);
+    List<VipUserExam> selectVipUserExamList(VipUserExam vipUserExam);
 
     void deleteVipUserExamByUnionIdAndGoodsId(@Param("unionId")String unionId,@Param("goodsId") Long goodsId);
 

+ 1 - 1
nbjk-service/src/main/java/com/miaxis/vip/service/IVipUserExamService.java

@@ -18,7 +18,7 @@ public interface IVipUserExamService extends IService<VipUserExam>{
      * @param vipUserExam 考场会员
      * @return 考场会员集合
      */
-    public List<VipUserExam> selectVipUserExamList(VipUserExam vipUserExam);
+    List<VipUserExam> selectVipUserExamList(VipUserExam vipUserExam);
 
     void deleteVipUserExamByUnionIdAndGoodsId(String unionId, Long goodsId);
 

+ 15 - 1
nbjk-service/src/main/resources/mapper/exam/ExamInfoMapper.xml

@@ -21,6 +21,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         select *,(select count(1) from vip_exam_video v where v.exam_id = e.id) as video_count from exam_info e
     </sql>
 
+    <select id="selectExamInfoList" parameterType="com.miaxis.exam.dto.ExamInfoDto" resultType="com.miaxis.exam.vo.ExamInfoVipVo">
+        SELECT e.*,
+        (SELECT COUNT(1) FROM vip_exam_video v WHERE v.exam_id = e.id) AS video_count,
+        (SELECT expiration_time FROM vip_user_exam WHERE e.id = exam_id AND user_id = #{userId} AND NOW() <![CDATA[<=]]> expiration_time) AS expiration_time,
+        (CASE WHEN NOW() <![CDATA[<=]]> (SELECT expiration_time FROM vip_user_exam WHERE e.id = exam_id AND user_id = #{userId}) THEN 1 ELSE 0 END) AS is_vip,
+        ${userId} as userId
+        FROM exam_info e
+        <where>
+            <if test="cityId != null and cityId != ''" > AND e.city_id = #{cityId}</if>
+            <if test="name != null  and name != ''"> and e.name like concat('%', #{name}, '%')</if>
+        </where>
+    </select>
+
+    <!--
     <select id="selectExamInfoList" parameterType="ExamInfo" resultMap="ExamInfoResult">
         <include refid="selectExamInfoVo"/>
         <where>
@@ -32,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="city != null  and city != ''"> and city = #{city}</if>
         </where>
     </select>
-
+    -->
 
     <select id="getProvice" resultType="com.miaxis.exam.vo.ExamInfoProviceVo">
         select province_id,province from exam_info group by province_id,province

+ 6 - 1
nbjk-service/src/main/resources/mapper/vip/VipUserExamMapper.xml

@@ -16,7 +16,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
     </resultMap>
 
     <sql id="selectVipUserExamVo">
-        select * from vip_user_exam
+        select *,
+               (case
+                when now() <![CDATA[<=]]> expiration_time then 1
+                when now() <![CDATA[>]]> expiration_time then 0
+                end) as is_vip
+        from vip_user_exam
     </sql>
 
     <select id="selectVipUserExamList" parameterType="VipUserExam" resultMap="VipUserExamResult">