From c1e1cec83669bc2a70eb460c928496deef027305 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期四, 10 十一月 2022 14:23:36 +0800
Subject: [PATCH] 1.获取天气接口 2.搜索bug 3.小程序工单管理Bug

---
 flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java |  171 +++++++++++++++++++++++++++++++++++++++++++-------------
 1 files changed, 130 insertions(+), 41 deletions(-)

diff --git a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
index bc0d1b3..ec21606 100644
--- a/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
+++ b/flower_city/src/main/java/com/dg/core/controller/GuideRepairOrderController.java
@@ -7,19 +7,25 @@
 import com.dg.core.annotation.Authorization;
 import com.dg.core.annotation.CurrentUser;
 import com.dg.core.db.gen.entity.*;
+import com.dg.core.db.manual.mapper.util.ConstantPropertiesUtil;
 import com.dg.core.service.IGuideEvolveService;
 import com.dg.core.service.IGuideRepairOrderService;
 import com.dg.core.service.IOrganizationChartService;
+import com.dg.core.util.PermissionUtil;
+import com.dg.core.util.SmsUtil;
 import com.dg.core.util.TableDataInfo;
+import com.dg.core.util.WxUtil;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.util.Assert;
 import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -39,6 +45,16 @@
     @Autowired
     IOrganizationChartService iOrganizationChartService;
 
