From 8f3878c9ac837c35092b8b533bb4e5003ee2407c Mon Sep 17 00:00:00 2001
From: zxc <1272811460@qq.com>
Date: Tue, 10 Nov 2020 15:11:01 +0800
Subject: [PATCH 1/2] =?UTF-8?q?=E5=BE=BD=E7=AB=A0?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../src/main/resources/mapper/UserBadgeDao.xml                  | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml
index 1ce902f6d2..f7186b1424 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserBadgeDao.xml
@@ -105,10 +105,10 @@
             user_badge_certificate_record
         WHERE
             DEL_FLAG = 0
-            AND IS_LAST = 'yes'
             AND BADGE_ID = #{badgeId}
             
                 AND USER_ID = #{userId}
+                AND IS_LAST = 'yes'
             
             
                 AND ID = #{recordId}
From c21527473372bee031908eb0217d05ebe1ee9173 Mon Sep 17 00:00:00 2001
From: liushaowen <565850092@qq.com>
Date: Tue, 10 Nov 2020 15:26:56 +0800
Subject: [PATCH 2/2] =?UTF-8?q?=E5=B1=85=E6=B0=91=E7=AB=AF-=E6=8F=90?=
 =?UTF-8?q?=E4=BA=A4=E5=BB=BA=E8=AE=AE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
 .../java/com/epmet/dto/UserAdviceDTO.java     |  7 +-
 .../epmet/dto/form/SubmitAdviceFormDTO.java   | 51 ++++++++++
 .../controller/UserAdviceController.java      | 16 +++
 .../java/com/epmet/dao/UserAdviceDao.java     |  3 +
 .../com/epmet/service/UserAdviceService.java  | 11 +++
 .../service/impl/UserAdviceServiceImpl.java   | 99 ++++++++++++++++++-
 .../main/resources/mapper/UserAdviceDao.xml   | 45 +++++++++
 7 files changed, 228 insertions(+), 4 deletions(-)
 create mode 100644 epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SubmitAdviceFormDTO.java
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserAdviceDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserAdviceDTO.java
index 77e6494ee6..0cea243f87 100644
--- a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserAdviceDTO.java
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/UserAdviceDTO.java
@@ -98,6 +98,11 @@ public class UserAdviceDTO implements Serializable {
      */
 	private String adviceType;
 
+    /**
+     * 问题时间
+     */
+	private Date adviceTime;
+
     /**
      * 回复内容
      */
@@ -153,4 +158,4 @@ public class UserAdviceDTO implements Serializable {
      */
 	private Date updatedTime;
 
-}
\ No newline at end of file
+}
diff --git a/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SubmitAdviceFormDTO.java b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SubmitAdviceFormDTO.java
new file mode 100644
index 0000000000..b4dae41cbd
--- /dev/null
+++ b/epmet-user/epmet-user-client/src/main/java/com/epmet/dto/form/SubmitAdviceFormDTO.java
@@ -0,0 +1,51 @@
+package com.epmet.dto.form;
+
+import lombok.Data;
+
+import javax.validation.constraints.NotBlank;
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @description:
+ * @author: liushaowen
+ * @date: 2020/11/10 10:42
+ */
+@Data
+public class SubmitAdviceFormDTO implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 客户id
+     */
+    @NotBlank(message = "客户id不能为空")
+    private String customerId;
+
+    /**
+     * 网格id
+     */
+    @NotBlank(message = "网格id不能为空")
+    private String gridId;
+
+    /**
+     * 建议内容
+     */
+    @NotBlank(message = "建议内容不能为空")
+    private String adviceContent;
+
+    /**
+     * 电话号码可为空 存*,不为空需校验
+     */
+    private String phone;
+
+    /**
+     * 问题类型,可为空 存*,gov为政府问题,software为软件问题
+     */
+
+    private String adviceType;
+
+    /**
+     * 建议图片
+     */
+    private List imgList;
+}
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java
index 0886a6a824..170b9188e5 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/controller/UserAdviceController.java
@@ -30,6 +30,7 @@ import com.epmet.commons.tools.validator.group.DefaultGroup;
 import com.epmet.dto.UserAdviceDTO;
 import com.epmet.dto.form.AdviceListFormDTO;
 import com.epmet.dto.form.ReplyAdviceFormDTO;
+import com.epmet.dto.form.SubmitAdviceFormDTO;
 import com.epmet.dto.result.AdviceDetailResultDTO;
 import com.epmet.dto.result.AdviceListResultDTO;
 import com.epmet.dto.result.MyAdviceListResultDTO;
@@ -42,6 +43,7 @@ import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
 import java.util.List;
 import java.util.Map;
