Sfoglia il codice sorgente

Merge remote-tracking branch 'origin/master'

yuhongqi 1 settimana fa
parent
commit
0a2d49180e

+ 2 - 2
fs-service/src/main/java/com/fs/his/domain/FsCourseCouponUser.java

@@ -44,9 +44,9 @@ public class FsCourseCouponUser extends BaseEntity{
     private Integer status;
 
     /**
-     * 课程小节ID
+     * 看课记录ID
      */
-    private Long videoId;
+    private Long logId;
 
 
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/mapper/FsCourseCouponUserMapper.java

@@ -63,4 +63,7 @@ public interface FsCourseCouponUserMapper extends BaseMapper<FsCourseCouponUser>
 
     @Select("SELECT count(*) FROM fs_course_coupon_user WHERE user_id = #{userId}  AND coupon_id = #{couponId}")
     Integer selectCountByUserIdAndCouponId(@Param("userId") Long userId,@Param("couponId") Long couponId);
+
+    @Select("SELECT * FROM fs_course_coupon_user WHERE log_id = #{logId}")
+    FsCourseCouponUser selectByLogId(@Param("logId") Long logId);
 }

+ 4 - 0
fs-service/src/main/java/com/fs/his/param/CourseFinishRewardParam.java

@@ -13,5 +13,9 @@ public class CourseFinishRewardParam {
 
     private Long videoId;
 
+    private Long companyUserId;
 
+    private Long qwUsrId;
+
+    private Long qwExternalId;
 }

+ 2 - 2
fs-service/src/main/java/com/fs/his/service/IFsCourseCouponService.java

@@ -67,6 +67,6 @@ public interface IFsCourseCouponService extends IService<FsCourseCoupon>{
      * @param videoId 小节Id
      * @param userId 用户Id
      */
-    R sendAutoCourseCoupon(Long videoId, Long userId,Long companyId);
-    R sendCourseCoupon(Long videoId, Long userId,Long companyId,Long periodId);
+    R sendAutoCourseCoupon(Long videoId, Long userId,Long companyId,Long qwUserId,Long qwExternalId);
+    R sendCourseCoupon(Long videoId, Long userId,Long companyId,Long periodId,Long companyUserId);
 }

+ 30 - 4
fs-service/src/main/java/com/fs/his/service/impl/FsCourseCouponServiceImpl.java

@@ -10,8 +10,10 @@ import com.fs.common.core.domain.R;
 import com.fs.common.utils.DateUtils;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.fs.course.config.CourseConfig;
+import com.fs.course.domain.FsCourseWatchLog;
 import com.fs.course.domain.FsUserCourseVideo;
 import com.fs.course.domain.FsUserCourseVideoRedPackage;
+import com.fs.course.mapper.FsCourseWatchLogMapper;
 import com.fs.course.mapper.FsUserCourseVideoMapper;
 import com.fs.course.mapper.FsUserCourseVideoRedPackageMapper;
 import com.fs.his.domain.FsCourseCouponUser;
@@ -45,6 +47,9 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
 
     @Autowired
     private FsUserCourseVideoRedPackageMapper fsUserCourseVideoRedPackageMapper;
