|
|
@@ -15,6 +15,7 @@ import org.springframework.util.CollectionUtils;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
import shop.alien.entity.result.R;
|
|
|
import shop.alien.entity.store.*;
|
|
|
+import shop.alien.entity.store.excelVo.LawyerUserExcelVo;
|
|
|
import shop.alien.entity.store.vo.LawyerUserVo;
|
|
|
import shop.alien.lawyer.config.BaseRedisService;
|
|
|
import shop.alien.lawyer.service.LawyerLegalProblemScenarioService;
|
|
|
@@ -24,7 +25,10 @@ import shop.alien.lawyer.service.LawyerUserService;
|
|
|
import shop.alien.mapper.*;
|
|
|
import shop.alien.entity.store.OrderReview;
|
|
|
import shop.alien.util.common.ListToPage;
|
|
|
+import shop.alien.util.excel.EasyExcelUtil;
|
|
|
|
|
|
+import javax.servlet.http.HttpServletResponse;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
@@ -743,5 +747,171 @@ public class LawyerUserServiceImpl extends ServiceImpl<LawyerUserMapper, LawyerU
|
|
|
|
|
|
return R.data(ListToPage.setPage(list, page, size));
|
|
|
}
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public R<Boolean> isRecommended(Integer lawyerId, Integer isRecommended) {
|
|
|
+ log.info("LawyerUserServiceImpl.isRecommended?lawyerId={},isRecommended={}", lawyerId, isRecommended);
|
|
|
+
|
|
|
+ // 参数校验
|
|
|
+ if (lawyerId == null) {
|
|
|
+ log.warn("设置律师推荐状态失败:律师ID为空");
|
|
|
+ return R.fail("律师ID不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ if (isRecommended == null || (isRecommended != 0 && isRecommended != 1)) {
|
|
|
+ log.warn("设置律师推荐状态失败:推荐状态参数无效,isRecommended={}", isRecommended);
|
|
|
+ return R.fail("推荐状态参数无效,必须为0(取消推荐)或1(推荐)");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 查询律师信息
|
|
|
+ LawyerUser lawyerUser = this.getById(lawyerId);
|
|
|
+ if (lawyerUser == null) {
|
|
|
+ log.warn("设置律师推荐状态失败:律师不存在,律师ID={}", lawyerId);
|
|
|
+ return R.fail("律师不存在");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 更新推荐状态
|
|
|
+ lawyerUser.setIsRecommended(isRecommended);
|
|
|
+ boolean result = this.updateById(lawyerUser);
|
|
|
+ if (result) {
|
|
|
+ log.info("设置律师推荐状态成功:律师ID={},推荐状态={}", lawyerId, isRecommended);
|
|
|
+ return R.success("设置成功");
|
|
|
+ } else {
|
|
|
+ log.warn("设置律师推荐状态失败:更新数据库失败,律师ID={},推荐状态={}", lawyerId, isRecommended);
|
|
|
+ return R.fail("设置失败");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void exportLawyerList(HttpServletResponse response,
|
|
|
+ String name,
|
|
|
+ String phone,
|
|
|
+ Integer firmId,
|
|
|
+ String startTime,
|
|
|
+ String endTime,
|
|
|
+ Integer pageNum,
|
|
|
+ Integer pageSize) throws Exception {
|
|
|
+ log.info("LawyerUserServiceImpl.exportLawyerList?name={},phone={},firmId={},startTime={},endTime={},pageNum={},pageSize={}",
|
|
|
+ name, phone, firmId, startTime, endTime, pageNum, pageSize);
|
|
|
+
|
|
|
+ // 如果pageNum为null或0,则导出全部数据(设置一个很大的pageSize)
|
|
|
+ int page = (pageNum == null || pageNum == 0) ? 1 : pageNum;
|
|
|
+ int size = (pageNum == null || pageNum == 0) ? Integer.MAX_VALUE : (pageSize == null ? 10 : pageSize);
|
|
|
+
|
|
|
+ // 调用查询接口获取数据
|
|
|
+ R<IPage<LawyerUserVo>> result = getLawyerList(name, phone, firmId, startTime, endTime, page, size);
|
|
|
+
|
|
|
+ if (result == null || !result.isSuccess()) {
|
|
|
+ log.warn("获取律师列表失败:{}", result != null ? result.getMsg() : "返回结果为空");
|
|
|
+ throw new RuntimeException(result != null ? result.getMsg() : "获取数据失败,请稍后重试");
|
|
|
+ }
|
|
|
+
|
|
|
+ IPage<LawyerUserVo> pageResult = result.getData();
|
|
|
+ if (pageResult == null || pageResult.getRecords() == null || pageResult.getRecords().isEmpty()) {
|
|
|
+ log.warn("律师列表导出:无数据可导出");
|
|
|
+ throw new IllegalArgumentException("暂无数据可导出");
|
|
|
+ }
|
|
|
+
|
|
|
+ List<LawyerUserVo> voList = pageResult.getRecords();
|
|
|
+ log.info("律师列表导出:查询到{}条数据,导出{}条数据", pageResult.getTotal(), voList.size());
|
|
|
+
|
|
|
+ // 转换为Excel VO
|
|
|
+ List<LawyerUserExcelVo> excelVoList = convertToExcelVo(voList);
|
|
|
+
|
|
|
+ // 使用EasyExcelUtil导出
|
|
|
+ EasyExcelUtil.exportExcel(response, excelVoList, LawyerUserExcelVo.class, "中台律师列表", "中台律师列表");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 将LawyerUserVo转换为LawyerUserExcelVo
|
|
|
+ *
|
|
|
+ * @param voList LawyerUserVo列表
|
|
|
+ * @return LawyerUserExcelVo列表
|
|
|
+ */
|
|
|
+ private List<LawyerUserExcelVo> convertToExcelVo(List<LawyerUserVo> voList) {
|
|
|
+ SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ SimpleDateFormat dateTimeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+
|
|
|
+ return voList.stream().map(vo -> {
|
|
|
+ LawyerUserExcelVo excelVo = new LawyerUserExcelVo();
|
|
|
+ excelVo.setId(vo.getId());
|
|
|
+ excelVo.setName(vo.getName());
|
|
|
+ excelVo.setPhone(vo.getPhone());
|
|
|
+ excelVo.setFirmName(vo.getFirmName());
|
|
|
+// excelVo.setLawyerCertificateNo(vo.getLawyerCertificateNo());
|
|
|
+// excelVo.setPracticeYears(vo.getPracticeYears());
|
|
|
+// excelVo.setServiceScore(vo.getServiceScore());
|
|
|
+// excelVo.setServiceCount(vo.getServiceCount());
|
|
|
+ excelVo.setFirmId(vo.getFirmId());
|
|
|
+
|
|
|
+ // 转换执业开始日期
|
|
|
+// if (vo.getPracticeStartDate() != null) {
|
|
|
+// excelVo.setPracticeStartDate(dateFormat.format(vo.getPracticeStartDate()));
|
|
|
+// }
|
|
|
+//
|
|
|
+// // 转换用户状态
|
|
|
+// if (vo.getStatus() != null) {
|
|
|
+// excelVo.setStatusValue(vo.getStatus());
|
|
|
+// excelVo.setStatus(vo.getStatus() == 1 ? "启用" : "禁用");
|
|
|
+// }
|
|
|
+
|
|
|
+ // 转换资质认证状态
|
|
|
+// if (vo.getCertificationStatus() != null) {
|
|
|
+// excelVo.setCertificationStatusValue(vo.getCertificationStatus());
|
|
|
+// switch (vo.getCertificationStatus()) {
|
|
|
+// case 0:
|
|
|
+// excelVo.setCertificationStatus("未认证");
|
|
|
+// break;
|
|
|
+// case 1:
|
|
|
+// excelVo.setCertificationStatus("认证中");
|
|
|
+// break;
|
|
|
+// case 2:
|
|
|
+// excelVo.setCertificationStatus("已认证");
|
|
|
+// break;
|
|
|
+// case 3:
|
|
|
+// excelVo.setCertificationStatus("认证失败");
|
|
|
+// break;
|
|
|
+// default:
|
|
|
+// excelVo.setCertificationStatus("未知");
|
|
|
+// }
|
|
|
+// }
|
|
|
+
|
|
|
+ // 转换是否推荐
|
|
|
+ if (vo.getIsRecommended() != null) {
|
|
|
+ excelVo.setIsRecommendedValue(vo.getIsRecommended());
|
|
|
+ excelVo.setIsRecommended(vo.getIsRecommended() == 1 ? "推荐" : "不推荐");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转换法律场景
|
|
|
+ if (vo.getScenarioNames() != null && !vo.getScenarioNames().isEmpty()) {
|
|
|
+ excelVo.setScenarioNames(vo.getScenarioNames());
|
|
|
+ } else {
|
|
|
+ excelVo.setScenarioNames("");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转换接单状态
|
|
|
+ if (vo.getOrderReceivingStatus() != null) {
|
|
|
+ excelVo.setOrderReceivingStatusValue(vo.getOrderReceivingStatus());
|
|
|
+ excelVo.setOrderReceivingStatus(vo.getOrderReceivingStatus() == 1 ? "接单中" : "不接单");
|
|
|
+ } else {
|
|
|
+ excelVo.setOrderReceivingStatus("未知");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 设置收款账号
|
|
|
+ if (vo.getPaymentNum() != null && !vo.getPaymentNum().isEmpty()) {
|
|
|
+ excelVo.setPaymentNum(vo.getPaymentNum());
|
|
|
+ } else {
|
|
|
+ excelVo.setPaymentNum("");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 转换创建时间
|
|
|
+// if (vo.getCreatedTime() != null) {
|
|
|
+// excelVo.setCreatedTimeValue(vo.getCreatedTime());
|
|
|
+// excelVo.setCreatedTime(dateTimeFormat.format(vo.getCreatedTime()));
|
|
|
+// }
|
|
|
+
|
|
|
+ return excelVo;
|
|
|
+ }).collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|
|
|
|