修改了病例交流的统计数据和登陆状态

This commit is contained in:
wucongxing8150 2025-08-04 15:58:02 +08:00
parent 36a796853b
commit 20ff8778b8
8 changed files with 144 additions and 11 deletions

View File

@ -272,9 +272,10 @@ public class CaseExchangeController {
request.validateForLimit();
// 获取数据
List<CaseExchangeDto> caseExchanges = caseExchangeDao.getCaseExchangeSearchList(
List<CaseExchangeDto> caseExchanges = caseExchangeDao.getCaseExchangeSearchLimitList(
request.getLimit(),
request.getKeyword(),
null,
request.getIsSelected(),
request.handleOrder()
);

View File

@ -81,6 +81,9 @@ public class PublicController {
LoginDto g = userService.UserLoginWithMobile(phoneInfo.getPurePhoneNumber());
return Response.success(g);
} catch (Exception e) {
if (Objects.equals(e.getMessage(), "请耐心等待审核")){
return Response.error(10005,null,e.getMessage());
}
return Response.error(e.getMessage());
}
}
@ -88,9 +91,16 @@ public class PublicController {
// 登陆
@PostMapping("/login/hcp")
public Response<LoginDto> loginHcp(@Validated() @ModelAttribute LoginHcpRequest request) {
// 用户登陆
LoginDto g = userService.UserLoginWithApp(request.getToken());
return Response.success(g);
try {
// 用户登陆
LoginDto g = userService.UserLoginWithApp(request.getToken());
return Response.success(g);
} catch (Exception e) {
if (Objects.equals(e.getMessage(), "请耐心等待审核")){
return Response.error(10005,null,e.getMessage());
}
return Response.error(e.getMessage());
}
}
// 获取签名
@ -206,6 +216,9 @@ public class PublicController {
return Response.success(g);
} catch (Exception e) {
if (Objects.equals(e.getMessage(), "请耐心等待审核")){
return Response.error(10005,null,e.getMessage());
}
return Response.error(e.getMessage());
}
}

View File

@ -2,9 +2,12 @@ package com.example.caseData.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.example.caseData.common.Response;
import com.example.caseData.dao.CaseExchangeDao;
import com.example.caseData.dao.StatsCaseExchangeDao;
import com.example.caseData.dao.StatsCaseExchangeUserDao;
import com.example.caseData.dao.StatsCaseExchangeUserDao;
import com.example.caseData.dto.caseClinicalArticle.CaseClinicalArticleDto;
import com.example.caseData.dto.caseExchange.CaseExchangeDto;
import com.example.caseData.dto.statsCaseClinical.StatsCaseClinicalDto;
import com.example.caseData.dto.statsCaseExchange.StatsCaseExchangeDto;
import com.example.caseData.dto.statsCaseExchange.StatsCaseExchangeDto;
@ -18,12 +21,17 @@ import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
@RestController
@RequestMapping("/api")
public class StatsCaseExchangeController extends BaseController {
@Resource
private StatsCaseExchangeDao statsCaseExchangeDao;
@Resource
private CaseExchangeDao caseExchangeDao;
@Resource
private StatsCaseExchangeUserDao statsCaseExchangeUserDao;
@ -43,6 +51,10 @@ public class StatsCaseExchangeController extends BaseController {
if (g == null){
return Response.success(new StatsCaseExchangeDto());
}
Long totalCommentNum = caseExchangeDao.getTotalCommentNum();
g.setExchangeCommentNum(Math.toIntExact(totalCommentNum));
return Response.success(g);
}
@ -52,7 +64,7 @@ public class StatsCaseExchangeController extends BaseController {
@GetMapping("/exchange/stats/user")
public Response<StatsCaseExchangeUserDto> getClinicalStatsUser(){
String userId = (String) httpServletRequest.getAttribute("userId");
if (userId != null) {
if (userId == null) {
return Response.error();
}
@ -65,6 +77,21 @@ public class StatsCaseExchangeController extends BaseController {
return Response.success(new StatsCaseExchangeUserDto());
}
Integer readNum = 0;
// 获取该标签下文章数据
List<CaseExchangeDto> caseExchanges = caseExchangeDao.getCaseExchangeSearchList(
"",
userId,
null,
null
);
for (CaseExchangeDto caseExchange : caseExchanges){
readNum += caseExchange.getReadNum();
}
g.setExchangeReadNum(readNum);
return Response.success(g);
}
}

View File

@ -9,6 +9,7 @@ import com.example.caseData.model.CaseClinicalArticleModel;
import com.example.caseData.model.CaseExchangeModel;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;
import java.util.List;
@ -37,9 +38,22 @@ public interface CaseExchangeDao extends BaseMapper<CaseExchangeModel> {
* @param keyword 搜索关键词-标题/医生名称/标签名称
* @param order 排序
*/
List<CaseExchangeDto> getCaseExchangeSearchList(
List<CaseExchangeDto> getCaseExchangeSearchLimitList(
@Param("limit") Integer limit,
@Param("keyword") String keyword,
@Param("userId") String userId,
@Param("isSelected") Integer isSelected,
@Param("order") Map<String, String> order
);
/**
* 临床病例库-搜索
* @param keyword 搜索关键词-标题/医生名称/标签名称
* @param order 排序
*/
List<CaseExchangeDto> getCaseExchangeSearchList(
@Param("keyword") String keyword,
@Param("userId") String userId,
@Param("isSelected") Integer isSelected,
@Param("order") Map<String, String> order
);
@ -64,4 +78,20 @@ public interface CaseExchangeDao extends BaseMapper<CaseExchangeModel> {
*/
@Update("UPDATE case_exchange SET ${field} = ${field} - #{numeral} WHERE exchange_id = #{exchangeId}")
int dec(@Param("exchangeId") Long exchangeId, @Param("field") String field, @Param("numeral") int numeral);
/**
* 查询所有未删除文章的阅读量总和
*
* @return 阅读量总和
*/
@Select("SELECT SUM(comment_num) FROM case_exchange WHERE delete_status = 0 and exchange_status = 1")
Long getTotalCommentNum();
/**
* 查询所有未删除文章的阅读量总和
*
* @return 阅读量总和
*/
@Select("SELECT SUM(comment_num) FROM case_exchange WHERE delete_status = 0 and exchange_status = 1")
Long getTotalRedNum();
}

View File

@ -1,6 +1,7 @@
package com.example.caseData.dto.statsCaseExchange;
import cn.hutool.core.bean.BeanUtil;
import com.baomidou.mybatisplus.annotation.TableField;
import com.example.caseData.model.StatsCaseExchangeModel;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@ -36,6 +37,12 @@ public class StatsCaseExchangeDto {
@JsonProperty("exchange_collect_num")
private Integer exchangeCollectNum = 0;
/**
* 总评论量-病例交流
*/
@JsonProperty("exchange_comment_num")
private Integer exchangeCommentNum = 0;
/**
* 创建时间
*/

View File

@ -22,7 +22,7 @@ public class GetHospitalByUuidResponse
/**
* 根据手机号获取医生信息 - 详细数据
* - 详细数据
*/
@Data
public static class GetHospitalByUuidData {
@ -39,6 +39,9 @@ public class GetHospitalByUuidResponse
/** 省份 */
private String prov_name;
/** 城市 */
private String city_name;
/** 医生数量 */
private Integer expert_num;
}

View File

@ -302,6 +302,7 @@ public class UserService {
basicHospital.setHospitalLevel(data.getLevel());
basicHospital.setDoctorNumber(data.getExpert_num());
basicHospital.setProvince(data.getProv_name());
basicHospital.setCity(data.getCity_name());
save(basicHospital);
}

View File

@ -81,7 +81,7 @@
<!-- </if>-->
</select>
<select id="getCaseExchangeSearchList" resultMap="caseExchangeDtoMap">
<select id="getCaseExchangeSearchLimitList" resultMap="caseExchangeDtoMap">
SELECT
a.exchange_id,
a.user_id,
@ -118,9 +118,9 @@
OR b.label_name LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<!-- <if test="userId != null and userId != ''">-->
<!-- AND c.user_id = ${userId}-->
<!-- </if>-->
<if test="userId != null and userId != ''">
AND c.user_id = ${userId}
</if>
) AS result
JOIN case_exchange a ON result.exchange_id = a.exchange_id
LEFT JOIN user c ON c.user_id = a.user_id
@ -132,4 +132,55 @@
</if>
LIMIT #{limit}
</select>
<select id="getCaseExchangeSearchList" resultMap="caseExchangeDtoMap">
SELECT
a.exchange_id,
a.user_id,
a.exchange_title,
a.exchange_status,
a.is_selected,
a.read_num,
a.collect_num,
a.comment_num,
a.push_date,
a.exchange_content,
a.exchange_summary,
a.exchange_content_image as exchange_content_image_string,
a.exchange_content_video as exchange_content_video_string,
a.created_at,
a.updated_at,
c.user_name,
c.avatar,
c.hospital_id
FROM (
SELECT DISTINCT a.exchange_id
FROM case_exchange a
LEFT JOIN case_exchange_label b ON a.exchange_id = b.exchange_id
LEFT JOIN user c ON c.user_id = a.user_id
WHERE a.exchange_status = 1
AND a.delete_status = 0
<if test="isSelected != null">
AND a.is_selected = #{isSelected}
</if>
<if test="keyword != null and keyword != ''">
AND (
a.exchange_title LIKE CONCAT('%', #{keyword}, '%')
OR c.user_name LIKE CONCAT('%', #{keyword}, '%')
OR b.label_name LIKE CONCAT('%', #{keyword}, '%')
)
</if>
<if test="userId != null and userId != ''">
AND c.user_id = ${userId}
</if>
) AS result
JOIN case_exchange a ON result.exchange_id = a.exchange_id
LEFT JOIN user c ON c.user_id = a.user_id
<if test="order != null and !order.isEmpty()">
ORDER BY
<foreach item="entry" index="key" collection="order" separator=",">
${key} ${entry}
</foreach>
</if>
</select>
</mapper>