diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppSocialDetails.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppSocialDetails.java new file mode 100644 index 000000000..3ac236583 --- /dev/null +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppSocialDetails.java @@ -0,0 +1,126 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.api.entity; + +import com.baomidou.mybatisplus.annotation.*; +import com.baomidou.mybatisplus.extension.activerecord.Model; +import com.pig4cloud.pigx.common.core.sensitive.Sensitive; +import com.pig4cloud.pigx.common.core.util.ValidGroup; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import lombok.EqualsAndHashCode; + +import javax.validation.constraints.NotBlank; +import java.time.LocalDateTime; + +/** + * app 社交账号登录 + */ +@Data +@ApiModel(value = "第三方账号信息") +@EqualsAndHashCode(callSuper = true) +public class AppSocialDetails extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主鍵 + */ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "主键") + private Long id; + + /** + * 类型 + */ + @NotBlank(message = "类型不能为空") + @ApiModelProperty(value = "账号类型") + private String type; + + /** + * 描述 + */ + @ApiModelProperty(value = "描述") + private String remark; + + /** + * appid + */ + @Sensitive(prefixNoMaskLen = 4, suffixNoMaskLen = 4) + @NotBlank(message = "账号不能为空") + @ApiModelProperty(value = "appId") + private String appId; + + /** + * app_secret + */ + @Sensitive(prefixNoMaskLen = 9, suffixNoMaskLen = 9) + @NotBlank(message = "密钥不能为空", groups = { ValidGroup.Insert.class }) + @ApiModelProperty(value = "app secret") + private String appSecret; + + /** + * 回调地址 + */ + @ApiModelProperty(value = "回调地址") + private String redirectUrl; + + /** + * 拓展字段 + */ + @ApiModelProperty(value = "拓展字段") + private String ext; + + /** + * 创建人 + */ + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "创建人") + private String createBy; + + /** + * 修改人 + */ + @TableField(fill = FieldFill.UPDATE) + @ApiModelProperty(value = "修改人") + private String updateBy; + + /** + * 创建时间 + */ + @ApiModelProperty(value = "创建时间") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + /** + * 更新时间 + */ + @ApiModelProperty(value = "更新时间") + @TableField(fill = FieldFill.UPDATE) + private LocalDateTime updateTime; + + /** + * 删除标记 + */ + @TableLogic + @TableField(fill = FieldFill.INSERT) + @ApiModelProperty(value = "删除标记,1:已删除,0:正常") + private String delFlag; + +} diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java index 715dfc8a8..401512a8b 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/entity/AppUser.java @@ -151,4 +151,10 @@ public class AppUser extends Model { @ApiModelProperty(value = "锁定标记") private String lockFlag; + /** + * 微信小程序登录openId + */ + @ApiModelProperty(value = "微信小程序登录openId") + private String wxOpenid; + } diff --git a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/feign/RemoteAppUserService.java b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/feign/RemoteAppUserService.java index 9e2bbf3ec..5b4744ba9 100644 --- a/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/feign/RemoteAppUserService.java +++ b/pigx-app-server/pigx-app-server-api/src/main/java/com/pig4cloud/pigx/app/api/feign/RemoteAppUserService.java @@ -51,7 +51,7 @@ public interface RemoteAppUserService { * @param from 调用标志 * @return */ - @GetMapping("/appuser/social/info/{inStr}") + @GetMapping("/social/info/{inStr}") R social(@PathVariable("inStr") String inStr, @RequestHeader(SecurityConstants.FROM) String from); /** diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppSocialDetailsController.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppSocialDetailsController.java new file mode 100644 index 000000000..e7b857d8c --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/AppSocialDetailsController.java @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.controller; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.pig4cloud.pigx.app.api.entity.AppSocialDetails; +import com.pig4cloud.pigx.app.service.AppSocialDetailsService; +import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.core.util.ValidGroup; +import com.pig4cloud.pigx.common.log.annotation.SysLog; +import com.pig4cloud.pigx.common.security.annotation.Inner; +import io.swagger.annotations.Api; +import lombok.AllArgsConstructor; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.validation.Valid; + +@RestController +@RequestMapping("/social") +@AllArgsConstructor +@Api(value = "social", tags = "三方账号管理模块") +public class AppSocialDetailsController { + + private final AppSocialDetailsService appSocialDetailsService; + + /** + * 社交登录账户简单分页查询 + * @param page 分页对象 + * @param appSocialDetails 社交登录 + * @return + */ + @GetMapping("/page") + public R getSocialDetailsPage(Page page, AppSocialDetails appSocialDetails) { + return R.ok(appSocialDetailsService.page(page, Wrappers.query(appSocialDetails))); + } + + /** + * 信息 + * @param type 类型 + * @return R + */ + @GetMapping("/{type}") + public R getByType(@PathVariable("type") String type) { + return R.ok(appSocialDetailsService + .list(Wrappers.lambdaQuery().eq(AppSocialDetails::getType, type))); + } + + /** + * 保存 + * @param appSocialDetails + * @return R + */ + @SysLog("保存三方信息") + @PostMapping + @PreAuthorize("@pms.hasPermission('app_social_details_add')") + public R save(@Valid @RequestBody AppSocialDetails appSocialDetails) { + return R.ok(appSocialDetailsService.save(appSocialDetails)); + } + + /** + * 修改 + * @param appSocialDetails + * @return R + */ + @SysLog("修改三方信息") + @PutMapping + @PreAuthorize("@pms.hasPermission('app_social_details_edit')") + public R updateById(@Validated({ ValidGroup.Update.class }) @RequestBody AppSocialDetails appSocialDetails) { + appSocialDetailsService.updateById(appSocialDetails); + return R.ok(Boolean.TRUE); + } + + /** + * 删除 + * @param id + * @return R + */ + @SysLog("删除三方信息") + @DeleteMapping("/{id}") + @PreAuthorize("@pms.hasPermission('app_social_details_del')") + public R removeById(@PathVariable Long id) { + return R.ok(appSocialDetailsService.removeById(id)); + } + + /** + * 通过社交账号、手机号查询用户、角色信息 + * @param inStr appid@code + * @return + */ + @Inner + @GetMapping("/info/{inStr}") + public R getUserInfo(@PathVariable String inStr) { + return R.ok(appSocialDetailsService.getUserInfo(inStr)); + } + + /** + * 绑定社交账号 + * @param state 类型 + * @param code code + * @return + */ + @PostMapping("/bind") + public R bindSocial(String state, String code) { + return R.ok(appSocialDetailsService.bindSocial(state, code)); + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/MobileController.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/MobileController.java new file mode 100644 index 000000000..771554a71 --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/controller/MobileController.java @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.controller; + +import com.pig4cloud.pigx.app.service.MobileService; +import com.pig4cloud.pigx.common.core.util.R; +import com.pig4cloud.pigx.common.security.annotation.Inner; +import io.swagger.annotations.Api; +import lombok.AllArgsConstructor; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author lengleng + * @date 2018/11/14 + *

+ * 手机验证码 + */ +@RestController +@AllArgsConstructor +@RequestMapping("/mobile") +@Api(value = "mobile", tags = "手机管理模块") +public class MobileController { + + private final MobileService mobileService; + + @Inner(value = false) + @GetMapping("/{mobile}") + public R sendSmsCode(@PathVariable String mobile) { + return mobileService.sendSmsCode(mobile); + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/AbstractLoginHandler.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/AbstractLoginHandler.java new file mode 100644 index 000000000..84c07a1e1 --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/AbstractLoginHandler.java @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.handler; + +import com.pig4cloud.pigx.admin.api.dto.UserInfo; +import com.pig4cloud.pigx.app.api.dto.AppUserInfo; + +/** + * @author lengleng + * @date 2018/11/18 + */ +public abstract class AbstractLoginHandler implements LoginHandler { + + /*** + * 数据合法性校验 + * @param loginStr 通过用户传入获取唯一标识 + * @return 默认不校验 + */ + @Override + public Boolean check(String loginStr) { + return true; + } + + /** + * 处理方法 + * @param loginStr 登录参数 + * @return + */ + @Override + public AppUserInfo handle(String loginStr) { + if (!check(loginStr)) { + return null; + } + + String identify = identify(loginStr); + return info(identify); + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/LoginHandler.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/LoginHandler.java new file mode 100644 index 000000000..654294559 --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/LoginHandler.java @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.handler; + +import com.pig4cloud.pigx.admin.api.dto.UserInfo; +import com.pig4cloud.pigx.admin.api.entity.SysUser; +import com.pig4cloud.pigx.app.api.dto.AppUserInfo; +import com.pig4cloud.pigx.app.api.entity.AppUser; + +/** + * @author lengleng + * @date 2018/11/18 + *

+ * 登录处理器 + */ +public interface LoginHandler { + + /*** + * 数据合法性校验 + * @param loginStr 通过用户传入获取唯一标识 + * @return + */ + Boolean check(String loginStr); + + /** + * 通过用户传入获取唯一标识 + * @param loginStr + * @return + */ + String identify(String loginStr); + + /** + * 通过openId 获取用户信息 + * @param identify + * @return + */ + AppUserInfo info(String identify); + + /** + * 处理方法 + * @param loginStr 登录参数 + * @return + */ + AppUserInfo handle(String loginStr); + + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + default Boolean bind(AppUser user, String identify) { + return false; + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/MiniAppLoginHandler.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/MiniAppLoginHandler.java new file mode 100644 index 000000000..8c15691a1 --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/MiniAppLoginHandler.java @@ -0,0 +1,101 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.handler; + +import cn.hutool.http.HttpUtil; +import cn.hutool.json.JSONUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pig4cloud.pigx.app.api.dto.AppUserInfo; +import com.pig4cloud.pigx.app.api.entity.AppSocialDetails; +import com.pig4cloud.pigx.app.api.entity.AppUser; +import com.pig4cloud.pigx.app.mapper.AppSocialDetailsMapper; +import com.pig4cloud.pigx.app.service.AppUserService; +import com.pig4cloud.pigx.common.core.constant.SecurityConstants; +import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author lengleng + * @date 2019年11月02日 + *

+ * 微信小程序 + */ +@Slf4j +@Component("MINI") +@AllArgsConstructor +public class MiniAppLoginHandler extends AbstractLoginHandler { + + private final AppUserService appUserService; + + private final AppSocialDetailsMapper appSocialDetailsMapper; + + /** + * 小程序登录传入code + *

+ * 通过code 调用qq 获取唯一标识 + * @param code + * @return + */ + @Override + public String identify(String code) { + AppSocialDetails condition = new AppSocialDetails(); + condition.setType(LoginTypeEnum.MINI_APP.getType()); + AppSocialDetails socialDetails = appSocialDetailsMapper.selectOne(new QueryWrapper<>(condition)); + + String url = String.format(SecurityConstants.MINI_APP_AUTHORIZATION_CODE_URL, socialDetails.getAppId(), + socialDetails.getAppSecret(), code); + String result = HttpUtil.get(url); + log.debug("微信小程序响应报文:{}", result); + + Object obj = JSONUtil.parseObj(result).get("openid"); + return obj.toString(); + } + + /** + * openId 获取用户信息 + * @param openId + * @return + */ + @Override + public AppUserInfo info(String openId) { + AppUser user = appUserService.getOne(Wrappers.query().lambda().eq(AppUser::getWxOpenid, openId)); + + if (user == null) { + log.info("微信小程序未绑定:{}", openId); + return null; + } + return appUserService.findUserInfo(user); + } + + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(AppUser user, String identify) { + user.setWxOpenid(identify); + appUserService.updateById(user); + return true; + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/SmsLoginHandler.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/SmsLoginHandler.java new file mode 100644 index 000000000..0e56a5e86 --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/handler/SmsLoginHandler.java @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.handler; + +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pig4cloud.pigx.app.api.dto.AppUserInfo; +import com.pig4cloud.pigx.app.api.entity.AppUser; +import com.pig4cloud.pigx.app.service.AppUserService; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Component; + +/** + * @author lengleng + * @date 2018/11/18 + */ +@Slf4j +@Component("SMS") +@AllArgsConstructor +public class SmsLoginHandler extends AbstractLoginHandler { + + private final AppUserService appUserService; + + /** + * 验证码登录传入为手机号 不用不处理 + * @param mobile + * @return + */ + @Override + public String identify(String mobile) { + return mobile; + } + + /** + * 通过mobile 获取用户信息 + * @param identify + * @return + */ + @Override + public AppUserInfo info(String identify) { + AppUser user = appUserService.getOne(Wrappers.query().lambda().eq(AppUser::getPhone, identify)); + + if (user == null) { + log.info("手机号未注册:{}", identify); + return null; + } + return appUserService.findUserInfo(user); + } + + /** + * 绑定逻辑 + * @param user 用户实体 + * @param identify 渠道返回唯一标识 + * @return + */ + @Override + public Boolean bind(AppUser user, String identify) { + user.setPhone(identify); + appUserService.updateById(user); + return true; + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/mapper/AppSocialDetailsMapper.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/mapper/AppSocialDetailsMapper.java new file mode 100644 index 000000000..0dc07fa1d --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/mapper/AppSocialDetailsMapper.java @@ -0,0 +1,33 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.mapper; + +import com.pig4cloud.pigx.app.api.entity.AppSocialDetails; +import com.pig4cloud.pigx.common.data.datascope.PigxBaseMapper; +import org.apache.ibatis.annotations.Mapper; + +/** + * 系统社交登录账号表 + * + * @author lengleng + * @date 2018-08-16 21:30:41 + */ +@Mapper +public interface AppSocialDetailsMapper extends PigxBaseMapper { + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppSocialDetailsService.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppSocialDetailsService.java new file mode 100644 index 000000000..1302a3964 --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppSocialDetailsService.java @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.service; + +import com.baomidou.mybatisplus.extension.service.IService; +import com.pig4cloud.pigx.admin.api.dto.UserInfo; +import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; +import com.pig4cloud.pigx.app.api.dto.AppUserInfo; +import com.pig4cloud.pigx.app.api.entity.AppSocialDetails; + +/** + * 系统社交登录账号表 + * + * @author lengleng + * @date 2018-08-16 21:30:41 + */ +public interface AppSocialDetailsService extends IService { + + /** + * 绑定社交账号 + * @param state 类型 + * @param code code + * @return + */ + Boolean bindSocial(String state, String code); + + /** + * 根据入参查询用户信息 + * @param inStr + * @return + */ + AppUserInfo getUserInfo(String inStr); + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/MobileService.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/MobileService.java new file mode 100644 index 000000000..58d0b371e --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/MobileService.java @@ -0,0 +1,35 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.service; + +import com.pig4cloud.pigx.common.core.util.R; + +/** + * @author lengleng + * @date 2018/11/14 + */ +public interface MobileService { + + /** + * 发送手机验证码 + * @param mobile mobile + * @return code + */ + R sendSmsCode(String mobile); + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppSocialDetailsServiceImpl.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppSocialDetailsServiceImpl.java new file mode 100644 index 000000000..8a9bbf3af --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppSocialDetailsServiceImpl.java @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.service.impl; + +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.pig4cloud.pigx.app.api.dto.AppUserInfo; +import com.pig4cloud.pigx.app.api.entity.AppSocialDetails; +import com.pig4cloud.pigx.app.api.entity.AppUser; +import com.pig4cloud.pigx.app.handler.LoginHandler; +import com.pig4cloud.pigx.app.mapper.AppSocialDetailsMapper; +import com.pig4cloud.pigx.app.mapper.AppUserMapper; +import com.pig4cloud.pigx.app.service.AppSocialDetailsService; +import com.pig4cloud.pigx.common.core.constant.CacheConstants; +import com.pig4cloud.pigx.common.security.util.SecurityUtils; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.cache.CacheManager; +import org.springframework.stereotype.Service; + +import java.util.Map; + +/** + * @author lengleng + * @date 2018年08月16日 + */ +@Slf4j +@AllArgsConstructor +@Service("sysSocialDetailsService") +public class AppSocialDetailsServiceImpl extends ServiceImpl + implements AppSocialDetailsService { + + private final Map loginHandlerMap; + + private final CacheManager cacheManager; + + private final AppUserMapper appUserMapper; + + /** + * 绑定社交账号 + * @param type type + * @param code code + * @return + */ + @Override + public Boolean bindSocial(String type, String code) { + LoginHandler loginHandler = loginHandlerMap.get(type); + // 绑定逻辑 + String identify = loginHandler.identify(code); + AppUser user = appUserMapper.selectById(SecurityUtils.getUser().getId()); + loginHandler.bind(user, identify); + + // 更新緩存 + cacheManager.getCache(CacheConstants.USER_DETAILS_MINI).evict(user.getUsername()); + return Boolean.TRUE; + } + + /** + * 根据入参查询用户信息 + * @param inStr TYPE@code + * @return + */ + @Override + public AppUserInfo getUserInfo(String inStr) { + String[] inStrs = inStr.split(StringPool.AT); + String type = inStrs[0]; + String loginStr = inStr.substring(type.length() + 1); + return loginHandlerMap.get(type).handle(loginStr); + } + +} diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/MobileServiceImpl.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/MobileServiceImpl.java new file mode 100644 index 000000000..c86225e7e --- /dev/null +++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/MobileServiceImpl.java @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2018-2025, lengleng All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, + * this list of conditions and the following disclaimer. + * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * Neither the name of the pig4cloud.com developer nor the names of its + * contributors may be used to endorse or promote products derived from + * this software without specific prior written permission. + * Author: lengleng (wangiegie@gmail.com) + */ + +package com.pig4cloud.pigx.app.service.impl; + +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.RandomUtil; +import com.baomidou.mybatisplus.core.toolkit.StringPool; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; +import com.pig4cloud.pigx.app.api.entity.AppUser; +import com.pig4cloud.pigx.app.mapper.AppUserMapper; +import com.pig4cloud.pigx.app.service.MobileService; +import com.pig4cloud.pigx.common.core.constant.CacheConstants; +import com.pig4cloud.pigx.common.core.constant.SecurityConstants; +import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum; +import com.pig4cloud.pigx.common.core.exception.ErrorCodes; +import com.pig4cloud.pigx.common.core.util.MsgUtils; +import com.pig4cloud.pigx.common.core.util.R; +import lombok.AllArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.stereotype.Service; + +import java.util.List; +import java.util.concurrent.TimeUnit; + +/** + * @author lengleng + * @date 2018/11/14 + *

+ * 手机登录相关业务实现 + */ +@Slf4j +@Service +@AllArgsConstructor +public class MobileServiceImpl implements MobileService { + + private final RedisTemplate redisTemplate; + + private final AppUserMapper userMapper; + + /** + * 发送手机验证码 TODO: 调用短信网关发送验证码,测试返回前端 + * @param mobile mobile + * @return code + */ + @Override + public R sendSmsCode(String mobile) { + List userList = userMapper + .selectList(Wrappers.query().lambda().eq(AppUser::getPhone, mobile)); + + if (CollUtil.isEmpty(userList)) { + log.info("手机号未注册:{}", mobile); + return R.ok(Boolean.FALSE, MsgUtils.getMessage(ErrorCodes.SYS_APP_PHONE_UNREGISTERED, mobile)); + } + + Object codeObj = redisTemplate.opsForValue() + .get(CacheConstants.DEFAULT_CODE_KEY + LoginTypeEnum.SMS.getType() + StringPool.AT + mobile); + + if (codeObj != null) { + log.info("手机号验证码未过期:{},{}", mobile, codeObj); + return R.ok(Boolean.FALSE, MsgUtils.getMessage(ErrorCodes.SYS_APP_SMS_OFTEN)); + } + + String code = RandomUtil.randomNumbers(Integer.parseInt(SecurityConstants.CODE_SIZE)); + log.debug("手机号生成验证码成功:{},{}", mobile, code); + redisTemplate.opsForValue().set( + CacheConstants.DEFAULT_CODE_KEY + LoginTypeEnum.SMS.getType() + StringPool.AT + mobile, code, + SecurityConstants.CODE_TIME, TimeUnit.SECONDS); + return R.ok(Boolean.TRUE, code); + } + +} diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobildAppUserDetailsServiceImpl.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobildAppUserDetailsServiceImpl.java index a8e63a62f..f767e13ca 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobildAppUserDetailsServiceImpl.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobildAppUserDetailsServiceImpl.java @@ -59,7 +59,7 @@ public class PigxMobildAppUserDetailsServiceImpl implements PigxUserDetailsServi /** * 用户密码登录 - * @param username 用户密码登录 + * @param phone 用户密码登录 * @return */ @Override @@ -79,15 +79,12 @@ public class PigxMobildAppUserDetailsServiceImpl implements PigxUserDetailsServi @Override public UserDetails loadUserByUser(PigxUser pigxUser) { - return pigxAppUserDetailsServiceImpl.loadUserByUsername(pigxUser.getUsername()); + return pigxUser; } UserDetails getUserDetailsAppUser(R result) { // @formatter:off - return RetOps.of(result) - .getData() - .map(this::convertUserDetailsAppUser) - .orElseThrow(() -> new UsernameNotFoundException("用户不存在")); + return RetOps.of(result).getData().map(this::convertUserDetailsAppUser).orElseThrow(() -> new UsernameNotFoundException("用户不存在")); // @formatter:on } @@ -118,7 +115,7 @@ public class PigxMobildAppUserDetailsServiceImpl implements PigxUserDetailsServi @Override public int getOrder() { - return 10; + return 15; } /** diff --git a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobileUserDetailServiceImpl.java b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobileUserDetailServiceImpl.java index c89481e86..546c440a8 100644 --- a/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobileUserDetailServiceImpl.java +++ b/pigx-common/pigx-common-security/src/main/java/com/pig4cloud/pigx/common/security/service/PigxMobileUserDetailServiceImpl.java @@ -12,6 +12,7 @@ import org.springframework.cache.Cache; import org.springframework.cache.CacheManager; import org.springframework.security.core.userdetails.UserDetails; import org.springframework.security.core.userdetails.UserDetailsService; +import org.springframework.stereotype.Component; /** * @author aeizzz @@ -56,7 +57,7 @@ public class PigxMobileUserDetailServiceImpl implements PigxUserDetailsService { */ @Override public boolean support(String clientId, String grantType) { - return SecurityConstants.GRANT_MOBILE.equals(grantType) && !SecurityConstants.CLIENT_MINI.equals(clientId); + return SecurityConstants.GRANT_MOBILE.equals(grantType); } } diff --git a/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories b/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories index 9d9a8eda7..9b1c810c1 100644 --- a/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories +++ b/pigx-common/pigx-common-security/src/main/resources/META-INF/spring.factories @@ -3,6 +3,8 @@ org.springframework.boot.autoconfigure.EnableAutoConfiguration=\ com.pig4cloud.pigx.common.security.component.PigxSecurityInnerAspect,\ com.pig4cloud.pigx.common.security.service.PigxDefaultUserDetailsServiceImpl,\ com.pig4cloud.pigx.common.security.service.PigxAppUserDetailsServiceImpl,\ + com.pig4cloud.pigx.common.security.service.PigxMobileUserDetailServiceImpl,\ + com.pig4cloud.pigx.common.security.service.PigxMobildAppUserDetailsServiceImpl,\ com.pig4cloud.pigx.common.security.service.PigxClientDetailsServiceImpl,\ com.pig4cloud.pigx.common.security.component.PigxSecurityCommonAutoConfiguration,\ com.pig4cloud.pigx.common.security.component.PigxSecurityMessageSourceConfiguration,\ diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/AbstractLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/AbstractLoginHandler.java similarity index 96% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/AbstractLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/AbstractLoginHandler.java index f11ba6efd..95da51772 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/AbstractLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/AbstractLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import com.pig4cloud.pigx.admin.api.dto.UserInfo; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/CasLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/CasLoginHandler.java index 6c7241be5..16bad8e2a 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/CasLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/CasLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/GiteeLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/GiteeLoginHandler.java index 150f1f58f..f1ba2982c 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/GiteeLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/GiteeLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import cn.hutool.core.util.URLUtil; import cn.hutool.http.HttpUtil; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/LoginHandler.java similarity index 96% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/LoginHandler.java index 51dfd8703..b2274f804 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/LoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/LoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import com.pig4cloud.pigx.admin.api.dto.UserInfo; import com.pig4cloud.pigx.admin.api.entity.SysUser; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/MiniAppLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/MiniAppLoginHandler.java index b29127eba..bad651968 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/MiniAppLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/MiniAppLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/OscChinaLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/OscChinaLoginHandler.java index 4e450bb9f..b8aa2b27e 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/OscChinaLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/OscChinaLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/SmsLoginHandler.java similarity index 97% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/SmsLoginHandler.java index 19deb1898..8061d4894 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/SmsLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/SmsLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.pig4cloud.pigx.admin.api.dto.UserInfo; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/TencentLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/TencentLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/TencentLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/TencentLoginHandler.java index 19ea6ec29..6a00c6625 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/TencentLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/TencentLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/WeChatLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/WeChatLoginHandler.java index c661f0d42..5bc434746 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WeChatLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/WeChatLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONUtil; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WxCpLoginHandler.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/WxCpLoginHandler.java similarity index 98% rename from pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WxCpLoginHandler.java rename to pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/WxCpLoginHandler.java index bd27156a9..703710d01 100644 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/handler/WxCpLoginHandler.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/controller/handler/WxCpLoginHandler.java @@ -15,7 +15,7 @@ * Author: lengleng (wangiegie@gmail.com) */ -package com.pig4cloud.pigx.admin.handler; +package com.pig4cloud.pigx.admin.controller.handler; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.pig4cloud.pigx.admin.api.dto.UserInfo; diff --git a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java index d50b54b09..02f41e4ea 100755 --- a/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java +++ b/pigx-upms/pigx-upms-biz/src/main/java/com/pig4cloud/pigx/admin/service/impl/SysSocialDetailsServiceImpl.java @@ -22,7 +22,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.pig4cloud.pigx.admin.api.dto.UserInfo; import com.pig4cloud.pigx.admin.api.entity.SysSocialDetails; import com.pig4cloud.pigx.admin.api.entity.SysUser; -import com.pig4cloud.pigx.admin.handler.LoginHandler; +import com.pig4cloud.pigx.admin.controller.handler.LoginHandler; import com.pig4cloud.pigx.admin.mapper.SysSocialDetailsMapper; import com.pig4cloud.pigx.admin.mapper.SysUserMapper; import com.pig4cloud.pigx.admin.service.SysSocialDetailsService;