package cn.gistack.system.user.sync.controller; import cn.gistack.system.user.entity.User; import cn.gistack.system.user.service.IUserService; import cn.gistack.system.user.sync.dto.AccountBean; import cn.gistack.system.user.sync.dto.ApiPushDTO; import cn.gistack.system.user.sync.util.GenerateUtil; import cn.gistack.system.user.sync.util.SecurityUtil; import com.alibaba.fastjson.JSONArray; import lombok.AllArgsConstructor; import org.springblade.core.mp.support.Condition; import org.springblade.core.tenant.annotation.NonDS; import org.springblade.core.tool.api.R; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * @PROJECT_NAME: skjcmanager * @DESCRIPTION: 统一登陆平台用户同步 * @USER: aix * @DATE: 2023/8/7 16:48 */ @NonDS @RestController @RequestMapping("/sync") @AllArgsConstructor public class UserPushController { private final IUserService userService; private final static String appId = "46a23e7c5fe54f46a37848dc740dc001"; private final static String appSecret = "AxVGmJcsfxEx36zptmr8J+sv7MAhL1mUuwrk4woGUrM="; private final static String method = "post"; @PostMapping("/userpush") public R userPush(ApiPushDTO apiPushDTO) { String syncData = SecurityUtil.decryptAES(apiPushDTO.getSyncData(), appSecret); List accountBeanList = JSONArray.parseArray(syncData, AccountBean.class); //循环list accountBeanList.forEach(accountBean -> { //判断手机号是否在库中 User params = new User(); params.setPhone(accountBean.getPrincipalId()); User one = userService.getOne(Condition.getQueryWrapper(params)); if (one == null){ //不在,看status状态,若为1则不操作。0添加进库 if (accountBean.getStatus().equals("0")){ User saveUser = new User(); //设置id为手机号 // saveUser.setId(Long.parseLong(accountBean.getPrincipalId())); //账号为手机号 saveUser.setAccount(accountBean.getPrincipalId()); saveUser.setPhone(accountBean.getPrincipalId()); //设置姓名 saveUser.setRealName(accountBean.getAttributes().get("realName")); //设置部门(默认给省) saveUser.setDeptId("420000000000"); //设置角色(权限与市州水库管理业务人员一致) saveUser.setRoleId("1688732764750766082"); //设置租户id saveUser.setTenantId("000000"); userService.save(saveUser); } }else { //在,看status状态,若为1则删除用户。0更新? if (accountBean.getStatus().equals("1")){ userService.removeUser(accountBean.getPrincipalId()); } else { //更新 //设置姓名 one.setRealName(accountBean.getAttributes().get("realName")); userService.updateUser(one); } } }); return R.data(apiPushDTO.getTimestamp()); } }