| | |
| | | package com.yc.open.deli.controller; |
| | | |
| | | import com.alibaba.fastjson.JSON; |
| | | import com.google.gson.Gson; |
| | | import com.yc.action.grid.GridUtils; |
| | | import com.yc.entity.DataSourceEntity; |
| | |
| | | import com.yc.multiData.SpObserver; |
| | | import com.yc.open.controller.BaseController; |
| | | import com.yc.open.deli.entity.*; |
| | | import com.yc.open.deli.service.DeLiIfc; |
| | | import com.yc.open.deli.service.PostDataBaseService; |
| | | import com.yc.open.deli.service.v2.DeLiIfc; |
| | | import com.yc.open.init.Task; |
| | | import com.yc.open.utils.ApiUtils; |
| | | import com.yc.open.utils.CallBackMessageToObject; |
| | |
| | | import com.yc.service.panel.SqlDBHelperIfc; |
| | | import com.yc.utils.SessionKey; |
| | | import org.apache.commons.lang3.RandomStringUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | |
| | | @Autowired |
| | | PostDataBaseService mPostDataBaseService; |
| | | final Logger log = LoggerFactory.getLogger(this.getClass()); |
| | | |
| | | /** |
| | | * 生成数字签名及相关的公共参数 |
| | | * @param request |
| | |
| | | //取accesskey,secretkey |
| | | DataSourceEntity dataSourceEntity = MultiDataSource.getDataSourceMap(dbid); |
| | | String accessKey=dataSourceEntity.getSystemAccessKey(); |
| | | String outUserID=dataSourceEntity.getDeliUserId(); |
| | | concurrentHashMap.putIfAbsent("outUserID",outUserID); |
| | | concurrentHashMap.putIfAbsent("accesskey",MD5Util.string2MD5(accessKey)); |
| | | String sign= ApiUtils.SignRequest(concurrentHashMap,task.getAppSecret()); |
| | | concurrentHashMap.putIfAbsent("sign",sign); |
| | |
| | | .append(concurrentHashMap.get("nonce")).append("&") |
| | | .append("accesskey").append("=") |
| | | .append(concurrentHashMap.get("accesskey")).append("&") |
| | | .append("outUserID").append("=") |
| | | .append(concurrentHashMap.get("outUserID")).append("&") |
| | | .append("sign").append("=") |
| | | .append(concurrentHashMap.get("sign")); |
| | | return stringBuilder.toString(); |
| | |
| | | |
| | | } |
| | | /** |
| | | * |
| | | * 与德立营销系统账号进行绑定 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value="/deli/bindUserAccount.do", method = RequestMethod.GET) |
| | | public @ResponseBody Object bindUserAccount(String userName,String userPass,HttpServletRequest request, HttpServletResponse response){ |
| | | CallBackMessageToObject callMsg =new CallBackMessageToObject(); |
| | | try { |
| | | if(StringUtils.isBlank(userName)){ |
| | | throw new ApplicationException("账号不能为空"); |
| | | } |
| | | if(StringUtils.isBlank(userPass)){ |
| | | throw new ApplicationException("密码不能为空"); |
| | | } |
| | | Object dbid = request.getSession().getAttribute(SessionKey.DATA_BASE_ID); |
| | | DeliController baseController = FactoryBean.getBean(DeliController.class); |
| | | UserAccountEntity userAccountEntity=new UserAccountEntity(); |
| | | userAccountEntity.setUserPass(userPass); |
| | | userAccountEntity.setUserName(userName); |
| | | String data= JSON.toJSONString(userAccountEntity); |
| | | //生成签名 |
| | | String query = baseController.getSignByRequest(request, data, dbid+""); |
| | | //拉取代理商数据,取得返回信息 |
| | | String msgs=baseController.doPostByParameter(Constant.BIND_USERACCOUNT_URL + query, data); |
| | | CallBackMessageToObject callBackMessageToObject =null; |
| | | callBackMessageToObject =new Gson().fromJson(msgs,new com.google.gson.reflect.TypeToken<CallBackMessageToObject>() {}.getType() ); |
| | | if(callBackMessageToObject==null||callBackMessageToObject.getState()==-1){ |
| | | return callMsg.sendErrorMessage(callBackMessageToObject.getMsg()); |
| | | } |
| | | if("{}".equals(callBackMessageToObject.getData())&&callBackMessageToObject.getState()==0){ |
| | | return callMsg.sendSuccessMessage("返回数据结果为空"); |
| | | }else{ |
| | | //成功则写入数据源表和更新内存中的数据源 |
| | | DataSourceEntity dataSource=MultiDataSource.getDataSourceMap(dbid+""); |
| | | dataSource.setDeliUserCode(((Map)callBackMessageToObject.getData()).get("userName")+""); |
| | | dataSource.setDeliUserId(((Map)callBackMessageToObject.getData()).get("outUserID")+""); |
| | | try{ |
| | | SpObserver.setDBtoDemo(); |
| | | mDeLiIfc.bindUserAccount(dataSource); |
| | | return callMsg.sendSuccessMessage("绑定成功"); |
| | | }catch(Exception ex){ |
| | | return callMsg.sendErrorMessage(this.getErrorMsg(ex)); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | |
| | | }catch (Exception ex){ |
| | | return callMsg.sendErrorMessage(this.getErrorMsg(ex)); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | /** |
| | | * |
| | | * 与德立营销系统账号进行绑定 |
| | | * @return |
| | | */ |
| | | @RequestMapping(value="/deli/unbindUserAccount.do", method = RequestMethod.GET) |
| | | public @ResponseBody Object unbindUserAccount(String userName,String userPass,HttpServletRequest request, HttpServletResponse response){ |
| | | CallBackMessageToObject callMsg =new CallBackMessageToObject(); |
| | | try { |
| | | if(StringUtils.isBlank(userName)){ |
| | | throw new ApplicationException("账号不能为空"); |
| | | } |
| | | if(StringUtils.isBlank(userPass)){ |
| | | throw new ApplicationException("密码不能为空"); |
| | | } |
| | | Object dbid = request.getSession().getAttribute(SessionKey.DATA_BASE_ID); |
| | | DeliController baseController = FactoryBean.getBean(DeliController.class); |
| | | UserAccountEntity userAccountEntity=new UserAccountEntity(); |
| | | userAccountEntity.setUserPass(userPass); |
| | | userAccountEntity.setUserName(userName); |
| | | String data= JSON.toJSONString(userAccountEntity); |
| | | //生成签名 |
| | | String query = baseController.getSignByRequest(request, data, dbid+""); |
| | | //拉取代理商数据,取得返回信息 |
| | | String msgs=baseController.doPostByParameter(Constant.UNBIND_USERACCOUNT_URL + query, data); |
| | | CallBackMessageToObject callBackMessageToObject =null; |
| | | callBackMessageToObject =new Gson().fromJson(msgs,new com.google.gson.reflect.TypeToken<CallBackMessageToObject>() {}.getType() ); |
| | | if(callBackMessageToObject==null||callBackMessageToObject.getState()==-1){ |
| | | return callMsg.sendErrorMessage(callBackMessageToObject.getMsg()); |
| | | } |
| | | if("{}".equals(callBackMessageToObject.getData())&&callBackMessageToObject.getState()==0){ |
| | | return callMsg.sendSuccessMessage("返回数据结果为空"); |
| | | }else{ |
| | | //成功则写入数据源表和更新内存中的数据源 |
| | | DataSourceEntity dataSource=MultiDataSource.getDataSourceMap(dbid+""); |
| | | dataSource.setDeliUserCode(((Map)callBackMessageToObject.getData()).get("userName")+""); |
| | | dataSource.setDeliUserId(((Map)callBackMessageToObject.getData()).get("outUserID")+""); |
| | | try{ |
| | | SpObserver.setDBtoDemo(); |
| | | mDeLiIfc.unbindUserAccount(dataSource); |
| | | return callMsg.sendSuccessMessage("解绑成功"); |
| | | }catch(Exception ex){ |
| | | return callMsg.sendErrorMessage(this.getErrorMsg(ex)); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | |
| | | }catch (Exception ex){ |
| | | return callMsg.sendErrorMessage(this.getErrorMsg(ex)); |
| | | }finally { |
| | | SpObserver.setDBtoInstance(); |
| | | } |
| | | } |
| | | /** |
| | | * 手动接门店资料 |
| | | * 从德立营销系统把门店资料表拉取给巴士软件 |
| | | * @return |