|
@@ -3,19 +3,29 @@
|
|
|
*/
|
|
|
package com.trs.web2frame;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
-import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
-
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
import com.trs.cms.CMSConstants;
|
|
|
+import com.trs.dto.ChannelDTO;
|
|
|
+import com.trs.dto.SiteDTO;
|
|
|
+import com.trs.infra.common.BizError;
|
|
|
+import com.trs.infra.common.WCMException;
|
|
|
+import com.trs.infra.util.CMyString;
|
|
|
+import com.trs.util.DBUtil;
|
|
|
import com.trs.web2frame.dispatch.Dispatch;
|
|
|
import com.trs.web2frame.eventhandler.ICallbackCompleteHandler;
|
|
|
import com.trs.web2frame.eventhandler.ICallbackEventHandler;
|
|
|
import com.trs.web2frame.eventhandler.ICallbackSuccessHandler;
|
|
|
import com.trs.web2frame.util.JsonHelper;
|
|
|
-
|
|
|
import junit.framework.TestCase;
|
|
|
|
|
|
+import java.sql.Connection;
|
|
|
+import java.sql.SQLException;
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.HashMap;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
/**
|
|
|
* Title: TRS 内容协作平台(TRS WCM) <BR>
|
|
|
* Description: <BR>
|
|
@@ -33,14 +43,39 @@ public class WCMServiceCallerTest extends TestCase {
|
|
|
*/
|
|
|
// public static final String FILE_1 =
|
|
|
// "D:\\Webapps\\TRS_WCM_52\\Tomcat\\webapps\\wcm\\infoview\\infoview.js";
|
|
|
- public static final String FILE_1 = "/Users/cao.hui/tmp/j01.txt";
|
|
|
+ public static final String FILE_1 = "/Users/macro.li/TRS/logs/j01.txt";
|
|
|
+
|
|
|
+ private static final String connectUrl = "jdbc:mysql://127.0.0.1:3306/liion?characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull";
|
|
|
+ private static final String userName = "root";
|
|
|
+ private static final String pswd = "zxcv1234";
|
|
|
+ private static Connection connection;
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void setUp() throws Exception {
|
|
|
+ super.setUp();
|
|
|
+ connection = DBUtil.getConnection(connectUrl, userName, pswd);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void tearDown() throws Exception {
|
|
|
+ super.tearDown();
|
|
|
+ try {
|
|
|
+ if (connection != null) {
|
|
|
+ connection.close();
|
|
|
+ }
|
|
|
+ } catch (SQLException e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
public void testCall() {
|
|
|
String sServiceId = "gov_site";
|
|
|
String sMethodName = "querySites";
|
|
|
Map oPostData = new HashMap();
|
|
|
oPostData.put("CurrUserName", "admin");
|
|
|
+ oPostData.put("MODULEID", "10");
|
|
|
oPostData.put("MediaType", "1");
|
|
|
+ oPostData.put("PAGESIZE", "10");
|
|
|
Dispatch oResult = WCMServiceCaller.Call(sServiceId, sMethodName,
|
|
|
oPostData, false);
|
|
|
System.out.println("Result:" + oResult.getResponseText());
|
|
@@ -157,4 +192,272 @@ public class WCMServiceCallerTest extends TestCase {
|
|
|
|
|
|
WCMServiceCaller.Call(sServiceId, sMethodName, hParameters, true);
|
|
|
}
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 站点迁移
|
|
|
+ * @throws WCMException
|
|
|
+ */
|
|
|
+ public void testPostSaveSite() throws WCMException {
|
|
|
+
|
|
|
+ List<SiteDTO> list = new ArrayList<>();
|
|
|
+
|
|
|
+ //start TODO 需要项目组根据第三方项目情况,填写相应数据 具体参数见:SiteDTO
|
|
|
+ SiteDTO siteDTO = new SiteDTO();
|
|
|
+
|
|
|
+ siteDTO.setSitename("乐至市改1");
|
|
|
+ siteDTO.setClassificationid(95);
|
|
|
+ siteDTO.setSitedesc("乐至市");
|
|
|
+ siteDTO.setDatapath("lezshi1");
|
|
|
+ siteDTO.setWebhttp("http://192.168.200.124/pub/lezshi");
|
|
|
+ siteDTO.setViewinfoid(36);
|
|
|
+ siteDTO.setDetailtemplate(7086);
|
|
|
+ siteDTO.setOutlinetemplate(7084);
|
|
|
+ siteDTO.setChnloutlinetemp(7085);
|
|
|
+ siteDTO.setSrcSiteCode("1");
|
|
|
+
|
|
|
+ list.add(siteDTO);
|
|
|
+ //end TODO 需要项目组根据第三方项目情况,填写相应数据
|
|
|
+ testSaveSite(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 栏目迁移
|
|
|
+ * @throws WCMException
|
|
|
+ */
|
|
|
+ public void testPostSaveChannel() throws WCMException {
|
|
|
+
|
|
|
+ List<ChannelDTO> list = new ArrayList<>();
|
|
|
+
|
|
|
+ //start TODO 需要项目组根据第三方项目情况,填写相应数据 具体参数见:ChannelDTO
|
|
|
+ ChannelDTO channelDTO = new ChannelDTO();
|
|
|
+
|
|
|
+ channelDTO.setChnlname("视频新闻");
|
|
|
+ channelDTO.setChnldesc("视频新闻");
|
|
|
+ channelDTO.setChnldatapath("spxw");
|
|
|
+ channelDTO.setViewinfoid(36);
|
|
|
+ channelDTO.setDetailtemplate(0);
|
|
|
+ channelDTO.setOutlinetemplate(0);
|
|
|
+ channelDTO.setParentid(0);
|
|
|
+ String srcSiteCode = "1";
|
|
|
+ //通过第三方系统的站点 唯一表示 获取迁移后的站点
|
|
|
+ int siteId = querySiteIdBySrcSiteCode(srcSiteCode);
|
|
|
+ if (siteId == 0){
|
|
|
+ throw new BizError(String.format("该站点[%s]没有迁移",srcSiteCode));
|
|
|
+ }
|
|
|
+ channelDTO.setSiteid(siteId);
|
|
|
+ channelDTO.setSrcChannelCode("13");
|
|
|
+
|
|
|
+ list.add(channelDTO);
|
|
|
+ //end TODO 需要项目组根据第三方项目情况,填写相应数据
|
|
|
+ testSaveChannel(list);
|
|
|
+ }
|
|
|
+
|
|
|
+ private int querySiteIdBySrcSiteCode(String srcSiteCode) throws BizError {
|
|
|
+
|
|
|
+ String sql = "SELECT SITEID FROM HYCLOUDSITERELATION WHERE SRCSITECODE = ?;";
|
|
|
+
|
|
|
+ List<String> list = new ArrayList<>();
|
|
|
+ list.add(srcSiteCode);
|
|
|
+ List<String> result = DBUtil.getDBManager().sqlExecuteStringsQuery(connection, sql, list);
|
|
|
+
|
|
|
+ int siteId = 0;
|
|
|
+ if (result != null && result.size() == 1){
|
|
|
+ siteId = Integer.parseInt(result.get(0));
|
|
|
+ }
|
|
|
+ return siteId;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 海云批量保存站点
|
|
|
+ * @param siteDTOList
|
|
|
+ */
|
|
|
+ private void testSaveSite(List<SiteDTO> siteDTOList) throws WCMException {
|
|
|
+
|
|
|
+ String sServiceId = "gov_site";
|
|
|
+
|
|
|
+ String sMethodName = "saveSite";
|
|
|
+
|
|
|
+ for(SiteDTO siteDTO : siteDTOList) {
|
|
|
+
|
|
|
+ if (CMyString.isEmpty(siteDTO.getSrcSiteCode())){
|
|
|
+ throw new BizError("第三方站点唯一表示不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, Object> hParameters = new HashMap<>();
|
|
|
+
|
|
|
+ hParameters.put("CurrUserName", "admin"); // 当前操作的用户
|
|
|
+
|
|
|
+ hParameters.put("SITEID", siteDTO.getSiteid()); // 表示新建
|
|
|
+
|
|
|
+ hParameters.put("SITENAME", siteDTO.getSitename());
|
|
|
+
|
|
|
+ hParameters.put("SITEDESC", siteDTO.getSitedesc());
|
|
|
+
|
|
|
+ hParameters.put("CLASSIFICATIONID", siteDTO.getClassificationid());
|
|
|
+
|
|
|
+ hParameters.put("DATAPATH", siteDTO.getDatapath());
|
|
|
+
|
|
|
+ hParameters.put("VIEWINFOID", siteDTO.getViewinfoid());
|
|
|
+
|
|
|
+ hParameters.put("WEBHTTP", siteDTO.getWebhttp());
|
|
|
+
|
|
|
+ hParameters.put("DETAILTEMPLATE", siteDTO.getDetailtemplate());
|
|
|
+
|
|
|
+ hParameters.put("OUTLINETEMPLATE", siteDTO.getOutlinetemplate());
|
|
|
+
|
|
|
+ hParameters.put("CHNLOUTLINETEMP", siteDTO.getChnloutlinetemp());
|
|
|
+
|
|
|
+ hParameters.put("SITEORDER", siteDTO.getSiteorder());
|
|
|
+
|
|
|
+ hParameters.put("ISDISTRIBUTABLE", siteDTO.getIsdistributable());
|
|
|
+
|
|
|
+ hParameters.put("ISPUSHABLE", siteDTO.getIspushable());
|
|
|
+
|
|
|
+ hParameters.put("ISSUBSCRIBE", siteDTO.getIssubscribe());
|
|
|
+
|
|
|
+ hParameters.put("MEDIATYPE", siteDTO.getMediatype());
|
|
|
+
|
|
|
+ hParameters.put("AUTOCHECK", siteDTO.getAutocheck());
|
|
|
+
|
|
|
+ hParameters.put("ISOTHERPLATDISTRIBUTABLE", siteDTO.getIsotherplatdistributable());
|
|
|
+
|
|
|
+ hParameters.put("ISOTHERPLATPUSHABLE", siteDTO.getIsotherplatpushable());
|
|
|
+
|
|
|
+ Dispatch oResult = WCMServiceCaller.Call(sServiceId, sMethodName, hParameters, true);
|
|
|
+
|
|
|
+ //对返回值进行处理
|
|
|
+ dealWithSiteReturn(oResult, siteDTO);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void dealWithSiteReturn(Dispatch oResult, SiteDTO siteDTO) throws WCMException {
|
|
|
+
|
|
|
+ System.out.println("Result:" + oResult.getResponseText());
|
|
|
+
|
|
|
+ JSONObject jsonObject = JSON.parseObject(oResult.getResponseText()).getJSONObject("DATA");
|
|
|
+ if (jsonObject == null) {
|
|
|
+ throw new BizError(String.format("保存站点失败,站点名称[%s],迁移前应用ID[%s]", siteDTO.getSitename(), siteDTO.getSrcSiteCode()));
|
|
|
+ }
|
|
|
+ int siteId = jsonObject.getIntValue("SITEID");
|
|
|
+ if (siteId == 0) {
|
|
|
+ throw new BizError(String.format("保存站点失败,站点名称[%s],迁移前应用ID[%s]", siteDTO.getSitename(), siteDTO.getSrcSiteCode()));
|
|
|
+ }
|
|
|
+ saveSiteMapping(siteId, siteDTO.getSrcSiteCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testPostSaveSiteMapping() throws WCMException{
|
|
|
+
|
|
|
+ saveSiteMapping(1, "12");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveSiteMapping(int siteId, String siteCode) throws WCMException {
|
|
|
+
|
|
|
+ System.out.println(String.format("保存成功,新站点ID[%d]", siteId));
|
|
|
+ String sql = "INSERT INTO HYCLOUDSITERELATION (SRCSITECODE,SITEID) VALUES(?, ?);";
|
|
|
+ List<Object> list = new ArrayList<>();
|
|
|
+ list.add(siteCode);
|
|
|
+ list.add(siteId);
|
|
|
+ DBUtil.getDBManager().sqlExecuteUpdate(connection, sql, list);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ private void testSaveChannel(List<ChannelDTO> channelDTOS) throws WCMException{
|
|
|
+
|
|
|
+ String sServiceId = "gov_channel";
|
|
|
+
|
|
|
+ String sMethodName = "saveChannel";
|
|
|
+
|
|
|
+ for(ChannelDTO channelDTO : channelDTOS) {
|
|
|
+
|
|
|
+ if (CMyString.isEmpty(channelDTO.getSrcChannelCode())){
|
|
|
+ throw new BizError("第三方栏目唯一表示不能为空");
|
|
|
+ }
|
|
|
+
|
|
|
+ HashMap<String, Object> hParameters = new HashMap<>();
|
|
|
+
|
|
|
+ hParameters.put("CurrUserName", "admin"); // 当前操作的用户
|
|
|
+
|
|
|
+ hParameters.put("SITEID", channelDTO.getSiteid());
|
|
|
+
|
|
|
+ hParameters.put("CHANNELID", channelDTO.getChannelid()); // 表示新建
|
|
|
+
|
|
|
+ hParameters.put("CHNLNAME", channelDTO.getChnlname());
|
|
|
+
|
|
|
+ hParameters.put("CHNLDESC", channelDTO.getChnldesc());
|
|
|
+
|
|
|
+ hParameters.put("PARENTID", channelDTO.getParentid());
|
|
|
+
|
|
|
+ hParameters.put("CHNLDATAPATH", channelDTO.getChnldatapath());
|
|
|
+
|
|
|
+ hParameters.put("VIEWINFOID", channelDTO.getViewinfoid());
|
|
|
+
|
|
|
+ if (channelDTO.getRootdomain() != null){
|
|
|
+ hParameters.put("ROOTDOMAIN", channelDTO.getRootdomain());
|
|
|
+ }
|
|
|
+ hParameters.put("DETAILTEMPLATE", channelDTO.getDetailtemplate());
|
|
|
+
|
|
|
+ hParameters.put("OUTLINETEMPLATE", channelDTO.getOutlinetemplate());
|
|
|
+
|
|
|
+ hParameters.put("CHNLORDER", channelDTO.getChnlorder());
|
|
|
+
|
|
|
+ hParameters.put("ISDISTRIBUTABLE", channelDTO.getIsdistributable());
|
|
|
+
|
|
|
+ hParameters.put("ISPUSHABLE", channelDTO.getIspushable());
|
|
|
+
|
|
|
+ hParameters.put("ISSUBSCRIBE", channelDTO.getIssubscribe());
|
|
|
+
|
|
|
+ hParameters.put("MEDIATYPE", channelDTO.getMediatype());
|
|
|
+
|
|
|
+ hParameters.put("CANPUB", channelDTO.getCanpub());
|
|
|
+
|
|
|
+ hParameters.put("ISOTHERPLATDISTRIBUTABLE", channelDTO.getIsotherplatdistributable());
|
|
|
+
|
|
|
+ hParameters.put("ISOTHERPLATPUSHABLE", channelDTO.getIsotherplatpushable());
|
|
|
+
|
|
|
+ hParameters.put("CHNLTYPE", channelDTO.getChnltype());
|
|
|
+
|
|
|
+ if (channelDTO.getLinkurl() != null){
|
|
|
+ hParameters.put("LINKURL", channelDTO.getLinkurl());
|
|
|
+ }
|
|
|
+
|
|
|
+ hParameters.put("GENERATECHNLROLE", channelDTO.getGeneratechnlrole());
|
|
|
+
|
|
|
+ Dispatch oResult = WCMServiceCaller.Call(sServiceId, sMethodName, hParameters, true);
|
|
|
+
|
|
|
+ //对返回值进行处理
|
|
|
+ dealWithChannelReturn(oResult, channelDTO);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ private void dealWithChannelReturn(Dispatch oResult, ChannelDTO channelDTO) throws WCMException {
|
|
|
+ System.out.println("Result:" + oResult.getResponseText());
|
|
|
+
|
|
|
+ JSONObject jsonObject = JSON.parseObject(oResult.getResponseText()).getJSONObject("DATA");
|
|
|
+ if (jsonObject == null) {
|
|
|
+ throw new BizError(String.format("保存栏目失败,栏目名称[%s],迁移前应用ID[%s]", channelDTO.getChnlname(), channelDTO.getSrcChannelCode()));
|
|
|
+ }
|
|
|
+ int channelid = jsonObject.getIntValue("CHANNELID");
|
|
|
+ if (channelid == 0) {
|
|
|
+ throw new BizError(String.format("保存栏目失败,栏目名称[%s],迁移前应用ID[%s]", channelDTO.getChnlname(), channelDTO.getSrcChannelCode()));
|
|
|
+ }
|
|
|
+ saveChannelMapping(channelid, channelDTO.getSrcChannelCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testPostSaveChannelMapping() throws WCMException{
|
|
|
+
|
|
|
+ saveChannelMapping(1, "12");
|
|
|
+ }
|
|
|
+
|
|
|
+ private void saveChannelMapping(int channelid, String srcChannelCode) throws WCMException {
|
|
|
+
|
|
|
+ System.out.println(String.format("保存成功,新栏目ID[%d]", channelid));
|
|
|
+ String sql = "INSERT INTO HYCLOUDCHANNELRELATION (SRCCHANNELCODE, CHANNELID) VALUES(?, ?);";
|
|
|
+ List<Object> list = new ArrayList<>();
|
|
|
+ list.add(srcChannelCode);
|
|
|
+ list.add(channelid);
|
|
|
+ DBUtil.getDBManager().sqlExecuteUpdate(connection, sql, list);
|
|
|
+ }
|
|
|
}
|