业务需求:
1.在添加自媒体时将属于畅读号的自媒体的provideID加入缓存
2.输入:appObjectId有页面传入
3.当传入的appObjectId等于注入的appObjectId及表示为畅读号下,然后做缓存加入操作
4.涉及到的表和类以及页面:
-
- 页面
-
- viva/typeManage/cpTypeLink.html
- 类
-
- com.contx.cssp.console.viva.platform.controller.CpTypeLinkController
- com.contx.cssp.console.viva.platform.service.CpTypeLinkService
- 表
-
- contx.cp_type
- contx.cssp_provider
- contx.cp_type_link
业务关系:
1.三个表之间的关系:
cp_type----cp_type_link ----cssp_provider(外键逻辑关联)
2.在执行添加自媒体时过滤掉属于畅读号的自媒体并将其加入到缓存
页面:
viva/typeManage/cpTypeLink.html
function removeContextSource(){
var zIndex = $(".maskbg").css("z-index");
$("#miaDiv").css({
"z-index" : parseInt(zIndex) + 1,
"top" : "50px"
});
$('#cpItems').html('');
$('#miaName').val('');
$('#addSortNo').val('');
$('#searchCpBtn').unbind('click').click(function(){
$('#cpItems').html('');
var name = $.trim($('#miaName').val());
if(name==""){
framework.hint("请输入自媒体名称");
return;
}
var param={
"name":name,
"appObjectId":$("#appObjectId").val()
};
$.rest('get',"/provider/findWeMidia/exact",param,
function(data){
if(data!=""){
var selectTags = '';
selectTags +='<label class="checkBoxS leftF"><a value="'+data.id+'" name="miaResult" class="selectBoxRadio" href="javascript:void(0);"></a><span>'+data.name+'</span></label>';
$('#cpItems').html('');
$('#cpItems').append(selectTags);
$('#cpItems a[name=miaResult]').mixRadio({
callBack:function(){
}
});
}else{
$('#cpItems').html('');
$('#cpItems').append('<span>没有找到该自媒体</span>');
}
}
);
});
framework.popUp($("#miaDiv"), function() {
var cpid = $().mixRadio("getCheckedValue", "miaResult");
if(cpid==null||cpid==""){
framework.hint("请选择自媒体后保存");
return false;
}
var param = {
"cpId":cpid,
"appObjectId":$("#appObjectId").val(),
};
$.rest('get', "/ctypelink/findCpTypeLink",
param, function(data) {
var addSortNo = $("#addSortNo").val();
var addParam = {
"cpId":cpid,
"typeId":$("#cptypeId").val(),
"sortNo":addSortNo==""?"99999":addSortNo,
"oldTypeId":data.typeId,
"appObjectId":$("#appObjectId").val()
}
if (data=="") {
$.rest('get', "/ctypelink/addCpTypeLink",
addParam, function(data) {
if (data==true) {
framework.hint("操作成功");
initPage();
return true;
} else {
framework.hint("操作失败");
return false;
}
});
} else {
framework.confirm("该自媒体已经存在于"+data.typeId+"分类下,确定移动至此?",function(){
$.rest('get', "/ctypelink/addCpTypeLink",
addParam, function(data) {
if (data==true) {
framework.hint("操作成功");
initPage();
return true;
} else {
framework.hint("操作失败");
return false;
}
});
},function(){
return;
});
return false;
}
});
return true;
}, function() {
return true;
});
};
控制层:
com.contx.cssp.console.viva.platform.controller.CpTypeLinkController
@RequestMapping(value="/addCpTypeLink",method = RequestMethod.GET)
@ResponseBody
public boolean addCpTypeLink(Long cpId,Long typeId, Integer sortNo,Long oldTypeId,String appObjectId){
return cpTypeLinkService.addCpTypeLink(cpId, typeId, sortNo, oldTypeId, appObjectId);
}
业务层:
com.contx.cssp.console.viva.platform.service.CpTypeLinkService
@Value("${viva_app_object_id:83ee783f8111b5ec3f0d888d0e5a0381}") //值注入
private String vivaAppObjectId;
public boolean addCpTypeLink(Long cpId, Long typeId, Integer sortNo, Long oldTypeId,String appObjectId) {
try {
if (oldTypeId != null) {
CpTypeLink oc = cpTypeLinkDao.findSpecialType(cpId, oldTypeId);
cpTypeLinkDao.delete(oc);
}
CpTypeLink c = new CpTypeLink();
c.setCpId(cpId);
c.setCreateTime(new Date());
c.setStatus(1);
c.setTypeId(typeId);
c.setSortNo(sortNo);
cpTypeLinkDao.saveAndFlush(c);
if (vivaAppObjectId.equals(appObjectId)) { //注入值等于传入值
Provider p = providerDao.findOne(cpId);
if (p != null) {
redisDao.setValue2Set(Constant.VIVA_WEMEDIA_KEY, p.getObjectId());
}
}
setCpTypeLinkIntoRedis(c.getTypeId());
return true;
}catch(Exception e){
e.printStackTrace();
return false;
}
}
public boolean updateStatus(Long id, Integer status) {
CpTypeLink c = cpTypeLinkDao.findOne(id);
c.setStatus(status);
cpTypeLinkDao.save(c);
Provider p=providerDao.findOne(c.getCpId());
if(p!=null){
if(status==0){
redisDao.removeValueFromSet(Constant.VIVA_WEMEDIA_KEY,p.getObjectId());
}else{
redisDao.setValue2Set(Constant.VIVA_WEMEDIA_KEY,p.getObjectId());
}
}
setCpTypeLinkIntoRedis(c.getTypeId());
return true;
}
/**
*
* 添加畅读下所有providerID到redis
* @return
*/
public void addProviderIdIntoRedis(){
List<CpType> cpTypeList = cpTypeDao.findAllType(vivaAppObjectId);
if(cpTypeList.size()==0){
logger.info("viva no classify");
}
List<Long> ll = new LinkedList<Long>();
for(CpType ct : cpTypeList){
ll.add(ct.getId());
}
List<CpTypeLink> cpTypeLinkList= cpTypeLinkDao.findListByTypeIds(ll);
for(CpTypeLink ctl:cpTypeLinkList){
if(!StringUtils.isEmpty(ctl.getCpId())){
Provider p=providerDao.findOne(ctl.getCpId());
if(p!=null){
redisDao.setValue2Set(Constant.VIVA_WEMEDIA_KEY,p.getObjectId());
}
}
}
}