Parcourir la source

增加了取货码业务
增加了生成取货码,取货码核销,查询所有取货码,查询所有核销码,取货码生成时间查询接口

hhq il y a 5 ans
Parent
commit
45749052b5

+ 205 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/PickUpCodeController.java

@@ -0,0 +1,205 @@
+package com.kmall.admin.controller;
+
+import java.text.DateFormat;
+import java.text.SimpleDateFormat;
+import java.util.Calendar;
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import com.kmall.admin.entity.PickUpCodeEntity;
+import com.kmall.admin.service.PickUpCodeService;
+import com.kmall.admin.utils.ParamUtils;
+import com.kmall.admin.utils.ShiroUtils;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.commons.lang.RandomStringUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+
+
+/**
+ * 取货码信息表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-05-19 09:11:26
+ */
+@Controller
+@RequestMapping("pickupcode")
+public class PickUpCodeController {
+    @Autowired
+    private PickUpCodeService pickUpCodeService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("pickupcode:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        ParamUtils.setName(params, "name");
+        String name = (String)params.get("name");
+        if(org.apache.commons.lang3.StringUtils.isNotEmpty(name)){
+            params.put("orderSn", name);
+        }
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<PickUpCodeEntity> pickUpCodeList = pickUpCodeService.queryList(query);
+        int total = pickUpCodeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(pickUpCodeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+
+    @RequestMapping("/queryByPickTime")
+    @RequiresPermissions("pickupcode:list")
+    @ResponseBody
+    public R queryByPickTime(@RequestParam Map<String, Object> params) {
+        String pickTime = (String)params.get("pickTime");
+        //有日期检查格式,没有生成当天日期
+        if (org.apache.commons.lang3.StringUtils.isNotEmpty(pickTime)){
+            try{
+                String regEx = "\\d{4}(\\-)\\d{2}\\1\\d{2}";
+                // 编译正则表达式
+                Pattern pattern = Pattern.compile(regEx);
+                Matcher matcher = pattern.matcher(pickTime);
+                // 字符串是否与正则表达式相匹配
+                boolean rs = matcher.matches();
+
+                if (!rs){
+                    throw new Exception();
+                }
+            }catch(Exception e){
+                return R.error("传入日期格式错误,请修改日期格式为'yyyy-MM-dd'!");
+            }
+        } else {
+            DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
+            pickTime = formatter.format(new Date());
+        }
+        params.put("pickUpCodeCreatetime", pickTime);
+
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<PickUpCodeEntity> pickUpCodeList = pickUpCodeService.queryList(query);
+        int total = pickUpCodeService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(pickUpCodeList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{orderSn}")
+    @RequiresPermissions("pickupcode:info")
+    @ResponseBody
+    public R info(@PathVariable("orderSn") String orderSn) {
+        PickUpCodeEntity pickUpCode = pickUpCodeService.queryObject(orderSn);
+
+        return R.ok().put("pickUpCode", pickUpCode);
+    }
+
+    /**
+     * 生成取货码
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("pickupcode:save")
+    @ResponseBody
+    public R save(@RequestBody PickUpCodeEntity pickUpCode) {
+        if(org.apache.commons.lang3.StringUtils.isEmpty(pickUpCode.getOrderSn())){
+            return R.error("订单编号为空!");
+        }
+
+        //生成一个 5 位的随机字符串
+        String randomCode = RandomStringUtils.randomAlphanumeric(5).toUpperCase();
+        //K: 跨境电商 , Y:一般贸易
+        pickUpCode.setPickUpCodeSn("K-"+randomCode);
+        //  pickUpCode.setPickUpCodeSn("Y-");
+        pickUpCode.setPickUpCodeStatus("0");
+        if (pickUpCode.getPickUpCodeCreatetime()==null){
+            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
+            pickUpCode.setPickUpCodeCreatetime(df.format(new Date()));// new Date()为获取当前系统时间
+        }
+        pickUpCode.setModerSn(ShiroUtils.getUserEntity().getUserId().toString());
+        pickUpCode.setCreateTime(new Date());
+        pickUpCode.setModTime(new Date());
+
+
+        int result = pickUpCodeService.save(pickUpCode);
+        if (result <= 0 ){
+            return R.error("生成取货码失败!");
+        }
+
+        return R.ok().put("pickUpCode",pickUpCode );
+    }
+
+    /**
+     * 取货码核销
+     */
+    @RequestMapping("/verification")
+    @RequiresPermissions("pickupcode:update")
+    @ResponseBody
+    public R Verification(@RequestBody PickUpCodeEntity pickUpCode) {
+        if(org.apache.commons.lang3.StringUtils.isEmpty(pickUpCode.getOrderSn())){
+            return R.error("订单编号为空!");
+        }
+
+        String status = pickUpCodeService.queryPickUpCodeStatus(pickUpCode.getOrderSn());
+        if(status.equals("1")){
+            return R.error("取货码已核销过!");
+        }
+
+        pickUpCode.setPickUpCodeStatus("1");
+        if (pickUpCode.getPickUpCodeCreatetime()==null){
+            SimpleDateFormat df = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");//设置日期格式
+            pickUpCode.setPickUpCodeVerificationtime(df.format(new Date()));// new Date()为获取当前系统时间
+        }
+        pickUpCode.setModerSn(ShiroUtils.getUserEntity().getUserId().toString());
+        pickUpCode.setModTime(new Date());
+
+        int result = pickUpCodeService.update(pickUpCode);
+        if (result <= 0 ){
+            return R.error("取货码核销失败!");
+        }
+        PickUpCodeEntity pickUpCodeEntity = pickUpCodeService.queryObject(pickUpCode.getOrderSn());
+
+        return R.ok().put("pickUpCode",pickUpCodeEntity );
+    }
+
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("pickupcode:delete")
+    @ResponseBody
+    public R delete(@RequestBody String[]orderSns) {
+        int result = pickUpCodeService.deleteBatch(orderSns);
+
+        return R.ok().put("result", result);
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<PickUpCodeEntity> list = pickUpCodeService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 22 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/PickUpCodeDao.java

@@ -0,0 +1,22 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.PickUpCodeEntity;
+import com.kmall.manager.dao.BaseDao;
+import org.apache.ibatis.annotations.Param;
+
+/**
+ * 取货码信息表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-05-19 09:11:26
+ */
+public interface PickUpCodeDao extends BaseDao<PickUpCodeEntity> {
+
+    /**
+     * 根据订单编号查询核销状态
+     * @param orderSn
+     * @return
+     */
+    public String queryPickUpCodeStatus(@Param("orderSn") String orderSn);
+}

+ 188 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/PickUpCodeEntity.java

@@ -0,0 +1,188 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 取货码信息表实体
+ * 表名 mall_pick_up_code
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-05-19 09:11:26
+ */
+public class PickUpCodeEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 订单编号:商户(拼音首字母)+业务类型+编号
+     */
+    private String orderSn;
+    /**
+     * 取货码
+     */
+    private String pickUpCodeSn;
+    /**
+     * 商户订单编号
+     */
+    private String merchOrderSn;
+    /**
+     * 取货码状态,0:未取,1:已取
+     */
+    private String pickUpCodeStatus;
+    /**
+     * 取货码生成时间
+     */
+    private String pickUpCodeCreatetime;
+    /**
+     * 取货码核销时间
+     */
+    private String pickUpCodeVerificationtime;
+    /**
+     * 创建时间,yyyy-MM-dd HH:mm:ss
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间,yyyy-MM-dd HH:mm:ss
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:订单编号:商户(拼音首字母)+业务类型+编号
+     */
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    /**
+     * 获取:订单编号:商户(拼音首字母)+业务类型+编号
+     */
+    public String getOrderSn() {
+        return orderSn;
+    }
+    /**
+     * 设置:取货码
+     */
+    public void setPickUpCodeSn(String pickUpCodeSn) {
+        this.pickUpCodeSn = pickUpCodeSn;
+    }
+
+    /**
+     * 获取:取货码
+     */
+    public String getPickUpCodeSn() {
+        return pickUpCodeSn;
+    }
+    /**
+     * 设置:商户订单编号
+     */
+    public void setMerchOrderSn(String merchOrderSn) {
+        this.merchOrderSn = merchOrderSn;
+    }
+
+    /**
+     * 获取:商户订单编号
+     */
+    public String getMerchOrderSn() {
+        return merchOrderSn;
+    }
+    /**
+     * 设置:取货码状态,0:未取,1:已取
+     */
+    public void setPickUpCodeStatus(String pickUpCodeStatus) {
+        this.pickUpCodeStatus = pickUpCodeStatus;
+    }
+
+    /**
+     * 获取:取货码状态,0:未取,1:已取
+     */
+    public String getPickUpCodeStatus() {
+        return pickUpCodeStatus;
+    }
+    /**
+     * 设置:取货码生成时间
+     */
+    public void setPickUpCodeCreatetime(String pickUpCodeCreatetime) {
+        this.pickUpCodeCreatetime = pickUpCodeCreatetime;
+    }
+
+    /**
+     * 获取:取货码生成时间
+     */
+    public String getPickUpCodeCreatetime() {
+        return pickUpCodeCreatetime;
+    }
+    /**
+     * 设置:取货码核销时间
+     */
+    public void setPickUpCodeVerificationtime(String pickUpCodeVerificationtime) {
+        this.pickUpCodeVerificationtime = pickUpCodeVerificationtime;
+    }
+
+    /**
+     * 获取:取货码核销时间
+     */
+    public String getPickUpCodeVerificationtime() {
+        return pickUpCodeVerificationtime;
+    }
+    /**
+     * 设置:+创建时间,yyyy-MM-dd HH:mm:ss
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:+创建时间,yyyy-MM-dd HH:mm:ss
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:+修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:+修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:+修改时间,yyyy-MM-dd HH:mm:ss
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:+修改时间,yyyy-MM-dd HH:mm:ss
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:+时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:+时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 79 - 0
kmall-admin/src/main/java/com/kmall/admin/service/PickUpCodeService.java

@@ -0,0 +1,79 @@
+package com.kmall.admin.service;
+
+import com.kmall.admin.entity.PickUpCodeEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 取货码信息表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-05-19 09:11:26
+ */
+public interface PickUpCodeService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param orderSn 主键
+     * @return 实体
+     */
+    PickUpCodeEntity queryObject(String orderSn);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<PickUpCodeEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param pickUpCode 实体
+     * @return 保存条数
+     */
+    int save(PickUpCodeEntity pickUpCode);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param pickUpCode 实体
+     * @return 更新条数
+     */
+    int update(PickUpCodeEntity pickUpCode);
+
+    /**
+     * 根据主键删除
+     *
+     * @param orderSn
+     * @return 删除条数
+     */
+    int delete(String orderSn);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param orderSns
+     * @return 删除条数
+     */
+    int deleteBatch(String[] orderSns);
+
+    /**
+     * 根据订单编号查询核销状态
+     * @param orderSn
+     * @return
+     */
+    public String queryPickUpCodeStatus(String orderSn);
+}

+ 61 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/PickUpCodeServiceImpl.java

@@ -0,0 +1,61 @@
+package com.kmall.admin.service.impl;
+
+import com.kmall.admin.dao.PickUpCodeDao;
+import com.kmall.admin.entity.PickUpCodeEntity;
+import com.kmall.admin.service.PickUpCodeService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 取货码信息表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-05-19 09:11:26
+ */
+@Service("pickUpCodeService")
+public class PickUpCodeServiceImpl implements PickUpCodeService {
+    @Autowired
+    private PickUpCodeDao pickUpCodeDao;
+
+    @Override
+    public PickUpCodeEntity queryObject(String orderSn) {
+        return pickUpCodeDao.queryObject(orderSn);
+    }
+
+    @Override
+    public List<PickUpCodeEntity> queryList(Map<String, Object> map) {
+        List<PickUpCodeEntity> pickUpCodeEntities = pickUpCodeDao.queryList(map);
+        return pickUpCodeEntities;
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return pickUpCodeDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(PickUpCodeEntity pickUpCode) {
+        return pickUpCodeDao.save(pickUpCode);
+    }
+
+    @Override
+    public int update(PickUpCodeEntity pickUpCode) {
+        return pickUpCodeDao.update(pickUpCode);
+    }
+
+    @Override
+    public int delete(String orderSn) {
+        return pickUpCodeDao.delete(orderSn);
+    }
+
+    @Override
+    public int deleteBatch(String[]orderSns) {
+        return pickUpCodeDao.deleteBatch(orderSns);
+    }
+
+    public String queryPickUpCodeStatus(String orderSn){return pickUpCodeDao.queryPickUpCodeStatus(orderSn); }
+}

+ 138 - 0
kmall-admin/src/main/resources/mybatis/mapper/PickUpCodeDao.xml

@@ -0,0 +1,138 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="com.kmall.admin.dao.PickUpCodeDao">
+
+    <resultMap type="com.kmall.admin.entity.PickUpCodeEntity" id="pickUpCodeMap">
+        <result property="orderSn" column="order_sn"/>
+        <result property="pickUpCodeSn" column="pick_up_code_sn"/>
+        <result property="merchOrderSn" column="merch_order_sn"/>
+        <result property="pickUpCodeStatus" column="pick_up_code_status"/>
+        <result property="pickUpCodeCreatetime" column="pick_up_code_createtime"/>
+        <result property="pickUpCodeVerificationtime" column="pick_up_code_verificationtime"/>
+        <result property="createTime" column="create_time"/>
+        <result property="moderSn" column="moder_sn"/>
+        <result property="modTime" column="mod_time"/>
+        <result property="tstm" column="tstm"/>
+    </resultMap>
+
+	<select id="queryObject" resultType="com.kmall.admin.entity.PickUpCodeEntity">
+		select
+			`order_sn`,
+			`pick_up_code_sn`,
+			`merch_order_sn`,
+			`pick_up_code_status`,
+			`pick_up_code_createtime`,
+			`pick_up_code_verificationtime`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall_pick_up_code
+		where order_sn = #{orderSn}
+	</select>
+
+	<select id="queryPickUpCodeStatus" resultType="String">
+		select
+			`pick_up_code_status`
+		from mall_pick_up_code
+		where order_sn = #{orderSn}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.PickUpCodeEntity">
+		select
+    		`order_sn`,
+    		`pick_up_code_sn`,
+    		`merch_order_sn`,
+    		`pick_up_code_status`,
+    		`pick_up_code_createtime`,
+    		`pick_up_code_verificationtime`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall_pick_up_code
+		WHERE 1=1
+		<if test="orderSn != null and orderSn.trim() != ''">
+			AND `order_sn` LIKE concat('%',#{orderSn},'%')
+		</if>
+		<if test="pickUpCodeCreatetime != null and pickUpCodeCreatetime.trim() != ''">
+			AND `pick_up_code_createtime` LIKE concat('%',#{pickUpCodeCreatetime},'%')
+		</if>
+		<if test="pickUpCodeStatus != null and pickUpCodeStatus.trim() != ''">
+			AND `pick_up_code_status` = #{pickUpCodeStatus}
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by order_sn desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_pick_up_code
+		WHERE 1=1
+        <if test="orderSn != null and orderSn.trim() != ''">
+            AND `order_sn` LIKE concat('%',#{orderSn},'%')
+        </if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.admin.entity.PickUpCodeEntity">
+		insert into mall_pick_up_code(
+			`order_sn`,
+			`pick_up_code_sn`,
+			`merch_order_sn`,
+			`pick_up_code_status`,
+			`pick_up_code_createtime`,
+			`pick_up_code_verificationtime`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{orderSn},
+			#{pickUpCodeSn},
+			#{merchOrderSn},
+			#{pickUpCodeStatus},
+			#{pickUpCodeCreatetime},
+			#{pickUpCodeVerificationtime},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.admin.entity.PickUpCodeEntity">
+		update mall_pick_up_code 
+		<set>
+			<if test="pickUpCodeSn != null">`pick_up_code_sn` = #{pickUpCodeSn}, </if>
+			<if test="merchOrderSn != null">`merch_order_sn` = #{merchOrderSn}, </if>
+			<if test="pickUpCodeStatus != null">`pick_up_code_status` = #{pickUpCodeStatus}, </if>
+			<if test="pickUpCodeCreatetime != null">`pick_up_code_createtime` = #{pickUpCodeCreatetime}, </if>
+			<if test="pickUpCodeVerificationtime != null">`pick_up_code_verificationtime` = #{pickUpCodeVerificationtime}, </if>
+			<if test="createTime != null">`create_time` = #{createTime}, </if>
+			<if test="moderSn != null">`moder_sn` = #{moderSn}, </if>
+			<if test="modTime != null">`mod_time` = #{modTime}, </if>
+			<if test="tstm != null">`tstm` = #{tstm}</if>
+		</set>
+		where order_sn = #{orderSn}
+	</update>
+	
+	<delete id="delete">
+		delete from mall_pick_up_code where order_sn = #{orderSn}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall_pick_up_code where order_sn in 
+		<foreach item="orderSn" collection="array" open="(" separator="," close=")">
+			#{orderSn}
+		</foreach>
+	</delete>
+
+</mapper>

+ 78 - 0
kmall-admin/src/main/webapp/WEB-INF/page/shop/pickupcode.html

@@ -0,0 +1,78 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>取货码信息表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.name" @on-enter="query" placeholder="订单编号"/>
+                </i-col>
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                <!-- #if($shiro.hasPermission("pickupcode:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("pickupcode:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("pickupcode:delete"))
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+                #end -->
+            </div>
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="pickUpCode" :rules="ruleValidate" :label-width="80">
+            <Form-item label="订单编号" prop="orderSn">
+                <i-input v-model="pickUpCode.orderSn" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="取货码" prop="pickUpCode">
+                <i-input v-model="pickUpCode.pickUpCode" placeholder="取货码"/>
+            </Form-item>
+            <Form-item label="商户订单编号" prop="merchOrderSn">
+                <i-input v-model="pickUpCode.merchOrderSn" placeholder="商户订单编号"/>
+            </Form-item>
+            <Form-item label="取货码状态,0:未取,1:已取" prop="pickUpCodeStatus">
+                <i-input v-model="pickUpCode.pickUpCodeStatus" placeholder="取货码状态,0:未取,1:已取"/>
+            </Form-item>
+            <Form-item label="取货码生成时间" prop="pickUpCodeCreatetime">
+                <i-input v-model="pickUpCode.pickUpCodeCreatetime" placeholder="取货码生成时间"/>
+            </Form-item>
+            <Form-item label="取货码核销时间" prop="pickUpCodeVerificationtime">
+                <i-input v-model="pickUpCode.pickUpCodeVerificationtime" placeholder="取货码核销时间"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="pickUpCode.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="pickUpCode.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modTime">
+                <i-input v-model="pickUpCode.modTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="时间戳" prop="tstm">
+                <i-input v-model="pickUpCode.tstm" placeholder="时间戳"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="handleSubmit('formValidate')">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+                <i-button type="ghost" @click="handleReset('formValidate')" style="margin-left: 8px">重置</i-button>
+            </Form-item>
+        </i-form>
+	</Card>
+</div>
+
+<script src="${rc.contextPath}/js/shop/pickupcode.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 147 - 0
kmall-admin/src/main/webapp/js/shop/pickupcode.js

@@ -0,0 +1,147 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../pickupcode/list',
+        datatype: "json",
+        colModel: [
+			{label: '订单编号', name: 'orderSn', index: 'order_sn', key: true, hidden: false},
+			{label: '取货码', name: 'pickUpCodeSn', index: 'pick_up_code_sn', width: 80},
+			{label: '商户订单编号', name: 'merchOrderSn', index: 'merch_order_sn', width: 80},
+			{label: '取货码状态,0:未取,1:已取', name: 'pickUpCodeStatus', index: 'pick_up_code_status', width: 80},
+			{label: '取货码生成时间', name: 'pickUpCodeCreatetime', index: 'pick_up_code_createtime', width: 80},
+			{label: '取货码核销时间', name: 'pickUpCodeVerificationtime', index: 'pick_up_code_verificationtime', width: 80},
+			{label: '创建时间', name: 'createTime', index: 'create_time', width: 80},
+			{label: '修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
+			{label: '修改时间', name: 'modTime', index: 'mod_time', width: 80},
+			{label: '时间戳', name: 'tstm', index: 'tstm', width: 80}],
+		viewrecords: true,
+        height: 550,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        multiselect: true,
+        pager: "#jqGridPager",
+        jsonReader: {
+            root: "page.list",
+            page: "page.currPage",
+            total: "page.totalPage",
+            records: "page.totalCount"
+        },
+        prmNames: {
+            page: "page",
+            rows: "limit",
+            order: "order"
+        },
+        gridComplete: function () {
+            $("#jqGrid").closest(".ui-jqgrid-bdiv").css({"overflow-x": "hidden"});
+        }
+    });
+});
+
+let vm = new Vue({
+	el: '#rrapp',
+	data: {
+        showList: true,
+        title: null,
+		pickUpCode: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.pickUpCode = {};
+		},
+		update: function (event) {
+            let orderSn = getSelectedRow();
+			if (orderSn == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(orderSn)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.pickUpCode.orderSn == null ? "../pickupcode/save" : "../pickupcode/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.pickUpCode),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let orderSns = getSelectedRows();
+			if (orderSns == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../pickupcode/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(orderSns),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(orderSn){
+			$.get("../pickupcode/info/"+orderSn, function (r) {
+                vm.pickUpCode = r.pickUpCode;
+            });
+		},
+        reloadSearch: function() {
+            vm.q = {
+                name: ''
+            }
+            vm.reload();
+		},
+		reload: function (event) {
+			vm.showList = true;
+            let page = $("#jqGrid").jqGrid('getGridParam', 'page');
+			$("#jqGrid").jqGrid('setGridParam', {
+                postData: {'name': vm.q.name},
+                page: page
+            }).trigger("reloadGrid");
+            vm.handleReset('formValidate');
+		},
+        handleSubmit: function (name) {
+            handleSubmitValidate(this, name, function () {
+                vm.saveOrUpdate()
+            });
+        },
+        handleReset: function (name) {
+            handleResetForm(this, name);
+        }
+	}
+});

+ 7 - 5
kmall-common/src/main/java/com/kmall/common/utils/Query.java

@@ -23,11 +23,13 @@ public class Query extends LinkedHashMap<String, Object> {
         this.putAll(params);
 
         //分页参数
-        this.page = Integer.parseInt(params.get("page").toString());
-        this.limit = Integer.parseInt(params.get("limit").toString());
-        this.put("offset", (page - 1) * limit);
-        this.put("page", page);
-        this.put("limit", limit);
+        Object page = params.get("page");
+        Object limit = params.get("limit");
+        this.page = page == null ? 1 :Integer.parseInt(page.toString());
+        this.limit = limit == null ? this.limit :Integer.parseInt(limit.toString());
+        this.put("offset", (this.page - 1) * this.limit);
+        this.put("page", this.page);
+        this.put("limit", this.limit);
 
         //防止SQL注入(因为sidx、order是通过拼接SQL实现排序的,会有SQL注入风险)
         String sidx = null != params.get("sidx") ? params.get("sidx").toString() : "";