Server端 项目 | Server端 项目 | ||||
第一步:登录授权获取code: | 第一步:登录授权获取code: | ||||
http://127.0.0.1:8090/oauth2/authorize? | http://127.0.0.1:8090/oauth2/authorize? | ||||
client_id=tuoheng-dsp | |||||
client_id=tuoheng-dsp-web | |||||
&response_type=code | &response_type=code | ||||
&scope=openid+profile | &scope=openid+profile | ||||
&redirect_uri=http://192.168.11.11:8086/home | &redirect_uri=http://192.168.11.11:8086/home |
package com.tuoheng.controller; | package com.tuoheng.controller; | ||||
import com.tuoheng.model.param.CreateClientUserDto; | import com.tuoheng.model.param.CreateClientUserDto; | ||||
import com.tuoheng.model.param.GetUserInfoDto; | |||||
import com.tuoheng.model.param.UpdateUserClientRoleDto; | |||||
import com.tuoheng.model.param.UpdateUserPassDto; | |||||
import com.tuoheng.service.ClientUserSevice; | import com.tuoheng.service.ClientUserSevice; | ||||
import com.tuoheng.until.JsonResult; | import com.tuoheng.until.JsonResult; | ||||
import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
import org.springframework.validation.annotation.Validated; | |||||
import org.springframework.web.bind.annotation.*; | import org.springframework.web.bind.annotation.*; | ||||
/** | /** | ||||
* @author chenjiandong | * @author chenjiandong | ||||
* @description: TODO | |||||
* @description: 同步业务端 user 数据 | |||||
* @date 2022/10/24 11:12 | * @date 2022/10/24 11:12 | ||||
*/ | */ | ||||
@RestController | @RestController | ||||
return clientUserSevice.createClientUser(createClientUserDto); | return clientUserSevice.createClientUser(createClientUserDto); | ||||
} | } | ||||
@PostMapping("/updatePass") | |||||
public JsonResult updateUserPassword(@RequestBody @Validated UpdateUserPassDto updateUserPassDto){ | |||||
return clientUserSevice.updateUserPassword(updateUserPassDto); | |||||
} | |||||
@PostMapping("/updateRole") | |||||
public JsonResult updateUserClientRole(@RequestBody @Validated UpdateUserClientRoleDto updateUserClientRoleDto){ | |||||
return clientUserSevice.updateUserClientRole(updateUserClientRoleDto); | |||||
} | |||||
} | } |
package com.tuoheng.mapper; | package com.tuoheng.mapper; | ||||
import com.tuoheng.model.dto.UserBaseInfoDto; | |||||
import com.tuoheng.model.po.UserPo; | import com.tuoheng.model.po.UserPo; | ||||
import org.apache.ibatis.annotations.Mapper; | import org.apache.ibatis.annotations.Mapper; | ||||
int judgeCreateByUserName(String username); | int judgeCreateByUserName(String username); | ||||
UserPo getUserByUserName(String userName); | |||||
int updatePass(UserPo userPo); | |||||
} | } |
int batchInsert(List<ClientUserRolePo> list); | int batchInsert(List<ClientUserRolePo> list); | ||||
int updateUserClientRole(ClientUserRolePo clientUserRolePo); | |||||
} | } |
package com.tuoheng.model.param; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotEmpty; | |||||
import javax.validation.constraints.NotNull; | |||||
/** | |||||
* @author chenjiandong | |||||
* @description: TODO | |||||
* @date 2022/10/8 11:30 | |||||
*/ | |||||
@Data | |||||
public class UpdateUserClientRoleDto { | |||||
@NotEmpty(message = "username can not be empty!") | |||||
private String username; | |||||
@NotEmpty(message = "clientId can not be empty!") | |||||
private String clientId; | |||||
@NotNull(message = "roleId can not be null!") | |||||
private Integer roleId; | |||||
} |
package com.tuoheng.model.param; | |||||
import lombok.Data; | |||||
import javax.validation.constraints.NotEmpty; | |||||
import javax.validation.constraints.NotNull; | |||||
import java.util.List; | |||||
/** | |||||
* @author chenjiandong | |||||
* @description: TODO | |||||
* @date 2022/10/8 11:30 | |||||
*/ | |||||
@Data | |||||
public class UpdateUserPassDto { | |||||
@NotEmpty(message = "username can not be empty!") | |||||
private String username; | |||||
@NotEmpty(message = "password can not be empty!") | |||||
private String password; | |||||
} |
package com.tuoheng.service; | package com.tuoheng.service; | ||||
import com.tuoheng.model.param.CreateClientUserDto; | import com.tuoheng.model.param.CreateClientUserDto; | ||||
import com.tuoheng.model.param.UpdateUserClientRoleDto; | |||||
import com.tuoheng.model.param.UpdateUserPassDto; | |||||
import com.tuoheng.until.JsonResult; | import com.tuoheng.until.JsonResult; | ||||
/** | /** | ||||
JsonResult createClientUser(CreateClientUserDto createClientUserDto); | JsonResult createClientUser(CreateClientUserDto createClientUserDto); | ||||
JsonResult updateUserPassword(UpdateUserPassDto updateUserPassDto); | |||||
JsonResult updateUserClientRole(UpdateUserClientRoleDto updateUserClientRoleDto); | |||||
} | } |
import com.tuoheng.mapper.AuthoritiesMapper; | import com.tuoheng.mapper.AuthoritiesMapper; | ||||
import com.tuoheng.mapper.ClientUserMapper; | import com.tuoheng.mapper.ClientUserMapper; | ||||
import com.tuoheng.mapper.ClientUserRoleMapper; | import com.tuoheng.mapper.ClientUserRoleMapper; | ||||
import com.tuoheng.model.dto.UserBaseInfoDto; | |||||
import com.tuoheng.model.param.ClientRoleDto; | import com.tuoheng.model.param.ClientRoleDto; | ||||
import com.tuoheng.model.param.CreateClientUserDto; | import com.tuoheng.model.param.CreateClientUserDto; | ||||
import com.tuoheng.model.param.GetUserInfoDto; | |||||
import com.tuoheng.model.param.UpdateUserClientRoleDto; | |||||
import com.tuoheng.model.param.UpdateUserPassDto; | |||||
import com.tuoheng.model.po.AuthoritiesPo; | import com.tuoheng.model.po.AuthoritiesPo; | ||||
import com.tuoheng.model.po.ClientUserRolePo; | import com.tuoheng.model.po.ClientUserRolePo; | ||||
import com.tuoheng.model.po.UserPo; | import com.tuoheng.model.po.UserPo; | ||||
return JsonResult.success(userPo.getId()); | return JsonResult.success(userPo.getId()); | ||||
} | } | ||||
@Transactional(rollbackFor = Exception.class) | |||||
public JsonResult updateUserPassword(UpdateUserPassDto updateUserPassDto){ | |||||
if(clientUserMapper.getUserByUserName(updateUserPassDto.getUsername()) == null){ | |||||
return JsonResult.error("该用户不存在!"); | |||||
} | |||||
UserPo userPo = new UserPo() | |||||
.setUsername(updateUserPassDto.getUsername()) | |||||
.setPassword("{bcrypt}" + new BCryptPasswordEncoder().encode(updateUserPassDto.getPassword())); | |||||
clientUserMapper.updatePass(userPo); | |||||
return JsonResult.success(true); | |||||
} | |||||
@Transactional(rollbackFor = Exception.class) | |||||
public JsonResult updateUserClientRole(UpdateUserClientRoleDto updateUserClientRoleDto){ | |||||
UserPo userPo = clientUserMapper.getUserByUserName(updateUserClientRoleDto.getUsername()); | |||||
if(userPo == null){ | |||||
return JsonResult.error("该用户不存在!"); | |||||
} | |||||
ClientUserRolePo clientUserRolePo = new ClientUserRolePo() | |||||
.setUserId(userPo.getId()) | |||||
.setClientId(updateUserClientRoleDto.getClientId()) | |||||
.setRoleId(updateUserClientRoleDto.getRoleId()); | |||||
clientUserRoleMapper.updateUserClientRole(clientUserRolePo); | |||||
return JsonResult.success(true); | |||||
} | |||||
} | } |
select count(1) from users where username = #{username} | select count(1) from users where username = #{username} | ||||
</select> | </select> | ||||
<select id="getUserByUserName" parameterType="java.lang.String" resultType="com.tuoheng.model.po.UserPo"> | |||||
select * from users where username = #{username} | |||||
</select> | |||||
<update id="updatePass" parameterType="com.tuoheng.model.po.UserPo"> | |||||
update users | |||||
<set> | |||||
<if test="password != null and password != ''" > | |||||
password = #{password}, | |||||
</if> | |||||
</set> | |||||
where username = #{username,jdbcType=VARCHAR} | |||||
</update> | |||||
</mapper> | </mapper> |
</foreach > | </foreach > | ||||
</insert> | </insert> | ||||
<update id="updateUserClientRole" parameterType="com.tuoheng.model.po.ClientUserRolePo"> | |||||
update t_client_user_role | |||||
<set> | |||||
<if test="roleId != null" > | |||||
role_id = #{roleId}, | |||||
</if> | |||||
</set> | |||||
where user_id = #{userId} and client_id = #{clientId} | |||||
</update> | |||||
</mapper> | </mapper> |