子商城管理之签到活动

--建表脚本:
--create sequence
create sequence SIGN_ACTIVITY_SEQ;

-- Create table
create table SIGN_ACTIVITY
(
  SIGN_ACTIVITY_ID      NUMBER not null,
  START_TIME            VARCHAR2(20),
  END_TIME              VARCHAR2(20),
  ACTIVITY_INTRODUCTION VARCHAR2(300),
  REWARD_TYPE           VARCHAR2(20),
  REWARD_DAYS           NUMBER(3),
  REWARD_CONTENT        VARCHAR2(300),
  REWARD_NAME           VARCHAR2(300) default '到额外奖励',
  IS_DELETE             CHAR(1) default 'N',
  ADD_TIME              VARCHAR2(20),
  ADD_USER_ID           NUMBER(8),
  EDIT_TIME             VARCHAR2(20),
  EDIT_USER_ID          NUMBER(8),
  PLATFORM              VARCHAR2(20),
  ISDISABLE             VARCHAR2(20) default 'Y'
)
tablespace USERS
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 64
    next 8
    minextents 1
    maxextents unlimited
  );
-- Add comments to the table 
comment on table SIGN_ACTIVITY
  is '签到活动';
-- Add comments to the columns 
comment on column SIGN_ACTIVITY.SIGN_ACTIVITY_ID
  is 'id';
comment on column SIGN_ACTIVITY.START_TIME
  is '活动开始时间';
comment on column SIGN_ACTIVITY.END_TIME
  is '活动结束时间';
comment on column SIGN_ACTIVITY.ACTIVITY_INTRODUCTION
  is '互动介绍';
comment on column SIGN_ACTIVITY.REWARD_TYPE
  is '奖励类型(例如积分)';
comment on column SIGN_ACTIVITY.REWARD_DAYS
  is '奖励期(默认为开始与结束之间的天数)';
comment on column SIGN_ACTIVITY.REWARD_CONTENT
  is '奖励内容,例如1000积分';
comment on column SIGN_ACTIVITY.REWARD_NAME
  is '奖励名称,例默认为到额外奖励';
comment on column SIGN_ACTIVITY.PLATFORM
  is '适用平台("PC","APP","WAP")';
comment on column SIGN_ACTIVITY.ISDISABLE
  is '是否禁用(''Y''禁用,''N''启用)';

 

