Java大型互联网项目-移动电子商城开发日记-商品审核
商品审核
流程图
我们的开发流程为:
审核->通过->上架-> 前台接管
整体页面逻辑与商品组合查询与分页SQL差不多
@RequestMapping("/listAuditItem.do")
public String listAuditItem(QueryCondition qc, Model model){
List<EbBrand> bList = brandService.selectBrandAll();
model.addAttribute("bList", bList);
if(qc.getPageNo() == null){
qc.setPageNo(1);
}
Page page = itemService.selectItemByQC(qc);
model.addAttribute("page", page);
//把qc写回去,目的是回显
model.addAttribute("qc", qc);
return "item/listAudit";
}
可见要回显的东西都一样
商品审核需要数据库的我们所设计的日志表支持
其生成的实体类为EbConsoleLog
.do代码
@RequestMapping("/auditItem.do")
public String auditItem(Long itemId, Short auditStatus, String notes){
itemService.auditItem(itemId, auditStatus, notes);
return "redirect:listAuditItem.do?showStatus=1&auditStatus=0";
}
参数的来源为前台表单的提交的隐藏域数据,.do的参数与前端的name对应即可被接收到
<form id="form1" name="form1" action="${path}/item/listItem.do" method="post">
我在jsp页面设置了三个隐藏文本域
<form action="${path}/item/auditItem.do" method="post" id="auditForm">
<input id="itemId" name="itemId" type="hidden">
<input id="auditStatus1" name="auditStatus" type="hidden">
<input id="notes" name="notes" type="hidden">
</form>
在通过/不通过时触发JS代码提交表单,表单的数据来源为
$("#addItemNoteConfirm").click(function(){
var notes = $("#itemNote").val();
$("#notes").val(notes);
//提交表单
$("#auditForm").submit();
});
function isPass(itemId, auditStatus){
//把itemId和auditStatus给表单
$("#itemId").val(itemId);
$("#auditStatus1").val(auditStatus);
$("#addItemNoteH2").html("商品审核");
$("#itemNote").val("");
tipShow("#addItemNote");
}
isPass函数由审核由前台触发
<c:if test="${item.auditStatus == 0 }">
<a href="javascript:void(0);" onclick="isPass(${item.itemId}, 1)">通过</a>
<a href="javascript:void(0);" onclick="isPass(${item.itemId}, 2)">不通过</a>
</c:if>
Service代码
public void auditItem(Long itemId, Short auditStatus, String notes) {
//修改auditStatus状态
EbItem item = new EbItem();
item.setItemId(itemId);
item.setAuditStatus(auditStatus);
itemDao.updateItem(item);
EbConsoleLog log = new EbConsoleLog();
log.setEntityId(itemId);
log.setEntityName("商品表");
log.setNotes(notes);
log.setOpTime(new Date());
log.setOpType("审核");
log.setTableName("EB_ITEM");
log.setUserId(1l);
logDao.saveConsoleLog(log);
}
商品上架与下架
逻辑与审核类似,不赘述