wjj преди 1 седмица
родител
ревизия
585e4f5f72

+ 1 - 1
fs-service/src/main/java/com/fs/his/domain/FsSignArticleReadDetail.java

@@ -44,7 +44,7 @@ public class FsSignArticleReadDetail implements Serializable
 
     /** 阅读时长(秒) */
     @Excel(name = "阅读时长(秒)")
-    private Integer readDuration;
+    private Long readDuration;
 
     /** 渠道来源 */
     @Excel(name = "渠道来源")

+ 7 - 0
fs-service/src/main/java/com/fs/his/mapper/FsSignArticleReadDetailMapper.java

@@ -1,6 +1,10 @@
 package com.fs.his.mapper;
 
 import com.fs.his.domain.FsSignArticleReadDetail;
+import com.fs.his.param.APPSignArticleReadDetailParam;
+import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
+
 import java.util.List;
 
 /**
@@ -58,4 +62,7 @@ public interface FsSignArticleReadDetailMapper
      * @return 结果
      */
     public int deleteFsSignArticleReadDetailByIds(Long[] ids);
+
+    @Select("SELECT id FROM fs_sign_article_read_detail WHERE fs_user_id = #{param.userId} AND article_id = #{param.articleId} AND share_company_user_id = #{param.companyUserId}")
+    FsSignArticleReadDetail selectUserReadDetailDataByCompanyUserIdAndArticleId(@Param("param") APPSignArticleReadDetailParam param);
 }

+ 10 - 0
fs-service/src/main/java/com/fs/his/param/APPSignArticleReadDetailParam.java

@@ -0,0 +1,10 @@
+package com.fs.his.param;
+
+import lombok.Data;
+
+@Data
+public class APPSignArticleReadDetailParam {
+    private Long userId;
+    private Long companyUserId;
+    private Long articleId;
+}

+ 10 - 0
fs-service/src/main/java/com/fs/his/service/IFsSignArticleReadDetailService.java

@@ -1,6 +1,9 @@
 package com.fs.his.service;
 
+import com.fs.common.core.domain.R;
 import com.fs.his.domain.FsSignArticleReadDetail;
+import com.fs.his.param.APPSignArticleReadDetailParam;
+
 import java.util.List;
 
 /**
@@ -58,4 +61,11 @@ public interface IFsSignArticleReadDetailService
      * @return 结果
      */
     public int deleteFsSignArticleReadDetailById(Long id);
+
+    /**
+     * 用户阅览打卡文章
+     * @param param 阅读参数
+     * @return 结果
+     */
+    R  userReadArticle(APPSignArticleReadDetailParam param);
 }

+ 36 - 1
fs-service/src/main/java/com/fs/his/service/impl/FsSignArticleReadDetailServiceImpl.java

@@ -1,10 +1,14 @@
 package com.fs.his.service.impl;
 
+import com.fs.common.core.domain.R;
 import com.fs.his.domain.FsSignArticleReadDetail;
 import com.fs.his.mapper.FsSignArticleReadDetailMapper;
+import com.fs.his.param.APPSignArticleReadDetailParam;
 import com.fs.his.service.IFsSignArticleReadDetailService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+
+import java.util.Date;
 import java.util.List;
 
 /**
@@ -91,4 +95,35 @@ public class FsSignArticleReadDetailServiceImpl implements IFsSignArticleReadDet
     {
         return fsSignArticleReadDetailMapper.deleteFsSignArticleReadDetailById(id);
     }
-}
+
+    @Override
+    public R userReadArticle(APPSignArticleReadDetailParam param) {
+        if (param.getArticleId() == null && param.getUserId() == null && param.getCompanyUserId() == null) {
+            return R.error("参数错误");
+        }
+        FsSignArticleReadDetail detail = fsSignArticleReadDetailMapper.selectUserReadDetailDataByCompanyUserIdAndArticleId(param);
+        if (detail == null) {
+            detail = new FsSignArticleReadDetail();
+            detail.setArticleId(param.getArticleId());
+            detail.setFsUserId(param.getUserId());
+            detail.setShareCompanyUserId(param.getCompanyUserId());
+            detail.setReadDuration(5L);
+            detail.setCreateTime(new Date());
+            detail.setSource("小程序");
+            int i = fsSignArticleReadDetailMapper.insertFsSignArticleReadDetail(detail);
+            if (i > 0) {
+                return R.ok();
+            }
+        } else {
+            FsSignArticleReadDetail map = new FsSignArticleReadDetail();
+            map.setId(detail.getId());
+            map.setReadDuration(detail.getReadDuration() + 5L);
+            int i = fsSignArticleReadDetailMapper.updateFsSignArticleReadDetail(map);
+            if (i > 0) {
+                return R.ok();
+            }
+        }
+        return R.error();
+    }
+
+}

+ 32 - 0
fs-user-app/src/main/java/com/fs/app/controller/SignArticleReadDetailController.java

@@ -0,0 +1,32 @@
+package com.fs.app.controller;
+
+import com.fs.app.annotation.Login;
+import com.fs.common.core.domain.R;
+import com.fs.his.param.APPSignArticleReadDetailParam;
+import com.fs.his.service.IFsSignArticleReadDetailService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestBody;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.servlet.http.HttpServletRequest;
+
+@Api("打卡文章阅读详情接口")
+@RestController
+@RequestMapping(value="/app/signArticleDetail")
+public class SignArticleReadDetailController extends  AppBaseController   {
+
+    @Autowired
+    private IFsSignArticleReadDetailService signArticleReadDetailService;
+
+    @Login
+    @ApiOperation("用户阅读")
+    @PostMapping("/userReadArticle")
+    public R userReadArticle(@RequestBody APPSignArticleReadDetailParam param, HttpServletRequest request) {
+        param.setUserId(Long.parseLong(getUserId()));
+        return signArticleReadDetailService.userReadArticle(param);
+    }
+}