+    @Resource(name = "stringRedisTemplate")
+    private StringRedisTemplate stringRedisTemplate;
+
+    private static String guideRepairOrderCompleteTemplateId = "7ZCHHii87rWPwVkdhZnvNiYbYi_Buq0NXO10cmUhAFk";
+
+
+    @Resource
+    SmsUtil smsUtil;
+
+
     /**
      * 提交导办订单
      * @return
@@ -50,13 +66,14 @@
           guideRepairOrder.setSubmitUserId(sysUser.getUserId().toString());
           guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
           guideRepairOrder.setSubmitUserPhone(sysUser.getPhonenumber());
+          guideRepairOrder.setSubmitType(2);
           int i = iGuideRepairOrderService.addOrder(guideRepairOrder);
           if (i>0){
               iGuideEvolveService.updateGuid();
             return ResultData.success();
           }
           else
-            return  ResultData.error();
+              return  ResultData.error("提交失败,请检查你是否有相同的咨询内容在处理中");
     }
 
 
@@ -70,7 +87,8 @@
     @GetMapping("/orderdata")
     @Authorization
     public ResultData selectConfigData(@RequestParam(value = "Id",required = false) String Id,
-                                       @RequestParam(value = "orderNum",required = false)  String orderNum)
+                                       @RequestParam(value = "orderNum",required = false)  String orderNum,
+                                       @CurrentUser SysUser sysUser)
     {
         if(StringUtils.isEmpty(Id) && StringUtils.isEmpty(orderNum))
         {
@@ -78,7 +96,7 @@
         }
 
         GuideRepairOrder order=iGuideRepairOrderService.selectConfigData(Id,orderNum);
-        order.setGuideEvolveEntities(iGuideEvolveService.selectConfigList(Id));
+        order.setGuideEvolveEntities(iGuideEvolveService.selectConfigList(Id,sysUser));
 
         return ResultData.success(order);
     }
@@ -118,15 +136,15 @@
         GuideEvolveEntity entity=new GuideEvolveEntity();
         entity.setCreateTime(LocalDateTime.now());
         entity.setUpdateTime(LocalDateTime.now());
-        entity.setState("13");
-        entity.setDepartmentalId(sysUser.getDepartmentId());
-        entity.setToUserId(sysUser.getUserId()+"");
-        entity.setFromUserId(order.getGuideUserId());
-        entity.setFromDepartmentalId(order.getGuideDepartmentId());
+        entity.setState("11");
+        entity.setDepartmentalId(order.getGuideDepartmentId());
+        entity.setToUserId(order.getGuideUserId());
+        entity.setFromUserId(sysUser.getUserId().toString());
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
         entity.setGuideId(order.getId().toString());
-
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
         iGuideEvolveService.insertConfig(entity);
-
+        order=iGuideRepairOrderService.setTimeoutTim(order);
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
 
@@ -163,14 +181,15 @@
         GuideEvolveEntity entity=new GuideEvolveEntity();
         entity.setCreateTime(LocalDateTime.now());
         entity.setUpdateTime(LocalDateTime.now());
-        entity.setState("12");
-        entity.setDepartmentalId(sysUser.getDepartmentId());
-        entity.setToUserId(sysUser.getUserId()+"");
-        entity.setFromUserId(order.getGuideUserId());
-        entity.setFromDepartmentalId(order.getGuideDepartmentId());
+        entity.setState("10");
+        entity.setDepartmentalId(order.getGuideDepartmentId());
+        entity.setToUserId(order.getGuideUserId());
+        entity.setFromUserId(sysUser.getUserId()+"");
+        entity.setFromDepartmentalId(sysUser.getDepartmentId());
         entity.setGuideId(order.getId().toString());
 
         iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
 
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
@@ -209,12 +228,27 @@
         }
         if(StringUtils.equals(entity.getState(),"2")){//如果用户选择未解决则状态改为待办
             order.setState("2");
-            entity.setState("8");
+            entity.setState("9");
         }
         else if(StringUtils.equals(entity.getState(),"4")){
             //待评价
+            if (order.getSubmitType().equals(1))//小程序提交
+            {
+                WxUtil wxUtil=new WxUtil();
+                String accessToken="0";
+                try {
+                    accessToken= stringRedisTemplate.boundValueOps("access_token:access_token:" + ConstantPropertiesUtil.WX_OPEN_APP_ID).get().toString();
+                } catch (Exception e) {
+                    throw new RuntimeException(e);
+                }
+                SysUser submitUser = iGuideRepairOrderService.getSubmitUser(order);
+                wxUtil.sendGuideRepairOrderComplete(submitUser.getOpenid(),accessToken,guideRepairOrderCompleteTemplateId,entity);
+            }
+            else if (order.getSubmitType().equals(2)){
+                smsUtil.sendSmsComplete(order.getConsultUserPhone(),order.getMatterName());
+            }
             order.setState("4");
-            entity.setState("9");
+            entity.setState("7");
         }
         //新增已办结记录
         entity.setCreateTime(LocalDateTime.now());
@@ -223,6 +257,7 @@
         entity.setFromUserId(sysUser.getUserId()+"");
         entity.setGuideId(order.getId().toString());
         iGuideEvolveService.insertConfig(entity);
+        iGuideRepairOrderService.updateSysUserOrderNum(entity);
         return toAjax(iGuideRepairOrderService.updateConfig(order));
     }
 
@@ -293,11 +328,6 @@
             return ResultData.error("工单id不能为空");
         }
 
-        if(!StringUtils.equals(entity.getState(),"4"))
-        {
-            return ResultData.error("该工单不能评价!");
-        }
-
         if(StringUtils.isEmpty(entity.getEvaluateState()))
         {
             return ResultData.error("满意程度不能为空!");
@@ -308,7 +338,7 @@
         GuideEvolveEntity guideEvolveEntity=new GuideEvolveEntity();
         guideEvolveEntity.setCreateTime(LocalDateTime.now());
         guideEvolveEntity.setUpdateTime(LocalDateTime.now());
-        guideEvolveEntity.setState("3");
+        guideEvolveEntity.setState("13");
         guideEvolveEntity.setFromDepartmentalId(sysUser.getDepartmentId());
         guideEvolveEntity.setFromUserId(sysUser.getUserId()+"");
         guideEvolveEntity.setGuideId(entity.getId().toString());
@@ -341,17 +371,43 @@
     @GetMapping("/getList")
     @Authorization
     public TableDataInfo selectConfigList(@RequestParam(value = "pageNum",required = false) Integer pageNum,
-                                   @RequestParam(value = "pageSize",required = false) Integer pageSize,
-                                   @RequestParam(value = "matterName",required = false) String matterName,
+                                          @RequestParam(value = "pageSize",required = false) Integer pageSize,
+                                          @RequestParam(value = "matterName",required = false) String matterName,
+                                          @RequestParam(value = "status",required = false) String status,
+                                          @RequestParam(value = "createTimeStartTime",required = false) String createTimeStartTime,
+                                          @RequestParam(value = "createTimeTimeEndTime",required = false) String createTimeTimeEndTime,
+                                          @RequestParam(value = "classifyId",required = false)String  classifyId,
                                           @CurrentUser SysUser sysUser)
     {
         Assert.notNull(pageNum, "pageNum 不能为空");
         Assert.notNull(pageSize, "pageSize 不能为空");
         Page<GuideRepairOrder> pageParam = new Page<>(pageNum,pageSize);
 
-        List<String> ids=iOrganizationChartService.getIds(sysUser.getDepartmentId());
-        List<GuideRepairOrder> list = iGuideRepairOrderService.selectConfigList(pageParam,pageSize,matterName,ids);
-        int num=iGuideRepairOrderService.countConfigList(matterName,ids);
+        List<String> ids=null;
+        String userId=null;
+        if( StringUtils.equals("2",sysUser.getRoleIds()))
+        {
+//            if(StringUtils.equals("1",sysUser.getIsDivisionHead()))
+//            {
+//                userId=null;
+//            }
+//            else
+//            {
+//                ids=null;
+//                userId=sysUser.getUserId()+"";
+//            }
+            userId=sysUser.getUserId()+"";
+            ids=new ArrayList<>();
+            ids.add(sysUser.getDepartmentId());
+        }
+        else
+        {
+            ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        }
+
+        List<GuideRepairOrder> list = iGuideRepairOrderService.selectConfigList(pageParam,pageSize,
+                matterName,ids,status,userId,createTimeStartTime,createTimeTimeEndTime,classifyId);
+        int num=iGuideRepairOrderService.countConfigList(matterName,ids,status,userId);
         return getDataTable(list,num);
     }
 
@@ -362,26 +418,59 @@
     public ResultData getWorkOrder(@CurrentUser SysUser sysUser)
     {
         WorkOrder workOrder=new WorkOrder();
-        List<String> ids=iOrganizationChartService.getIds(sysUser.getDepartmentId());
-        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消  8未解决  9已解决)
-        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null));
-        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",ids,null,null,null,null));
-        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,null,null,null));
-        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null));
-        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null));
-        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",ids,null,null,null,null));
-        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum("6",ids,null,null,null,null));
-        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum("7",ids,null,null,null,null));
+        List<String> ids=null;
+        String userId=null;
+        if( StringUtils.equals("2",sysUser.getRoleIds()))
+        {
+//            if(StringUtils.equals("1",sysUser.getIsDivisionHead()))
+//            {
+//                userId=null;
+//            }
+//            else
+//            {
+//                ids=null;
+//                userId=sysUser.getUserId()+"";
+//            }
+            userId=sysUser.getUserId()+"";
+//            ids=new ArrayList<>();
+//            ids.add(sysUser.getDepartmentId());
+        }
+        else
+        {
+            ids=PermissionUtil.getPermission(sysUser,iOrganizationChartService);
+        }
 
+        //状态(1待分配  2 待办结 3 已办结 4 待评价 5 已取消  )
+        workOrder.setAllNum(iGuideRepairOrderService.countStatisticsNum("",ids,null,null,null,null,null,userId));
+        workOrder.setWaitDistribution(iGuideRepairOrderService.countStatisticsNum("1",ids,null,null,null,null,null,userId));
+        workOrder.setWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,null,null,null,null,userId));
+        workOrder.setHaveDealWith(iGuideRepairOrderService.countStatisticsNum("3",ids,null,null,null,null,null,userId));
+        workOrder.setRemainEvaluated(iGuideRepairOrderService.countStatisticsNum("4",ids,null,null,null,null,null,userId));
+        workOrder.setCanceled(iGuideRepairOrderService.countStatisticsNum("5",ids,null,null,null,null,null,userId));
+
+        //服务状态(1.已解决 2.未解决)
+        workOrder.setUnsolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"2",userId));
+        workOrder.setResolved(iGuideRepairOrderService.countStatisticsNum(null,ids,null,null,null,null,"1",userId));
 
         //是否超时 (1 未超时   2已超时) 超时未办结
-        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null));
-        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,"2",null,null));
+        workOrder.setOvertime(iGuideRepairOrderService.countStatisticsNum(null,ids,null,"2",null,null,null,userId));
+        workOrder.setOvertimeWaitDealWith(iGuideRepairOrderService.countStatisticsNum("2",ids,null,"2",null,null,null,userId));
         return ResultData.success(workOrder);
     }
 
 
-
+    /**
+     * 删除工单
+     * @param id
+     * @return
+     */
+    @ApiOperation(value = "删除工单",response = GuideRepairOrder.class)
+    @DeleteMapping("/delete/{id}")
+    @Authorization
+    public ResultData deleteConfigById(@PathVariable("id") String id)
+    {
+        return toAjax(iGuideRepairOrderService.deleteConfigById(id));
+    }
 
 
 }

--
Gitblit v1.7.1