Authored by 张帅

表结构调整

... ... @@ -34,8 +34,23 @@ public class GrassArticleController {
@RequestMapping("/platPublishUser")
public ApiResponse platPublishUser(){
logger.info("grassArticle platPublishUser begin, req is {}");
return new ApiResponse.ApiResponseBuilder().data(grassArticleService.getPlatPublishUser()).build();
}
@RequestMapping("/articleList")
public ApiResponse grassArticleList( GrassArticleReq req){
logger.info("grassArticle grassArticleList begin, req is {}");
return new ApiResponse.ApiResponseBuilder().data(grassArticleService.getArticleList(req)).build();
}
@RequestMapping("/updateArticle")
public ApiResponse updateArticle(GrassArticleReq req){
logger.info("grassArticle grassArticleList begin, req is {}");
try {
grassArticleService.updateArticle(req);
} catch (PlatformException e) {
return new ApiResponse.ApiResponseBuilder().code(e.getCode()).message(e.getMessage()).build();
}
return new ApiResponse.ApiResponseBuilder().build();
}
}
... ...
... ... @@ -2,6 +2,7 @@ package com.yohobuy.platform.grass.service;
import com.yohobuy.platform.common.exception.PlatformException;
import com.yohobuy.platform.model.grass.request.GrassArticleReq;
import com.yohobuy.platform.model.grass.response.ArticleDetailRspBo;
import java.util.List;
... ... @@ -12,4 +13,9 @@ public interface IGrassArticleService {
void publishArticle(GrassArticleReq req) throws PlatformException;
List<Integer> getPlatPublishUser();
List<ArticleDetailRspBo> getArticleList(GrassArticleReq req);
void updateArticle(GrassArticleReq req) throws PlatformException;;
}
... ...
package com.yohobuy.platform.grass.service.impl;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import com.yohobuy.platform.common.exception.PlatformException;
import com.yohobuy.platform.common.util.DateUtil;
import com.yohobuy.platform.dal.grass.IGrassArticleBlockDao;
import com.yohobuy.platform.dal.grass.IGrassArticleDao;
import com.yohobuy.platform.dal.grass.IGrassArticleImageDao;
import com.yohobuy.platform.dal.grass.IGrassArticleSknDao;
import com.yohobuy.platform.dal.grass.IGrassPlatUserDao;
import com.yohobuy.platform.dal.grass.IGrassArticleProductDao;
import com.yohobuy.platform.dal.grass.IGrassVirtualUserDao;
import com.yohobuy.platform.dal.grass.model.GrassArticle;
import com.yohobuy.platform.dal.grass.model.GrassArticleImage;
import com.yohobuy.platform.dal.grass.model.GrassArticleSkn;
import com.yohobuy.platform.dal.grass.model.GrassArticleBlock;
import com.yohobuy.platform.dal.grass.model.GrassArticleProduct;
import com.yohobuy.platform.grass.service.IGrassArticleService;
import com.yohobuy.platform.model.grass.request.GrassArticleReq;
import com.yohobuy.platform.model.grass.response.ArticleDetailRspBo;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.stream.Collectors;
/**
*/
... ... @@ -31,11 +36,11 @@ public class GrassArticleServiceImpl implements IGrassArticleService{
@Resource
private IGrassArticleDao grassArticleDao;
@Resource
private IGrassArticleImageDao grassArticleImageDao;
private IGrassArticleBlockDao grassArticleBlockDao;
@Resource
private IGrassArticleSknDao grassArticleSknDao;
private IGrassArticleProductDao grassArticleProductDao;
@Resource
private IGrassPlatUserDao grassPlatUserDao;
private IGrassVirtualUserDao grassVirtualUserDao;
@Override
... ... @@ -44,45 +49,58 @@ public class GrassArticleServiceImpl implements IGrassArticleService{
publishCheck(req);
GrassArticle article = new GrassArticle();
article.setAuthorUid(req.getArticleUid());
article.setArticleContent(req.getContent());
article.setPublishTime(DateUtil.getCurrentTimeSeconds());
article.setAuthorUid(req.getAuthorUid());
article.setCreateTime(DateUtil.getCurrentTimeSeconds());
article.setTopicId(req.getTopicId());
try{
grassArticleDao.insertArticleSeletive(article);
logger.info("insert grass article success, uid is {}, ariticle id is {}", article.getAuthorUid(), article.getId());
}catch (Exception e){
logger.warn("insert grass article fail, uid is {}, e is {}",req.getArticleUid(), e );
logger.warn("insert grass article fail, uid is {}, e is {}",req.getAuthorUid(), e );
throw new PlatformException("publish article failed", 402);
}
try{
List<GrassArticleImage> imageList = Lists.newArrayList();
List<GrassArticleBlock> contentList = Lists.newArrayList();
String[] urls = req.getArticleImages().split(",");
for (String img: urls) {
GrassArticleImage image = new GrassArticleImage();
image.setArticleId(article.getId());
image.setImgSrc(img);
image.setCreateTime(DateUtil.getCurrentTimeSeconds());
imageList.add(image);
int contentOrder =0;
for (String url : urls) {
GrassArticleBlock content = new GrassArticleBlock();
content.setArticleId(article.getId());
content.setContentData(url);
content.setCreateTime(DateUtil.getCurrentTimeSeconds());
content.setTemplateKey("image");
content.setOrderBy(contentOrder);
contentOrder++;
contentList.add(content);
}
grassArticleImageDao.insertArticleImgs(imageList);
logger.info("insert grass article images success, ariticle id is {}, imageList size is {}", article.getId(), imageList.size());
GrassArticleBlock content = new GrassArticleBlock();
content.setArticleId(article.getId());
content.setContentData(req.getContent());
content.setCreateTime(DateUtil.getCurrentTimeSeconds());
content.setTemplateKey("text");
content.setOrderBy(contentOrder);
contentList.add(content);
grassArticleBlockDao.insertArticleContents(contentList);
logger.info("insert grass article content success, ariticle id is {}, contentList size is {}", article.getId(), contentList.size());
}catch (Exception e){
logger.warn("insert article images fail,ariticle id is {}, e is {}",article.getId(), e );
}
try{
List<GrassArticleSkn> sknList = Lists.newArrayList();
List<GrassArticleProduct> sknList = Lists.newArrayList();
String[] skns = req.getArticleSkns().split(",");
int orderby = 0;
for (String skn: skns) {
GrassArticleSkn grassArticleSkn = new GrassArticleSkn();
GrassArticleProduct grassArticleSkn = new GrassArticleProduct();
grassArticleSkn.setArticleId(article.getId());
grassArticleSkn.setProductSkn(Integer.valueOf(skn));
grassArticleSkn.setCreateTime(DateUtil.getCurrentTimeSeconds());
grassArticleSkn.setOrderBy(orderby);
orderby++;
sknList.add(grassArticleSkn);
}
grassArticleSknDao.insertArticleSkns(sknList);
grassArticleProductDao.insertArticleSkns(sknList);
logger.info("insert grass article skns success, ariticle id is {}, sknList size is {}", article.getId(), sknList.size());
}catch (Exception e){
logger.warn("insert article skns fail,ariticle id is {}, e is {}",article.getId(), e );
... ... @@ -93,12 +111,188 @@ public class GrassArticleServiceImpl implements IGrassArticleService{
@Override
public List<Integer> getPlatPublishUser() {
List<Integer> list = grassPlatUserDao.getAllPlatUid();
List<Integer> list = grassVirtualUserDao.getAllPlatUid();
return list;
}
@Override
public List<ArticleDetailRspBo> getArticleList(GrassArticleReq req) {
logger.info("enter getArticleList, req is {}", req);
Integer articleId = req.getArticleId();
Integer source = req.getSource()==null || req.getSource() == 0 ? null:req.getSource();
Integer authStatus = req.getAuthStatus()==null ||req.getAuthStatus()==8 ? null:req.getAuthStatus();
Integer authorUid =null;
String authName = req.getPublisher();
String startTime = req.getStartTimeStr();
String endTime = req.getEndTimeStr();
Integer startTimeInt = null;
Integer endTimeInt = null;
if(StringUtils.isNumeric(authName)){
authorUid = Integer.valueOf(authName);
};
if(StringUtils.isNotEmpty(startTime)){
startTimeInt = Integer.valueOf(startTime);
}
if(StringUtils.isNotEmpty(endTime)){
endTimeInt = Integer.valueOf(endTime);
}
int page = req.getPage();
int size = req.getSize();
int total = grassArticleDao.getArticleCount(articleId, source, authStatus,authorUid,startTimeInt, endTimeInt);
logger.info("getArticleList: grassArticleDao.getArticleCount: articleId is {}, source is {}, total is {}", articleId, source, total);
int offset = (page - 1) * size;
List<GrassArticle> articleList = grassArticleDao.getArticleList(articleId, source, authStatus,authorUid,startTimeInt, endTimeInt,offset, size);
return buildArticleDetail(articleList);
}
@Override
public void updateArticle(GrassArticleReq req) throws PlatformException {
Integer type= req.getOperateType();
logger.info("enter updateArticle, req is {}",req);
if(type == null){
return;
}
//置顶 推荐
if(type == 0){
Integer isRecommend = req.getIsRecommend();
Integer isTop = req.getIsTop();
GrassArticle grassArticle = new GrassArticle();
grassArticle.setId(req.getArticleId());
if(isRecommend !=null){
grassArticle.setIsRecommend(isRecommend);
grassArticle.setRecommendTime(DateUtil.getCurrentTimeSeconds());
}
if(isTop !=null){
grassArticle.setIsTop(isTop);
grassArticle.setTopTime(DateUtil.getCurrentTimeSeconds());
}
grassArticleDao.updateByPrimaryKeySelective(grassArticle);
}
//编辑文章
if(type == 1){
Integer articleId = req.getArticleId();
if(articleId == null){
throw new PlatformException("articleId is null", 402);
}
//修改文章内容
GrassArticle grassArticle = new GrassArticle();
grassArticle.setId(articleId);
grassArticle.setTopicId(req.getTopicId());
grassArticleDao.updateByPrimaryKeySelective(grassArticle);
//文章图片
List<GrassArticleBlock> imageList = grassArticleBlockDao.selectByArticleId(articleId);
List<String> dbImageList = imageList.stream().filter(Objects::nonNull).filter(content ->"image".equals(content.getTemplateKey()) ).map(GrassArticleBlock::getContentData).collect(Collectors.toList());
List<String> reqlist = req.getArticleImages() == null ? Lists.newArrayList() : Lists.newArrayList(req.getArticleImages().split(","));
List<String> newimgList = reqlist.stream().filter(s -> !dbImageList.contains(s)).collect(Collectors.toList());
List<GrassArticleBlock> deleteList = imageList.stream().filter(content -> content!=null&&!reqlist.contains(content.getContentData())).collect(Collectors.toList());
//新增
List<GrassArticleBlock> addList = Lists.newArrayList();
int contentOrder = imageList.size();
for (String src : newimgList) {
GrassArticleBlock content = new GrassArticleBlock();
content.setArticleId(articleId);
content.setContentData(src);
content.setCreateTime(DateUtil.getCurrentTimeSeconds());
content.setOrderBy(contentOrder);
contentOrder++;
addList.add(content);
}
if(CollectionUtils.isNotEmpty(addList)){
grassArticleBlockDao.insertArticleContents(addList);
}
//删除
List<Integer> delList = deleteList.stream().filter(Objects::nonNull).map(GrassArticleBlock::getArticleId).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(delList)){
grassArticleBlockDao.deleteArticleContentByIds(delList, DateUtil.getCurrentTimeSeconds());
}
//商品
List<GrassArticleProduct> sknList = grassArticleProductDao.selectByArticleId(articleId);
List<Integer> dbSknList = sknList.stream().filter(Objects::nonNull).map(GrassArticleProduct::getProductSkn).collect(Collectors.toList());
List<String> reqSknlist = req.getArticleSkns() == null ? Lists.newArrayList() : Lists.newArrayList(req.getArticleSkns().split(","));
List<String> newSknList = reqSknlist.stream().filter(s -> !dbSknList.contains(Integer.valueOf(s))).collect(Collectors.toList());
List<GrassArticleProduct> delSknList = sknList.stream().filter(skn -> skn !=null && !reqlist.contains(String.valueOf(skn.getProductSkn()))).collect(Collectors.toList());
//新增
List<GrassArticleProduct> addSknList = Lists.newArrayList();
int orderBy = sknList.size();
for (String skn : newSknList) {
GrassArticleProduct grassArticleSkn = new GrassArticleProduct();
grassArticleSkn.setArticleId(articleId);
grassArticleSkn.setProductSkn(Integer.valueOf(skn));
grassArticleSkn.setCreateTime(DateUtil.getCurrentTimeSeconds());
grassArticleSkn.setOrderBy(orderBy);
orderBy++;
addSknList.add(grassArticleSkn);
}if(CollectionUtils.isNotEmpty(addList)){
grassArticleProductDao.insertArticleSkns(addSknList);
}
//删除
List<Integer> delSknIds = delSknList.stream().filter(Objects::nonNull).map(GrassArticleProduct::getArticleId).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(delSknIds)){
grassArticleProductDao.deleteArticleSkns(delSknIds, DateUtil.getCurrentTimeSeconds());
}
}
}
private List<ArticleDetailRspBo> buildArticleDetail( List<GrassArticle> articleList){
if(CollectionUtils.isEmpty(articleList)){
return null;
}
List<Integer> ids = articleList.stream().map(GrassArticle::getId).collect(Collectors.toList());
List<Integer> topicIds = articleList.stream().map(GrassArticle::getTopicId).collect(Collectors.toList());
List<GrassArticleBlock> grassArticleContentList = grassArticleBlockDao.selectByArticleIds(ids);
List<GrassArticleProduct> grassArticlePoductList = grassArticleProductDao.selectByArticleIds(ids);
GrassArticleBlock grassArticleContent = grassArticleContentList.stream().filter(content -> "text".equals(content.getTemplateKey())).findFirst().orElse(null);
if(CollectionUtils.isNotEmpty(topicIds)){
List<String> topics = Lists.newArrayList();
}
Map<Integer, List<String>> imgMap = Maps.newHashMap();
Map<Integer, List<Integer>> sknMap = Maps.newHashMap();
grassArticleContentList.forEach(content ->{
if ("image".equals(content.getTemplateKey())) {
List<String> images = imgMap.get(content.getArticleId());
if(images == null){
images = Lists.newArrayList();
}
images.add(content.getContentData());
imgMap.put(content.getArticleId(), images);
}
});
grassArticlePoductList.forEach(product -> {
List<Integer> skns = sknMap.get(product.getArticleId());
if(skns == null){
skns = Lists.newArrayList();
}
skns.add(product.getProductSkn());
sknMap.put(product.getArticleId(), skns);
});
List<ArticleDetailRspBo> rspBoList = Lists.newArrayList();
articleList.forEach(article -> {
ArticleDetailRspBo rspBo = new ArticleDetailRspBo();
rspBo.setArticleId(article.getId());
rspBo.setArticleContent(grassArticleContent ==null ? "": grassArticleContent.getContentData());
rspBo.setAuthorUid(article.getAuthorUid());
rspBo.setTopicId(article.getTopicId());
rspBo.setNickName("");
rspBo.setCommentCount(article.getCommentCount());
rspBo.setShareCount(article.getShareCount());
rspBo.setFavorCount(article.getFavoriteCount());
rspBo.setPraiseCount(article.getPraiseCount());
rspBo.setPublishTime(DateUtil.int2DateStr(article.getCreateTime(),DateUtil.DATE_TIME_FORMAT));
rspBo.setAuthStatus(article.getAuthStatus());
rspBo.setSource(article.getArticleType());
rspBo.setImgList(imgMap.get(article.getId()));
rspBo.setIsTop(article.getIsTop());
rspBo.setIsRecommend(article.getIsRecommend());
rspBoList.add(rspBo);
});
return rspBoList;
}
private void publishCheck(GrassArticleReq req) throws PlatformException {
if(req.getArticleUid() ==null){
if(req.getAuthorUid() ==null){
logger.info("publishCheck uid is null");
throw new PlatformException("publish uid is null", 403);
}
... ...
... ... @@ -327,11 +327,24 @@ datasources:
- com.yohobuy.platform.dal.guang.IRelationshipImageDAO
- com.yohobuy.platform.dal.guang.ResourceTabMapper
- com.yohobuy.platform.dal.grass.IGrassArticleDao
- com.yohobuy.platform.dal.grass.IGrassArticleImageDao
- com.yohobuy.platform.dal.grass.IGrassArticleSknDao
- com.yohobuy.platform.dal.grass.IGrassArticleContentDao
- com.yohobuy.platform.dal.grass.IGrassArticleProductDao
- com.yohobuy.platform.dal.grass.IGrassLabelGroupDAO
- com.yohobuy.platform.dal.grass.IGrassPlatUserDao
yh_grass:
servers:
- 192.168.102.219:3306
- 192.168.102.219:3306
username: yh_test
password: 9nm0icOwt6bMHjMusIfMLw==
daos:
- com.yohobuy.platform.dal.grass.IGrassArticleDao
- com.yohobuy.platform.dal.grass.IGrassArticleBlockDao
- com.yohobuy.platform.dal.grass.IGrassArticleProductDao
- com.yohobuy.platform.dal.grass.IGrassLabelGroupDAO
- com.yohobuy.platform.dal.grass.IGrassVirtualUserDao
yhb_promotion:
servers:
- 192.168.102.219:3306
... ...
... ... @@ -326,8 +326,8 @@ datasources:
- com.yohobuy.platform.dal.guang.IRelationshipImageDAO
- com.yohobuy.platform.dal.guang.ResourceTabMapper
- com.yohobuy.platform.dal.grass.IGrassArticleDao
- com.yohobuy.platform.dal.grass.IGrassArticleImageDao
- com.yohobuy.platform.dal.grass.IGrassArticleSknDao
- com.yohobuy.platform.dal.grass.IGrassArticleContentDao
- com.yohobuy.platform.dal.grass.IGrassArticleProductDao
- com.yohobuy.platform.dal.grass.IGrassLabelGroupDAO
- com.yohobuy.platform.dal.grass.IGrassPlatUserDao
... ...
... ... @@ -39,7 +39,7 @@
<tr style="height: 60px">
<td >
<span style="color:red">*</span><label>选择用户</label> <br>
<input id="articleUid" name="articleUid" style="width:60% " class="easyui-combobox" />
<input id="articleUid" name="authorUid" style="width:60% " class="easyui-combobox" />
</td>
</tr>
... ...
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Yoho!Buy运营平台</title>
<script src="/pfcms/js/include.js"></script>
<script src="/pfcms/js/ajaxfileupload.js"></script>
<style>
.btn-long {
width: 120px;
height: 37px;
line-height: 37px;
font-size: 15px;
color: white;
border-radius: 5px;
display: inline-block;
cursor: pointer;
text-align: center;
}
.btn-long:hover {
opacity: 0.9;
}
</style>
</head>
<body class="easyui-layout" >
<div region="north" style="height: 200px;">
<script>
document.write(addHead('内容管理', '内容管理'));
</script>
<div style="margin-left: 20px;margin-top: 10px">
<input class="easyui-combobox" id="authStatus">
</input>
<input class="easyui-textbox" id="publisher">
</input>
<input class="easyui-textbox" id="articleId">
</input>
<input class="easyui-combobox" id="source">
</input>
<input id="startTimeStr" name="startTimeStr" class="easyui-datetimebox" data-options="prompt:'开始时间'"/>
~ &nbsp;
<input id="endTimeStr" name="endTimeStr" class="easyui-datetimebox" data-options="prompt:'结束时间'"/>
</input>
<a id="searchBtn" class="btn-info">筛选</a>
<!--<a id="addActivityBtn" class="btn-success">新增</a>-->
<a id="allBtn" class="btn-info">全部 </a>
<span style="float: right; margin-left: 10px;font-size: medium"><label id="tips" style="display: none; color: red;"> *当前使用中的奖品不足8个,请添加!</label></span>
</div></div>
<div region="center" id="activityList" style="margin-left: 20px">
<table id="activityListTable"></table>
</div>
</body>
<script>
$(function() {
//用于页面刷新后的数据行定位
var index ="";
$("#allBtn").linkbutton({
iconCls : "icon-search",
onClick : function() {
//清空筛选数据
$("#authStatus").textbox('setValue',"");
$("#publishUid").textbox('setValue','');
$("#articleId").combobox('setValue','');
$("#source").combobox('setValue','');
$("#activityListTable").datagrid("load", {
authStatus: $("#authStatus").combobox("getValue"),
publisher: $("#publisher").textbox("getValue"),
articleId: $("#articleId").textbox("getValue"),
source: $("#source").textbox("getValue")
});
}
});
debugger
$("#publisher").textbox({
required:false,
prompt: "用户uid"
});
$("#articleId").textbox({
required:false,
prompt: "文章id"
});
$("#authStatus").combobox({
valueField : "value",
textField : "text",
required:false,
prompt: "请选择状态",
data:[{text:"全部",value:"8"},{text:"未审核",value:"0"},{text:"审核通过",value:"1"},{text:"审核未通过",value:"2"}]
});
$("#source").combobox({
valueField : "value",
textField : "text",
required:false,
prompt: "请选择来源",
data:[{text:"全部",value:"0"},{text:"用户发布",value:"1"},{text:"guang资讯",value:"2"},{text:"mars",value:"3"},{text:"晒单",value:"4"}]
});
$("#searchBtn").linkbutton({
iconCls : "icon-search",
onClick : function() {
debugger;
var startTime="";
var endTime="";
if ($("#startTimeStr").datetimebox('getValue')!='') {
startTime = parseInt(new Date($("#startTimeStr").datetimebox('getValue')).getTime() / 1000);
}
if ($("#endTimeStr").datetimebox('getValue')!='') {
endTime = parseInt(new Date($("#endTimeStr").datetimebox('getValue')).getTime() / 1000);
}
$("#activityListTable").datagrid("load", {
authStatus: $("#authStatus").combobox("getValue"),
publisher: $("#publisher").textbox("getValue"),
articleId: $("#articleId").textbox("getValue"),
source: $("#source").combobox("getValue"),
startTimeStr:startTime,
endTimeStr:endTime
});
}
});
// 检索按钮
$("#activityListTable").myDatagrid({
fit: true,
fitColumns: true,
striped: true,
queryParams: {
authStatus: $("#authStatus").combobox("getValue"),
publisher: $("#publisher").textbox("getValue"),
articleId: $("#articleId").textbox("getValue"),
source: $("#source").textbox("getValue")
},
url: contextPath + "/grassArticle/articleList",
method: 'POST',
loadFilter: function (data) {
var tmp = defaultLoadFilter(data);
tmp.rows = tmp.list;
return tmp;
},
columns: [[
{
title: "内容id",
field: "articleId",
width: 25,
align: "center"
},
{
title: "内容",
field: "articleContent",
width: 76,
align: "left"
},
{
title: "用户名",
field: "authorUid",
width: 25,
align: "left"
},
{
title: "被回复",
field: "commentCount",
width: 76,
align: "left"
},
{
title: "被分享",
field: "shareCount",
width: 20,
align: "left"
},
{
title: "被收藏",
field: "favorCount",
width: 20,
align: "left"
},
{
title: "被赞",
field: "praiseCount",
width: 20,
align: "left"
},
{
title: "发布时间",
field: "publishTime",
width: 25,
align: "left"
},
{
title: "文章来源",
field: "source",
width: 20,
align: "left",
formatter: function (value, rowData, rowIndex) {
debugger
var str = '';
if(rowData.source == '1'){
str = "用户发布";
}
if(rowData.source == '2'){
str = "guang";
}
if(rowData.source == '3'){
str = "mars";
}
if(rowData.source == '4'){
str = "晒单";
}
return str;
}
},
{
title: "推荐状态",
field: "isRecommend",
width: 25,
align: "left",
formatter: function (value, rowData, rowIndex) {
debugger
var str = '';
if(rowData.isRecommend == '1'){
str = "已推荐";
}else{
str = "未推荐";
}
return str;
}
},
{
title: "操作",
field: "ddg",
width: 80,
align: "center",
formatter: function (value, rowData, rowIndex) {
debugger
var str = "<a role='edit' dataId='"+ rowData.articleId +"' style='margin-left:10px' index='"+ rowIndex +"'>编辑内容</a>";
str += "<a role='switch'"
var classStr = rowData.isRecommend == 1 ? "class='btn-danger'" : "class='btn-success'";
str += classStr +" dataId='" + rowData.articleId + "' index='"+ rowIndex +"' status='" + rowData.isRecommend + "' style='margin-left:10px'>";
var optStr = rowData.isRecommend == 1 ? "取消推荐</a>" : "推荐</a>";
str += optStr;
return str;
}
}
]],
cache: false,
pagination: true,
pageSize: 10,
pageList: [10],
idField: "id",
singleSelect: true,
onLoadSuccess: function (data) {
if(index != ""){
$(this).datagrid("scrollTo",index);
index = "";
}
// 编辑
$(this).datagrid("getPanel").find("a[role='edit']").linkbutton({
iconCls : "icon-edit",
onClick : function() {
debugger
index = $(this).attr("index");
var row = $("#activityListTable").datagrid('getData').rows[index];
getEditDialog(row)
}
});
// 停用
$(this).datagrid("getPanel").find("a[role='switch']").linkbutton({
iconCls : "icon-edit",
onClick: function () {
var status = $(this).attr("status");
var dataId = $(this).attr("dataId");
index = $(this).attr("index");
var message = "";
if(status == 1){
message = "取消推荐";
}
if(status == 0){
message = "推荐";
}
$.messager.confirm("确认", "确认"+message+"该文章吗?", function (flag) {
if(flag){
switchStatus(dataId, status);
}
});
}
});
}
});
function switchStatus(id, status) {
debugger
var switchStatus = status == 1 ? 0 : 1;
$.post(contextPath + "/grassArticle/updateArticle?articleId=" + id + "&isRecommend=" + switchStatus+ "&operateType=0", function (data) {
if(data.code != 200){
alert(data.message);
}else{
$("#activityListTable").datagrid("reload");
}
}, "json");
}
// 编辑活动
function getEditDialog(data){
debugger
var activityList = $("<div id='activityList'>").appendTo($(document.body));
var title = data == null ? "新增奖品":"编辑内容";
var textVar = data == null ? "保存":"保存";
var msgVar = data == null ? "确认新增奖品吗?":"确认保存本次修改吗?";
window.self.paramObject.mkData = data;
$(activityList).myDialog({
title: title,
width: "70%",
height: "80%",
resizable:false,
buttons:[{
id : "saveBtn",
text:textVar,
iconCls : "icon-save",
handler:function(){
debugger;
$("#publishArticleForm").form("submit", {
url: contextPath + "/grassArticle/updateArticle",
onSubmit: function (param) {
if (!$("#activityAddForm").form("validate")) {
return false;
}
$.messager.progress({
title: "正在执行",
msg: "正在执行,请稍后..."
});
return true;
},
success: function (data) {
debugger;
$.messager.progress("close");
data = JSON.parse(data);
if (data.code == 200) {
$(activityList).dialog("close");
$("#activityListTable").datagrid("reload");
$.messager.show({
title: "提示",
msg: title + "成功!",
height: 120
});
needTips();
} else {
$.messager.alert("失败", data.message, "error");
}
}
});
}
}, {
text: "关闭",
iconCls: "icon-cancel",
handler: function () {
$.messager.confirm("确认", "确认关闭吗?", function (flag) {
if(flag){
$(activityList).dialog("close");
}
});
}
}],
modal: true,
href: contextPath + "/html/grass/articleManage/editArticle.html",
});
}
});
</script>
</html>
\ No newline at end of file
... ...
<div region="center" id="labelGroupList" style=" margin-left: 20px">
<div id="tt" class="easyui-layout" fit="true" style="overflow-y: scroll">
<form name="publishArticleForm" id="publishArticleForm" method="post" >
<div style="margin-top: 20px;margin-left: 30px">
<table border="0" style="width:95%;margin-top:5px;line-height:30px;" id="tab">
<tr style="height: 60px">
<td >
<span style="color:red">*</span><label>选择用户</label> <br>
<input id="articleUid" name="authorUid" style="width:60% " class="easyui-combobox" disabled/>
</td>
</tr>
<tr style="height: 60px">
<td>
<span style="color:red">*</span><label>文字内容</label> <br>
<textarea rows="2" id="content" style="width:60% " name = "content" class="form-control" placeholder="" required="" maxlength="145"></textarea> </td>
</tr>
<tr style="height: 60px">
<td>
<span style="color:red">*</span><label>选择话题</label> <br>
<input id="topic" name="topicId" class="easyui-combobox" style="width:60% "/>
</td>
</tr>
<tr style="height: 20px">
<td >
<span style="color:red">*</span><label>选择图片</label>
<a id="addImage" class="btn-default" >选择图片+</a>
<input id="imgs" name="articleImages" hidden="hidden"/>
</td>
</tr>
<tr style="height: 60px">
<td id="imgTd">
<div id="imageUpload1">
</div>
</td>
</tr>
<tr style="height: 60px">
<td>
<span style="color:red">*</span><label>关联商品</label> <br>
<a id="addSkn" class="btn-primary" onclick="getEditDialog()" style="font-size: 15px">新增商品+</a>
<input id="skns" name="articleSkns" hidden="hidden"/>
</td>
</tr>
<tr style="height: 60px">
<td id="goodstd">
<div id="good0" style="float: left;margin-left: 30px">
</div>
</td>
</tr>
</table>
</div>
</form>
</div>
</div>
<script>
var count = 1;
var checkedItems = [];
var checkedItemsObj = {};
$(function () {
$("#articleUid").combobox({
required: true,
missingMessage: "发布用户不能为空",
prompt: "请输入发布用户",
selectOnNavigation : true,
valueField: 'text',
textField: 'value',
url : contextPath + "/grassArticle/platPublishUser",
loadFilter: function (data) {
var list = [];
var obj = {};
debugger;
for (var i = 0; i < data.data.length; i++) {
obj['text'] = data.data[i];
obj['value'] = data.data[i];
list.push(obj);
}
return list;
}
});
$("#topic").combobox({
prompt: "请选择话题"
});
initimg();
$("#subBotton").linkbutton({
iconCls: "icon-save",
onClick: function () {
$("#publishArticleForm").form("submit",{
url : serverContextPath+"/grassArticle/publishArticle",
onSubmit : function(param) {
debugger;
if (!$("#publishArticleForm").form("validate")) {
return false;
}
if($("#articleUid").combobox("getValue") == ''){
return false;
}
var imgs = '';
$("input[name='url']").each(function(j,item){
debugger
var url = item.value;
if(imgs == ''){
imgs = url;
}else{
imgs = imgs + ","+url;
}
});
$("#imgs").val(imgs);
return true;
},
success : function(data) {
if (data) {
data = $.parseJSON(data);
if (data.code == 200) {
$.messager.alert("保存成功");
} else {
$.messager.alert("保存失败", data.message, "error");
}
} else {
$.messager.alert("保存失败", data.message, "error");
}
}
});
}
});
debugger
var data = paramObject.mkData;
if (data){
$("#articleUid").combobox("setValue", data.authorUid);
$("#articleUid").combobox('combobox').attr('readonly',true);
$("#content").val( data.articleContent);
$("#topic").combobox("setValue", data.topicId);
for (var i=1; i<=data.imgList.length; i++){
$("#imageUpload"+i).imageUpload('setValue',data.imgList[i]);
}
}
});
// 编辑分组
function getEditDialog(data){
var labelGroupList = $("<div id='labelGroupList'>").appendTo($(document.body));
var title = "新增商品";
var textVar = "确认";
var msgVar = "确认新增吗?";
window.self.paramObject.mkData = data;
$(labelGroupList).myDialog({
title: title,
width: "70%",
height: "80%",
resizable:false,
buttons:[{
id : "saveBtn",
text:textVar,
iconCls : "icon-save",
handler:function(){
debugger;
$("#goodstd").html("<div id=\"good0\" style=\"float: left;\">\n" +
" </div>");
var skns = '';
for (var i = 0; i < checkedItems.length; i++) {
buildgood(i,checkedItems[i]);
if( i == checkedItems.length -1){
skns = skns+ checkedItems[i]
}else{
skns = skns+ checkedItems[i] +","
}
}
$("#skns").val(skns);
$(labelGroupList).dialog("close");
}
}, {
text: "关闭",
iconCls: "icon-cancel",
handler: function () {
$.messager.confirm("确认", "确认关闭吗?", function (flag) {
if(flag){
$(labelGroupList).dialog("close");
}
});
}
}],
modal: true,
href: contextPath + "/html/grass/article/chooseSkns.html"
});
}
function oo(num){
// debugger
if(num >9){
return
}
$("#imageUpload"+num).imageUpload({
width: 171,
height: 120,
realInputName: "url",
url: contextPath + '/fileupload/uploadFile',
queryParams: {
bucket: "activity"
},
onBeforeSubmit: function () {
$.messager.progress({
title: "正在执行",
msg: "正在执行,请稍后...",
interval: 500,
text: ""
});
},
filterFileName: function (data) {
debugger;
if (!data || data.code != 200) {
$.messager.progress("close");
$.messager.alert("错误",data.message);
return "";
}
return data.data.url;
},
onLoadSuccess: function (data) {
debugger;
$.messager.progress("close");
return false;
}
});
}
function initimg() {
for (var i =1 ; i<=9; i++){
var nnum = i+1;
$("#imageUpload"+i).after('<div id="imageUpload'+nnum+'"> </div>');
count = count+1;
oo(i);
}
}
function buildgood(index,obj) {
debugger;
var data = checkedItemsObj[obj];
$("#good"+index).html(gooddiv(data));
$div = $("#good"+(index+1));
$("#good"+index).after('<div id="good'+(index+1)+'"style="float: left;margin-left: 30px"> </div>');
}
function gooddiv(data) {
return " <span>商品图:<img width=\"120\" height=\"60\" src="+getImageUrl()+
" </span>" +
"<h5 style=\"margin-top: 0px;margin-bottom: 0px>\"商品名:"+ data.product_name +"</h5>\n" +
"<h5 style=\"margin-top: 0px;margin-bottom: 0px>\"价格:"+data.sales_price+"</h5>"
}
function getImageUrl(image) {
var result='';
if (image) {
if(image.indexOf('http://') == 0){
result = image.split("?")[0];
}else{
var fileMode = image.substring(15, 17);
if(fileMode=='01'){
result= "http://"+"img11.static.yhbimg.com"+"goodsimg"+image;
}
if(fileMode=='02'){
result= "http://"+"img12.static.yhbimg.com"+"goodsimg"+image;
}
}
}
else {
result = ""
}
if (result) {
return "<img width=120 height=60 src='" + result + "?imageMogr2/thumbnail/320x320/extent/320x320/background/d2hpdGU=/position/center/quality/90'/>";
} else {
return "";
}
}
function findCheckedItem(ID) {
for (var i = 0; i < checkedItems.length; i++) {
if (checkedItems[i] == ID) return i;
}
return -1;
}
function addcheckItem() {
$("input[type='checkbox'][name='id']:checked").each(function () {
var k = findCheckedItem($(this).val());
if (k == -1) {
checkedItems.push($(this).val());
}
});
}
function removeAllItem(rows) {
$("input[type='checkbox'][name='id']").each(function () {
if (!this.checked) {
var k = findCheckedItem($(this).val());
if (k != -1) {
checkedItems.splice(k, 1);
}
}
});
}
function resetSelectedCheckBox(data){
$("input[type='checkbox'][name='id']").each(function () {
var cb=$(this);
$.each(checkedItems,function(index,value){
if(value==cb.val()){
cb.attr("checked",true);
return false;
}
});
});
}
function removeSingleItem(rowIndex, rowData) {
var k = findCheckedItem(rowData.id);
if (k != -1) {
checkedItems.splice(k, 1);
}
}
</script>
... ...