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
index b029cd34f..29bc6aeaa 100644
--- 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
@@ -28,10 +28,13 @@ 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 com.pig4cloud.pigx.common.core.exception.CheckedException;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import java.util.Objects;
+
/**
* @author lengleng
* @date 2019年11月02日
@@ -43,63 +46,77 @@ import org.springframework.stereotype.Component;
@AllArgsConstructor
public class MiniAppLoginHandler extends AbstractLoginHandler {
- private final AppUserService appUserService;
+ private final AppUserService appUserService;
- private final AppSocialDetailsMapper appSocialDetailsMapper;
+ 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));
+ /**
+ * 小程序登录传入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);
+ 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();
- }
+ if (JSONUtil.parseObj(result).containsKey("openid")) {
+ return JSONUtil.parseObj(result).get("openid").toString();
+ } else {
+ log.error("微信小程序登录失败:{}", result);
+ throw new CheckedException("微信小程序登录失败");
+ }
+ }
- /**
- * openId 获取用户信息
- * @param openId
- * @return
- */
- @Override
- public AppUserInfo info(String openId) {
- AppUser user = appUserService.getOne(Wrappers.query().lambda().eq(AppUser::getWxOpenid, openId));
+ /**
+ * 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 createAndSaveAppUserInfo(openId);
- }
- return appUserService.findUserInfo(user);
- }
+ // 未注册用户自动注册
+ if (Objects.isNull(user)) {
+ log.info("微信小程序未绑定:{},创建新的用户", openId);
+ AppUser appUser = new AppUser();
+ appUser.setWxOpenid(openId);
+ appUser.setUsername(openId);
+ appUser.setCreateBy(openId);
+ appUser.setUpdateBy(openId);
+ appUserService.saveOrUpdate(appUser);
- /**
- * 绑定逻辑
- * @param user 用户实体
- * @param identify 渠道返回唯一标识
- * @return
- */
- @Override
- public Boolean bind(AppUser user, String identify) {
- user.setWxOpenid(identify);
- appUserService.updateById(user);
- return true;
- }
+ AppUserInfo appUserDTO = new AppUserInfo();
+ appUserDTO.setAppUser(appUser);
+ return appUserDTO;
+ }
- private AppUserInfo createAndSaveAppUserInfo(String openId) {
- return appUserService.saveOrUpdateByLoginType(LoginTypeEnum.MINI_APP, openId);
- }
+ 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
index 380ff589a..321361bbf 100644
--- 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
@@ -20,12 +20,14 @@ 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.mapper.AppUserMapper;
import com.pig4cloud.pigx.app.service.AppUserService;
-import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum;
import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Component;
+import java.util.Objects;
+
/**
* @author lengleng
* @date 2018/11/18
@@ -56,21 +58,24 @@ public class SmsLoginHandler extends AbstractLoginHandler {
public AppUserInfo info(String identify) {
AppUser user = appUserService.getOne(Wrappers.query().lambda().eq(AppUser::getPhone, identify));
- if (user == null) {
+ // 未注册用户自动注册
+ if (Objects.isNull(user)) {
log.info("手机号未注册:{}", identify);
- return createAndSaveAppUserInfo(identify);
+ AppUser appUser = new AppUser();
+ appUser.setUsername(identify);
+ appUser.setPhone(identify);
+ appUser.setCreateBy(identify);
+ appUser.setUpdateBy(identify);
+ appUserService.save(appUser);
+ AppUserInfo appUserDTO = new AppUserInfo();
+ appUserDTO.setAppUser(appUser);
+ return appUserDTO;
}
+
+ // 返回用户信息
return appUserService.findUserInfo(user);
}
- /**
- * 创建并插入用户
- * @param identify
- * @return
- */
- private AppUserInfo createAndSaveAppUserInfo(String phone) {
- return appUserService.saveOrUpdateByLoginType(LoginTypeEnum.APPSMS, phone);
- }
/**
* 绑定逻辑
diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java
index 3f4b34ab6..6a8b6b745 100644
--- a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java
+++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/AppUserService.java
@@ -25,7 +25,6 @@ import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
import com.pig4cloud.pigx.app.api.entity.AppUser;
import com.pig4cloud.pigx.app.api.vo.AppUserExcelVO;
import com.pig4cloud.pigx.app.api.vo.AppUserVO;
-import com.pig4cloud.pigx.common.core.constant.enums.LoginTypeEnum;
import com.pig4cloud.pigx.common.core.util.R;
import org.springframework.validation.BindingResult;
@@ -39,26 +38,24 @@ import java.util.List;
*/
public interface AppUserService extends IService {
- Boolean updateUser(AppUserDTO appUser);
+ Boolean updateUser(AppUserDTO appUser);
- Boolean saveUser(AppUserDTO appUser);
+ Boolean saveUser(AppUserDTO appUser);
- List listUser(AppUserDTO appUser);
+ List listUser(AppUserDTO appUser);
- IPage getUsersWithRolePage(Page page, AppUserDTO appUserDTO);
+ IPage getUsersWithRolePage(Page page, AppUserDTO appUserDTO);
- AppUserInfo findUserInfo(AppUser user);
+ AppUserInfo findUserInfo(AppUser user);
- R updateUserInfo(AppUserDTO userDto);
+ R updateUserInfo(AppUserDTO userDto);
- AppUserVO selectUserVoById(Long userId);
+ AppUserVO selectUserVoById(Long userId);
- Boolean deleteAppUserByIds(Long[] ids);
+ Boolean deleteAppUserByIds(Long[] ids);
- R importUser(List excelVOList, BindingResult bindingResult);
+ R importUser(List excelVOList, BindingResult bindingResult);
- R registerAppUser(AppUserDTO appUser);
-
- AppUserInfo saveOrUpdateByLoginType(LoginTypeEnum loginType, String userName);
+ R registerAppUser(AppUserDTO appUser);
}
diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppArticleCollectServiceImpl.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppArticleCollectServiceImpl.java
index efa23e220..6121a8016 100644
--- a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppArticleCollectServiceImpl.java
+++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppArticleCollectServiceImpl.java
@@ -16,18 +16,21 @@ import org.springframework.stereotype.Service;
*/
@Service
public class AppArticleCollectServiceImpl extends ServiceImpl
- implements AppArticleCollectService {
+ implements AppArticleCollectService {
- @Override
- public Boolean saveArticleCollect(AppArticleCollectEntity appArticleCollect) {
- Long id = SecurityUtils.getUser().getId();
- appArticleCollect.setUserId(id);
+ @Override
+ public Boolean saveArticleCollect(AppArticleCollectEntity appArticleCollect) {
+ Long id = SecurityUtils.getUser().getId();
+ appArticleCollect.setUserId(id);
- this.saveOrUpdate(appArticleCollect,
- Wrappers.lambdaQuery().eq(AppArticleCollectEntity::getUserId, id)
- .eq(AppArticleCollectEntity::getArticleId, appArticleCollect.getArticleId()));
+ if (baseMapper.exists(Wrappers.lambdaQuery()
+ .eq(AppArticleCollectEntity::getUserId, id)
+ .eq(AppArticleCollectEntity::getArticleId, appArticleCollect.getArticleId()))) {
+ return Boolean.FALSE;
+ }
- return Boolean.TRUE;
- }
+ return this.save(appArticleCollect);
+
+ }
}
diff --git a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java
index 2b78605d6..e26822fb9 100644
--- a/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java
+++ b/pigx-app-server/pigx-app-server-biz/src/main/java/com/pig4cloud/pigx/app/service/impl/AppUserServiceImpl.java
@@ -24,7 +24,6 @@ import com.baomidou.mybatisplus.core.toolkit.StringPool;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.pig4cloud.pigx.admin.api.constant.UserStateEnum;
import com.pig4cloud.pigx.app.api.dto.AppUserDTO;
import com.pig4cloud.pigx.app.api.dto.AppUserInfo;
import com.pig4cloud.pigx.app.api.entity.AppRole;
@@ -160,7 +159,9 @@ public class AppUserServiceImpl extends ServiceImpl impl
AppUserInfo info = new AppUserInfo();
info.setAppUser(user);
// 设置角色列表 (ID)
- List roleIds = appRoleService.findRolesByUserId(user.getUserId()).stream().map(AppRole::getRoleId)
+ List roleIds = appRoleService.findRolesByUserId(user.getUserId())
+ .stream()
+ .map(AppRole::getRoleId)
.collect(Collectors.toList());
info.setRoles(ArrayUtil.toArray(roleIds, Long.class));
@@ -240,7 +241,7 @@ public class AppUserServiceImpl extends ServiceImpl impl
AppUser app = new AppUser();
BeanUtils.copyProperties(appUser, app);
appUser.setUsername(app.getPhone());
- appUser.setDelFlag(UserStateEnum.NORMAL.getCode());
+ appUser.setDelFlag(CommonConstants.STATUS_NORMAL);
appUser.setPassword(ENCODER.encode(appUser.getPassword()));
baseMapper.insert(appUser);
return null;
@@ -314,30 +315,4 @@ public class AppUserServiceImpl extends ServiceImpl impl
this.saveUser(userDTO);
}
- @Override
- public AppUserInfo saveOrUpdateByLoginType(LoginTypeEnum loginType, String userName) {
- // 创建Entity对象
- AppUser appUser = new AppUser();
- appUser.setUsername(userName);
- appUser.setCreateBy(userName);
- appUser.setUpdateBy(userName);
- // 根据登陆类型赋值,并执行saveOrUpdate方法
- switch (loginType) {
- case APPSMS:
- appUser.setPhone(userName);
- this.saveOrUpdate(appUser, Wrappers.lambdaQuery().eq(AppUser::getPhone, userName));
- break;
- case MINI_APP:
- appUser.setWxOpenid(userName);
- this.saveOrUpdate(appUser, Wrappers.lambdaQuery().eq(AppUser::getUsername, userName));
- break;
- default:
- break;
- }
- // 返回封装DTO
- AppUserInfo appUserDTO = new AppUserInfo();
- appUserDTO.setAppUser(appUser);
- return appUserDTO;
- }
-
}
diff --git a/pigx-common/pigx-common-bom/pom.xml b/pigx-common/pigx-common-bom/pom.xml
index e1c4f4833..90a48c896 100644
--- a/pigx-common/pigx-common-bom/pom.xml
+++ b/pigx-common/pigx-common-bom/pom.xml
@@ -18,11 +18,11 @@
5.6.0
- 3.5.7
- 1.4.13
+ 3.5.9
+ 1.5.2
4.3.1
1.2.20
- 5.8.31
+ 5.8.33
8.0.33
21.3.0.0
8.4.1.jre8
@@ -216,18 +216,6 @@
seata-serializer-kryo
${seata.version}
-
-