+import java.util.regex.Pattern;
 
 
 /**
@@ -170,4 +172,18 @@ public class UserAdviceController {
         }
         return new Result>().ok(userAdviceService.myAdviceList(pageSize,pageNo,loginUserUtil.getLoginUserId()));
     }
+
+    @PostMapping("submitadvice")
+    public Result submitAdvice(@RequestBody SubmitAdviceFormDTO dto){
+        ValidatorUtils.validateEntity(dto);
+        if (StringUtils.isNotBlank(dto.getPhone())){
+            if (!Pattern.matches("^1[3456789]\\d{9}$",dto.getPhone())){
+                throw new RenException("手机号格式错误");
+            }
+        }else {
+            dto.setPhone("*");
+        }
+        userAdviceService.submitAdvice(dto,loginUserUtil.getLoginUserId());
+        return new Result();
+    }
 }
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserAdviceDao.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserAdviceDao.java
index 087b91f225..3fd6a4f205 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserAdviceDao.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/dao/UserAdviceDao.java
@@ -18,6 +18,7 @@
 package com.epmet.dao;
 
 import com.epmet.commons.mybatis.dao.BaseDao;
+import com.epmet.dto.UserAdviceDTO;
 import com.epmet.dto.result.MyAdviceListResultDTO;
 import com.epmet.entity.UserAdviceEntity;
 import org.apache.ibatis.annotations.Mapper;
@@ -41,4 +42,6 @@ public interface UserAdviceDao extends BaseDao {
     List myAdviceList(@Param("pageSize") int pageSize,
                                              @Param("pageNo") int pageNo,
                                              @Param("userId") String loginUserId);
+
+    int saveUserAdvice(UserAdviceDTO dto);
 }
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserAdviceService.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserAdviceService.java
index 35a5e840ce..4bfc5d5307 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserAdviceService.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/UserAdviceService.java
@@ -22,6 +22,7 @@ import com.epmet.commons.tools.page.PageData;
 import com.epmet.dto.UserAdviceDTO;
 import com.epmet.dto.form.AdviceListFormDTO;
 import com.epmet.dto.form.ReplyAdviceFormDTO;
+import com.epmet.dto.form.SubmitAdviceFormDTO;
 import com.epmet.dto.result.AdviceDetailResultDTO;
 import com.epmet.dto.result.AdviceListResultDTO;
 import com.epmet.dto.result.MyAdviceListResultDTO;
@@ -136,4 +137,14 @@ public interface UserAdviceService extends BaseService {
      * @Date 2020/11/9 17:39
      */
     List myAdviceList(int pageSize, int pageNo, String loginUserId);
+
+    /**
+     * @Description 居民端-回复建议
+     * @param dto
+     * @param loginUserId
+     * @return void
+     * @Author liushaowen
+     * @Date 2020/11/10 10:57
+     */
+    void submitAdvice(SubmitAdviceFormDTO dto, String loginUserId);
 }
diff --git a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java
index 8973026d33..59038e0d91 100644
--- a/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java
+++ b/epmet-user/epmet-user-server/src/main/java/com/epmet/service/impl/UserAdviceServiceImpl.java
@@ -37,17 +37,22 @@ import com.epmet.commons.tools.utils.Result;
 import com.epmet.commons.tools.utils.ScanContentUtils;
 import com.epmet.constant.UserAdviceConstant;
 import com.epmet.dao.UserAdviceDao;
+import com.epmet.dto.CustomerAgencyDTO;
+import com.epmet.dto.CustomerDTO;
 import com.epmet.dto.UserAdviceDTO;
 import com.epmet.dto.form.AdviceListFormDTO;
 import com.epmet.dto.form.ReplyAdviceFormDTO;
-import com.epmet.dto.result.AdviceDetailResultDTO;
-import com.epmet.dto.result.AdviceListResultDTO;
-import com.epmet.dto.result.MyAdviceListResultDTO;
+import com.epmet.dto.form.SubmitAdviceFormDTO;
+import com.epmet.dto.form.UserResiInfoFormDTO;
+import com.epmet.dto.result.*;
 import com.epmet.entity.UserAdviceEntity;
 import com.epmet.entity.UserAdviceImgEntity;
+import com.epmet.feign.GovOrgOpenFeignClient;
+import com.epmet.feign.OperCrmOpenFeignClient;
 import com.epmet.redis.UserAdviceRedis;
 import com.epmet.service.UserAdviceImgService;
 import com.epmet.service.UserAdviceService;
+import com.epmet.service.UserResiInfoService;
 import io.jsonwebtoken.lang.Collections;
 import org.apache.commons.lang3.StringUtils;
 import org.apache.logging.log4j.LogManager;
