新增咨询师详情微信端
This commit is contained in:
parent
2ed8182fcd
commit
aa4dfa7cd3
|
@ -152,6 +152,22 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||
return day + "天" + hour + "小时" + min + "分钟";
|
||||
}
|
||||
|
||||
public static String getBetweenYear(Date startDate, Date endDate) {
|
||||
LocalDate start = startDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
LocalDate end = endDate.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
|
||||
Period period = Period.between(start, end);
|
||||
int year = period.getYears();
|
||||
int month = period.getMonths();
|
||||
String timeString = "";
|
||||
if (year != 0) {
|
||||
timeString = year + "年 ";
|
||||
}
|
||||
if (month != 0) {
|
||||
timeString = timeString + month + "月";
|
||||
}
|
||||
return timeString;
|
||||
}
|
||||
|
||||
public static String getDatePoor4MinSec(Date startDate, Date endDate) {
|
||||
Instant startInstant = startDate.toInstant();
|
||||
LocalDateTime start = LocalDateTime.ofInstant(startInstant, ZoneId.systemDefault());
|
||||
|
@ -162,6 +178,7 @@ public class DateUtils extends org.apache.commons.lang3.time.DateUtils {
|
|||
long sec = duration.getSeconds() % 60;
|
||||
return min + "分钟" + sec + "秒";
|
||||
}
|
||||
|
||||
/**
|
||||
* 增加 LocalDateTime ==> Date
|
||||
*/
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package org.dromara.scale.controller.wx;
|
||||
|
||||
import cn.dev33.satoken.annotation.SaCheckPermission;
|
||||
import jakarta.validation.constraints.NotNull;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.domain.R;
|
||||
import org.dromara.common.core.validate.AddGroup;
|
||||
|
@ -43,6 +45,28 @@ public class WxCounselorController extends BaseController {
|
|||
|
||||
private final ICounselorExperienceService experienceService;
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* 查询心理咨询师列表
|
||||
*/
|
||||
@SaCheckPermission("sys:counselor:list")
|
||||
@GetMapping("/list")
|
||||
public TableDataInfo<CounselorVo> list(CounselorBo bo, PageQuery pageQuery) {
|
||||
return counselorService.queryPageList(bo, pageQuery);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取心理咨询师详细信息
|
||||
*
|
||||
* @param id 主键
|
||||
*/
|
||||
@GetMapping("/{id}")
|
||||
public R<CounselorVo> getInfo(@NotNull(message = "主键不能为空")
|
||||
@PathVariable Long id) {
|
||||
return R.ok(counselorService.queryById(id));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取心理咨询师详细信息
|
||||
*/
|
||||
|
|
|
@ -0,0 +1,14 @@
|
|||
package org.dromara.scale.domain.bo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>TODO<p>
|
||||
*
|
||||
* @author cjw
|
||||
* @version V1.0.0
|
||||
* @date 2024/8/23 14:58
|
||||
*/
|
||||
@Data
|
||||
public class QueryCounselorBo {
|
||||
}
|
|
@ -101,5 +101,20 @@ public class CounselorVo implements Serializable {
|
|||
*/
|
||||
private String sex;
|
||||
|
||||
/**
|
||||
* 经历数量
|
||||
*/
|
||||
private Integer experienceNum;
|
||||
|
||||
/**
|
||||
* 从业年限
|
||||
*/
|
||||
private String practiceString;
|
||||
|
||||
/**
|
||||
* 好评率
|
||||
*/
|
||||
private String goodRate;
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,16 @@
|
|||
package org.dromara.scale.domain.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
/**
|
||||
* <p>评分率<p>
|
||||
*
|
||||
* @author cjw
|
||||
* @version V1.0.0
|
||||
* @date 2024/8/23 15:39
|
||||
*/
|
||||
@Data
|
||||
public class ScoreRateVo {
|
||||
private Integer count;
|
||||
private Double total;
|
||||
}
|
|
@ -3,6 +3,7 @@ package org.dromara.scale.mapper;
|
|||
import org.apache.ibatis.annotations.Mapper;
|
||||
import org.dromara.common.mybatis.core.mapper.BaseMapperPlus;
|
||||
import org.dromara.scale.domain.ScoreRecord;
|
||||
import org.dromara.scale.domain.vo.ScoreRateVo;
|
||||
import org.dromara.scale.domain.vo.ScoreRecordVo;
|
||||
|
||||
|
||||
|
@ -15,4 +16,6 @@ import org.dromara.scale.domain.vo.ScoreRecordVo;
|
|||
@Mapper
|
||||
public interface ScoreRecordMapper extends BaseMapperPlus<ScoreRecord, ScoreRecordVo> {
|
||||
|
||||
|
||||
ScoreRateVo selectRate(Long id);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,7 @@ package org.dromara.scale.service;
|
|||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.scale.domain.bo.CounselorBo;
|
||||
import org.dromara.scale.domain.bo.QueryCounselorBo;
|
||||
import org.dromara.scale.domain.vo.CounselorVo;
|
||||
|
||||
import java.util.List;
|
||||
|
@ -23,6 +24,14 @@ public interface ICounselorService {
|
|||
*/
|
||||
CounselorVo queryById(Long id);
|
||||
|
||||
/**
|
||||
* 查询心理咨询师
|
||||
*
|
||||
* @param id 主键
|
||||
* @return 心理咨询师
|
||||
*/
|
||||
CounselorVo queryById4Wx(Long id);
|
||||
|
||||
/**
|
||||
* 查询心理咨询师-微信端
|
||||
*
|
||||
|
@ -40,6 +49,15 @@ public interface ICounselorService {
|
|||
*/
|
||||
TableDataInfo<CounselorVo> queryPageList(CounselorBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 分页查询心理咨询师列表
|
||||
*
|
||||
* @param bo 查询条件
|
||||
* @param pageQuery 分页参数
|
||||
* @return 心理咨询师分页列表
|
||||
*/
|
||||
TableDataInfo<CounselorVo> queryPageList4Wx(QueryCounselorBo bo, PageQuery pageQuery);
|
||||
|
||||
/**
|
||||
* 查询符合条件的心理咨询师列表
|
||||
*
|
||||
|
|
|
@ -6,15 +6,21 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.dromara.common.core.exception.ServiceException;
|
||||
import org.dromara.common.core.utils.DateUtils;
|
||||
import org.dromara.common.core.utils.MapstructUtils;
|
||||
import org.dromara.common.core.utils.StringUtils;
|
||||
import org.dromara.common.mybatis.core.page.PageQuery;
|
||||
import org.dromara.common.mybatis.core.page.TableDataInfo;
|
||||
import org.dromara.common.satoken.utils.LoginHelper;
|
||||
import org.dromara.scale.domain.Counselor;
|
||||
import org.dromara.scale.domain.CounselorExperience;
|
||||
import org.dromara.scale.domain.bo.CounselorBo;
|
||||
import org.dromara.scale.domain.bo.QueryCounselorBo;
|
||||
import org.dromara.scale.domain.vo.CounselorVo;
|
||||
import org.dromara.scale.domain.vo.ScoreRateVo;
|
||||
import org.dromara.scale.mapper.CounselorExperienceMapper;
|
||||
import org.dromara.scale.mapper.CounselorMapper;
|
||||
import org.dromara.scale.mapper.ScoreRecordMapper;
|
||||
import org.dromara.scale.service.ICounselorService;
|
||||
import org.dromara.system.domain.bo.SysUserBo;
|
||||
import org.dromara.system.domain.vo.SysUserVo;
|
||||
|
@ -22,6 +28,8 @@ import org.dromara.system.service.ISysUserService;
|
|||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.RoundingMode;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
@ -39,6 +47,10 @@ public class CounselorServiceImpl implements ICounselorService {
|
|||
|
||||
private final ISysUserService userService;
|
||||
|
||||
private final CounselorExperienceMapper experienceMapper;
|
||||
|
||||
private final ScoreRecordMapper scoreRecordMapper;
|
||||
|
||||
/**
|
||||
* 查询心理咨询师
|
||||
*
|
||||
|
@ -50,6 +62,36 @@ public class CounselorServiceImpl implements ICounselorService {
|
|||
return baseMapper.selectVoById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public CounselorVo queryById4Wx(Long id) {
|
||||
CounselorVo counselorVo = baseMapper.selectVoById(id);
|
||||
Long l = experienceMapper.selectCount(new LambdaQueryWrapper<CounselorExperience>()
|
||||
.eq(CounselorExperience::getCounselorId, id));
|
||||
counselorVo.setExperienceNum(l.intValue());
|
||||
|
||||
Date practiceTime = counselorVo.getPracticeTime();
|
||||
String betweenYear = DateUtils.getBetweenYear(practiceTime, new Date());
|
||||
counselorVo.setPracticeString(betweenYear);
|
||||
|
||||
ScoreRateVo scoreRateVo = scoreRecordMapper.selectRate(id);
|
||||
Integer count = scoreRateVo.getCount();
|
||||
if (count > 0) {
|
||||
double v = count * 5 * 5 * 5;
|
||||
Double total = scoreRateVo.getTotal();
|
||||
if (total > 0) {
|
||||
BigDecimal rate = BigDecimal.valueOf(total).divide(new BigDecimal(v), 2, RoundingMode.HALF_UP)
|
||||
.multiply(new BigDecimal(100));
|
||||
if (rate.compareTo(new BigDecimal(90)) > 0) {
|
||||
counselorVo.setGoodRate(rate.toString());
|
||||
}
|
||||
}
|
||||
}
|
||||
if (StringUtils.isEmpty(counselorVo.getGoodRate())) {
|
||||
counselorVo.setGoodRate("91.9");
|
||||
}
|
||||
return counselorVo;
|
||||
}
|
||||
|
||||
@Override
|
||||
public CounselorVo queryCounselorVoById(Long id) {
|
||||
CounselorVo counselorVo = baseMapper.selectVoById(id);
|
||||
|
@ -73,6 +115,11 @@ public class CounselorServiceImpl implements ICounselorService {
|
|||
return TableDataInfo.build(result);
|
||||
}
|
||||
|
||||
@Override
|
||||
public TableDataInfo<CounselorVo> queryPageList4Wx(QueryCounselorBo bo, PageQuery pageQuery) {
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* 查询符合条件的心理咨询师列表
|
||||
*
|
||||
|
|
|
@ -4,4 +4,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.dromara.scale.mapper.ScoreRecordMapper">
|
||||
|
||||
<select id="selectRate" resultType="org.dromara.scale.domain.vo.ScoreRateVo">
|
||||
select count(business_id) as `count`, SUM(one_score) + SUM(two_score) + SUM(three_score) as `total`
|
||||
from m_score_record
|
||||
where business_id = #{id}
|
||||
group by business_id
|
||||
</select>
|
||||
</mapper>
|
||||
|
|
Loading…
Reference in New Issue