企业微信登录

master
yechenhao 6 years ago
parent ab50450168
commit 78bf8f8a8d

@ -119,6 +119,35 @@ public class LoginController extends BaseController {
}
}
/**
* cpUserId
* @param cpUserId
* @return
*/
@RequestMapping(value = "/cpuser/login",method = RequestMethod.GET)
@ResponseBody
public Map<String, Object> cpuserLoginAccount(@RequestParam("cpUserId") String cpUserId){
try{
Map<String, Object> resultMap = new HashMap<>();
if(StringUtils.isNotBlank(cpUserId)){
LoginBean loginBean = loginService.cpUserIdLogin(cpUserId);
resultMap.put("code", loginBean.getLoginInfo().get("code"));
resultMap.put("results", loginBean);
resultMap.put("success", Boolean.TRUE);
}else{
//企业微信账号为空
resultMap.put("code", "0010");
resultMap.put("success", Boolean.FALSE);
}
return resultMap;
}catch (Exception e){
log.error("登录失败", e);
return fail();
}
}
/**
*
* @param code

@ -52,4 +52,5 @@ public interface LoginService {
Map<String, String> qyMiniAutoLogin(String code) throws WxErrorException;
LoginBean mobileLogin(String mobile);
LoginBean cpUserIdLogin(String cpUserId);
}

@ -9,6 +9,7 @@ import com.kiisoo.ic.login.enums.LoginEnum;
import com.kiisoo.ic.login.service.LoginService;
import com.kiisoo.ic.store.entity.PoiStoreStaff;
import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper;
import com.kiisoo.ic.store.mapper.PrivilageCpUserStoreDOMapper;
import com.kiisoo.ic.system.entity.PrivilageAccountDO;
import com.kiisoo.ic.system.entity.PrivilageRoleDO;
import com.kiisoo.ic.system.entity.PrivilageUserDO;
@ -55,6 +56,11 @@ public class LoginServiceImpl implements LoginService {
*/
private final PrivilageUserDOMapper privilageUserDOMapper;
/**
* mapper
*/
private final PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper;
/**
* mapper
*/
@ -78,12 +84,13 @@ public class LoginServiceImpl implements LoginService {
@Autowired
public LoginServiceImpl(PrivilageAccountDOMapper privilageAccountDOMapper, PrivilageUserDOMapper privilageUserDOMapper,
PrivilageRoleDOMapper privilageRoleDOMapper, QWMailListManageService qwMailListManageService,
PoiStoreStaffDOMapper poiStoreStaffDOMapper) {
PoiStoreStaffDOMapper poiStoreStaffDOMapper,PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper) {
this.privilageAccountDOMapper = privilageAccountDOMapper;
this.privilageUserDOMapper = privilageUserDOMapper;
this.privilageRoleDOMapper = privilageRoleDOMapper;
this.qwMailListManageService = qwMailListManageService;
this.poiStoreStaffDOMapper = poiStoreStaffDOMapper;
this.privilageCpUserStoreDOMapper = privilageCpUserStoreDOMapper;
}
@ -257,6 +264,79 @@ public class LoginServiceImpl implements LoginService {
return loginBean;
}
@Override
public LoginBean cpUserIdLogin(String cpUserId) {
//查询账号
QueryWrapper<PrivilageAccountDO> accountQw = new QueryWrapper<>();
accountQw.eq("login",cpUserId);
accountQw.eq("type",AccountEnum.ACCOUNT_TYPE_QYWX.getType());
List<PrivilageAccountDO> mobileAccounts = privilageAccountDOMapper.selectList(accountQw);
Long userId = null;
if (CollectionUtils.isNotEmpty(mobileAccounts)){
userId = mobileAccounts.get(0).getUserId();
}else{
Long storeId = privilageCpUserStoreDOMapper.selectOneByCpUserId(cpUserId);
if (null == storeId){
return new LoginBean(Constants.ERROR_USER_NO_PERMISSION);
}
PoiStoreStaff poiStoreStaff = poiStoreStaffDOMapper.selectShopManagerDetailByShop(storeId);
if (null == poiStoreStaff){
return new LoginBean(Constants.ERROR_USER_NO_PERMISSION);
}
//无账号则绑定账号
PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(poiStoreStaff.getUserId());
if (null != privilageUserDO){
userId = privilageUserDO.getId();
PrivilageAccountDO privilageAccountDO = new PrivilageAccountDO();
privilageAccountDO.setLogin(cpUserId);
privilageAccountDO.setStatus(1);
privilageAccountDO.setUserId(userId);
privilageAccountDO.setType(AccountEnum.ACCOUNT_TYPE_QYWX.getType());
int insert = privilageAccountDOMapper.insert(privilageAccountDO);
if (insert == 0){
return new LoginBean(Constants.ERROR_SYSTEM);
}
}else{
return new LoginBean(Constants.ERROR_ROLE_NO_PERMISSION);
}
}
LoginBean loginBean = new LoginBean();
Map<String, Object> selectAccountMap = new HashMap<>();
PrivilageUserDO privilageUserDO = privilageUserDOMapper.selectById(userId);
// 用户不存在
if(null == privilageUserDO){
return new LoginBean(Constants.ERROR_USER_NO_PERMISSION);
}
PrivilageAccountDO result = privilageAccountService.getAccountByUserId(userId);
// 该账号已暂停,请联系店长
if(null != result && result.getStatus().equals(2)){
return new LoginBean(com.kiisoo.ic.constants.Constants.ERROR_ACCOUNT_STOP);
}
PrivilageRoleDO roleDO = privilageRoleDOMapper.selectRoleName(userId);
Long storeId = privilageUserDOMapper.selectStoreIdByUserId(userId);
Map<String, Object> loginInfoMap = new HashMap<>();
//成功设置信息
loginBean.setUserName(privilageUserDO.getName());
loginBean.setUserId(privilageUserDO.getId());
loginBean.setRoleId(privilageUserDO.getId());
loginBean.setRoleCode(roleDO.getCode());
loginBean.setStoreId(storeId);
if (StringUtils.isNotBlank(roleDO.getCode()) && !MINI_ROLE_CODE.contains(roleDO.getCode())){
return new LoginBean(Constants.ERROR_ROLE_NO_PERMISSION);
}
loginBean.setLogin(cpUserId);
loginInfoMap.put("code", LoginEnum.LOGIN_SUCCEED.getCode());
loginBean.setLoginInfo(loginInfoMap);
return loginBean;
}
@Override
public void bindQywxUserIdByUserId(Long userId, String qywxUserId) {
Map<String, Object> selectAccountMap = new HashMap<>();

@ -37,6 +37,11 @@ public interface PoiStoreStaffDOMapper extends BaseMapper<PoiStoreStaff> {
*/
String selectShopManagerByShop (@Param("shopId") Long shopId);
/**
*
*/
PoiStoreStaff selectShopManagerDetailByShop (@Param("shopId") Long shopId);
/**
* id
*/

@ -7,6 +7,7 @@ import com.kiisoo.ic.base.mapper.BasicConfigDOMapper;
import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult;
import com.kiisoo.ic.wx.service.QWMailListManageService;
import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.codec.Base64;
import org.springframework.beans.factory.annotation.Autowired;
@ -31,6 +32,8 @@ public class WechatController extends BaseController {
@Autowired
private BasicConfigDOMapper basicConfigDOMapper;
@Autowired
private QWMailListManageService qwMailListManageService;
@RequestMapping("/openId")
@ -86,6 +89,27 @@ public class WechatController extends BaseController {
return fail();
}
@RequestMapping("/code2Session")
@ResponseBody
public Map<String, Object> qwcode2Session(String code) { // 小程序端获取的CODE
Map<String, Object> result = new HashMap<>();
result.put("code", 0);
try {
boolean check = (StringUtils.isEmpty(code)) ? true : false;
if (check) {
throw new Exception("参数异常");
}
Map<String, String> codeInfo = qwMailListManageService.getCpUserIdByCode(code);
return data(codeInfo);
} catch (Exception e) {
e.printStackTrace();
}
return fail();
}
/**
*
*

@ -244,7 +244,7 @@ public class QWMailListManageService {
*/
public Map<String,String> getCpUserIdByCode(String code) throws WxErrorException {
Map<String,String> result = new HashMap<> ();
wxCpService = WxCpConfiguration.getCpService(1);
wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpMaJsCode2SessionResult wxCpMaJsCode2SessionResult = wxCpService.jsCode2Session(code);
String userId = wxCpMaJsCode2SessionResult.getUserId();
String sessionKey = wxCpMaJsCode2SessionResult.getSessionKey();

@ -31,6 +31,10 @@
select staff_code from poi_store_staff where store_id = #{shopId} and status = 1 and type = 1 and user_id != 0
limit 1
</select>
<select id="selectShopManagerDetailByShop" resultType="com.kiisoo.ic.store.entity.PoiStoreStaff">
select id,store_id as storeId,user_id as userId,staff_code as staffCode from poi_store_staff where store_id = #{shopId} and status = 1 and type = 1 and user_id != 0
limit 1
</select>
<select id="selectInfoById" resultType="com.kiisoo.ic.webappmy.vo.StafferInfoVO">
select t2.id,t2.staff_code as stafferNo,t1.`name`,t3.`name` as shopName,t3.id as storeId

Loading…
Cancel
Save