package com.java110.comment.listener;
|
|
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONObject;
|
import com.java110.comment.dao.ICommentServiceDao;
|
import com.java110.common.constant.ServiceCodeConstant;
|
import com.java110.common.util.Assert;
|
import com.java110.core.annotation.Java110Listener;
|
import com.java110.core.context.DataFlowContext;
|
import com.java110.core.factory.GenerateCodeFactory;
|
import com.java110.entity.center.Business;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
|
/**
|
* 如果commentId填写的值为-1,则重新生成
|
* Created by wuxw on 2018/7/12.
|
*/
|
@Java110Listener(name="flushAboutCommentIdListener")
|
public class FlushAboutCommentIdListener extends AbstractCommentBusinessServiceDataFlowListener {
|
|
protected final static Logger logger = LoggerFactory.getLogger(FlushAboutCommentIdListener.class);
|
|
|
@Override
|
public int getOrder() {
|
return 1;
|
}
|
|
@Override
|
public String getServiceCode() {
|
return ServiceCodeConstant.SERVICE_CODE_SAVE_COMMENT_INFO;
|
}
|
|
@Override
|
public ICommentServiceDao getCommentServiceDaoImpl() {
|
return null;
|
}
|
|
@Override
|
protected void doSaveBusiness(DataFlowContext dataFlowContext, Business business) {
|
JSONObject data = business.getDatas();
|
Assert.notEmpty(data,"没有datas 节点,或没有子节点需要处理");
|
//刷新commentId
|
if(data.containsKey("comment")){
|
JSONObject comment = data.getJSONObject("comment");
|
if(!comment.containsKey("commentId") || comment.getString("commentId").startsWith("-")){
|
flushCommentId(data);
|
}
|
}
|
//刷新 subCommentId
|
if(data.containsKey("subComment")){
|
JSONObject subComment = data.getJSONObject("subComment");
|
if(!subComment.containsKey("subCommentId") || subComment.getString("subCommentId").startsWith("-")){
|
flushSubCommentId(data);
|
}
|
}
|
//刷新 attrId
|
if(data.containsKey("subCommentAttr")){
|
JSONArray subCommentAttrs = data.getJSONArray("subCommentAttr");
|
for (int subCommentAttrIndex = 0;subCommentAttrIndex < subCommentAttrs.size();subCommentAttrIndex ++){
|
JSONObject subCommentAttr = subCommentAttrs.getJSONObject(subCommentAttrIndex);
|
if(subCommentAttr.containsKey("attrId") && !subCommentAttr.getString("attrId").startsWith("-")){
|
continue;
|
}
|
subCommentAttr.put("attrId",GenerateCodeFactory.getSubCommentAttrId());
|
}
|
}
|
//刷新 commentPhotoId
|
if(data.containsKey("subCommentPhoto")){
|
JSONArray subCommentPhotos = data.getJSONArray("subCommentPhoto");
|
for (int subCommentPhotoIndex = 0;subCommentPhotoIndex < subCommentPhotos.size();subCommentPhotoIndex ++){
|
JSONObject subCommentPhoto = subCommentPhotos.getJSONObject(subCommentPhotoIndex);
|
if(subCommentPhoto.containsKey("commentPhotoId") && !subCommentPhoto.getString("commentPhotoId").startsWith("-")){
|
continue;
|
}
|
subCommentPhoto.put("commentPhotoId",GenerateCodeFactory.getCommentPhotoId());
|
}
|
}
|
|
//刷新 commentPhotoId
|
if(data.containsKey("commentScore")){
|
JSONArray commentScores = data.getJSONArray("commentScore");
|
for (int commentScoreIndex = 0;commentScoreIndex < commentScores.size();commentScoreIndex ++){
|
JSONObject commentScore = commentScores.getJSONObject(commentScoreIndex);
|
if(commentScore.containsKey("commentScoreId") && !commentScore.getString("commentScoreId").startsWith("-")){
|
continue;
|
}
|
commentScore.put("commentScoreId",GenerateCodeFactory.getCommentScoreId());
|
}
|
}
|
|
|
}
|
|
@Override
|
protected void doBusinessToInstance(DataFlowContext dataFlowContext, Business business) {
|
// nothing to do
|
}
|
|
@Override
|
protected void doRecover(DataFlowContext dataFlowContext, Business business) {
|
// nothing to do
|
}
|
|
/**
|
* 刷新 commentID
|
* @param data
|
*/
|
private void flushCommentId(JSONObject data) {
|
|
String commentId = GenerateCodeFactory.getCommentId();
|
JSONObject comment = data.getJSONObject("comment");
|
comment.put("commentId",commentId);
|
//刷商品属性
|
if(data.containsKey("subComment")) {
|
JSONObject subCommentObj = data.getJSONObject("subComment");
|
subCommentObj.put("commentId",commentId);
|
}
|
|
//刷 是商品照片 的 shopId
|
if(data.containsKey("commentScore")) {
|
JSONArray commentScores = data.getJSONArray("commentScore");
|
for(int commentScoreIndex = 0;commentScoreIndex < commentScores.size();commentScoreIndex++) {
|
JSONObject commentScore = commentScores.getJSONObject(commentScoreIndex);
|
commentScore.put("commentId", commentId);
|
}
|
}
|
}
|
|
/**
|
* 刷新 subCommentId
|
*
|
* @param data 数据节点
|
*/
|
private void flushSubCommentId(JSONObject data){
|
|
String subCommentId = GenerateCodeFactory.getSubCommentId();
|
JSONObject subComment = data.getJSONObject("subComment");
|
subComment.put("subCommentId",subCommentId);
|
//刷评论属性
|
if(data.containsKey("subCommentAttr")) {
|
JSONArray subCommentAttrs = data.getJSONArray("subCommentAttr");
|
for(int subCommentAttrIndex = 0;subCommentAttrIndex < subCommentAttrs.size();subCommentAttrIndex++) {
|
JSONObject subCommentAttr = subCommentAttrs.getJSONObject(subCommentAttrIndex);
|
subCommentAttr.put("subCommentId", subCommentId);
|
}
|
}
|
|
//刷照片
|
if(data.containsKey("subCommentPhoto")) {
|
JSONArray subCommentPhotos = data.getJSONArray("subCommentPhoto");
|
for(int subCommentPhotoIndex = 0;subCommentPhotoIndex < subCommentPhotos.size();subCommentPhotoIndex++) {
|
JSONObject subCommentPhoto = subCommentPhotos.getJSONObject(subCommentPhotoIndex);
|
subCommentPhoto.put("subCommentId", subCommentId);
|
}
|
}
|
}
|
}
|