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} + ) + 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}