9 changed files with 143 additions and 5 deletions
@ -0,0 +1,15 @@ |
|||||
|
package com.qs.serve.modules.sys.entity.dto; |
||||
|
|
||||
|
import lombok.Data; |
||||
|
|
||||
|
/** |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/20 |
||||
|
*/ |
||||
|
@Data |
||||
|
public class SyUser { |
||||
|
String id; |
||||
|
String name; |
||||
|
String code; |
||||
|
String mobile; |
||||
|
} |
@ -0,0 +1,37 @@ |
|||||
|
package com.qs.serve.task; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.util.AuthContextUtils; |
||||
|
import com.qs.serve.modules.tbs.common.TbsActivityState; |
||||
|
import com.qs.serve.modules.tbs.entity.TbsActivity; |
||||
|
import com.qs.serve.task.controller.TaskUserController; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.scheduling.annotation.Scheduled; |
||||
|
import org.springframework.stereotype.Component; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
|
||||
|
/** |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/27 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@Component |
||||
|
@AllArgsConstructor |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class SysTask { |
||||
|
|
||||
|
TaskUserController taskUserController; |
||||
|
|
||||
|
/** |
||||
|
* 同步用户 |
||||
|
*/ |
||||
|
@Scheduled(cron="0 0 1 * * ?") |
||||
|
public void task1(){ |
||||
|
AuthContextUtils.setTenant("001"); |
||||
|
taskUserController.test(); |
||||
|
} |
||||
|
|
||||
|
} |
@ -1,4 +1,4 @@ |
|||||
package com.qs.serve.task; |
package com.qs.serve.task.controller; |
||||
|
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
import com.qs.serve.common.model.dto.R; |
import com.qs.serve.common.model.dto.R; |
@ -1,4 +1,4 @@ |
|||||
package com.qs.serve.task; |
package com.qs.serve.task.controller; |
||||
|
|
||||
import com.qs.serve.common.framework.redis.RedisService; |
import com.qs.serve.common.framework.redis.RedisService; |
||||
import com.qs.serve.common.model.consts.RedisCacheKeys; |
import com.qs.serve.common.model.consts.RedisCacheKeys; |
@ -0,0 +1,77 @@ |
|||||
|
package com.qs.serve.task.controller; |
||||
|
|
||||
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; |
||||
|
import com.qs.serve.common.model.dto.R; |
||||
|
import com.qs.serve.common.util.JsonUtil; |
||||
|
import com.qs.serve.modules.seeyon.service.impl.SeeYonRequestBaseService; |
||||
|
import com.qs.serve.modules.sys.entity.SysUser; |
||||
|
import com.qs.serve.modules.sys.entity.dto.SyUser; |
||||
|
import com.qs.serve.modules.sys.service.SysUserService; |
||||
|
import com.qs.serve.modules.tbs.common.TbsSeeYonConst; |
||||
|
import com.qs.serve.modules.wx.service.WxUserService; |
||||
|
import lombok.AllArgsConstructor; |
||||
|
import lombok.extern.slf4j.Slf4j; |
||||
|
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; |
||||
|
import org.springframework.web.bind.annotation.GetMapping; |
||||
|
import org.springframework.web.bind.annotation.RequestMapping; |
||||
|
import org.springframework.web.bind.annotation.RestController; |
||||
|
|
||||
|
import java.time.LocalDate; |
||||
|
import java.util.ArrayList; |
||||
|
import java.util.List; |
||||
|
import java.util.stream.Collectors; |
||||
|
|
||||
|
/** |
||||
|
* 【同步】 用户相关 |
||||
|
* @author YenHex |
||||
|
* @since 2023/6/27 |
||||
|
*/ |
||||
|
@Slf4j |
||||
|
@AllArgsConstructor |
||||
|
@RestController |
||||
|
@RequestMapping("/task/user") |
||||
|
@ConditionalOnProperty(value = "project.task", havingValue = "true") |
||||
|
public class TaskUserController { |
||||
|
|
||||
|
SeeYonRequestBaseService seeYonRequestBaseService; |
||||
|
SysUserService sysUserService; |
||||
|
|
||||
|
/** |
||||
|
* 同步致远的用户到CRM |
||||
|
* @return |
||||
|
*/ |
||||
|
@GetMapping("syncFromSeeYon") |
||||
|
public R test(){ |
||||
|
R<String> rs = seeYonRequestBaseService.getBase(TbsSeeYonConst.OA_USER_LIST_1,null); |
||||
|
String listJson = rs.getData(); |
||||
|
List<SyUser> userList = JsonUtil.jsonToList(listJson, SyUser.class); |
||||
|
assert userList != null; |
||||
|
if(userList.size()<1){ |
||||
|
return R.ok(); |
||||
|
} |
||||
|
List<String> codes = userList.stream().map(SyUser::getCode).collect(Collectors.toList()); |
||||
|
LambdaQueryWrapper<SysUser> userLqw = new LambdaQueryWrapper<>(); |
||||
|
userLqw.in(SysUser::getCode,codes); |
||||
|
List<SysUser> existUserList = sysUserService.list(userLqw); |
||||
|
for (SyUser oaUser : userList) { |
||||
|
boolean exist = existUserList.stream().anyMatch(a->a.getCode().equals(oaUser.getCode())); |
||||
|
if(!exist){ |
||||
|
SysUser sysUser = new SysUser(); |
||||
|
sysUser.setCode(oaUser.getCode()); |
||||
|
sysUser.setMobile(oaUser.getMobile()); |
||||
|
sysUser.setAccount(oaUser.getCode()); |
||||
|
sysUser.setId(oaUser.getName()); |
||||
|
sysUser.setSyUserId(oaUser.getId()); |
||||
|
sysUser.setSyAccount(oaUser.getCode()); |
||||
|
sysUser.setServingState(1); |
||||
|
sysUser.setServingDate(LocalDate.now()); |
||||
|
sysUser.setSuperFlag(1); |
||||
|
sysUserService.save(sysUser); |
||||
|
} |
||||
|
} |
||||
|
return R.ok(); |
||||
|
} |
||||
|
|
||||
|
|
||||
|
|
||||
|
} |
@ -1,4 +1,4 @@ |
|||||
package com.qs.serve.task; |
package com.qs.serve.task.controller; |
||||
|
|
||||
import com.qs.serve.common.framework.redis.RedisService; |
import com.qs.serve.common.framework.redis.RedisService; |
||||
import com.qs.serve.common.model.consts.RedisCacheKeys; |
import com.qs.serve.common.model.consts.RedisCacheKeys; |
Loading…
Reference in new issue