提交 8f53065c 编写于 作者: rushui.chen's avatar rushui.chen

20190830 微信相关接口

上级 1870db71
流水线 #13835 已失败 于阶段
in 1 second
...@@ -13,6 +13,7 @@ import com.pica.cloud.account.account.server.util.AccountUtils; ...@@ -13,6 +13,7 @@ import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil; import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.StringUtil;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
...@@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController; ...@@ -25,7 +26,7 @@ import org.springframework.web.bind.annotation.RestController;
import java.util.Date; import java.util.Date;
@Api("登录资源") @Api(description = "登录资源")
@RestController @RestController
public class LoginController extends AccountBaseController { public class LoginController extends AccountBaseController {
...@@ -80,6 +81,17 @@ public class LoginController extends AccountBaseController { ...@@ -80,6 +81,17 @@ public class LoginController extends AccountBaseController {
return PicaResponse.toResponse(json); return PicaResponse.toResponse(json);
} }
@ApiOperation("微信登录接口")
@PostMapping(value = "/login/wechat")
public PicaResponse loginByWeChat(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setProductType(super.getProductType());
request.setSourceType(super.getSourceType());
request.setLoginIp(super.getIpAddr());
String result = loginService.loginByWeChat(request);
return PicaResponse.toResponse(result);
}
/** /**
* 退出登录接口 * 退出登录接口
* *
...@@ -114,4 +126,35 @@ public class LoginController extends AccountBaseController { ...@@ -114,4 +126,35 @@ public class LoginController extends AccountBaseController {
} }
return null; return null;
} }
/**
* 绑定微信接口
*
* @param entity
* @return
* @throws Exception
*/
@ApiOperation("绑定微信接口")
@PostMapping("/login/wechat/bind")
public PicaResponse<String> bindWeChat(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
String weChatCode = request.getWeChatCode();
request.setProductType(super.getProductType());
// TODO: 2019/8/29 绑定微信接口
return null;
}
@ApiOperation("微信解除绑定接口")
@PostMapping("/login/wechat/unbind")
public PicaResponse unbindWeChat(@RequestBody EncryptEntity entity) throws Exception {
String token = super.getToken();
if (!StringUtil.isEmpty(redisClient.get(token))) {
//说明用户登录状态,//联合登录表中
loginService.unbindWeChat(super.getAcctId());
}
return PicaResponse.toResponse();
}
} }
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.AccountUser;
import com.pica.cloud.account.account.server.entity.EncryptEntity; import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.enums.EnumsType; import com.pica.cloud.account.account.server.enums.EnumsType;
import com.pica.cloud.account.account.server.enums.ExceptionType;
import com.pica.cloud.account.account.server.req.BaseRequest; import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.ModifyMobileService; import com.pica.cloud.account.account.server.service.ModifyMobileService;
import com.pica.cloud.account.account.server.util.AccountUtils; import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil; import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.sun.javafx.scene.control.skin.TableHeaderRow;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api("修改手机号资源") @Api(description="修改手机号资源")
@RestController @RestController
public class ModifyMobileController extends AccountBaseController { public class ModifyMobileController extends AccountBaseController {
...@@ -32,21 +27,13 @@ public class ModifyMobileController extends AccountBaseController { ...@@ -32,21 +27,13 @@ public class ModifyMobileController extends AccountBaseController {
@ApiOperation("修改手机号") @ApiOperation("修改手机号")
@PostMapping("/mobile/modify") @PostMapping("/mobile/modify")
public PicaResponse modifyMobile(@RequestBody EncryptEntity entity) throws Exception { public PicaResponse modifyMobile(@RequestBody EncryptEntity entity) throws Exception {
Integer acctId = null; Integer acctId = super.getAcctId();
try {
AccountUser accountUser = super.getAccountUser();
acctId = accountUser.getAcctId();
} catch (Exception e) {
e.printStackTrace();
throw new PicaException(ExceptionType.PICA_LOGIN_AGAIN.getCode(), ExceptionType.PICA_LOGIN_AGAIN.getMessage());
}
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class); BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
String mobile = request.getMobile(); String mobile = request.getMobile();
accountUtils.checkMobilePhone(mobile); accountUtils.checkMobilePhone(mobile);
accountUtils.checkAuthCode(mobile, EnumsType.SYSCODE_TYPE_MODIFY_MOBILE.getCode() + "", request.getSysCode()); accountUtils.checkAuthCode(mobile, EnumsType.SYSCODE_TYPE_MODIFY_MOBILE.getCode() + "", request.getSysCode());
modifyMobileService.modify(acctId, mobile); modifyMobileService.modify(acctId, mobile);
return PicaResponse.toResponse("修改成功"); return PicaResponse.toResponse();
} }
} }
...@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -19,7 +19,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api("密码资源") @Api(description = "密码资源")
@RestController @RestController
@RequestMapping("/password") @RequestMapping("/password")
public class PasswordController extends AccountBaseController { public class PasswordController extends AccountBaseController {
......
...@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -15,7 +15,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api("注册资源") @Api(description="注册资源")
@RestController @RestController
@RequestMapping("/register") @RequestMapping("/register")
public class RegisterController extends AccountBaseController { public class RegisterController extends AccountBaseController {
......
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.AccountInfoEntity; import com.pica.cloud.account.account.server.entity.AccountInfoEntity;
import com.pica.cloud.account.account.server.entity.AccountUnionEntity;
import com.pica.cloud.account.account.server.entity.EncryptEntity; import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.enums.EnumsType;
import com.pica.cloud.account.account.server.enums.ExceptionType;
import com.pica.cloud.account.account.server.mapper.AccountInfoDetailMapper; import com.pica.cloud.account.account.server.mapper.AccountInfoDetailMapper;
import com.pica.cloud.account.account.server.req.BaseRequest; import com.pica.cloud.account.account.server.req.BaseRequest;
import com.pica.cloud.account.account.server.service.AccountUnionService;
import com.pica.cloud.account.account.server.util.AccountUtils; import com.pica.cloud.account.account.server.util.AccountUtils;
import com.pica.cloud.account.account.server.util.CryptoUtil; import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaException;
import com.pica.cloud.foundation.entity.PicaResponse; import com.pica.cloud.foundation.entity.PicaResponse;
import com.pica.cloud.foundation.redis.ICacheClient; import com.pica.cloud.foundation.redis.ICacheClient;
import com.pica.cloud.foundation.utils.utils.CommonUtil; import com.pica.cloud.foundation.utils.utils.CommonUtil;
...@@ -19,7 +24,7 @@ import org.springframework.web.bind.annotation.RequestBody; ...@@ -19,7 +24,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api("短信验证码资源") @Api(description = "短信验证码资源")
@RestController @RestController
@RequestMapping(value = "/authCode") @RequestMapping(value = "/authCode")
public class SysCodeController extends AccountBaseController { public class SysCodeController extends AccountBaseController {
...@@ -29,6 +34,9 @@ public class SysCodeController extends AccountBaseController { ...@@ -29,6 +34,9 @@ public class SysCodeController extends AccountBaseController {
@Autowired @Autowired
private AccountInfoDetailMapper accountInfoDetailMapper; private AccountInfoDetailMapper accountInfoDetailMapper;
@Autowired
private AccountUnionService accountUnionService;
@Autowired @Autowired
@Qualifier("cacheMigrateClient") @Qualifier("cacheMigrateClient")
private ICacheClient cacheClient; private ICacheClient cacheClient;
...@@ -37,13 +45,28 @@ public class SysCodeController extends AccountBaseController { ...@@ -37,13 +45,28 @@ public class SysCodeController extends AccountBaseController {
@ApiOperation("获取短信验证码") @ApiOperation("获取短信验证码")
@PostMapping(value = "") @PostMapping(value = "")
public PicaResponse getSysCode(@RequestBody EncryptEntity entity) throws Exception { public PicaResponse getSysCode(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity,BaseRequest.class); BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setFlag(0); request.setFlag(0);
AccountUtils.checkMobilePhone(request.getMobile()); AccountUtils.checkMobilePhone(request.getMobile());
processSysCode(request.getMobile(), request.getFlag()); processSysCode(request.getMobile(), request.getFlag());
return PicaResponse.toResponse(); return PicaResponse.toResponse();
} }
@ApiOperation("微信获取验证码")
@PostMapping(value = "/authCode/wechat")
public PicaResponse getWChatSysCode(@RequestBody EncryptEntity entity) throws Exception {
BaseRequest request = CryptoUtil.decrypt(entity, BaseRequest.class);
request.setFlag(EnumsType.SYSCODE_TYPE_WE_CHAT.getCode());
AccountUtils.checkMobilePhone(request.getMobile());
AccountUnionEntity accountUnionEntity = accountUnionService.selectInfoByUnionId(request.getUnionId());
if (accountUnionEntity != null) {
processSysCode(request.getMobile(), request.getFlag());
return PicaResponse.toResponse();
}
throw new PicaException(ExceptionType.PICA_UNBIND_MOBILE.getCode(), ExceptionType.PICA_UNBIND_MOBILE.getMessage());
}
/** /**
* 验证码发送逻辑 * 验证码发送逻辑
* *
......
package com.pica.cloud.account.account.server.controller; package com.pica.cloud.account.account.server.controller;
import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity;
import com.pica.cloud.account.account.server.entity.EncryptEntity;
import com.pica.cloud.account.account.server.service.UserInfoService;
import com.pica.cloud.account.account.server.util.CryptoUtil;
import com.pica.cloud.foundation.entity.PicaResponse;
import io.swagger.annotations.Api; import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController; import org.springframework.web.bind.annotation.RestController;
@Api("用户信息资源") @Api(description = "用户信息资源")
@RestController @RestController
public class UserInfoController { public class UserInfoController extends AccountBaseController {
@Autowired
private UserInfoService userInfoService;
/**
* 获取用户信息接口
*
* @return
*/
@ApiOperation("获取用户信息接口")
@GetMapping(value = "/user/info")
public PicaResponse getUserInfo() {
Integer acctId = super.getAcctId();
AccountUserInfoEntity userInfo = userInfoService.getUserInfo(acctId);
return PicaResponse.toResponse(userInfo);
}
/**
* 修改用户信息接口
*
* @return
*/
@ApiOperation("修改用户信息")
@PutMapping(value = "/user/info")
public PicaResponse putUserInfo(@RequestBody EncryptEntity entity) throws Exception {
Integer acctId = super.getAcctId();
AccountUserInfoEntity request = CryptoUtil.decrypt(entity, AccountUserInfoEntity.class);
request.setAcctId(acctId);
userInfoService.updateUserInfo(request);
return PicaResponse.toResponse();
}
} }
package com.pica.cloud.account.account.server.entity;
public class WeChatEntity {
//用户唯一标识
private String openid;
//会话密钥
private String session_key;
//用户在开放平台的唯一标识符,在满足 UnionID 下发条件的情况下会返回,详见 UnionID 机制说明。
private String unionid;
//错误码
private String errcode;
// 错误信息
private String errmsg;
public String getOpenid() {
return openid;
}
public void setOpenid(String openid) {
this.openid = openid;
}
public String getSession_key() {
return session_key;
}
public void setSession_key(String session_key) {
this.session_key = session_key;
}
public String getUnionid() {
return unionid;
}
public void setUnionid(String unionid) {
this.unionid = unionid;
}
public String getErrcode() {
return errcode;
}
public void setErrcode(String errcode) {
this.errcode = errcode;
}
public String getErrmsg() {
return errmsg;
}
public void setErrmsg(String errmsg) {
this.errmsg = errmsg;
}
}
...@@ -36,11 +36,18 @@ public enum EnumsType { ...@@ -36,11 +36,18 @@ public enum EnumsType {
UNION_LOGIN_QQ(2, "QQ"), UNION_LOGIN_QQ(2, "QQ"),
union_login_blog(3, "微博"), union_login_blog(3, "微博"),
//微信绑定状态
BIND_STATUS_SUCCESS(1, "已绑定"),
BIND_STATUS_FAILURE(0, "未绑定"),
//日志类型枚举 //日志类型枚举
LOG_TYPE_LOGIN(1, "登录日志"), LOG_TYPE_LOGIN(1, "登录日志"),
LOG_TYPE_PASSWORD(2, "密码更新日志"), LOG_TYPE_PASSWORD(2, "密码更新日志"),
LOG_TYPE_USER_INFO(3, "用户信息更新日志"); LOG_TYPE_USER_INFO(3, "用户信息更新日志");
private int code; private int code;
private String type; private String type;
......
...@@ -14,7 +14,8 @@ public enum ExceptionType { ...@@ -14,7 +14,8 @@ public enum ExceptionType {
PICA_IMAGE_PASSWORD_ERROR("216511", "图形验证码错误"), PICA_IMAGE_PASSWORD_ERROR("216511", "图形验证码错误"),
PICA_LOGIN_AGAIN("216512", "请重新登录"), PICA_LOGIN_AGAIN("216512", "请重新登录"),
PICA_PASSWORD_NULL("216513", "密码不能为空"), PICA_PASSWORD_NULL("216513", "密码不能为空"),
PICA_PASSWORD_EQUAL("216514", "旧密码与新密码不能相同"); PICA_PASSWORD_EQUAL("216514", "旧密码与新密码不能相同"),
PICA_UNBIND_MOBILE("216515", "该手机号未绑定微信");
private String code; private String code;
......
...@@ -4,12 +4,13 @@ import org.springframework.stereotype.Component; ...@@ -4,12 +4,13 @@ import org.springframework.stereotype.Component;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
import java.util.concurrent.Future;
@Component @Component
public class PicaLogUtils { public class PicaLogUtils {
/** /**
* 开启一个线程池 * 线程池
*/ */
ExecutorService executor = Executors.newFixedThreadPool(30); ExecutorService executor = Executors.newFixedThreadPool(30);
......
...@@ -12,7 +12,17 @@ public interface AccountUnionMapper { ...@@ -12,7 +12,17 @@ public interface AccountUnionMapper {
AccountUnionEntity selectByPrimaryKey(Integer id); AccountUnionEntity selectByPrimaryKey(Integer id);
AccountUnionEntity selectByUnionId(String unionId);
int updateByPrimaryKeySelective(AccountUnionEntity record); int updateByPrimaryKeySelective(AccountUnionEntity record);
int updateByPrimaryKey(AccountUnionEntity record); int updateByPrimaryKey(AccountUnionEntity record);
/**
* 解除绑定关系
* @param acctId
* @return
*/
int updateUnbindByAcctId(Integer acctId);
} }
\ No newline at end of file
...@@ -4,28 +4,37 @@ package com.pica.cloud.account.account.server.mapper; ...@@ -4,28 +4,37 @@ package com.pica.cloud.account.account.server.mapper;
import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity; import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity;
public interface AccountUserInfoMapper { public interface AccountUserInfoMapper {
int deleteByPrimaryKey(Integer id);
int insert(AccountUserInfoEntity record);
int insertSelective(AccountUserInfoEntity record); int insertSelective(AccountUserInfoEntity record);
/** /**
* 通过用户id查询用户信息 * 通过userId查询居民信息
*
* @param id * @param id
* @return * @return
*/ */
AccountUserInfoEntity selectByPrimaryKey(Integer id); AccountUserInfoEntity selectByPrimaryKey(Integer id);
/** /**
* 通过账户id查询用户信息 * 通过账户id查询居民信息
* *
* @param acctId * @param acctId
* @return * @return
*/ */
AccountUserInfoEntity selectByAcctId(Integer acctId); AccountUserInfoEntity selectByAcctId(Integer acctId);
/**
* 更新居民信息接口
*
* @param record
* @return
*/
int updateByPrimaryKeySelective(AccountUserInfoEntity record); int updateByPrimaryKeySelective(AccountUserInfoEntity record);
int updateByPrimaryKey(AccountUserInfoEntity record); int updateByPrimaryKey(AccountUserInfoEntity record);
int deleteByPrimaryKey(Integer id);
int insert(AccountUserInfoEntity record);
} }
\ No newline at end of file
...@@ -19,6 +19,10 @@ public class BaseRequest { ...@@ -19,6 +19,10 @@ public class BaseRequest {
private int sourceType; private int sourceType;
@ApiModelProperty("登录ip") @ApiModelProperty("登录ip")
private String loginIp; private String loginIp;
@ApiModelProperty("联合id")
private String unionId;
@ApiModelProperty("微信code")
private String weChatCode;
public Integer getAccId() { public Integer getAccId() {
return accId; return accId;
...@@ -91,4 +95,20 @@ public class BaseRequest { ...@@ -91,4 +95,20 @@ public class BaseRequest {
public void setLoginIp(String loginIp) { public void setLoginIp(String loginIp) {
this.loginIp = loginIp; this.loginIp = loginIp;
} }
public String getUnionId() {
return unionId;
}
public void setUnionId(String unionId) {
this.unionId = unionId;
}
public String getWeChatCode() {
return weChatCode;
}
public void setWeChatCode(String weChatCode) {
this.weChatCode = weChatCode;
}
} }
package com.pica.cloud.account.account.server.service;
import com.pica.cloud.account.account.server.entity.AccountUnionEntity;
public interface AccountUnionService {
/**
* 通过unionId查询绑定信息
*
* @param unionId
* @return
*/
AccountUnionEntity selectInfoByUnionId(String unionId);
}
...@@ -4,7 +4,7 @@ import com.pica.cloud.account.account.server.req.BaseRequest; ...@@ -4,7 +4,7 @@ import com.pica.cloud.account.account.server.req.BaseRequest;
public interface LoginService { public interface LoginService {
/** /**
* 密码登功能 * 密码登功能
* *
* @param request * @param request
* @return * @return
...@@ -18,4 +18,20 @@ public interface LoginService { ...@@ -18,4 +18,20 @@ public interface LoginService {
* @return * @return
*/ */
String loginAndRegister(BaseRequest request); String loginAndRegister(BaseRequest request);
/**
* 微信登录
*
* @param baseRequest
*/
String loginByWeChat(BaseRequest baseRequest);
/**
* 解除绑定
*
* @param acctId
*/
void unbindWeChat(Integer acctId);
} }
...@@ -4,5 +4,20 @@ import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity; ...@@ -4,5 +4,20 @@ import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity;
public interface UserInfoService { public interface UserInfoService {
AccountUserInfoEntity insertUserInfo(AccountUserInfoEntity accountUserInfoEntity);
/**
* 更新用户信息接口
*
* @param accountUserInfoEntity
*/
void updateUserInfo(AccountUserInfoEntity accountUserInfoEntity);
/**
* 获取用户信息接口
*
* @param acctId
* @return
*/
AccountUserInfoEntity getUserInfo(Integer acctId);
} }
package com.pica.cloud.account.account.server.service.impl;
import com.pica.cloud.account.account.server.entity.AccountUnionEntity;
import com.pica.cloud.account.account.server.mapper.AccountUnionMapper;
import com.pica.cloud.account.account.server.service.AccountUnionService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AccountUnionServiceImpl implements AccountUnionService {
@Autowired
private AccountUnionMapper accountUnionMapper;
@Override
public AccountUnionEntity selectInfoByUnionId(String unionId) {
return accountUnionMapper.selectByUnionId(unionId);
}
}
package com.pica.cloud.account.account.server.service.impl; package com.pica.cloud.account.account.server.service.impl;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.pica.cloud.account.account.server.entity.Account; import com.pica.cloud.account.account.server.entity.*;
import com.pica.cloud.account.account.server.entity.AccountInfoEntity;
import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity;
import com.pica.cloud.account.account.server.entity.LogLoginEntity;
import com.pica.cloud.account.account.server.enums.EnumsType; import com.pica.cloud.account.account.server.enums.EnumsType;
import com.pica.cloud.account.account.server.enums.ExceptionType; import com.pica.cloud.account.account.server.enums.ExceptionType;
import com.pica.cloud.account.account.server.log.PicaLogUtils; import com.pica.cloud.account.account.server.log.PicaLogUtils;
import com.pica.cloud.account.account.server.mapper.AccountInfoDetailMapper; import com.pica.cloud.account.account.server.mapper.AccountInfoDetailMapper;
import com.pica.cloud.account.account.server.mapper.AccountUnionMapper;
import com.pica.cloud.account.account.server.mapper.AccountUserInfoMapper; import com.pica.cloud.account.account.server.mapper.AccountUserInfoMapper;
import com.pica.cloud.account.account.server.req.AccountReq; import com.pica.cloud.account.account.server.req.AccountReq;
import com.pica.cloud.account.account.server.req.BaseRequest; import com.pica.cloud.account.account.server.req.BaseRequest;
...@@ -39,6 +37,8 @@ public class LoginServiceImpl implements LoginService { ...@@ -39,6 +37,8 @@ public class LoginServiceImpl implements LoginService {
@Autowired @Autowired
private AccountUserInfoMapper accountUserInfoMapper; private AccountUserInfoMapper accountUserInfoMapper;
@Autowired
private AccountUnionMapper accountUnionMapper;
@Autowired @Autowired
private PicaLogUtils picaLogUtils; private PicaLogUtils picaLogUtils;
...@@ -151,6 +151,47 @@ public class LoginServiceImpl implements LoginService { ...@@ -151,6 +151,47 @@ public class LoginServiceImpl implements LoginService {
} }
} }
@Override
public String loginByWeChat(BaseRequest request) {
//todo:微信登录获取信息
WeChatEntity weChatEntity = null;
String unionId = weChatEntity.getUnionid();
//账号逻辑处理
Date currentTime = new Date();
AccountInfoEntity entity = new AccountInfoEntity();
entity.setCreatedTime(currentTime);
entity.setCreatedId(0);
entity.setModifiedId(0);
entity.setModifiedTime(currentTime);
entity.setRegTime(currentTime);
entity.setDeleteFlag(1);
entity.setSex(0);
entity.setRegisterProduct(request.getProductType());
entity.setRegisterSource(request.getSourceType());
accountInfoDetailMapper.insertSelective(entity);
Integer acctId = entity.getId();
//联合登录逻辑的处理
AccountUnionEntity accountUnionEntity = new AccountUnionEntity();
accountUnionEntity.setAcctId(acctId.longValue());
accountUnionEntity.setCreatedId(acctId);
accountUnionEntity.setModifiedId(acctId);
accountUnionEntity.setUnionId(unionId);
accountUnionEntity.setUnionType(EnumsType.UNION_LOGIN_WE_CHAT.getCode());
accountUnionEntity.setModifiedTime(currentTime);
accountUnionEntity.setCreatedTime(currentTime);
accountUnionMapper.insertSelective(accountUnionEntity);
JSONObject jsonObject = new JSONObject();
jsonObject.put("bindFlag", EnumsType.BIND_STATUS_FAILURE.getCode());
jsonObject.put("unionId", unionId);
return jsonObject.toJSONString();
}
@Override
public void unbindWeChat(Integer acctId) {
accountUnionMapper.updateUnbindByAcctId(acctId);
}
//校验验证码 //校验验证码
private void checkAuthCode(AccountReq req) { private void checkAuthCode(AccountReq req) {
String flag = StringUtils.isBlank(req.getFlag()) ? "0" : req.getFlag(); String flag = StringUtils.isBlank(req.getFlag()) ? "0" : req.getFlag();
......
package com.pica.cloud.account.account.server.service.impl; package com.pica.cloud.account.account.server.service.impl;
import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity; import com.pica.cloud.account.account.server.entity.AccountUserInfoEntity;
import com.pica.cloud.account.account.server.mapper.AccountUserInfoMapper;
import com.pica.cloud.account.account.server.service.UserInfoService; import com.pica.cloud.account.account.server.service.UserInfoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.Date;
@Service @Service
public class UserInfoServerImpl implements UserInfoService { public class UserInfoServerImpl implements UserInfoService {
@Autowired
private AccountUserInfoMapper accountUserInfoMapper;
@Override @Override
public AccountUserInfoEntity insertUserInfo(AccountUserInfoEntity accountUserInfoEntity) { public void updateUserInfo(AccountUserInfoEntity accountUserInfoEntity) {
return null; accountUserInfoEntity.setModifyTime(new Date());
accountUserInfoEntity.setModifyId(accountUserInfoEntity.getAcctId());
accountUserInfoMapper.updateByPrimaryKeySelective(accountUserInfoEntity);
}
// @Override
public AccountUserInfoEntity getUserInfo(Integer acctId) {
return accountUserInfoMapper.selectByAcctId(acctId);
} }
} }
...@@ -55,14 +55,14 @@ public class CryptoUtil { ...@@ -55,14 +55,14 @@ public class CryptoUtil {
* @return * @return
* @throws Exception * @throws Exception
*/ */
public static BaseRequest decrypt(EncryptEntity encryptEntity,Class zClass) throws Exception { public static <T> T decrypt(EncryptEntity encryptEntity, Class<T> zClass) throws Exception {
// TODO: 2019/8/27 : 暂时不处理这一块的逻辑 // TODO: 2019/8/27 : 暂时不处理这一块的逻辑
//获取解密密钥 //获取解密密钥
//String decryptKey = RSAUtil.decrypt(encryptEntity.getKey()); //String decryptKey = RSAUtil.decrypt(encryptEntity.getKey());
//解密数据 //解密数据
//String content = AESUtil.decrypt(decryptKey, encryptEntity.getContent()); //String content = AESUtil.decrypt(decryptKey, encryptEntity.getContent());
//反序列化成对象 //反序列化成对象
BaseRequest request = (BaseRequest) JSONObject.parseObject(encryptEntity.getContent(),zClass); T request = JSONObject.parseObject(encryptEntity.getContent(), zClass);
return request; return request;
} }
......
package com.pica.cloud.account.account.server.util;
public class PicaAccountException extends RuntimeException {
}
...@@ -41,7 +41,7 @@ ...@@ -41,7 +41,7 @@
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer"> <select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.Integer">
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from account_user_info from p_patient
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</select> </select>
...@@ -49,17 +49,17 @@ ...@@ -49,17 +49,17 @@
<select id="selectByAcctId" resultMap="BaseResultMap" parameterType="java.lang.Integer"> <select id="selectByAcctId" resultMap="BaseResultMap" parameterType="java.lang.Integer">
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>
from account_user_info from p_patient
where acct_id = #{acctId,jdbcType=INTEGER} where acct_id = #{acctId,jdbcType=INTEGER}
</select> </select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.Integer"> <delete id="deleteByPrimaryKey" parameterType="java.lang.Integer">
delete from account_user_info delete from p_patient
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</delete> </delete>
<insert id="insert" parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity"> <insert id="insert" parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity">
insert into account_user_info (id, acct_id, village_name, insert into p_patient (id, acct_id, village_name,
village_id, town_name, town_id, village_id, town_name, town_id,
county_name, county_id, city_name, county_name, county_id, city_name,
city_id, province_name, province_id, city_id, province_name, province_id,
...@@ -82,7 +82,7 @@ ...@@ -82,7 +82,7 @@
</insert> </insert>
<insert id="insertSelective" parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity" <insert id="insertSelective" parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity"
useGeneratedKeys="true" keyProperty="id"> useGeneratedKeys="true" keyProperty="id">
insert into account_user_info insert into p_patient
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="id != null"> <if test="id != null">
id, id,
...@@ -264,7 +264,7 @@ ...@@ -264,7 +264,7 @@
</insert> </insert>
<update id="updateByPrimaryKeySelective" <update id="updateByPrimaryKeySelective"
parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity"> parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity">
update account_user_info update p_patient
<set> <set>
<if test="acctId != null"> <if test="acctId != null">
acct_id = #{acctId,jdbcType=INTEGER}, acct_id = #{acctId,jdbcType=INTEGER},
...@@ -354,7 +354,7 @@ ...@@ -354,7 +354,7 @@
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</update> </update>
<update id="updateByPrimaryKey" parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity"> <update id="updateByPrimaryKey" parameterType="com.pica.cloud.account.account.server.entity.AccountUserInfoEntity">
update account_user_info update p_patient
set acct_id = #{acctId,jdbcType=INTEGER}, set acct_id = #{acctId,jdbcType=INTEGER},
village_name = #{villageName,jdbcType=VARCHAR}, village_name = #{villageName,jdbcType=VARCHAR},
village_id = #{villageId,jdbcType=BIGINT}, village_id = #{villageId,jdbcType=BIGINT},
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册