实体类:
package com.mport.entity;
import javax.persistence.Entity;
import javax.persistence.Table;
@Entity
@Table(name = "comic_classify")
public class ComicClassify extends ClassifyBase {
private static final long serialVersionUID = -6295918636095140391L;
}
package abeop.service.bean;
public class SubInfo implements java.io.Serializable {
private static final long serialVersionUID = -8961532006519378167L;
private java.lang.String accessCode;
private java.lang.String command;
private NamedParameter[] extensionInfo;
private java.lang.Integer isAutoExtend;
private java.lang.String operCode;
private int payType;
private java.lang.String productID;
private int subType;
public java.lang.String getAccessCode() {
return accessCode;
}
public void setAccessCode(java.lang.String accessCode) {
this.accessCode = accessCode;
}
public java.lang.String getCommand() {
return command;
}
public void setCommand(java.lang.String command) {
this.command = command;
}
public NamedParameter[] getExtensionInfo() {
return extensionInfo;
}
public void setExtensionInfo(NamedParameter[] extensionInfo) {
this.extensionInfo = extensionInfo;
}
public java.lang.Integer getIsAutoExtend() {
return isAutoExtend;
}
public void setIsAutoExtend(java.lang.Integer isAutoExtend) {
this.isAutoExtend = isAutoExtend;
}
public java.lang.String getOperCode() {
return operCode;
}
public void setOperCode(java.lang.String operCode) {
this.operCode = operCode;
}
public int getPayType() {
return payType;
}
public void setPayType(int payType) {
this.payType = payType;
}
public java.lang.String getProductID() {
return productID;
}
public void setProductID(java.lang.String productID) {
this.productID = productID;
}
public int getSubType() {
return subType;
}
public void setSubType(int subType) {
this.subType = subType;
}
}
package abeop.service.bean;
public class NamedParameter implements java.io.Serializable {
private static final long serialVersionUID = -9076491524279015792L;
private java.lang.String key;
private java.lang.String value;
public java.lang.String getKey() {
return key;
}
public void setKey(java.lang.String key) {
this.key = key;
}
public java.lang.String getValue() {
return value;
}
public void setValue(java.lang.String value) {
this.value = value;
}
}
获取spring bean 的工具类:
package com.mport.common;
import org.springframework.beans.BeansException;
import org.springframework.context.ApplicationContext;
import org.springframework.context.ApplicationContextAware;
public class ApplicationContextUtils implements ApplicationContextAware {
private static ApplicationContext context = null;
public void setApplicationContext(ApplicationContext context) throws BeansException {
this.context = context;
}
public static ApplicationContext getContext() {
return context;
}
}
配置到spring.xml中:
<bean class="com.mport.common.ApplicationContextUtils"/>
WEB SERVICE接口代码:
package abeop.service;
import java.util.HashMap;
import java.util.Map;
import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebParam.Mode;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.xml.bind.annotation.XmlSeeAlso;
import net.sf.json.JSONSerializer;
import org.apache.commons.lang.StringUtils;
import abeop.service.bean.NamedParameter;
import abeop.service.bean.SeriesType;
import abeop.service.bean.SubInfo;
import abeop.service.req.AbstractRequest;
import abeop.service.req.GenerateUrlListRequest;
import abeop.service.req.GetClassifyListRequest;
import abeop.service.req.GetOpusListRequest;
import abeop.service.req.SubscribeHistoryRequest;
import abeop.service.req.SubscribeProductRequest;
import abeop.service.req.UnsubscribeProductRequest;
import abeop.service.req.ViewChapterDetailRequest;
import abeop.service.req.ViewOpusDetailRequest;
import abeop.service.rsp.GenerateUrlListResponse;
import abeop.service.rsp.GetClassifyListResponse;
import abeop.service.rsp.GetOpusListResponse;
import abeop.service.rsp.SubscribeHistoryResponse;
import abeop.service.rsp.SubscribeProductResponse;
import abeop.service.rsp.UnsubscribeProductResponse;
import abeop.service.rsp.ViewChapterDetailResponse;
import abeop.service.rsp.ViewOpusDetailResponse;
import com.huawei.portalone.storefront.service.bean.UserID;
import com.huawei.portalone.storefront.service.response.AuthSubscriptionRsp;
import com.mport.common.ApplicationContextUtils;
import com.mport.common.ServiceInterfaceUtils;
import com.mport.entity.ComicClassify;
import com.mport.service.ComicClassifyService;
import com.mport.service.LoggerService;
/**
* 接口入口
*
* @author lzq
*
*/
@WebService(name = "portalService", serviceName = "PortalService", targetNamespace = "http://abeop/service")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.BARE)
@XmlSeeAlso({ ComicClassify.class, SubInfo.class, NamedParameter.class })
public class PortalService {
private ComicClassifyService comicClassifyService;
private LoggerService loggerService;
private boolean toLog = false;
public PortalService() {
init();
}
private synchronized void init() {
if (comicClassifyService == null) {
comicClassifyService = (com.mport.service.ComicClassifyService) ApplicationContextUtils.getContext().getBean("comicClassifyService");
}
if (loggerService == null) {
loggerService = (com.mport.service.LoggerService) ApplicationContextUtils.getContext().getBean("loggerService");
}
}
/**
* 取得分类列表
*
* @param req
* @return
*/
@WebMethod(operationName = "getClassifyList", action = "urn:getClassifyList")
@WebResult(name = "GetClassifyListResponse", targetNamespace = "http://abeop/service/rsp")
public GetClassifyListResponse getClassifyList(@WebParam(mode = Mode.IN, targetNamespace = "http://abeop/service/req") GetClassifyListRequest req) {
GetClassifyListResponse rsp = new GetClassifyListResponse();
if (CheckParams.checkSeriesTypeParam(req, rsp) & CheckParams.checkPageParam(req, rsp)) {
SeriesType seriesType = SeriesType.valueOf(req.getSeriesType().toUpperCase());
switch (seriesType) {
case COMIC:
rsp.setClassifyList(comicClassifyService.getComicClassifyList((req.getPageNum() - 1) * req.getPageSize(), req.getPageSize()));
break;
default:
break;
}
}
return rsp;
}
/**
* 取得作品列表
*
* @param req
* @return
*/
public GetOpusListResponse getOpusList(GetOpusListRequest req) {
return null;
}
/**
* 取得作品详情
*
* @param req
* @return
*/
public ViewOpusDetailResponse viewOpusDetail(ViewOpusDetailRequest req) {
return null;
}
/**
* 查看章节详情
*
* @param req
* @return
*/
public ViewChapterDetailResponse viewChapterDetail(ViewChapterDetailRequest req) {
return null;
}
/**
* 订购产品
*
* @param req
* @return
*/
@WebMethod(operationName = "subscribeProduct", action = "urn:subscribeProduct")
@WebResult(name = "SubscribeProductResponse", targetNamespace = "http://abeop/service/rsp")
public SubscribeProductResponse subscribeProduct(@WebParam(mode = Mode.IN, targetNamespace = "http://abeop/service/req") SubscribeProductRequest req) {
UserID userID = new UserID();
userID.setID(req.getPhoneNum());
userID.setType(req.getUserType());
try {
AuthSubscriptionRsp rsp = ServiceInterfaceUtils.authSubscription(loggerService, toLog, recLog(req), req.getContentCode(), req.getObjectType(), userID, req.getLang(), 1);
System.out.println(JSONSerializer.toJSON(rsp).toString(2));
} catch (Exception e) {
e.printStackTrace();
}
// SubscribeProductRsp rsp = ServiceInterfaceUtils.subscribeProduct(loggerService, toLog, columnAndValuesPart, userID, subInfoArray, 1);
return null;
}
/**
* 退购产品
*
* @param req
* @return
*/
public UnsubscribeProductResponse unsubscribeProduct(UnsubscribeProductRequest req) {
return null;
}
/**
* 订购历史
*
* @param req
* @return
*/
public SubscribeHistoryResponse subscribeHistory(SubscribeHistoryRequest req) {
return null;
}
/**
* 生成地址
*
* @param req
* @return
*/
public GenerateUrlListResponse generateUrlList(GenerateUrlListRequest req) {
return null;
}
@WebMethod(exclude = true)
public Map<String, Object> recLog(AbstractRequest req) throws Exception {
Map<String, Object> columnAndValuesPart = new HashMap<String, Object>();
columnAndValuesPart.put("channel_id", StringUtils.isNotBlank(req.getChid()) ? req.getChid() : null);
columnAndValuesPart.put("ua", StringUtils.isNotBlank(req.getUa()) ? req.getUa() : null);
columnAndValuesPart.put("plantform", StringUtils.isNotBlank(req.getP()) ? req.getP() : null);
columnAndValuesPart.put("plantform_version", StringUtils.isNotBlank(req.getPv()) ? req.getPv() : null);
columnAndValuesPart.put("client_version", StringUtils.isNotBlank(req.getCv()) ? req.getCv() : null);
return columnAndValuesPart;
}
public static void main(String[] args) {
PortalService p = new PortalService();
GetClassifyListRequest req = new GetClassifyListRequest();
req.setSeriesType("comic");
req.setPageNum(1);
req.setPageSize(1);
GetClassifyListResponse rsp = p.getClassifyList(req);
System.out.println(JSONSerializer.toJSON(rsp).toString(2));
}
}
package abeop.service;
import java.util.ResourceBundle;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.math.NumberUtils;
import abeop.service.bean.SubInfo;
import abeop.service.req.ContentRequest;
import abeop.service.req.PageRequest;
import abeop.service.req.ProductRequest;
import abeop.service.req.SeriesTypeRequest;
import abeop.service.req.UserRequest;
import abeop.service.rsp.AbstractResponse;
public class CheckParams {
private static ResourceBundle bundle;
static {
if (bundle == null) {
bundle = ResourceBundle.getBundle("abeop_code");
}
}
public static boolean checkPageParam(PageRequest req, AbstractResponse rsp) {
boolean bool = false;
if (req.getPageNum() == null || req.getPageNum() <= 0) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_page_num")));
rsp.setResultMsg(bundle.getString("msg_page_num"));
} else if (req.getPageSize() == null || req.getPageSize() <= 0) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_page_size")));
rsp.setResultMsg(bundle.getString("msg_page_size"));
} else {
bool = true;
}
return bool;
}
/**
* 检查动漫画分类
*
* @param req
* @param rsp
* @return
*/
public static boolean checkSeriesTypeParam(SeriesTypeRequest req, AbstractResponse rsp) {
boolean bool = false;
if (StringUtils.isBlank(req.getSeriesType())) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_series_type")));
rsp.setResultMsg(bundle.getString("msg_series_type"));
} else {
bool = true;
}
return bool;
}
/**
* 检查手机号码
*
* @param req
* @param rsp
* @return
*/
public static boolean checkPhoneNumParam(UserRequest req, AbstractResponse rsp) {
boolean bool = false;
if (StringUtils.isBlank(req.getPhoneNum())) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_phone_num")));
rsp.setResultMsg(bundle.getString("msg_phone_num"));
} else {
bool = true;
}
return bool;
}
/**
* 检查用户类型
*
* @param req
* @param rsp
* @return
*/
public static boolean checkUserTypeParam(UserRequest req, AbstractResponse rsp) {
boolean bool = false;
if (req.getUserType() <= 0) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_user_type")));
rsp.setResultMsg(bundle.getString("msg_user_type"));
} else {
bool = true;
}
return bool;
}
/**
* 检查content_code
*
* @param req
* @param rsp
* @return
*/
public static boolean checkContentCodeParam(ContentRequest req, AbstractResponse rsp) {
boolean bool = false;
if (StringUtils.isBlank(req.getContentCode())) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_content_code_not_exists")));
rsp.setResultMsg(bundle.getString("msg_content_code_not_exists"));
} else {
bool = true;
}
return bool;
}
/**
* 检查内容类型
*
* @param req
* @param rsp
* @return
*/
public static boolean checkObjectTypeParam(ContentRequest req, AbstractResponse rsp) {
boolean bool = false;
if (req.getObjectType() <= 0) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_object_type_not_exists")));
rsp.setResultMsg(bundle.getString("msg_object_type_not_exists"));
} else {
bool = true;
}
return bool;
}
/**
* 检查内容类型
*
* @param req
* @param rsp
* @return
*/
public static boolean checkProductCodeParam(ProductRequest req, AbstractResponse rsp) {
boolean bool = false;
if (checkSubInfoList(req.getSubInfoList())) {
rsp.setResultCode(NumberUtils.toInt(bundle.getString("code_sub_info_illgal")));
rsp.setResultMsg(bundle.getString("msg_product_code_not_exists"));
} else {
bool = true;
}
return bool;
}
public static boolean checkSubInfoList(SubInfo[] subInfos) {
boolean bool = true;
if (subInfos != null && subInfos.length > 0) {
for (SubInfo subinfo : subInfos) {
if (StringUtils.isBlank(subinfo.getProductID())) {
bool = false;
}
}
} else {
bool = false;
}
return bool;
}
}