zoujiajian 1 rok temu
rodzic
commit
dde03603e6

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/SysCorpFollow.java

@@ -15,4 +15,9 @@ public class SysCorpFollow extends BaseEntity{
 	private String name;
 
 	private Boolean deleted;
+
+	/**
+	 * 登录账号用户id
+	 */
+	private Long cmsUserId;
 }

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/sys/SysCorpFollowService.java

@@ -14,4 +14,6 @@ public interface SysCorpFollowService extends IService<SysCorpFollow> {
 	void saveOrUpdateFollow(SysCorpFollowReq req) throws Exception;
 
 	void delBySid(Long sid) throws Exception;
+
+	void bindLoginAccount(SysCorpFollow sysCorpFollow);
 }

+ 23 - 0
netflix-service/src/main/java/com/cyksj/service/sys/impl/SysCorpFollowServiceImpl.java

@@ -22,6 +22,7 @@ import org.springframework.stereotype.Service;
 
 import java.util.List;
 import java.util.Map;
+import java.util.Optional;
 import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.stream.Collectors;
 
@@ -78,6 +79,8 @@ public class SysCorpFollowServiceImpl extends ServiceImpl<SysCorpFollowMapper, S
 		}
 		//同步企业客服key
 		syncSysCorpUserKey();
+		//绑定银河登录账号
+		bindLoginAccount(sysCorpFollow);
 	}
 
 	private void syncSysCorpUserKey() {
@@ -152,6 +155,26 @@ public class SysCorpFollowServiceImpl extends ServiceImpl<SysCorpFollowMapper, S
 		sysCorpFollowRelateMapper.updateById(sysCorpFollowRelate);
 	}
 
+	@Override
+	public void bindLoginAccount(SysCorpFollow sysCorpFollow) {
+		Long id = sysCorpFollow.getId();
+		SysCorpFollow dbSysFollow = getById(id);
+		Long cmsUserId = sysCorpFollow.getCmsUserId();
+		if (cmsUserId != null) {
+			dbSysFollow.setCmsUserId(cmsUserId);
+			List<SysCorpFollowRelate> sysCorpFollowRelates = sysCorpFollowRelateMapper.selectList(Wrappers.lambdaQuery(SysCorpFollowRelate.class)
+					.eq(SysCorpFollowRelate::getMid, id));
+			for (SysCorpFollowRelate sysCorpFollowRelate : sysCorpFollowRelates) {
+				Optional.ofNullable(corpFollowMapper.selectOne(Wrappers.lambdaQuery(CorpFollow.class)
+						.eq(CorpFollow::getUserid, sysCorpFollowRelate.getFollowId())
+						.last("limit 1"))).ifPresent(follow -> {
+					follow.setCmsUserId(dbSysFollow.getCmsUserId());
+					corpFollowMapper.updateById(follow);
+				});
+			}
+		}
+	}
+
 	public void updateCorpFollowRelateConfig(SysCorpFollowRelate sysCorpFollowRelate, SysCorpFollowRelate db) {
 		Long sid = sysCorpFollowRelate.getId();
 		if (!StrUtil.equals(db.getFollowId(), sysCorpFollowRelate.getFollowId())) {

+ 10 - 0
netflix-web/src/main/java/com/cyksj/web/controller/sys/SysCorpFollowController.java

@@ -6,6 +6,7 @@ import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.SysCorpFollowRelateMapper;
 import com.cyksj.mapper.corp.CorpUserFollowRelationMapper;
+import com.cyksj.model.entity.SysCorpFollow;
 import com.cyksj.model.entity.SysCorpFollowRelate;
 import com.cyksj.model.request.sys.SysCorpFollowReq;
 import com.cyksj.model.views.SysCorpFollowView;
@@ -123,6 +124,15 @@ public class SysCorpFollowController {
 		return GatewayResponse.SUCCESS.newBuilder().toResult(corpService.dataInitByCorpId(corpId));
 	}
 
+	/**
+	 * 客服绑定登录账号
+	 */
+	@PutMapping("/bind/loginAccount")
+	public Result<String> bindLoginAccount(@RequestBody SysCorpFollow sysCorpFollow) {
+		sysCorpFollowService.bindLoginAccount(sysCorpFollow);
+		return GatewayResponse.SUCCESS.newBuilder().toResult();
+	}
+
 	/**
 	 * 转接客户
 	 */