企业微信登录

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 * @param code

@ -52,4 +52,5 @@ public interface LoginService {
Map<String, String> qyMiniAutoLogin(String code) throws WxErrorException; Map<String, String> qyMiniAutoLogin(String code) throws WxErrorException;
LoginBean mobileLogin(String mobile); 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.login.service.LoginService;
import com.kiisoo.ic.store.entity.PoiStoreStaff; import com.kiisoo.ic.store.entity.PoiStoreStaff;
import com.kiisoo.ic.store.mapper.PoiStoreStaffDOMapper; 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.PrivilageAccountDO;
import com.kiisoo.ic.system.entity.PrivilageRoleDO; import com.kiisoo.ic.system.entity.PrivilageRoleDO;
import com.kiisoo.ic.system.entity.PrivilageUserDO; import com.kiisoo.ic.system.entity.PrivilageUserDO;
@ -55,6 +56,11 @@ public class LoginServiceImpl implements LoginService {
*/ */
private final PrivilageUserDOMapper privilageUserDOMapper; private final PrivilageUserDOMapper privilageUserDOMapper;
/**
* mapper
*/
private final PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper;
/** /**
* mapper * mapper
*/ */
@ -78,12 +84,13 @@ public class LoginServiceImpl implements LoginService {
@Autowired @Autowired
public LoginServiceImpl(PrivilageAccountDOMapper privilageAccountDOMapper, PrivilageUserDOMapper privilageUserDOMapper, public LoginServiceImpl(PrivilageAccountDOMapper privilageAccountDOMapper, PrivilageUserDOMapper privilageUserDOMapper,
PrivilageRoleDOMapper privilageRoleDOMapper, QWMailListManageService qwMailListManageService, PrivilageRoleDOMapper privilageRoleDOMapper, QWMailListManageService qwMailListManageService,
PoiStoreStaffDOMapper poiStoreStaffDOMapper) { PoiStoreStaffDOMapper poiStoreStaffDOMapper,PrivilageCpUserStoreDOMapper privilageCpUserStoreDOMapper) {
this.privilageAccountDOMapper = privilageAccountDOMapper; this.privilageAccountDOMapper = privilageAccountDOMapper;
this.privilageUserDOMapper = privilageUserDOMapper; this.privilageUserDOMapper = privilageUserDOMapper;
this.privilageRoleDOMapper = privilageRoleDOMapper; this.privilageRoleDOMapper = privilageRoleDOMapper;
this.qwMailListManageService = qwMailListManageService; this.qwMailListManageService = qwMailListManageService;
this.poiStoreStaffDOMapper = poiStoreStaffDOMapper; this.poiStoreStaffDOMapper = poiStoreStaffDOMapper;
this.privilageCpUserStoreDOMapper = privilageCpUserStoreDOMapper;
} }
@ -257,6 +264,79 @@ public class LoginServiceImpl implements LoginService {
return loginBean; 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 @Override
public void bindQywxUserIdByUserId(Long userId, String qywxUserId) { public void bindQywxUserIdByUserId(Long userId, String qywxUserId) {
Map<String, Object> selectAccountMap = new HashMap<>(); Map<String, Object> selectAccountMap = new HashMap<>();

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

@ -7,6 +7,7 @@ import com.kiisoo.ic.base.mapper.BasicConfigDOMapper;
import com.kiisoo.ic.common.BaseController; import com.kiisoo.ic.common.BaseController;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil; import com.kiisoo.ic.common.utils.httpClientUtil.HttpClientUtil;
import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult; import com.kiisoo.ic.common.utils.httpClientUtil.HttpResult;
import com.kiisoo.ic.wx.service.QWMailListManageService;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.shiro.codec.Base64; import org.apache.shiro.codec.Base64;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -31,6 +32,8 @@ public class WechatController extends BaseController {
@Autowired @Autowired
private BasicConfigDOMapper basicConfigDOMapper; private BasicConfigDOMapper basicConfigDOMapper;
@Autowired
private QWMailListManageService qwMailListManageService;
@RequestMapping("/openId") @RequestMapping("/openId")
@ -86,6 +89,27 @@ public class WechatController extends BaseController {
return fail(); 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 { public Map<String,String> getCpUserIdByCode(String code) throws WxErrorException {
Map<String,String> result = new HashMap<> (); Map<String,String> result = new HashMap<> ();
wxCpService = WxCpConfiguration.getCpService(1); wxCpService = WxCpConfiguration.getCpService(applicationid);
WxCpMaJsCode2SessionResult wxCpMaJsCode2SessionResult = wxCpService.jsCode2Session(code); WxCpMaJsCode2SessionResult wxCpMaJsCode2SessionResult = wxCpService.jsCode2Session(code);
String userId = wxCpMaJsCode2SessionResult.getUserId(); String userId = wxCpMaJsCode2SessionResult.getUserId();
String sessionKey = wxCpMaJsCode2SessionResult.getSessionKey(); 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 select staff_code from poi_store_staff where store_id = #{shopId} and status = 1 and type = 1 and user_id != 0
limit 1 limit 1
</select> </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 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 select t2.id,t2.staff_code as stafferNo,t1.`name`,t3.`name` as shopName,t3.id as storeId

Loading…
Cancel
Save