From 4500116a9a66351ff38d9a331e5c805a0ac3a153 Mon Sep 17 00:00:00 2001
From: zhouxiantao <1026371446@qq.com>
Date: Wed, 11 Sep 2024 10:24:23 +0800
Subject: [PATCH] 小程序登记,补状态

---
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java                    |   29 +++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseInfoWechatController.java     |    3 
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseEvaluateWechatController.java |  192 ++++++++++++++++++++++++++++++++++++++
 dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java                        |   49 +++++++--
 4 files changed, 258 insertions(+), 15 deletions(-)

diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseEvaluateWechatController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseEvaluateWechatController.java
new file mode 100644
index 0000000..8f0226c
--- /dev/null
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseEvaluateWechatController.java
@@ -0,0 +1,192 @@
+package cn.huge.module.cases.controller.wechat;
+
+import cn.huge.base.common.utils.ReturnFailUtils;
+import cn.huge.base.common.utils.ReturnSucUtils;
+import cn.huge.base.config.CurrentUser;
+import cn.huge.module.cases.domain.po.CaseEvaluate;
+import cn.huge.module.cases.service.CaseEvaluateService;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.google.common.collect.Maps;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.domain.Page;
+import org.springframework.data.domain.PageRequest;
+import org.springframework.data.domain.Sort;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * @title: 当事人纠纷评价表接口api-web端
+ * @description: 当事人纠纷评价表接口api-web端
+ * @company: hugeinfo
+ * @author: wangwh
+ * @time: 2024-09-04 20:21:05
+ * @version: 1.0.0
+ */
+@Slf4j
+@RestController
+@RequestMapping("/api/webchat/caseEvaluate")
+public class CaseEvaluateWechatController {
+
+    @Autowired(required = false)
+    private HttpServletRequest request;
+
+    @Autowired
+    private CaseEvaluateService service;
+
+    /**
+    * 获取请求URL参数
+    * @return Map<String, Object>
+    */
+    private Map<String, Object> getParameter(){
+        Map<String, Object> terms = Maps.newHashMap();
+        // 主键编号
+        String id = request.getParameter("id");
+        if (StringUtils.isNotBlank(id)){
+            terms.put("id", id);
+        }
+        // 纠纷编号
+        String caseId = request.getParameter("caseId");
+        if (StringUtils.isNotBlank(caseId)){
+            terms.put("caseId", caseId);
+        }
+        // 评价等级
+        String evaluateGrade = request.getParameter("evaluateGrade");
+        if (StringUtils.isNotBlank(evaluateGrade)){
+            terms.put("evaluateGrade", evaluateGrade);
+        }
+        // 选择评语,多个用,隔开
+        String evaluateRemark = request.getParameter("evaluateRemark");
+        if (StringUtils.isNotBlank(evaluateRemark)){
+            terms.put("evaluateRemark", evaluateRemark);
+        }
+        // 评价建议
+        String evaluateContent = request.getParameter("evaluateContent");
+        if (StringUtils.isNotBlank(evaluateContent)){
+            terms.put("evaluateContent", evaluateContent);
+        }
+        // 评价人编号
+        String evaluateUserId = request.getParameter("evaluateUserId");
+        if (StringUtils.isNotBlank(evaluateUserId)){
+            terms.put("evaluateUserId", evaluateUserId);
+        }
+        // 评价人名称
+        String evaluateUserName = request.getParameter("evaluateUserName");
+        if (StringUtils.isNotBlank(evaluateUserName)){
+            terms.put("evaluateUserName", evaluateUserName);
+        }
+        // 删除状态,0:未删除,1:已删除
+        String deleteStatus = request.getParameter("deleteStatus");
+        if (StringUtils.isNotBlank(deleteStatus)){
+            terms.put("deleteStatus", deleteStatus);
+        }
+        // 顾客编号
+        String custId = request.getParameter("custId");
+        if (StringUtils.isNotBlank(custId)){
+            terms.put("custId", custId);
+        }
+        // 创建时间区间
+        String createStart = request.getParameter("createStart");
+        String createEnd = request.getParameter("createEnd");
+        if(StringUtils.isNotBlank(createStart) && StringUtils.isNotBlank(createEnd)) {
+            terms.put("createStart", createStart);
+            terms.put("createEnd", createEnd);
+        }
+        // 更新时间区间
+        String updateStart = request.getParameter("updateStart");
+        String updateEnd = request.getParameter("updateEnd");
+        if(StringUtils.isNotBlank(updateStart) && StringUtils.isNotBlank(updateEnd)) {
+            terms.put("updateStart", updateStart);
+            terms.put("updateEnd", updateEnd);
+        }
+        return terms;
+    }
+
+    /**
+    * 条件查询多个
+    * @url {ctx}/api/web/caseEvaluate/listQuery
+    * @return Object
+    */
+    @GetMapping("/listQuery")
+    public Object listQuery() {
+        try {
+            Map<String, Object> terms = getParameter();
+            return ReturnSucUtils.getRepInfo(service.listTerms(terms));
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+    * 条件分页查询
+    * @url {ctx}/api/web/caseEvaluate/pageQuery
+    * @param page 页码
+    * @param size 每页数量
+    * @return Object
+    */
+    @GetMapping("/pageQuery")
+    public Object pageQuery(@RequestParam(value = "page") int page, @RequestParam(value = "size") int size) {
+        try {
+            Map<String, Object> terms = getParameter();
+            Sort sort = Sort.by(Sort.Direction.DESC, "create_time");
+            PageRequest pageRequest = PageRequest.of(page-1, size, sort);
+            Page<CaseEvaluate> caseEvaluatePage = service.pageQuery(pageRequest, terms);
+            return ReturnSucUtils.getRepInfo( "处理成功", caseEvaluatePage);
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+    * 根据编号查询单个
+    * @url {ctx}/api/web/caseEvaluate/getByCaseId
+    * @param caseId 事项ID
+    * @return Object
+    */
+    @GetMapping("/getByCaseId")
+    public Object getByCaseId(@RequestParam(value = "caseId") String caseId) {
+        try {
+            QueryWrapper<CaseEvaluate> caseEvaluateQueryWrapper = new QueryWrapper<>();
+            caseEvaluateQueryWrapper.eq("case_id", caseId).eq("delete_status", 0);
+            return ReturnSucUtils.getRepInfo(service.getOne(caseEvaluateQueryWrapper));
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+    * 根据主键单个
+    * @url {ctx}/api/web/caseEvaluate/deleteById
+    * @param id 主键编号
+    * @return Object
+    */
+    @GetMapping("/deleteById")
+    public Object deleteById(@RequestParam(value = "id") String id) {
+        try {
+            service.removeById(id);
+            return ReturnSucUtils.getRepInfo();
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+    /**
+    * 新增或更新对象
+    * @url {ctx}/api/web/caseEvaluate/saveCaseEvaluate
+    * @param caseEvaluate 实体对象
+    * @return Object
+    */
+    @PostMapping("/saveCaseEvaluate")
+    public Object saveCaseEvaluate(@CurrentUser String userId, @RequestBody CaseEvaluate caseEvaluate) {
+        try {
+            service.saveCaseEvaluateWechat(caseEvaluate,userId);
+            return ReturnSucUtils.getRepInfo();
+        } catch (Exception e) {
+            return ReturnFailUtils.getRepInfo();
+        }
+    }
+
+}
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseInfoWechatController.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseInfoWechatController.java
index 5d50a22..3477860 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseInfoWechatController.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/controller/wechat/CaseInfoWechatController.java
@@ -101,8 +101,9 @@
      *  @CurrentUser String userId,
      */
     @PostMapping("/caseRegister")
-    public Object caseRegister(@CurrentUser String userId, @RequestBody RegisterSaveDTO registerSaveDTO) {
+    public Object caseRegister( @RequestBody RegisterSaveDTO registerSaveDTO) {
         try {
+            String userId ="2408301111391000";
             Object caseRegister = GuavaCacheUtils.getCache("caseRegister"+userId);
             if(ObjectUtils.isNotEmpty(caseRegister)){
                 log.info("caseRegister is exist {}",caseRegister);
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
index f1086fd..6a0dc4b 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseEvaluateService.java
@@ -3,9 +3,11 @@
 import cn.huge.base.common.exception.ServiceException;
 import cn.huge.base.common.utils.DateUtils;
 import cn.huge.base.common.utils.IdUtils;
+import cn.huge.module.client.api.impl.CustClientImpl;
 import cn.huge.module.client.api.impl.UtilsClientImpl;
 import cn.huge.module.cases.dao.mapper.CaseEvaluateMapper;
 import cn.huge.module.cases.domain.po.CaseEvaluate;
+import cn.huge.module.cust.dto.PaUserDTO;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -39,6 +41,9 @@
 
     @Autowired
     private UtilsClientImpl utilsClient;
+
+    @Autowired
+    private CustClientImpl custClient;
 
     /**
     * 更新对象
@@ -130,4 +135,28 @@
         }
     }
 
+    /**
+     * 新增或更新对象
+     * @param caseEvaluate 实体对象
+     */
+    public void saveCaseEvaluateWechat(CaseEvaluate caseEvaluate,String userId){
+        try{
+            PaUserDTO loginUser = custClient.paclientGetUser(userId);
+            Date nowDate = DateUtils.getNowDate();
+            // 判断是否新增
+            if (IdUtils.checkNewId(caseEvaluate.getId())){
+                caseEvaluate.setId(utilsClient.getNewTimeId());
+                caseEvaluate.setCreateTime(nowDate);
+            }
+            caseEvaluate.setEvaluateUserId(loginUser.getId());
+            caseEvaluate.setEvaluateUserName(loginUser.getTrueName());
+            caseEvaluate.setCustId(loginUser.getCustId());
+            caseEvaluate.setUpdateTime(nowDate);
+            this.saveOrUpdate(caseEvaluate);
+        }catch (Exception e){
+            log.error("[CaseEvaluateService.saveCaseEvaluateWechat]调用失败,异常信息:"+e, e);
+            throw new ServiceException("CaseEvaluateService.saveCaseEvaluateWechat", e);
+        }
+    }
+
 }
diff --git a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
index 46f624f..8b66bf5 100644
--- a/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
+++ b/dyh-service/dyh-mediate/src/main/java/cn/huge/module/cases/service/CaseInfoService.java
@@ -14,8 +14,7 @@
 import cn.huge.module.cases.domain.po.CaseInfo;
 import cn.huge.module.constant.BaseConsts;
 import cn.huge.module.cust.dto.PaUserDTO;
-import cn.huge.module.mediate.constant.CaseBaseConsts;
-import cn.huge.module.mediate.constant.CaseBaseConstsEnum;
+import cn.huge.module.mediate.constant.*;
 import cn.huge.module.cust.dto.CtUserDTO;
 import cn.huge.module.draft.service.CasedraftInfoService;
 import cn.huge.module.mediate.constant.CaseProcessBaseConstsEnum;
@@ -533,10 +532,6 @@
 
             Date nowDate = DateUtils.getNowDate();
             registerSaveDTO.setUpdateTime(nowDate);
-            StringBuffer plaintiffs = new StringBuffer();
-            StringBuffer defendants = new StringBuffer();
-            StringBuffer pagents = new StringBuffer();
-            StringBuffer dagents = new StringBuffer();
 
             CaseInfo caseInfo = new CaseInfo();
             CaseInfoUnfold caseInfoUnfold = new CaseInfoUnfold();
@@ -561,6 +556,7 @@
             }
             //todo case_title生成
             caseInfo.setCaseRef(utilsClient.createCaseRef());
+
             // 为了演示先兼容小程序没属地问题,写死属地
             if (ObjectUtils.isEmpty(caseInfo.getQueProv())) {
                 caseInfo.setQueProv("19");
@@ -587,12 +583,31 @@
             caseInfoUnfold.setCreateTime(nowDate);
             caseInfoUnfold.setUpdateTime(nowDate);
 
+            StringBuffer plaintiffs = new StringBuffer();
+            StringBuffer defendants = new StringBuffer();
+            StringBuffer pagents = new StringBuffer();
+            StringBuffer dagents = new StringBuffer();
             // 常规登记-保存当事人
-            this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
+            int peopleNum = this.saveCasePersonWechat(registerSaveDTO, plaintiffs, pagents, defendants, dagents,loginUser);
+            caseInfo.setVisitPeopleNum(peopleNum);
             caseInfo.setPlaintiffs(plaintiffs.toString());
             caseInfo.setPagents(pagents.toString());
             caseInfo.setDefendants(defendants.toString());
             caseInfo.setDagents(dagents.toString());
+
+            //todo case_title生成
+            caseInfo.setCaseTitle(this.createCaseTitle(plaintiffs.toString(), defendants.toString(), caseInfo.getCaseTypeName()));
+
+            caseInfo.setInfoProcess(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getIndex());
+            caseInfo.setInfoProcessName(CaseInfoProcessBaseConstsEnum.CASE_INFO_PROCESS_1.getDes());
+            caseInfo.setProcess(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getIndex());
+            caseInfo.setProcessName(CaseProcessBaseConstsEnum.CASE_PROCESS_1.getDes());
+            caseInfo.setStatus(CaseStatusBaseConstsEnum.CASE_STATUS_1.getIndex());
+            caseInfo.setStatusName(CaseStatusBaseConstsEnum.CASE_STATUS_1.getDes());
+            caseInfo.setCaseLevel(3);
+            caseInfo.setCanal(CaseBaseConstsEnum.CASE_CANAL_2.getIndex());
+            caseInfo.setCanalName(CaseBaseConstsEnum.CASE_CANAL_2.getDes());
+
             this.saveOrUpdate(caseInfo);
 
             // 启动工作流-自动调度流程
@@ -660,13 +675,13 @@
                 personService.saveOrUpdate(casePerson);
 
                 //添加申请方和被申请方人名组合
-                if(CaseBaseConstsEnum.PERSON_TYPE_1.equals(casePerson.getPerType())){
+                if(CaseBaseConstsEnum.PERSON_TYPE_1.getIndex().equals(casePerson.getPerType())){
                     //申请方
                     if (StringUtils.isNotEmpty(plaintiffs.toString())) {
                         plaintiffs.append(BaseConsts.COMMA);
                     }
                     plaintiffs.append(casePerson.getTrueName());
-                }else if(CaseBaseConstsEnum.PERSON_TYPE_2.equals(casePerson.getPerType())){
+                }else if(CaseBaseConstsEnum.PERSON_TYPE_2.getIndex().equals(casePerson.getPerType())){
                     //被申请方
                     if (StringUtils.isNotEmpty(defendants.toString())) {
                         defendants.append(BaseConsts.COMMA);
@@ -688,16 +703,22 @@
                     caseAgent.setCreateTime(registerSaveDTO.getUpdateTime());
                     caseAgent.setUpdateTime(registerSaveDTO.getUpdateTime());
                     agentService.saveOrUpdate(caseAgent);
-
-                    if (StringUtils.isNotEmpty(pagents.toString())) {
-                        pagents.append(BaseConsts.COMMA);
+                    if(CaseBaseConstsEnum.PERSON_TYPE_3.getIndex().equals(caseAgent.getPerType())){
+                        if (StringUtils.isNotEmpty(pagents.toString())) {
+                            pagents.append(BaseConsts.COMMA);
+                        }
+                        pagents.append(caseAgent.getTrueName());
+                    }else if(CaseBaseConstsEnum.PERSON_TYPE_4.getIndex().equals(caseAgent.getPerType())){
+                        if (StringUtils.isNotEmpty(dagents.toString())) {
+                            dagents.append(BaseConsts.COMMA);
+                        }
+                        dagents.append(caseAgent.getTrueName());
                     }
-                    pagents.append(caseAgent.getTrueName());
+
                 }
                 //todo 绑定当事人小程序
             }
         }
-
         return peopleNum;
     }
 

--
Gitblit v1.8.0