@@ -76,6 +81,15 @@ public class UserAdviceServiceImpl extends BaseServiceImpl customerInfo = operCrmOpenFeignClient.getCustomerInfo(customerDTO);
+        if (customerInfo.success()){
+            userAdviceDTO.setCustomerName(customerInfo.getData().getCustomerName());
+        }else {
+            logger.error("customerId:{},获取customerName失败",dto.getCustomerId());
+        }
+        //获取gridName,agencyId
+        Result gridInfoResultDTOResult = govOrgOpenFeignClient.queryGridInfo(dto.getGridId());
+        if (gridInfoResultDTOResult.success()){
+            userAdviceDTO.setGridName(gridInfoResultDTOResult.getData().getGridName());
+            userAdviceDTO.setAgencyId(gridInfoResultDTOResult.getData().getParentAgencyId());
+            //获取agencyName
+            Result agencyById = govOrgOpenFeignClient.getAgencyById(gridInfoResultDTOResult.getData().getParentAgencyId());
+            if (agencyById.success()){
+                userAdviceDTO.setAgencyName(agencyById.getData().getAllParentName());
+            }else {
+                logger.error("agencyId:{},获取组织详情失败",gridInfoResultDTOResult.getData().getParentAgencyId());
+            }
+        }else {
+            logger.error("gridId:{},获取网格详情失败",dto.getGridId());
+        }
+
+        //获取userName,regPhone
+        UserResiInfoFormDTO userResiInfoFormDTO = new UserResiInfoFormDTO();
+        userResiInfoFormDTO.setUserId(loginUserId);
+        userResiInfoFormDTO.setCustomerId(dto.getCustomerId());
+        Result userResiInfoDTO = userResiInfoService.getUserResiInfoDTO(userResiInfoFormDTO);
+        if (userResiInfoDTO.success()){
+            userAdviceDTO.setUserId(loginUserId);
+            userAdviceDTO.setUserName(userResiInfoDTO.getData().getSurname()+userResiInfoDTO.getData().getName());
+            userAdviceDTO.setRegPhone(userResiInfoDTO.getData().getRegMobile());
+        }else {
+            logger.error("userId:{},获取user注册信息失败",loginUserId);
+        }
+        //设置AdviceTime
+        userAdviceDTO.setAdviceTime(new Date());
+        //设置adviceType
+        if (StringUtils.isBlank(dto.getAdviceType())){
+            userAdviceDTO.setAdviceType("*");
+        }
+        baseDao.saveUserAdvice(userAdviceDTO);
+        //如果imgList不为空,插入advice_img表
+        List govImgList = dto.getImgList();
+        if (!Collections.isEmpty(govImgList)) {
+            List userAdviceImgEntities = new ArrayList<>();
+            for (int i = 0; i < govImgList.size(); i++) {
+                //最多存三张图片
+                if (i == 3) {
+                    break;
+                }
+                UserAdviceImgEntity entity = new UserAdviceImgEntity();
+                entity.setImgUrl(govImgList.get(i));
+                entity.setAdviceId(userAdviceDTO.getId());
+                entity.setType("resi");
+                userAdviceImgEntities.add(entity);
+            }
+            userAdviceImgService.insertBatch(userAdviceImgEntities);
+        }
+    }
+
     private void auditText(String text) {
         TextScanParamDTO textScanParamDTO = new TextScanParamDTO();
         TextTaskDTO taskDTO = new TextTaskDTO();
diff --git a/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml b/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml
index 42c4b57f44..4f9aa8730c 100644
--- a/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml
+++ b/epmet-user/epmet-user-server/src/main/resources/mapper/UserAdviceDao.xml
@@ -64,4 +64,49 @@
         from user_advice_img
         where del_flag = 0 and advice_Id = #{id} and type = 'resi'
     
+
+    
+        
+            select md5(replace(UUID(),'-',''))
+        
+        insert into user_advice(
+          id,
+          customer_id,
+          customer_name,
+          agency_id,
+          agency_name,
+          grid_id,
+          grid_name,
+          user_id,
+          user_name,
+          reg_phone,
+          advice_content,
+          phone,
+          advice_time,
+          advice_type,
+          del_flag,
+          revision,
+          created_by,
+          created_time,
+          updated_by,
+          updated_time
+        )
+        values (
+          #{id},
+          #{customerId},
+          #{customerName},
+          #{agencyId},
+          #{agencyName},
+          #{gridId},
+          #{gridName},
+          #{userId},
+          #{userName},
+          #{regPhone},
+          #{adviceContent},
+          #{phone},
+          #{adviceTime},
+          #{adviceType},
+          0,0,#{userId},#{adviceTime},#{userId},#{adviceTime}
+        )
+