|
|
@@ -7,6 +7,7 @@ import com.cyksj.dto.Result;
|
|
|
import com.cyksj.enums.BusinessType;
|
|
|
import com.cyksj.enums.GatewayResponse;
|
|
|
import com.cyksj.mapper.corp.CorpFollowMapper;
|
|
|
+import com.cyksj.mapper.corp.kf.CorpKfAccountUserChangeRecordMapper;
|
|
|
import com.cyksj.model.entity.*;
|
|
|
import com.cyksj.model.request.CorpKfDutySetReq;
|
|
|
import com.cyksj.model.request.corp.kf.CorpKfDutyReq;
|
|
|
@@ -22,11 +23,13 @@ import com.ejlchina.searcher.util.MapBuilder;
|
|
|
import com.ejlchina.searcher.util.MapUtils;
|
|
|
import lombok.RequiredArgsConstructor;
|
|
|
import org.apache.commons.lang3.StringUtils;
|
|
|
+import org.springframework.dao.DuplicateKeyException;
|
|
|
import org.springframework.web.bind.annotation.*;
|
|
|
|
|
|
import javax.servlet.http.HttpServletRequest;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
+import java.util.Optional;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
/**
|
|
|
@@ -50,6 +53,8 @@ public class CorpKfController {
|
|
|
|
|
|
private final CorpFollowMapper corpFollowMapper;
|
|
|
|
|
|
+ private final CorpKfAccountUserChangeRecordMapper corpKfAccountUserChangeRecordMapper;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 添加客服账号
|
|
|
@@ -239,4 +244,39 @@ public class CorpKfController {
|
|
|
return GatewayResponse.SUCCESS.newBuilder().toResult(corpKfAccounts);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 记录用户切换客服记录
|
|
|
+ */
|
|
|
+ @PostMapping("/change/account/record/{openKfId}")
|
|
|
+ public Result<String> recordUserAccountRecord(@PathVariable String openKfId) {
|
|
|
+ long cmsUserId = StpUtil.getLoginIdAsLong();
|
|
|
+ CorpKfAccountUserChangeRecord corpKfAccountUserChangeRecord = Optional.ofNullable(corpKfAccountUserChangeRecordMapper.selectOne(Wrappers.lambdaQuery(CorpKfAccountUserChangeRecord.class)
|
|
|
+ .eq(CorpKfAccountUserChangeRecord::getCmsUserId, cmsUserId)
|
|
|
+ .last("limit 1"))).orElse(new CorpKfAccountUserChangeRecord());
|
|
|
+ corpKfAccountUserChangeRecord.setCmsUserId(cmsUserId);
|
|
|
+ corpKfAccountUserChangeRecord.setOpenKfId(openKfId);
|
|
|
+ if (corpKfAccountUserChangeRecord.getId() == null) {
|
|
|
+ try {
|
|
|
+ corpKfAccountUserChangeRecordMapper.insert(corpKfAccountUserChangeRecord);
|
|
|
+ } catch (DuplicateKeyException e) {
|
|
|
+ }
|
|
|
+ } else {
|
|
|
+ corpKfAccountUserChangeRecordMapper.updateById(corpKfAccountUserChangeRecord);
|
|
|
+ }
|
|
|
+
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 用户切换德微信账号
|
|
|
+ */
|
|
|
+ @PostMapping("/get/change/account")
|
|
|
+ public Result<CorpKfAccountUserChangeRecord> getChangeAccount() {
|
|
|
+ long cmsUserId = StpUtil.getLoginIdAsLong();
|
|
|
+ CorpKfAccountUserChangeRecord corpKfAccountUserChangeRecord = Optional.ofNullable(corpKfAccountUserChangeRecordMapper.selectOne(Wrappers.lambdaQuery(CorpKfAccountUserChangeRecord.class)
|
|
|
+ .eq(CorpKfAccountUserChangeRecord::getCmsUserId, cmsUserId)
|
|
|
+ .last("limit 1"))).orElse(new CorpKfAccountUserChangeRecord());
|
|
|
+ return GatewayResponse.SUCCESS.newBuilder().toResult(corpKfAccountUserChangeRecord);
|
|
|
+ }
|
|
|
+
|
|
|
}
|