+
+    @Autowired
+    private FsCourseWatchLogMapper courseWatchLogMapper;
     /**
      * 查询课程优惠券
      * 
@@ -128,9 +133,9 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
     //自动
     @Override
     @Transactional
-    public R sendAutoCourseCoupon(Long videoId, Long userId,Long companyId) {
+    public R sendAutoCourseCoupon(Long videoId, Long userId,Long companyId,Long qwUserId,Long qwExternalId) {
         CourseFinishRewardVO rewardVO = new CourseFinishRewardVO();
-
+        rewardVO.setTag(0);
         Integer integral = null;
         BigDecimal amount = null;
         String couponName = null;
@@ -142,6 +147,14 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
             return R.error("课程小节不存在");
         }
 
+        FsCourseWatchLog log = courseWatchLogMapper.getWatchCourseVideo(userId, videoId, qwUserId.toString(), qwExternalId);
+        if (log == null){
+            return R.error("请先观看课程");
+        }
+        FsCourseCouponUser selectByLogId = courseCouponUserMapper.selectByLogId(log.getLogId());
+        if (selectByLogId != null) {
+            return R.ok().put("data", rewardVO);
+        }
         //优惠券
         FsCourseCoupon fsCourseCoupon = baseMapper.selectFsCourseCouponById(courseVideo.getCourseCouponId());
         if (fsCourseCoupon != null) {
@@ -168,6 +181,7 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
             couponUser.setStartTime(new Date());
             couponUser.setLimitTime(fsCourseCoupon.getLimitTime());
             couponUser.setCreateTime(new Date());
+            couponUser.setLogId(log.getLogId());
             int i = courseCouponUserMapper.insertFsCourseCouponUser(couponUser);
 
             //返回的优惠券名称
@@ -198,15 +212,16 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
         rewardVO.setCouponName(couponName);
         rewardVO.setIntegral(integral);
         rewardVO.setRedPacketMoney(amount);
+        rewardVO.setTag(1);
         return R.ok().put("data",rewardVO);
     }
 
     //手动
     @Transactional
     @Override
-    public R sendCourseCoupon(Long videoId, Long userId,Long companyId,Long periodId) {
+    public R sendCourseCoupon(Long videoId, Long userId,Long companyId,Long periodId,Long companyUserId) {
         CourseFinishRewardVO rewardVO = new CourseFinishRewardVO();
-
+        rewardVO.setTag(0);
         Integer integral = null;
         BigDecimal amount = null;
         String couponName = null;
@@ -218,6 +233,15 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
             return R.error("课程小节不存在");
         }
 
+        FsCourseWatchLog log = courseWatchLogMapper.getWatchLogByFsUserAndPeriodId(videoId, userId, companyUserId, periodId);
+        if (log == null) {
+            return R.error("请先观看课程");
+        }
+        FsCourseCouponUser selectByLogId = courseCouponUserMapper.selectByLogId(log.getLogId());
+        if (selectByLogId != null) {
+            return R.ok().put("data", rewardVO);
+        }
+
         //优惠券
         FsCourseCoupon fsCourseCoupon = baseMapper.selectFsCourseCouponById(courseVideo.getCourseCouponId());
         if (fsCourseCoupon != null) {
@@ -244,6 +268,7 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
             couponUser.setStartTime(new Date());
             couponUser.setLimitTime(fsCourseCoupon.getLimitTime());
             couponUser.setCreateTime(new Date());
+            couponUser.setLogId(log.getLogId());
             int i = courseCouponUserMapper.insertFsCourseCouponUser(couponUser);
 
             //返回的优惠券名称
@@ -274,6 +299,7 @@ public class FsCourseCouponServiceImpl extends ServiceImpl<FsCourseCouponMapper,
         rewardVO.setCouponName(couponName);
         rewardVO.setIntegral(integral);
         rewardVO.setRedPacketMoney(amount);
+        rewardVO.setTag(1);
         return R.ok().put("data",rewardVO);
     }
 }

+ 3 - 0
fs-service/src/main/java/com/fs/his/vo/CourseFinishRewardVO.java

@@ -12,4 +12,7 @@ public class CourseFinishRewardVO {
     private BigDecimal redPacketMoney;
 
     private Integer integral;
+
+    //0-不弹窗 1-弹窗
+    private Integer tag;
 }

+ 5 - 5
fs-service/src/main/resources/mapper/his/FsCourseCouponUserMapper.xml

@@ -13,11 +13,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         <result property="createTime"    column="create_time"    />
         <result property="updateTime"    column="update_time"    />
         <result property="status"    column="status"    />
-        <result property="videoId"    column="video_id"    />
+        <result property="logId"    column="log_id"    />
     </resultMap>
 
     <sql id="selectFsCourseCouponUserVo">
-        select id, coupon_id, user_id, limit_time, start_time, create_time, update_time, status, video_id from fs_course_coupon_user
+        select id, coupon_id, user_id, limit_time, start_time, create_time, update_time, status, log_id from fs_course_coupon_user
     </sql>
 
     <select id="selectFsCourseCouponUserList" parameterType="FsCourseCouponUser" resultMap="FsCourseCouponUserResult">
@@ -46,7 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time,</if>
             <if test="updateTime != null">update_time,</if>
             <if test="status != null">status,</if>
-            <if test="videoId != null">video_id,</if>
+            <if test="logId != null">log_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="couponId != null">#{couponId},</if>
@@ -56,7 +56,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">#{createTime},</if>
             <if test="updateTime != null">#{updateTime},</if>
             <if test="status != null">#{status},</if>
-            <if test="videoId != null">#{videoId},</if>
+            <if test="logId != null">#{logId},</if>
          </trim>
     </insert>
 
@@ -70,7 +70,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="createTime != null">create_time = #{createTime},</if>
             <if test="updateTime != null">update_time = #{updateTime},</if>
             <if test="status != null">status = #{status},</if>
-            <if test="videoId != null">video_id = #{videoId},</if>
+            <if test="logId != null">log_id = #{logId},</if>
         </trim>
         where id = #{id}
     </update>

+ 2 - 2
fs-user-app/src/main/java/com/fs/app/controller/FsCourseCouponController.java

@@ -29,7 +29,7 @@ public class FsCourseCouponController extends AppBaseController {
         long userId = Long.parseLong(getUserId());
         param.setUserId(userId);
         logger.info("发送自动课程优惠券参数:{}",param);
-        return fsCourseCouponService.sendAutoCourseCoupon(param.getVideoId(),param.getUserId(),param.getCompanyId());
+        return fsCourseCouponService.sendAutoCourseCoupon(param.getVideoId(),param.getUserId(),param.getCompanyId(),param.getQwUsrId(),param.getQwExternalId());
     }
 
     @Login
@@ -38,6 +38,6 @@ public class FsCourseCouponController extends AppBaseController {
         long userId = Long.parseLong(getUserId());
         param.setUserId(userId);
         logger.info("发送课程优惠券参数:{}",param);
-        return fsCourseCouponService.sendCourseCoupon(param.getVideoId(),param.getUserId(),param.getCompanyId(),param.getPeriodId());
+        return fsCourseCouponService.sendCourseCoupon(param.getVideoId(),param.getUserId(),param.getCompanyId(),param.getPeriodId(),param.getCompanyUserId());
     }
 }