|
|
@@ -1,15 +1,18 @@
|
|
|
package com.cyksj.service.user.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.util.RandomUtil;
|
|
|
import cn.hutool.core.util.StrUtil;
|
|
|
import com.cyksj.common.exception.BusinessRuntimeException;
|
|
|
import com.cyksj.enums.GatewayApiCode;
|
|
|
+import com.cyksj.mapper.AccountMapper;
|
|
|
import com.cyksj.mapper.manage.sys.WorkOrderChatHistoryMapper;
|
|
|
import com.cyksj.mapper.manage.sys.WorkOrderMapper;
|
|
|
import com.cyksj.model.entity.User;
|
|
|
import com.cyksj.model.entity.WorkOrder;
|
|
|
import com.cyksj.model.entity.WorkOrderChatHistory;
|
|
|
import com.cyksj.model.request.WorkOrderReq;
|
|
|
+import com.cyksj.model.views.CmsUserVO;
|
|
|
import com.cyksj.model.views.GroupRelationDetailView;
|
|
|
import com.cyksj.service.user.UserService;
|
|
|
import com.cyksj.service.user.WorkOrderFrontService;
|
|
|
@@ -22,6 +25,7 @@ import org.springframework.stereotype.Service;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import java.util.List;
|
|
|
+import java.util.Optional;
|
|
|
|
|
|
/*
|
|
|
*项目名: netflix
|
|
|
@@ -41,6 +45,8 @@ public class WorkOrderFrontServiceImpl implements WorkOrderFrontService {
|
|
|
|
|
|
private final UserService userService;
|
|
|
|
|
|
+ private final AccountMapper accountMapper;
|
|
|
+
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Throwable.class)
|
|
|
public void submitWorkOrder(WorkOrderReq workOrderReq) {
|
|
|
@@ -49,11 +55,8 @@ public class WorkOrderFrontServiceImpl implements WorkOrderFrontService {
|
|
|
if (user == null) throw BusinessRuntimeException.getGatewayApiCode(GatewayApiCode.CMS_TOKEN_VALID);
|
|
|
String content = workOrderReq.getContent();
|
|
|
String imgs = workOrderReq.getImgs();
|
|
|
- if (StrUtil.isEmpty(content) && StrUtil.isEmpty(imgs)) {
|
|
|
- throw BusinessRuntimeException.getInstance("请输入相关内容");
|
|
|
- }
|
|
|
String topic = workOrderReq.getTopic();
|
|
|
- if (topic.length() > 32) {
|
|
|
+ if (StrUtil.isNotBlank(topic) && topic.length() > 32) {
|
|
|
throw BusinessRuntimeException.getInstance("标题最多输入30字数以内");
|
|
|
}
|
|
|
if (StrUtil.isNotBlank(content) && content.length() > 200) {
|
|
|
@@ -71,6 +74,19 @@ public class WorkOrderFrontServiceImpl implements WorkOrderFrontService {
|
|
|
BeanUtil.copyProperties(workOrderReq, workOrder);
|
|
|
workOrder.setGoodsId(detailView.getGoodsId());
|
|
|
workOrder.setSkuId(detailView.getSkuId());
|
|
|
+ Optional.ofNullable(accountMapper.selectById(detailView.getAccountId()))
|
|
|
+ .ifPresent(account -> {
|
|
|
+ workOrder.setAccountId(detailView.getAccountId());
|
|
|
+ workOrder.setAccount(account.getAccount());
|
|
|
+ });
|
|
|
+ //随机分配给客服
|
|
|
+ List<CmsUserVO> customers = beanSearcher.searchAll(CmsUserVO.class, MapUtils.builder().field(CmsUserVO::getRoleNames, "客服").op(Operator.Contain).build());
|
|
|
+ if (customers.size() > 0) {
|
|
|
+ int randomIndex = RandomUtil.randomInt(customers.size());
|
|
|
+ CmsUserVO customer = customers.get(randomIndex);
|
|
|
+ workOrder.setAssignCustomerServiceId(customer.getId());
|
|
|
+ workOrder.setCustomerServiceAuthId(customer.getAuthId());
|
|
|
+ }
|
|
|
workOrderMapper.insert(workOrder);
|
|
|
|
|
|
WorkOrderChatHistory workOrderChatHistory = new WorkOrderChatHistory();
|