zoukankan      html  css  js  c++  java
  • SSM框架之批量增加示例(同步请求jsp视图解析)

    准备环境:SSM框架+JDK8/JDK7+MySQL5.7+MAVEN3以上+Tomcat8/7应用服务器

    示例说明:

    分发给用户优惠券,通过checkbox选中批量分发,对应也就是批量增加。

    对于公司使用freemarket或者jsp或者volocity,有一定的启示意思。

    不论视图用的是jsp或者非jsp,都可以参考这个示例。

    下面采用的是MVC模式。

    简单说下MVC模式吧

    MVC 模式代表 Model-View-Controller(模型-视图-控制器) 模式。这种模式用于应用程序的分层开发。

    • Model(模型) - 模型代表一个存取数据的对象或 JAVA POJO。它也可以带有逻辑,在数据变化时更新控制器。
    • View(视图) - 视图代表模型包含的数据的可视化。
    • Controller(控制器) - 控制器作用于模型和视图上。它控制数据流向模型对象,并在数据变化时更新视图。它使视图与模型分离开。

     下面的示例足以验证MVC,可供参考:

    jsp代码如下所示:

    <%@ page language="java" contentType="text/html; charset=UTF-8"
        pageEncoding="UTF-8"%>
    <%@taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
    <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>发放优惠券</title>
    <link href="${APP_PATH}/css/main.css" type="text/css" rel="stylesheet">
    <link rel="stylesheet" href="${APP_PATH}/layui/css/layui.css" media="all">
    <script src="${APP_PATH}/js/easyui/jquery-1.8.0.min.js"
        type="text/javascript"></script>
    
    </head>
    <body>
        <div class="layui-container">
            <div class="layui-row">
        <h2>发放优惠券</h2>
            <script>
         function checkAll() {  
                var all=document.getElementById('all');//获取到点击全选的那个复选框的id  
                var one=document.getElementsByName('memberId');//获取到复选框的名称  
                if(all.checked==true){//因为获得的是数组,所以要循环 为每一个checked赋值  
                    for(var i=0;i<one.length;i++){  
                        one[i].checked=true;  
                    }  
          
                }else{  
                    for(var j=0;j<one.length;j++){  
                        one[j].checked=false;  
                    }  
                }  
            }  
         
        $(function(){
            $("#tishi").click(function(){
                alert("分发成功");
            });
        });
        
        </script>
    
    
            <div style="margin: 20px 0;"></div>
            <div class="easyui-layout" style=" 700px; height: 350px;">
                <div
                    data-options="region:'center',title:'Main Title',iconCls:'icon-ok'">
                    <form action="${pageContext.request.contextPath}/json" method="post"
                        id="checkform">
                        <table class="easyui-datagrid"
                            data-options="url:'datagrid_data1.json',method:'get',border:false,singleSelect:true,fit:true,fitColumns:true">
                            <thead>
                                <tr>
                                    <th data-options="field:'itemid'" width="80">昵称</th>
                                    <th data-options="field:'productid'" width="100">手机号</th>
                                    <th data-options="field:'listprice',align:'right'" width="80">操作</th>
                                </tr>
                            </thead>
                            <c:if test="${list!=null}">
                                <c:forEach items="${list}" var="app">
                                    <tr>
                                        <td>${app.nickName}</td>
                                        <td>${app.account}</td>
                                        <td><input type="checkbox" name="memberId"
                                            value="${app.memberId}" /></td>
                                    </tr>
                                </c:forEach>
                            </c:if>
    
    
                        </table>
                        
                        <input type="hidden" name="hotelNo" id="hotelNo" value="${hotelNo}"/>
                        
                        <input type="hidden" name="couponId" id="couponId_to" 
                            readonly="readonly" value="${couponId }" /> <input id="all"
                            onclick="checkAll()" type="checkbox" />全选 <br /> <input
                            type="submit"  id="tishi" onclick="checkAll()" value="提交" />
                    </form>
                </div>
            </div>
            </div>
            </div>
            
                <!-- js -->
                <script src="${APP_PATH}/layui/layui.js" charset="utf-8"></script>
    <script src="${APP_PATH}/js/layer/layer-v3.1.1/layer/mobile/layer.js"
        type="text/javascript"></script>
    
    </body>
    </html>

    Controller代码:

        
        /**
         * 优惠券批量分发给用户
         * @param qv
         * @return
         */
       @RequestMapping(value = "json", method = {RequestMethod.POST })
       public Object save(QueryVo qv,HttpServletRequest request,Model model){
    
             String hotelNo = request.getParameter("hotelNo");
             
             Hotel hotel = hotelService.queryHotelNoInfo(hotelNo);
             
            logger.info("优惠券Id:"+qv.getCouponId());
            logger.info("所有数组:"+qv.getMemberId());
           
            //判断是否为空
            if (qv.getMemberId()!=null)
            {      
               int size=java.lang.reflect.Array.getLength(qv.getMemberId());  //获取传过来的数组长度 
               System.out.println(size);
               
               String memberId[]=qv.getMemberId();//获取数组中的值
               
               String couponId=qv.getCouponId();//获取优惠券ID
               
               for (int i = 0; i < memberId.length; i++) {
                   AccountCoupon ac = new AccountCoupon();
                   ac.setMemberId(memberId[i]);
                   ac.setCouponId(couponId);
             
                   ac.setFrom(null);
    
                   SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd HH:mm:ss");
                   String date = sdf.format(new Date());
                   ac.setReceiveDate(date);
    
                   ac.setStatus(new Consts().COUPON_UNUSED);//默认状态 "待使用"
                   ac.setUsedDate(null);
                   List<AccountCoupon> list = new ArrayList<AccountCoupon>();
                 
                   list.add(ac);//添加到集合中
                   logger.info("批量分发优惠券成功");
                   accountCouponService.insertAccountCouponInfo(list);//批量插入数据
               
               }
               
              }     
            model.addAttribute("hotel", hotel);
            return "/Set/transit4";
    
       }

    对应的DAO和Service及其实现类和xml如下:

    DAO和Service代码相同不变

        //批量插入数据
        public void insertAccountCouponInfo(@Param("acs")List<AccountCoupon> acs);
        

    Service实现类如下:

        @Override
        public void insertAccountCouponInfo(List<AccountCoupon> acs) {
            accountCouponMapper.insertAccountCouponInfo(acs);
            
        }

    xml:

      <!-- 批量發放优惠券 -->
      <insert id="insertAccountCouponInfo">
          INSERT INTO `account_coupon` (`member_id`, `coupon_id`, `status`, `receive_date`, `from`, `used_date`)
        VALUES
        <foreach collection="acs" item="ac" index="index" separator=",">
        (#{ac.memberId,jdbcType=VARCHAR}, #{ac.couponId,jdbcType=VARCHAR}, #{ac.status,jdbcType=VARCHAR}, #{ac.receiveDate,jdbcType=VARCHAR}, #{ac.from,jdbcType=VARCHAR} , #{ac.usedDate})
        </foreach>
      </insert>

    对应的实体如下:

    public class AccountCoupon {
        /** 自增主键*/
        private String id;
        
        /** 用户id*/
        private String memberId;
        
        /** 优惠券id*/
        private String couponId;
        
        /** 状态  未领取0   待使用1   已使用2  已过期3  冻结4  已核销5*/
        private String status;
        
        /** 领取优惠券日期*/
        private String receiveDate;
        
        /** 优惠券来源发放或主动领取*/
        private String from;
        
        /** 使用日期*/
        private String usedDate;
    
        public String getId() {
            return id;
        }
    
        public void setId(String id) {
            this.id = id;
        }
    
        public String getMemberId() {
            return memberId;
        }
    
        public void setMemberId(String memberId) {
            this.memberId = memberId;
        }
    
        public String getCouponId() {
            return couponId;
        }
    
        public void setCouponId(String couponId) {
            this.couponId = couponId;
        }
    
        public String getStatus() {
            return status;
        }
    
        public void setStatus(String status) {
            this.status = status;
        }
    
        public String getReceiveDate() {
            return receiveDate;
        }
    
        public void setReceiveDate(String receiveDate) {
            this.receiveDate = receiveDate;
        }
    
        public String getFrom() {
            return from;
        }
    
        public void setFrom(String from) {
            this.from = from;
        }
    
        public String getUsedDate() {
            return usedDate;
        }
    
        public void setUsedDate(String usedDate) {
            this.usedDate = usedDate;
        }
        
        
    
    }
  • 相关阅读:
    postcss-pxtorem
    git命令记录
    伪类和伪元素
    JavaScript设计模式
    每日思考(2020/09/08)
    每日思考(2020/09/03)
    每日思考(2020/09/02)
    每日思考(2020/09/01)
    每日思考(2020/08/31)
    每日思考(2020/08/27)
  • 原文地址:https://www.cnblogs.com/youcong/p/9356776.html
Copyright © 2011-2022 走看看