//SignActivity.js
$(function(){ $("#opreateHtml").window("close"); $("#deliveryGrid").datagrid({ url:appPath+"/page/signActivityAct/getPage", height:"full", striped:true, remoteSort:false, pagination:true, rownumbers:true, singleSelect:false, queryParams:getQueryParam(), frozenColumns:[[{field:"ck",checkbox:true}, {field:"opt",title:"操作",width:100,align:"center", formatter:function(value,rowData,rowIndex){ var dataStr = JSON.stringify(rowData); var html = ""; if(rowData.isdisable=='N'&& rowData.isdisable!='Y'){ // html += "<img class='op-enable' src='"+ appPath+ "/js/lib/jquery-easyui/themes/icons/cancel.png' onClick='deletes("+ rowData.signActivityId+ ")' title='停用'/>&nbsp;&nbsp;"; html += "<img class='op-enable' src='"+ appPath+ "/js/lib/jquery-easyui/themes/icons/cancel.png' onClick='doOk("+ rowData.signActivityId+ "," + 2 + ")' title='禁用'/>&nbsp;&nbsp;"; }else if(rowData.isdisable!='N'){ html+="<img class='op-enable' src='"+appPath+"/js/lib/jquery-easyui/themes/icons/pencil.png' onClick='showWin("+dataStr+")' title='编辑'/>&nbsp;&nbsp;"; // html+="<img class='op-enable' src='"+appPath+"/js/lib/jquery-easyui/themes/icons/get-verify.png' onClick='isOpen("+rowData.signActivityId+")' title='启用'/>&nbsp;&nbsp;"; html+="<img class='op-enable' src='"+appPath+"/js/lib/jquery-easyui/themes/icons/get-verify.png' onClick='doOk("+rowData.signActivityId+"," + 1 + ")' title='启用'/>&nbsp;&nbsp;"; } html += "<img class='op-enable' src='"+ appPath+ "/js/lib/jquery-easyui/themes/icons/search.png' onClick='showWin("+ dataStr+ ","+1+")' title='查看'/>&nbsp;&nbsp;"; return html; } } ]], columns:[[ {field:'startTime',title:'开始时间',width:100,align:'left',sortable:true}, {field:'endTime',title:'结束时间',width:100,align:'left',sortable:true}, {field:'rewardDays',title:'奖励期',width:100,align:'center',sortable:true}, {field:'rewardName',title:'奖励产品',width:100,align:'center',sortable:true}, {field : 'isdisable', title : '启用情况', width : 120, align : 'center', sortable : true, formatter : function(value, rowData, rowIndex) { var strReturn = ""; if (rowData.isdisable == 'Y') { return ("<font color=red> "+strReturn +"停用</font>"); } else if (rowData.isdisable == 'N') { return ("<font color=green> "+strReturn +"启用</font>"); }else { return ("<font color=black> "+strReturn +"新增</font>"); } } }, {field:'editTime',title:'操作时间',width:120,align:'left',sortable:true} ]], toolbar:[ { id:'btnadd', text:'新增签到活动', iconCls:'icon-add', handler:function(){ showWin(null,null); } } ] }); $("#addstartTime").datetimebox({ onChange: function (n,o) { var bgAddTime = $('#addstartTime').datebox("getValue"); var edAddTime = $('#addendTime').datebox("getValue"); if(bgAddTime!=''&& bgAddTime!=null && edAddTime!=''&& edAddTime!=null){ if(bgAddTime>edAddTime){ $.messager.alert('提示', "开始时间不能大于结束时间", 'info'); return; } } // 获取两个日期天数差 var bgDates = new Date(bgAddTime); var edDates = new Date(edAddTime); var dayss = edDates.getTime() - bgDates.getTime(); var rewardDayss= (parseInt(dayss / (1000 * 60 * 60 * 24)))+1; $("#addrewardDays").val(rewardDayss); } }); //ji suan jie shu shi jian $("#addendTime").datetimebox({ onChange: function (n,o) { var bgAddTime = $('#addstartTime').datebox("getValue"); var edAddTime = $('#addendTime').datebox("getValue"); if(bgAddTime!=''&& bgAddTime!=null && edAddTime!=''&& edAddTime!=null){ if(bgAddTime>edAddTime){ $.messager.alert('提示', "开始时间不能大于结束时间", 'info'); return; } } // 获取两个日期天数差 var bgDates = new Date(bgAddTime); var edDates = new Date(edAddTime); var dayss = edDates.getTime() - bgDates.getTime(); var rewardDayss= (parseInt(dayss / (1000 * 60 * 60 * 24)))+1; $("#addrewardDays").val(rewardDayss); } }); }); function getQueryParam(){ var signActivity =new Object(); //封装查询条件 signActivity.startTime = $("#startTime").datebox("getValue"); signActivity.endTime = $("#endTime").datebox("getValue"); signActivity.isdisable = $('#isdisable').combobox("getValue"); return signActivity; } function doQuery(){ $("#deliveryGrid").datagrid('load',getQueryParam()); } function showWin(rowData,num){ if(rowData!=null){ $("#idHidden").val(""); $("#addrewardDays").val(""); $("#addplatform").val(""); $("#addactivityIntroduction").val(""); // $("#addrewardType").combobox("setValue", 'JF');//奖励类型 目前仅支持积分 $("#addsignActivityId").val(""); $("#addrewardName").val(""); $("#addrewardContent").val(""); $("#addstartTime").datebox("setValue",""); $("#addendTime").datebox("setValue",""); $("#isdisable").combobox("setValue", ''); //签到规则说明 var result=querySignRule(); $("#addruleIntroduction").val(result); var iconStr = "icon-add"; var title = "新增签到活动"; var urlList; var id =rowData.signActivityId; if (id != null) { iconStr = "icon-edit"; title = "编辑签到活动"; $.post( appPath+"/page/signActivityAct/getBean/"+id, {}, function(data){ $("#idHidden").val(data.signActivityId); $("#addrewardDays").val(data.rewardDays); $("#addplatform").combobox('setValue', data.platform); $("#addactivityIntroduction").val(data.activityIntroduction); $("#addrewardType").val(data.rewardType); $("#addsignActivityId").val(data.signActivityId); $("#addendTime").datebox("setValue", data.endTime); $("#addstartTime").datebox("setValue", data.startTime); $("#addrewardName").val(data.rewardName); $("#addrewardContent").val(data.rewardContent); $("#addisdisable").combobox('setValue', data.isdisable); },"json"); } }else{ var iconStr = "icon-add"; var title = "新增签到活动"; $("#idHidden").val(""); $("#addrewardDays").val(""); $("#addplatform").combobox("setValue", 'APP'); $("#addactivityIntroduction").val(""); $("#addrewardType").combobox("setValue", 'JF');//奖励类型 目前仅支持积分 $("#addsignActivityId").val(""); $("#addrewardName").val("签到额外奖励"); $("#addrewardContent").val(""); $("#addstartTime").datebox("setValue",""); $("#addendTime").datebox("setValue",""); $("#isdisable").combobox("setValue", ''); //签到规则说明 var result= querySignRule(); $("#addruleIntroduction").val(result); } $('#opreateHtml').window({ title:title, iconCls:iconStr, width : 750, height : 480, left : 200, modal : true, shadow : true, collapsible : false, minimizable : false, maximizable : false }); $('#opreateHtml').window('move',{top:0}); $('#opreateHtml').window('open'); if(num==1){ $("#shenheHideAndShow").hide(); }else{ $("#shenheHideAndShow").show(); } } function closeWin(id){ $('#opreateHtml').window('close'); } function save(){ var signActivity=new Object(); if ($("#idHidden").val() != null && $("#idHidden").val() != "") { signActivity.signActivityId = $("#idHidden").val(); } var bgAddTime = $('#addstartTime').datebox("getValue"); var edAddTime = $('#addendTime').datebox("getValue"); // 获取两个日期天数差 var bgDate = new Date(bgAddTime); var edDate = new Date(edAddTime); var days = edDate.getTime() - bgDate.getTime(); var rewardDays= (parseInt(days / (1000 * 60 * 60 * 24))) if($("#addstartTime").datebox("getValue")==""||$("#addstartTime").datebox("getValue")==null){ $.messager.alert("提示","开始时间不能为空","info"); return; } if ($("#addendTime").datebox("getValue") == null|| $("#addendTime").datebox("getValue") == "") { $.messager.alert('提示', "结束时间不能为空", 'info'); return; } if ($("#addstartTime").datebox("getValue") >= $("#addendTime").datebox("getValue")) { $.messager.alert('提示', "开始时间不能大于结束时间", 'info'); return; } if($("#addactivityIntroduction").val()==null || $("#addactivityIntroduction").val()==""){ $.messager.alert('提示', "请输入活动的内容介绍", 'info'); return; } if($("#addrewardName").val()==null ||$("#addrewardName").val()==""){ $.messager.alert('提示', "请输入奖励积分名称", 'info'); return; } if($("#addrewardContent").val()==null ||$("#addrewardContent").val()==""){ $.messager.alert('提示', "请输入奖励积分分值", 'info'); return; } signActivity.signActivityId = $("#idHidden").val(); signActivity.startTime = $("#addstartTime").datebox("getValue"); signActivity.endTime = $("#addendTime").datebox("getValue"); signActivity.platform=$("#addplatform").combobox("getValue"); signActivity.activityIntroduction=$("#addactivityIntroduction").val(); signActivity.rewardType=$("#addrewardType").combobox("getValue"); //默认是开始减去结束时间 signActivity.rewardDays=rewardDays+1; signActivity.rewardName=$("#addrewardName").val(); signActivity.rewardContent=$("#addrewardContent").val(); //默认签到规则 doAjax({ url:appPath+'/page/signActivityAct/saveOrUpdate', type:'post', data:signActivity, success : function(data) { if (data == "ok") { $.messager.alert('提示', "保存成功", 'info'); $('#opreateHtml').window('close'); doQuery(); } else { $.messager.alert('提示', data, 'info'); } } }); } function deletes(id) { var ids = ''; if (id == null || id == '') { var selections = $("#deliveryGrid").datagrid('getSelections'); if (selections == null || selections == '') { $.messager.alert('提示信息', '请选操作的记录', ''); return; } for (var i = 0; i < selections.length; i++) { ids += selections[i].signActivityId + ','; } } else { ids = id; } $.messager.confirm('提示信息', "您确定要停用吗?", function(r) { if (r) { $.post(appPath + "/page/signActivityAct/deleteIdsLogic", { "ids" : ids }, function(data) { $.messager.alert('提示信息', '停用成功', ''); doQuery(); }); } }); } //启用 function isOpen(id){ var isdisable='Y'; if(!checkIsisable(isdisable)){ $.messager.alert('提示','数据中已经存在启用状态的活动,不可再启用!'); return; } /** * 数据在启用的之前,应先查找数据库是否有已经启用的数据, * 保证后台数据只有一条是启用状态,否则弹框,并提示用户 */ var ids = ''; if (id == null || id == '') { var selections = $("#deliveryGrid").datagrid('getSelections'); if (selections == null || selections == '') { $.messager.alert('提示信息', '请选操作的记录', ''); return; } for (var i = 0; i < selections.length; i++) { ids += selections[i].signActivityId + ','; } } else { ids = id; } $.messager.confirm('提示信息', "您确定要启用吗?", function(r) { if (r) { $.post(appPath + "/page/signActivityAct/isOpen", { "ids" : ids }, function(data) { $.messager.alert('提示信息', '启用成功', ''); doQuery(); }); } }); } //检查活动编码是否唯一 function checkIsisable(isdisable){ var flag = false; doAjax({ url:appPath+'/page/signActivityAct/checkIsdisable', type:'post', async:false, data:{ isdisable:isdisable }, success:function(data){ if(data == 0){ flag = true; } } }); return flag; } /** * 通过soa-member 接口查询出默认签到规则 */ function querySignRule(){ var result=''; doAjax({ url:appPath+'/page/signActivityAct/getDeSignRule', type:'post', async:false, data:{}, success:function(data){ if(data!=null ){ result=data[0].signRule return result; } } }); return result; } /** * 启用,停用 * */ function doOk(id,val){ var msg = ""; msg = val ==1?"启用成功":"停用成功"; doAjax({ url: appPath + "/page/signActivityAct/onlineOrOffline", type: "post", dataType: "json", data: {id:id,isdisable:val} , success: function (data) { doQuery(); if(data=='1'){ $.messager.alert('提示','数据中已经存在启用状态的活动,不可再启用!'); }else{ $.messager.alert('提示信息', msg, 'info'); } }, error: function () { alert('ajax异常'); } }); }
//SigINActivity.jsp

<
%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <c:set var="ctx" value="${pageContext.request.contextPath}" /> <jsp:include page="/jsp/common/header.jsp"></jsp:include> <script src="${ctx }/js/signActivity/signActivity.js"></script> <table class="queryTable"> <tr> <td class="queryTitle" width="80px">开始时间</td> <td class="queryContent"><input class="inputText easyui-datetimebox" type="text" id="startTime"/></td> <td class="queryTitle" width="80px">结束时间</td> <td class="queryContent"><input class="inputText easyui-datetimebox" type="text" id="endTime"/></td> <td class="queryTitle" width="80px">启用状态</td> <td class="queryContent"> <select id="isdisable" class="easyui-combobox" style="width: 100px" panelHeight="auto"> <option value="">请选择</option> <option value="Y">禁用</option> <option value="N">启用</option> </select> </td> <td class="queryBtnTd" ><a href="javascript:void(0)" class="easyui-linkbutton" iconCls="icon-search" onclick="doQuery()">&nbsp;&nbsp;</a></td> </tr> </table> <table id="deliveryGrid"></table> <div id="opreateHtml" class="easyui-window" title="" iconCls="icon-edit" style="width:320px; height:550px;text-align:center; background: #fafafa;margin:0 auto;"> <div class="easyui-layout" fit="true"> <div region="center" border="false" style="background:#fff;border:1px solid #ccc;"> <form> <input type="hidden" id="idHidden" name="idHidden" value="" /> <table class="queryTable" width="100%"> <tr> <td class="queryTitle" width="100px">开始时间</td> <td class="queryContent" ><input class="inputText easyui-datetimebox" type="text" id="addstartTime" style="width:150px"/></td> </tr> <tr> <td class="queryTitle" width="100px">结束时间</td> <td class="queryContent" ><input class="inputText easyui-datetimebox" type="text" id="addendTime" style="width:150px"/></td> </tr> <tr> <td class="queryTitle" width="100px">适用端</td> <td class="queryContent" > <select id="addplatform" class="easyui-combobox" style="width: 100px" panelHeight="auto"> <option value="APP">APP</option> <option value="PC">PC</option> <option value="WAP">WAP</option> </select> </td> </tr> <tr> <td class="queryTitle" width="100px">内容介绍</td> <td class="queryContent" colspan="20"> <textarea id="addactivityIntroduction" name="addactivityIntroduction" class="inputText" validType="maxLength[1000]" style="width: 565px;height:70px;"></textarea> </td> </tr> <tr> <td class="queryTitle" width="100px">奖励类型</td> <td class="queryContent" > <select id="addrewardType" class="easyui-combobox" style="width: 100px" panelHeight="auto"> <option value="JF">积分</option> </select> </tr> <tr> <td class="queryTitle" width="100px">奖励期</td> <td class="queryContent" ><input class="inputText" type="text" id="addrewardDays" value="" readonly="readonly" /></td> </tr> <tr> <td class="queryTitle" width="100px">奖励积分名称</td> <td class="queryContent" ><input class="inputText" type="text" id="addrewardName" /></td> </tr> <tr> <td class="queryTitle" width="100px">奖励积分分值</td> <td class="queryContent" ><input class="inputText" type="text" id="addrewardContent" /></td> </tr> <tr> <td class="queryTitle"width="100px" >签到规则说明</td> <td class="queryContent" colspan="30" > <textarea id="addruleIntroduction" name="addruleIntroduction" class="inputText" validType="maxLength[1000]" readonly="true" style="width: 565px;height:70px;"></textarea> </td> </tr> </table> </form> </div> <div region="south" border="false" style="text-align:center;height:30px;line-height:30px;"> <label id="shenheHideAndShow"> <a class="easyui-linkbutton" iconCls="icon-ok" href="javascript:void(0);" onclick="save('1');">确定</a>&nbsp;&nbsp; </label> <a class="easyui-linkbutton" iconCls="icon-cancel" href="javascript:void(0);" onclick="closeWin();">退出</a> </div> </div> </div>

Action:

package com.founder.ec.cms.action;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;

import com.founder.ec.base.action.BaseClassAction;
import com.founder.ec.cms.model.SignActivity;
import com.founder.ec.cms.service.SignActivityService;
import com.founder.ec.common.utils.DateUtils;
import com.founder.ec.common.utils.StringUtil;
import com.founder.ec.member.model.MemberShareActivity;
import com.j1.base.dto.ServiceMessage;
import com.j1.member.model.DeSignRule;
import com.j1.member.model.MemberPointsSetting;
import com.j1.soa.resource.member.api.MemberSignService;

@Controller
@RequestMapping(value = "/signActivityAct")
public class SignActivityAction extends BaseClassAction {

    @Autowired
    private SignActivityService signActivityService;
    @Autowired
    private MemberSignService memberSignService;
    /**
     * @description 分页查询
     */
    @RequestMapping(value = "/getPage")
    @ResponseBody
    public Map<String, Object> getPage(HttpServletRequest request,
            SignActivity signActivity) {
        int pageSize = 10, pageNo = 1;
        pageNo = Integer.parseInt(request.getParameter("page"));
        pageSize = Integer.parseInt(request.getParameter("rows"));
        return signActivityService.getSignActivityPage(signActivity, pageNo,
                pageSize);
    }

    /**
     * @description 根据主键查询Bean
     */
    @RequestMapping(value = "/getBean/{getId}")
    @ResponseBody
    public SignActivity getBean(HttpServletRequest request,
            HttpServletResponse response, @PathVariable Object getId) {

        SignActivity signActivity = new SignActivity();
        signActivity.setSignActivityId(Long.parseLong(getId.toString()));

        return signActivityService.getsignActivityPageByPageId(signActivity);

    }

    /**
     * @description 保存或者更新
     */
    @RequestMapping(value = "/saveOrUpdate")
    @ResponseBody
    public String updateOrSave(HttpServletRequest request,
            HttpServletResponse response, SignActivity signActivity) {
        String userId = request.getSession().getAttribute("userId").toString();

        signActivity.setAddTime(DateUtils.getCurrentDateString());
        signActivity.setEditTime(DateUtils.getCurrentDateString());
        if (signActivity.getSignActivityId() != null) {
            signActivity.setEditTime(StringUtil.returnDateFormat(new Date(),
                    "yyyy-MM-dd HH:mm:ss"));

            signActivityService.updateSignActivity(signActivity);
        } else {
            signActivity.setEditTime(StringUtil.returnDateFormat(new Date(),
                    "yyyy-MM-dd HH:mm:ss"));
            signActivityService.saveSignActivity(signActivity);

            return "ok";
        }
        return "ok";
    }

    /**
     * 删除
     *
     * @description
     */
    @RequestMapping(value = "/deleteIdsLogic")
    public void deleteIdsLogic(HttpServletRequest request,
            HttpServletResponse response) {
        String ids = null;
        if (request.getParameter("ids") != null) {
            ids = request.getParameter("ids").trim();

            String[] idArr = ids.split(",");
            for (int i = 0; i < idArr.length; i++) {
                SignActivity bean = new SignActivity();
                bean.setSignActivityId(Long.parseLong(idArr[i]));
                
                bean.setIsdisable("Y");
                signActivityService.update(bean);

            }
        }
    }

    /**
     * 启用
     */
    @RequestMapping(value = "/isOpen")
    public void updateDiscountState(HttpServletRequest request,
            HttpServletResponse response) {

        String ids = null;
        if (request.getParameter("ids") != null) {
            ids = request.getParameter("ids").trim();

            String[] idArr = ids.split(",");
            for (int i = 0; i < idArr.length; i++) {
                SignActivity bean = new SignActivity();
                bean.setSignActivityId(Long.parseLong(idArr[i]));
                bean.setIsdisable("N");
                signActivityService.update(bean);
            }

        }
    }
    
    /**
     * 检查数据库中是否存在已经开启的数据
     * @param request
     * @param freeCoupon
     * @return
     */
    @RequestMapping(value = "/checkIsdisable")
    @ResponseBody
    public Integer checkPublishId(HttpServletRequest request,SignActivity signActivity){
        return signActivityService.queryCountIsdisable(signActivity);
    }
    /**
     * 调用soa-member接口查询出签到默认规则
     */
    @RequestMapping("/getDeSignRule")
    @ResponseBody
    public List<DeSignRule> getDeSignRule(HttpServletRequest request,DeSignRule deSignRule) {
         List<DeSignRule>  deSignRuleList=new ArrayList<DeSignRule>();
        //签到规则
        ServiceMessage<String> signRule=memberSignService.getSignRule();
        String  sr = signRule.getResult();
        deSignRule.setSignRule(sr);
        deSignRuleList.add(deSignRule);
        return deSignRuleList;
    }
    
    
    
    @RequestMapping(value="/onlineOrOffline")
    @ResponseBody
    public String onlineOrOffline(HttpServletRequest request,HttpServletResponse response){
        String id = request.getParameter("id");
        String status = request.getParameter("isdisable");
        SignActivity signActivity=new SignActivity ();
        if("1".equals(status)){
            int acCount=signActivityService.queryCountIsdisable(signActivity);
            if(acCount>0){
                return "1";
            }else{
                signActivity.setSignActivityId(Long.parseLong(id));
                signActivity.setIsdisable("N");
            
                signActivityService.updateSignActivity(signActivity);
            }
        }
        if("2".equals(status)){
            signActivity.setSignActivityId(Long.parseLong(id));
            signActivity.setIsdisable("Y");
            signActivityService.updateSignActivity(signActivity);
        }
        
        return "0";
    }
            
}

ServiceImpl:

package com.founder.ec.cms.service.impl;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.founder.ec.cms.model.SignActivity;
import com.founder.ec.cms.service.SignActivityService;
import com.founder.ec.common.page.JspPage;
import com.founder.ec.common.page.Page;
import com.founder.ec.common.service.impl.BaseClassServiceImpl;

@Service
public class SignActivityServiceImpl extends BaseClassServiceImpl<SignActivity> implements SignActivityService{

    @Override
    public Map<String, Object> getSignActivityPage(SignActivity signActivity,
            int pageNo, int pageSize) {
        

        signActivity.setStartRow((pageNo - 1) * pageSize + 1);
        signActivity.setEndRow(signActivity.getStartRow() + pageSize
                - 1);

        List<SignActivity> lmt = getSignActivityPage(signActivity);
        Integer count = getSignActivityCount(signActivity);
        // 实际起始位置
        int skipResults = JspPage.getStartOfPage(pageNo, pageSize);
        Page page = new JspPage(skipResults, count, pageSize, lmt);

        Map<String, Object> resMap = new HashMap<String, Object>();
        resMap.put("total", page.getTotalCount());
        resMap.put("rows", page.getResult());
        return resMap;
    }

    private Integer getSignActivityCount(SignActivity signActivity) {
        return (Integer) commonDao.queryForObject(
                "SignActivity.getSignActivityCount",
                signActivity);
    }

    private List<SignActivity> getSignActivityPage(SignActivity signActivity) {

        List<SignActivity> ttmList = commonDao.queryForList("SignActivity.getSignActivityPage",signActivity);
        return ttmList;
        
    }

    @Override
    public SignActivity getsignActivityPageByPageId(SignActivity signActivity) {
        
        return (SignActivity) commonDao.queryForObject(
                "SignActivity.getSignActivityPageByPageId",
                signActivity);
    }

    @Override
    public void updateSignActivity(SignActivity signActivity) {
        commonDao.update("SignActivity.update", signActivity);
        
    }

    @Override
    public void saveSignActivity(SignActivity signActivity) {
        if (signActivity == null) {
            try {
                throw new Exception("SignActivity is NULL");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
        commonDao.save("SignActivity.save", signActivity);
    }

    @Override
    public Integer queryCountIsdisable(SignActivity signActivity) {
        
        return (Integer) commonDao.queryForObject("SignActivity.queryCountIsdisable",signActivity);
    }

}

Service:

package com.founder.ec.cms.service;

import java.util.Map;

import com.founder.ec.cms.model.SignActivity;
import com.founder.ec.common.service.BaseClassService;

public interface SignActivityService extends BaseClassService<SignActivity>{

    Map<String, Object> getSignActivityPage(SignActivity signActivity,
            int pageNo, int pageSize);

    

    SignActivity getsignActivityPageByPageId(SignActivity signActivity);



    void updateSignActivity(SignActivity signActivity);



    void saveSignActivity(SignActivity signActivity);



    Integer queryCountIsdisable(SignActivity signActivity);

}

sql:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" "http://ibatis.apache.org/dtd/sql-map-2.dtd" >
<sqlMap namespace="SignActivity">
  <typeAlias alias="SignActivity"  type="com.founder.ec.cms.model.SignActivity"/>

  <resultMap id="SignActivityMap" class="SignActivity">
    <result column="REWARD_DAYS" property="rewardDays" />
    <result column="START_TIME" property="startTime" />
    <result column="SIGN_ACTIVITY_ID" property="signActivityId" />
    <result column="ISDISABLE" property="isdisable" />
    <result column="PLATFORM" property="platform" />
    <result column="ACTIVITY_INTRODUCTION" property="activityIntroduction" />
    <result column="REWARD_TYPE" property="rewardType" />
    <result column="END_TIME" property="endTime" />
    <result column="REWARD_NAME" property="rewardName" />
    <result column="REWARD_CONTENT" property="rewardContent" />
    <result column="EDIT_TIME" property="editTime" />
  </resultMap>

  <sql id="be_fy">
    select *  from (select row_.*, rownum rownum_ from ( 
  </sql>
  <sql id="ed_fy">
    ) row_  where  1=1 
    <isNotEmpty prepend="and" property="endRow">
      <![CDATA[ rownum <= #endRow# ]]>
    </isNotEmpty>
    )where 1=1 
    <isNotEmpty prepend="and" property="startRow"> 
      <![CDATA[ rownum_ >= #startRow# ]]> 
    </isNotEmpty> 
  </sql>



  <select id="getSignActivityPage" resultMap="SignActivityMap" parameterClass="SignActivity">
    <include refid="be_fy"/>
      select 
      sa.START_TIME,
      sa.SIGN_ACTIVITY_ID,
      sa.END_TIME,
      sa.ACTIVITY_INTRODUCTION,
      sa.REWARD_TYPE,
      sa.REWARD_DAYS,
      sa.REWARD_CONTENT,
      sa.REWARD_NAME,
      sa.PLATFORM,
      sa.EDIT_TIME,
      sa.ISDISABLE
    
       from sign_activity sa where sa.IS_DELETE='N' 
    <isNotEmpty prepend="and" property="startTime">
     <![CDATA[ START_TIME>=#startTime# ]]>
    </isNotEmpty>
    <isNotEmpty prepend="and" property="isdisable">
     <![CDATA[ ISDISABLE=#isdisable# ]]>
    </isNotEmpty>
    <isNotEmpty prepend="and" property="endTime">
     <![CDATA[ END_TIME<=#endTime# ]]>
    </isNotEmpty>
    order by sa.edit_time DESC
    <include refid="ed_fy"/>
  </select>

  <select id="getSignActivityCount" resultClass="Integer" parameterClass="SignActivity">
     select count(1) from sign_activity sa  where sa.IS_DELETE='N' 
    <isNotEmpty prepend="and" property="startTime">
     <![CDATA[ sa.START_TIME>=#startTime# ]]>
    </isNotEmpty>
  
    <isNotEmpty prepend="and" property="isdisable">
     <![CDATA[ sa.ISDISABLE=#isdisable# ]]>
    </isNotEmpty>
    <isNotEmpty prepend="and" property="endTime">
     <![CDATA[ sa.END_TIME <=#endTime# ]]>
    </isNotEmpty>
   
   
  </select>

  <insert id="save" parameterClass="SignActivity">
    <selectKey resultClass="Long" keyProperty="signActivityId" >
      SELECT sign_activity_SEQ.nextval AS id  from dual
    </selectKey>
    insert into sign_activity 
    ( 
  
    REWARD_DAYS,
    EDIT_TIME,
    ADD_USER_ID,
    IS_DELETE,
    ADD_TIME,
    START_TIME,
    SIGN_ACTIVITY_ID,
    ISDISABLE,
    EDIT_USER_ID,
    PLATFORM,
    ACTIVITY_INTRODUCTION,
    REWARD_TYPE,
    END_TIME,
    REWARD_NAME,
    REWARD_CONTENT 
    ) values
    ( 
   
    #rewardDays#,
    #editTime#,
    #addUserId#,
   'N',
    #addTime#,
    #startTime#,
    #signActivityId#,
   #isdisable#,
    #editUserId#,
    #platform#,
    #activityIntroduction#,
    #rewardType#,
    #endTime#,
    #rewardName#,
    #rewardContent# 
    )
  </insert>

  <update id="update" parameterClass="SignActivity">
    update sign_activity 
    <dynamic prepend="set">  
      <isNotEmpty prepend="," property="rewardDays">
          <![CDATA[ REWARD_DAYS=#rewardDays# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="editTime">
          <![CDATA[ EDIT_TIME=#editTime# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="addUserId">
          <![CDATA[ ADD_USER_ID=#addUserId# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="isDelete">
          <![CDATA[ IS_DELETE=#isDelete# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="addTime">
          <![CDATA[ ADD_TIME=#addTime# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="startTime">
          <![CDATA[ START_TIME=#startTime# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="signActivityId">
          <![CDATA[ SIGN_ACTIVITY_ID=#signActivityId# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="isdisable">
          <![CDATA[ ISDISABLE=#isdisable# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="editUserId">
          <![CDATA[ EDIT_USER_ID=#editUserId# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="platform">
          <![CDATA[ PLATFORM=#platform# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="activityIntroduction">
          <![CDATA[ ACTIVITY_INTRODUCTION=#activityIntroduction# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="rewardType">
          <![CDATA[ REWARD_TYPE=#rewardType# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="endTime">
          <![CDATA[ END_TIME=#endTime# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="rewardName">
          <![CDATA[ REWARD_NAME=#rewardName# ]]>
      </isNotEmpty>
      <isNotEmpty prepend="," property="rewardContent">
          <![CDATA[ REWARD_CONTENT=#rewardContent# ]]>
      </isNotEmpty>
   </dynamic> 
   where SIGN_ACTIVITY_ID=#signActivityId#
  </update>

  <select id="getSignActivityPageByPageId"  parameterClass="SignActivity"  resultMap="SignActivityMap">
    select * from sign_activity sa  where sa.SIGN_ACTIVITY_ID=#signActivityId#
  </select>
  <!--  查询数据是否存在已经开启的数据 -->
   <select id="queryCountIsdisable" resultClass= "Integer"  parameterClass="SignActivity">
    select count (1)from sign_activity sa  where sa.ISDISABLE='N'
  </select>

</sqlMap>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值