Преглед изворни кода

新增库对应的结构(dao、service、controller、entity、html、js)

zcb пре 4 година
родитељ
комит
2f736afcdb
92 измењених фајлова са 9982 додато и 2 уклоњено
  1. 145 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CashierController.java
  2. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/CashierLoginRecordController.java
  3. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/SaleRecordController.java
  4. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/alarm/Mall2OrderingEarlyWarningRemindsController.java
  5. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/alarm/Mall2ShippingReminderAlarmController.java
  6. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/Mk2GoodsTopicHistoryPriceController.java
  7. 108 0
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/Mk2GoodsTopicPriceController.java
  8. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/mk/Mk2MemberBirthdayController.java
  9. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2MemberConsumptionRecordsController.java
  10. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2MemberPointsController.java
  11. 107 0
      kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java
  12. 16 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CashierDao.java
  13. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/CashierLoginRecordDao.java
  14. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/SaleRecordDao.java
  15. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/alarm/Mall2OrderingEarlyWarningRemindsDao.java
  16. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/alarm/Mall2ShippingReminderAlarmDao.java
  17. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/Mk2GoodsTopicHistoryPriceDao.java
  18. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/Mk2GoodsTopicPriceDao.java
  19. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/mk/Mk2MemberBirthdayDao.java
  20. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2MemberConsumptionRecordsDao.java
  21. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2MemberPointsDao.java
  22. 15 0
      kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java
  23. 239 0
      kmall-admin/src/main/java/com/kmall/admin/entity/CashierEntity.java
  24. 188 0
      kmall-admin/src/main/java/com/kmall/admin/entity/CashierLoginRecordEntity.java
  25. 205 0
      kmall-admin/src/main/java/com/kmall/admin/entity/SaleRecordEntity.java
  26. 240 0
      kmall-admin/src/main/java/com/kmall/admin/entity/alarm/Mall2OrderingEarlyWarningRemindsEntity.java
  27. 291 0
      kmall-admin/src/main/java/com/kmall/admin/entity/alarm/Mall2ShippingReminderAlarmEntity.java
  28. 206 0
      kmall-admin/src/main/java/com/kmall/admin/entity/mk/Mk2GoodsTopicHistoryPriceEntity.java
  29. 274 0
      kmall-admin/src/main/java/com/kmall/admin/entity/mk/Mk2GoodsTopicPriceEntity.java
  30. 206 0
      kmall-admin/src/main/java/com/kmall/admin/entity/mk/Mk2MemberBirthdayEntity.java
  31. 205 0
      kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2MemberConsumptionRecordsEntity.java
  32. 171 0
      kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2MemberPointsEntity.java
  33. 188 0
      kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2PointsRulesEntity.java
  34. 26 1
      kmall-admin/src/main/java/com/kmall/admin/fromcomm/controller/SysLoginController.java
  35. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/CashierLoginRecordService.java
  36. 78 0
      kmall-admin/src/main/java/com/kmall/admin/service/CashierService.java
  37. 73 0
      kmall-admin/src/main/java/com/kmall/admin/service/SaleRecordService.java
  38. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/alarm/Mall2OrderingEarlyWarningRemindsService.java
  39. 71 0
      kmall-admin/src/main/java/com/kmall/admin/service/alarm/Mall2ShippingReminderAlarmService.java
  40. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CashierLoginRecordServiceImpl.java
  41. 71 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/CashierServiceImpl.java
  42. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/SaleRecordServiceImpl.java
  43. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2OrderingEarlyWarningRemindsServiceImpl.java
  44. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2ShippingReminderAlarmServiceImpl.java
  45. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/Mk2GoodsTopicHistoryPriceServiceImpl.java
  46. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/Mk2GoodsTopicPriceServiceImpl.java
  47. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/Mk2MemberBirthdayServiceImpl.java
  48. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2MemberConsumptionRecordsServiceImpl.java
  49. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2MemberPointsServiceImpl.java
  50. 59 0
      kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java
  51. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/Mk2GoodsTopicHistoryPriceService.java
  52. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/Mk2GoodsTopicPriceService.java
  53. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/mk/Mk2MemberBirthdayService.java
  54. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2MemberConsumptionRecordsService.java
  55. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2MemberPointsService.java
  56. 72 0
      kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2PointsRulesService.java
  57. 161 0
      kmall-admin/src/main/resources/mybatis/mapper/CashierDao.xml
  58. 125 0
      kmall-admin/src/main/resources/mybatis/mapper/CashierLoginRecordDao.xml
  59. 129 0
      kmall-admin/src/main/resources/mybatis/mapper/SaleRecordDao.xml
  60. 143 0
      kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2OrderingEarlyWarningRemindsDao.xml
  61. 161 0
      kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2ShippingReminderAlarmDao.xml
  62. 131 0
      kmall-admin/src/main/resources/mybatis/mapper/mk/Mk2GoodsTopicHistoryPriceDao.xml
  63. 155 0
      kmall-admin/src/main/resources/mybatis/mapper/mk/Mk2GoodsTopicPriceDao.xml
  64. 131 0
      kmall-admin/src/main/resources/mybatis/mapper/mk/Mk2MemberBirthdayDao.xml
  65. 131 0
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2MemberConsumptionRecordsDao.xml
  66. 119 0
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2MemberPointsDao.xml
  67. 125 0
      kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml
  68. 49 0
      kmall-admin/src/main/webapp/WEB-INF/page/alarm/mall2orderingearlywarningreminds.html
  69. 60 0
      kmall-admin/src/main/webapp/WEB-INF/page/alarm/mall2shippingreminderalarm.html
  70. 61 0
      kmall-admin/src/main/webapp/WEB-INF/page/cashier/cashierLoginRecord.html
  71. 65 0
      kmall-admin/src/main/webapp/WEB-INF/page/cashier/cashierManager.html
  72. 64 0
      kmall-admin/src/main/webapp/WEB-INF/page/cashier/salerecord.html
  73. 78 0
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mk2goodstopichistoryprice.html
  74. 90 0
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mk2goodstopicprice.html
  75. 78 0
      kmall-admin/src/main/webapp/WEB-INF/page/mk/mk2memberbirthday.html
  76. 235 0
      kmall-admin/src/main/webapp/WEB-INF/page/receipt/receiptCheck.html
  77. 78 0
      kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2memberconsumptionrecords.html
  78. 72 0
      kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2memberpoints.html
  79. 75 0
      kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2pointsrules.html
  80. 146 0
      kmall-admin/src/main/webapp/js/alarm/mall2orderingearlywarningreminds.js
  81. 149 0
      kmall-admin/src/main/webapp/js/alarm/mall2shippingreminderalarm.js
  82. 143 0
      kmall-admin/src/main/webapp/js/cashier/cashierLoginRecord.js
  83. 146 0
      kmall-admin/src/main/webapp/js/cashier/cashierManager.js
  84. 144 0
      kmall-admin/src/main/webapp/js/cashier/salerecord.js
  85. 148 0
      kmall-admin/src/main/webapp/js/mk/mk2goodstopichistoryprice.js
  86. 152 0
      kmall-admin/src/main/webapp/js/mk/mk2goodstopicprice.js
  87. 148 0
      kmall-admin/src/main/webapp/js/mk/mk2memberbirthday.js
  88. 559 0
      kmall-admin/src/main/webapp/js/receipt/receiptCheck.js
  89. 148 0
      kmall-admin/src/main/webapp/js/vip/mall2memberconsumptionrecords.js
  90. 146 0
      kmall-admin/src/main/webapp/js/vip/mall2memberpoints.js
  91. 147 0
      kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js
  92. 10 1
      kmall-admin/src/main/webapp/login.html

+ 145 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CashierController.java

@@ -0,0 +1,145 @@
+package com.kmall.admin.controller;
+
+import java.net.InetAddress;
+import java.net.NetworkInterface;
+import java.net.SocketException;
+import java.net.UnknownHostException;
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.service.CashierService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+import org.apache.commons.lang.StringUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.*;
+import com.kmall.admin.entity.CashierEntity;
+
+
+/**
+ * 收银机表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:15
+ */
+@Controller
+@RequestMapping("cashier")
+public class CashierController {
+    @Autowired
+    private CashierService cashierService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+//    @RequiresPermissions("cashier:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CashierEntity> cashierList = cashierService.queryList(query);
+        int total = cashierService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(cashierList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mcId}")
+//    @RequiresPermissions("cashier:info")
+    @ResponseBody
+    public R info(@PathVariable("mcId") String mcId) {
+        CashierEntity cashier = cashierService.queryObject(mcId);
+
+        return R.ok().put("cashier", cashier);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+//    @RequiresPermissions("cashier:save")
+    @ResponseBody
+    public R save(@RequestBody CashierEntity cashier) throws UnknownHostException, SocketException {
+
+        if(StringUtils.isEmpty(cashier.getMachineCode())) {
+            // 获取mac地址
+            InetAddress ia = InetAddress.getLocalHost();
+            System.out.println(ia);
+            String mac = getLocalMac(ia);
+
+            cashier.setMachineCodeType("01"); // 默认mac地址
+            cashier.setMachineCode(mac);
+        }
+        cashierService.save(cashier);
+
+        return R.ok();
+    }
+
+    private static String getLocalMac(InetAddress ia) throws SocketException {
+        // TODO Auto-generated method stub
+        //获取网卡,获取地址
+        byte[] mac = NetworkInterface.getByInetAddress(ia).getHardwareAddress();
+        System.out.println("mac数组长度:"+mac.length);
+        StringBuffer sb = new StringBuffer("");
+        for(int i=0; i<mac.length; i++) {
+            if(i!=0) {
+                sb.append("-");
+            }
+            //字节转换为整数
+            int temp = mac[i]&0xff;
+            String str = Integer.toHexString(temp);
+            System.out.println("每8位:"+str);
+            if(str.length()==1) {
+                sb.append("0"+str);
+            }else {
+                sb.append(str);
+            }
+        }
+        System.out.println("本机MAC地址:"+sb.toString().toUpperCase());
+        return sb.toString().toUpperCase();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+//    @RequiresPermissions("cashier:update")
+    @ResponseBody
+    public R update(@RequestBody CashierEntity cashier) {
+        cashierService.update(cashier);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+//    @RequiresPermissions("cashier:delete")
+    @ResponseBody
+    public R delete(@RequestBody String[]mcIds) {
+        cashierService.deleteBatch(mcIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CashierEntity> list = cashierService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/CashierLoginRecordController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.CashierLoginRecordEntity;
+import com.kmall.admin.service.CashierLoginRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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-06-13 09:39:09
+ */
+@Controller
+@RequestMapping("cashierloginrecord")
+public class CashierLoginRecordController {
+    @Autowired
+    private CashierLoginRecordService cashierLoginRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+//    @RequiresPermissions("cashierloginrecord:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<CashierLoginRecordEntity> cashierLoginRecordList = cashierLoginRecordService.queryList(query);
+        int total = cashierLoginRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(cashierLoginRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mclrId}")
+//    @RequiresPermissions("cashierloginrecord:info")
+    @ResponseBody
+    public R info(@PathVariable("mclrId") String mclrId) {
+        CashierLoginRecordEntity cashierLoginRecord = cashierLoginRecordService.queryObject(mclrId);
+
+        return R.ok().put("cashierLoginRecord", cashierLoginRecord);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+//    @RequiresPermissions("cashierloginrecord:save")
+    @ResponseBody
+    public R save(@RequestBody CashierLoginRecordEntity cashierLoginRecord) {
+        cashierLoginRecordService.save(cashierLoginRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+//    @RequiresPermissions("cashierloginrecord:update")
+    @ResponseBody
+    public R update(@RequestBody CashierLoginRecordEntity cashierLoginRecord) {
+        cashierLoginRecordService.update(cashierLoginRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+//    @RequiresPermissions("cashierloginrecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody String[]mclrIds) {
+        cashierLoginRecordService.deleteBatch(mclrIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<CashierLoginRecordEntity> list = cashierLoginRecordService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/SaleRecordController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.SaleRecordEntity;
+import com.kmall.admin.service.SaleRecordService;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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-06-13 10:48:45
+ */
+@Controller
+@RequestMapping("salerecord")
+public class SaleRecordController {
+    @Autowired
+    private SaleRecordService saleRecordService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+//    @RequiresPermissions("salerecord:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<SaleRecordEntity> saleRecordList = saleRecordService.queryList(query);
+        int total = saleRecordService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(saleRecordList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{msrId}")
+//    @RequiresPermissions("salerecord:info")
+    @ResponseBody
+    public R info(@PathVariable("msrId") Integer msrId) {
+        SaleRecordEntity saleRecord = saleRecordService.queryObject(msrId);
+
+        return R.ok().put("saleRecord", saleRecord);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+//    @RequiresPermissions("salerecord:save")
+    @ResponseBody
+    public R save(@RequestBody SaleRecordEntity saleRecord) {
+        saleRecordService.save(saleRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+//    @RequiresPermissions("salerecord:update")
+    @ResponseBody
+    public R update(@RequestBody SaleRecordEntity saleRecord) {
+        saleRecordService.update(saleRecord);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+//    @RequiresPermissions("salerecord:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]msrIds) {
+        saleRecordService.deleteBatch(msrIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<SaleRecordEntity> list = saleRecordService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/alarm/Mall2OrderingEarlyWarningRemindsController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.alarm;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity;
+import com.kmall.admin.service.alarm.Mall2OrderingEarlyWarningRemindsService;
+
+/**
+ * 订货提醒预警表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mall2orderingearlywarningreminds")
+public class Mall2OrderingEarlyWarningRemindsController {
+    @Autowired
+    private Mall2OrderingEarlyWarningRemindsService mall2OrderingEarlyWarningRemindsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mall2orderingearlywarningreminds:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mall2OrderingEarlyWarningRemindsEntity> mall2OrderingEarlyWarningRemindsList = mall2OrderingEarlyWarningRemindsService.queryList(query);
+        int total = mall2OrderingEarlyWarningRemindsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mall2OrderingEarlyWarningRemindsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{moewrId}")
+    @RequiresPermissions("mall2orderingearlywarningreminds:info")
+    @ResponseBody
+    public R info(@PathVariable("moewrId") Integer moewrId) {
+        Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds = mall2OrderingEarlyWarningRemindsService.queryObject(moewrId);
+
+        return R.ok().put("mall2OrderingEarlyWarningReminds", mall2OrderingEarlyWarningReminds);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mall2orderingearlywarningreminds:save")
+    @ResponseBody
+    public R save(@RequestBody Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds) {
+        mall2OrderingEarlyWarningRemindsService.save(mall2OrderingEarlyWarningReminds);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mall2orderingearlywarningreminds:update")
+    @ResponseBody
+    public R update(@RequestBody Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds) {
+        mall2OrderingEarlyWarningRemindsService.update(mall2OrderingEarlyWarningReminds);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mall2orderingearlywarningreminds:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]moewrIds) {
+        mall2OrderingEarlyWarningRemindsService.deleteBatch(moewrIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mall2OrderingEarlyWarningRemindsEntity> list = mall2OrderingEarlyWarningRemindsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/alarm/Mall2ShippingReminderAlarmController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.alarm;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.alarm.Mall2ShippingReminderAlarmEntity;
+import com.kmall.admin.service.alarm.Mall2ShippingReminderAlarmService;
+
+/**
+ * 出货提醒预警表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mall2shippingreminderalarm")
+public class Mall2ShippingReminderAlarmController {
+    @Autowired
+    private Mall2ShippingReminderAlarmService mall2ShippingReminderAlarmService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mall2shippingreminderalarm:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mall2ShippingReminderAlarmEntity> mall2ShippingReminderAlarmList = mall2ShippingReminderAlarmService.queryList(query);
+        int total = mall2ShippingReminderAlarmService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mall2ShippingReminderAlarmList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{msraId}")
+    @RequiresPermissions("mall2shippingreminderalarm:info")
+    @ResponseBody
+    public R info(@PathVariable("msraId") Integer msraId) {
+        Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm = mall2ShippingReminderAlarmService.queryObject(msraId);
+
+        return R.ok().put("mall2ShippingReminderAlarm", mall2ShippingReminderAlarm);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mall2shippingreminderalarm:save")
+    @ResponseBody
+    public R save(@RequestBody Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm) {
+        mall2ShippingReminderAlarmService.save(mall2ShippingReminderAlarm);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mall2shippingreminderalarm:update")
+    @ResponseBody
+    public R update(@RequestBody Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm) {
+        mall2ShippingReminderAlarmService.update(mall2ShippingReminderAlarm);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mall2shippingreminderalarm:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]msraIds) {
+        mall2ShippingReminderAlarmService.deleteBatch(msraIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mall2ShippingReminderAlarmEntity> list = mall2ShippingReminderAlarmService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/mk/Mk2GoodsTopicHistoryPriceController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.mk;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity;
+import com.kmall.admin.service.mk.Mk2GoodsTopicHistoryPriceService;
+
+/**
+ * 商品活动历史价格表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mk2goodstopichistoryprice")
+public class Mk2GoodsTopicHistoryPriceController {
+    @Autowired
+    private Mk2GoodsTopicHistoryPriceService mk2GoodsTopicHistoryPriceService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mk2goodstopichistoryprice:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mk2GoodsTopicHistoryPriceEntity> mk2GoodsTopicHistoryPriceList = mk2GoodsTopicHistoryPriceService.queryList(query);
+        int total = mk2GoodsTopicHistoryPriceService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mk2GoodsTopicHistoryPriceList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mgthpId}")
+    @RequiresPermissions("mk2goodstopichistoryprice:info")
+    @ResponseBody
+    public R info(@PathVariable("mgthpId") Integer mgthpId) {
+        Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice = mk2GoodsTopicHistoryPriceService.queryObject(mgthpId);
+
+        return R.ok().put("mk2GoodsTopicHistoryPrice", mk2GoodsTopicHistoryPrice);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mk2goodstopichistoryprice:save")
+    @ResponseBody
+    public R save(@RequestBody Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice) {
+        mk2GoodsTopicHistoryPriceService.save(mk2GoodsTopicHistoryPrice);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mk2goodstopichistoryprice:update")
+    @ResponseBody
+    public R update(@RequestBody Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice) {
+        mk2GoodsTopicHistoryPriceService.update(mk2GoodsTopicHistoryPrice);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mk2goodstopichistoryprice:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mgthpIds) {
+        mk2GoodsTopicHistoryPriceService.deleteBatch(mgthpIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mk2GoodsTopicHistoryPriceEntity> list = mk2GoodsTopicHistoryPriceService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 108 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/mk/Mk2GoodsTopicPriceController.java

@@ -0,0 +1,108 @@
+package com.kmall.admin.controller.mk;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity;
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity;
+import com.kmall.admin.service.mk.Mk2GoodsTopicPriceService;
+
+/**
+ * 商品活动价格表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mk2goodstopicprice")
+public class Mk2GoodsTopicPriceController {
+    @Autowired
+    private Mk2GoodsTopicPriceService mk2GoodsTopicPriceService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mk2goodstopicprice:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mk2GoodsTopicPriceEntity> mk2GoodsTopicPriceList = mk2GoodsTopicPriceService.queryList(query);
+        int total = mk2GoodsTopicPriceService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mk2GoodsTopicPriceList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mgthpId}")
+    @RequiresPermissions("mk2goodstopicprice:info")
+    @ResponseBody
+    public R info(@PathVariable("mgthpId") Integer mgthpId) {
+        Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice = mk2GoodsTopicPriceService.queryObject(mgthpId);
+
+        return R.ok().put("mk2GoodsTopicPrice", mk2GoodsTopicPrice);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mk2goodstopicprice:save")
+    @ResponseBody
+    public R save(@RequestBody Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice) {
+        mk2GoodsTopicPriceService.save(mk2GoodsTopicPrice);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mk2goodstopicprice:update")
+    @ResponseBody
+    public R update(@RequestBody Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice) {
+        mk2GoodsTopicPriceService.update(mk2GoodsTopicPrice);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mk2goodstopicprice:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mgthpIds) {
+        mk2GoodsTopicPriceService.deleteBatch(mgthpIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mk2GoodsTopicPriceEntity> list = mk2GoodsTopicPriceService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/mk/Mk2MemberBirthdayController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.mk;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity;
+import com.kmall.admin.service.mk.Mk2MemberBirthdayService;
+
+/**
+ * 会员生日优惠表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mk2memberbirthday")
+public class Mk2MemberBirthdayController {
+    @Autowired
+    private Mk2MemberBirthdayService mk2MemberBirthdayService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mk2memberbirthday:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mk2MemberBirthdayEntity> mk2MemberBirthdayList = mk2MemberBirthdayService.queryList(query);
+        int total = mk2MemberBirthdayService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mk2MemberBirthdayList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mmbId}")
+    @RequiresPermissions("mk2memberbirthday:info")
+    @ResponseBody
+    public R info(@PathVariable("mmbId") Integer mmbId) {
+        Mk2MemberBirthdayEntity mk2MemberBirthday = mk2MemberBirthdayService.queryObject(mmbId);
+
+        return R.ok().put("mk2MemberBirthday", mk2MemberBirthday);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mk2memberbirthday:save")
+    @ResponseBody
+    public R save(@RequestBody Mk2MemberBirthdayEntity mk2MemberBirthday) {
+        mk2MemberBirthdayService.save(mk2MemberBirthday);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mk2memberbirthday:update")
+    @ResponseBody
+    public R update(@RequestBody Mk2MemberBirthdayEntity mk2MemberBirthday) {
+        mk2MemberBirthdayService.update(mk2MemberBirthday);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mk2memberbirthday:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mmbIds) {
+        mk2MemberBirthdayService.deleteBatch(mmbIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mk2MemberBirthdayEntity> list = mk2MemberBirthdayService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2MemberConsumptionRecordsController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.vip;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
+import com.kmall.admin.service.vip.Mall2MemberConsumptionRecordsService;
+
+/**
+ * 会员消费记录表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mall2memberconsumptionrecords")
+public class Mall2MemberConsumptionRecordsController {
+    @Autowired
+    private Mall2MemberConsumptionRecordsService mall2MemberConsumptionRecordsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mall2memberconsumptionrecords:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mall2MemberConsumptionRecordsEntity> mall2MemberConsumptionRecordsList = mall2MemberConsumptionRecordsService.queryList(query);
+        int total = mall2MemberConsumptionRecordsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mall2MemberConsumptionRecordsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mmcrId}")
+    @RequiresPermissions("mall2memberconsumptionrecords:info")
+    @ResponseBody
+    public R info(@PathVariable("mmcrId") Integer mmcrId) {
+        Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords = mall2MemberConsumptionRecordsService.queryObject(mmcrId);
+
+        return R.ok().put("mall2MemberConsumptionRecords", mall2MemberConsumptionRecords);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mall2memberconsumptionrecords:save")
+    @ResponseBody
+    public R save(@RequestBody Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords) {
+        mall2MemberConsumptionRecordsService.save(mall2MemberConsumptionRecords);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mall2memberconsumptionrecords:update")
+    @ResponseBody
+    public R update(@RequestBody Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords) {
+        mall2MemberConsumptionRecordsService.update(mall2MemberConsumptionRecords);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mall2memberconsumptionrecords:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mmcrIds) {
+        mall2MemberConsumptionRecordsService.deleteBatch(mmcrIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mall2MemberConsumptionRecordsEntity> list = mall2MemberConsumptionRecordsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2MemberPointsController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.vip;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.vip.Mall2MemberPointsEntity;
+import com.kmall.admin.service.vip.Mall2MemberPointsService;
+
+/**
+ * 会员积分表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mall2memberpoints")
+public class Mall2MemberPointsController {
+    @Autowired
+    private Mall2MemberPointsService mall2MemberPointsService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mall2memberpoints:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mall2MemberPointsEntity> mall2MemberPointsList = mall2MemberPointsService.queryList(query);
+        int total = mall2MemberPointsService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mall2MemberPointsList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mmpId}")
+    @RequiresPermissions("mall2memberpoints:info")
+    @ResponseBody
+    public R info(@PathVariable("mmpId") Integer mmpId) {
+        Mall2MemberPointsEntity mall2MemberPoints = mall2MemberPointsService.queryObject(mmpId);
+
+        return R.ok().put("mall2MemberPoints", mall2MemberPoints);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mall2memberpoints:save")
+    @ResponseBody
+    public R save(@RequestBody Mall2MemberPointsEntity mall2MemberPoints) {
+        mall2MemberPointsService.save(mall2MemberPoints);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mall2memberpoints:update")
+    @ResponseBody
+    public R update(@RequestBody Mall2MemberPointsEntity mall2MemberPoints) {
+        mall2MemberPointsService.update(mall2MemberPoints);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mall2memberpoints:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mmpIds) {
+        mall2MemberPointsService.deleteBatch(mmpIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mall2MemberPointsEntity> list = mall2MemberPointsService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 107 - 0
kmall-admin/src/main/java/com/kmall/admin/controller/vip/Mall2PointsRulesController.java

@@ -0,0 +1,107 @@
+package com.kmall.admin.controller.vip;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.common.utils.PageUtils;
+import com.kmall.common.utils.Query;
+import com.kmall.common.utils.R;
+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.*;
+
+import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
+import com.kmall.admin.service.vip.Mall2PointsRulesService;
+
+/**
+ * 积分规则表Controller
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Controller
+@RequestMapping("mall2pointsrules")
+public class Mall2PointsRulesController {
+    @Autowired
+    private Mall2PointsRulesService mall2PointsRulesService;
+
+    /**
+     * 查看列表
+     */
+    @RequestMapping("/list")
+    @RequiresPermissions("mall2pointsrules:list")
+    @ResponseBody
+    public R list(@RequestParam Map<String, Object> params) {
+        //查询列表数据
+        Query query = new Query(params);
+
+        List<Mall2PointsRulesEntity> mall2PointsRulesList = mall2PointsRulesService.queryList(query);
+        int total = mall2PointsRulesService.queryTotal(query);
+
+        PageUtils pageUtil = new PageUtils(mall2PointsRulesList, total, query.getLimit(), query.getPage());
+
+        return R.ok().put("page", pageUtil);
+    }
+
+    /**
+     * 查看信息
+     */
+    @RequestMapping("/info/{mprId}")
+    @RequiresPermissions("mall2pointsrules:info")
+    @ResponseBody
+    public R info(@PathVariable("mprId") Integer mprId) {
+        Mall2PointsRulesEntity mall2PointsRules = mall2PointsRulesService.queryObject(mprId);
+
+        return R.ok().put("mall2PointsRules", mall2PointsRules);
+    }
+
+    /**
+     * 保存
+     */
+    @RequestMapping("/save")
+    @RequiresPermissions("mall2pointsrules:save")
+    @ResponseBody
+    public R save(@RequestBody Mall2PointsRulesEntity mall2PointsRules) {
+        mall2PointsRulesService.save(mall2PointsRules);
+
+        return R.ok();
+    }
+
+    /**
+     * 修改
+     */
+    @RequestMapping("/update")
+    @RequiresPermissions("mall2pointsrules:update")
+    @ResponseBody
+    public R update(@RequestBody Mall2PointsRulesEntity mall2PointsRules) {
+        mall2PointsRulesService.update(mall2PointsRules);
+
+        return R.ok();
+    }
+
+    /**
+     * 删除
+     */
+    @RequestMapping("/delete")
+    @RequiresPermissions("mall2pointsrules:delete")
+    @ResponseBody
+    public R delete(@RequestBody Integer[]mprIds) {
+        mall2PointsRulesService.deleteBatch(mprIds);
+
+        return R.ok();
+    }
+
+    /**
+     * 查看所有列表
+     */
+    @RequestMapping("/queryAll")
+    @ResponseBody
+    public R queryAll(@RequestParam Map<String, Object> params) {
+
+        List<Mall2PointsRulesEntity> list = mall2PointsRulesService.queryList(params);
+
+        return R.ok().put("list", list);
+    }
+}

+ 16 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CashierDao.java

@@ -0,0 +1,16 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CashierEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 收银机表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:15
+ */
+public interface CashierDao extends BaseDao<CashierEntity> {
+
+    CashierEntity queryByMachineCode(String machineCode);
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/CashierLoginRecordDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.CashierLoginRecordEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 店员登录收银机记录表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:09
+ */
+public interface CashierLoginRecordDao extends BaseDao<CashierLoginRecordEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/SaleRecordDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao;
+
+import com.kmall.admin.entity.SaleRecordEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 销售记录Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 10:48:45
+ */
+public interface SaleRecordDao extends BaseDao<SaleRecordEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/alarm/Mall2OrderingEarlyWarningRemindsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.alarm;
+
+import com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 订货提醒预警表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2OrderingEarlyWarningRemindsDao extends BaseDao<Mall2OrderingEarlyWarningRemindsEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/alarm/Mall2ShippingReminderAlarmDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.alarm;
+
+import com.kmall.admin.entity.alarm.Mall2ShippingReminderAlarmEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 出货提醒预警表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2ShippingReminderAlarmDao extends BaseDao<Mall2ShippingReminderAlarmEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/mk/Mk2GoodsTopicHistoryPriceDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.mk;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 商品活动历史价格表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mk2GoodsTopicHistoryPriceDao extends BaseDao<Mk2GoodsTopicHistoryPriceEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/mk/Mk2GoodsTopicPriceDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.mk;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 商品活动价格表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mk2GoodsTopicPriceDao extends BaseDao<Mk2GoodsTopicPriceEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/mk/Mk2MemberBirthdayDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.mk;
+
+import com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 会员生日优惠表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mk2MemberBirthdayDao extends BaseDao<Mk2MemberBirthdayEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2MemberConsumptionRecordsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.vip;
+
+import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 会员消费记录表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2MemberConsumptionRecordsDao extends BaseDao<Mall2MemberConsumptionRecordsEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2MemberPointsDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.vip;
+
+import com.kmall.admin.entity.vip.Mall2MemberPointsEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 会员积分表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2MemberPointsDao extends BaseDao<Mall2MemberPointsEntity> {
+
+}

+ 15 - 0
kmall-admin/src/main/java/com/kmall/admin/dao/vip/Mall2PointsRulesDao.java

@@ -0,0 +1,15 @@
+package com.kmall.admin.dao.vip;
+
+import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
+import com.kmall.manager.dao.BaseDao;
+
+/**
+ * 积分规则表Dao
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2PointsRulesDao extends BaseDao<Mall2PointsRulesEntity> {
+
+}

+ 239 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/CashierEntity.java

@@ -0,0 +1,239 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 收银机表实体
+ * 表名 mall_cashier
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:15
+ */
+public class CashierEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer mcId;
+    /**
+     * 机器码类型
+     */
+    private String machineCodeType;
+    /**
+     * 机器码
+     */
+    private String machineCode;
+    /**
+     * 收银机编号
+     */
+    private String cashierSn;
+    /**
+     * 站点编码
+     */
+    private String stationCode;
+    /**
+     * 门店编号
+     */
+    private String shopSn;
+    /**
+     * 商户编号
+     */
+    private String merchSn;
+    /**
+     * 第三方商户编号
+     */
+    private String thirdMerchSn;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间,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 setMcId(Integer mcId) {
+        this.mcId = mcId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMcId() {
+        return mcId;
+    }
+    /**
+     * 设置:机器码类型
+     */
+    public void setMachineCodeType(String machineCodeType) {
+        this.machineCodeType = machineCodeType;
+    }
+
+    /**
+     * 获取:机器码类型
+     */
+    public String getMachineCodeType() {
+        return machineCodeType;
+    }
+    /**
+     * 设置:机器码
+     */
+    public void setMachineCode(String machineCode) {
+        this.machineCode = machineCode;
+    }
+
+    /**
+     * 获取:机器码
+     */
+    public String getMachineCode() {
+        return machineCode;
+    }
+    /**
+     * 设置:收银机编号
+     */
+    public void setCashierSn(String cashierSn) {
+        this.cashierSn = cashierSn;
+    }
+
+    /**
+     * 获取:收银机编号
+     */
+    public String getCashierSn() {
+        return cashierSn;
+    }
+    /**
+     * 设置:站点编码
+     */
+    public void setStationCode(String stationCode) {
+        this.stationCode = stationCode;
+    }
+
+    /**
+     * 获取:站点编码
+     */
+    public String getStationCode() {
+        return stationCode;
+    }
+    /**
+     * 设置:门店编号
+     */
+    public void setShopSn(String shopSn) {
+        this.shopSn = shopSn;
+    }
+
+    /**
+     * 获取:门店编号
+     */
+    public String getShopSn() {
+        return shopSn;
+    }
+    /**
+     * 设置:商户编号
+     */
+    public void setMerchSn(String merchSn) {
+        this.merchSn = merchSn;
+    }
+
+    /**
+     * 获取:商户编号
+     */
+    public String getMerchSn() {
+        return merchSn;
+    }
+    /**
+     * 设置:第三方商户编号
+     */
+    public void setThirdMerchSn(String thirdMerchSn) {
+        this.thirdMerchSn = thirdMerchSn;
+    }
+
+    /**
+     * 获取:第三方商户编号
+     */
+    public String getThirdMerchSn() {
+        return thirdMerchSn;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间,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;
+    }
+}

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

@@ -0,0 +1,188 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 店员登录收银机记录表实体
+ * 表名 mall_cashier_login_record
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:09
+ */
+public class CashierLoginRecordEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private String mclrId;
+    /**
+     * 店员id
+     */
+    private String sallerId;
+    /**
+     * 收银机id
+     */
+    private String cashierId;
+    /**
+     * 门店编号
+     */
+    private String shopSn;
+    /**
+     * 登录时间
+     */
+    private Date loginTime;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间,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 setMclrId(String mclrId) {
+        this.mclrId = mclrId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public String getMclrId() {
+        return mclrId;
+    }
+    /**
+     * 设置:店员id
+     */
+    public void setSallerId(String sallerId) {
+        this.sallerId = sallerId;
+    }
+
+    /**
+     * 获取:店员id
+     */
+    public String getSallerId() {
+        return sallerId;
+    }
+    /**
+     * 设置:收银机id
+     */
+    public void setCashierId(String cashierId) {
+        this.cashierId = cashierId;
+    }
+
+    /**
+     * 获取:收银机id
+     */
+    public String getCashierId() {
+        return cashierId;
+    }
+    /**
+     * 设置:门店编号
+     */
+    public void setShopSn(String shopSn) {
+        this.shopSn = shopSn;
+    }
+
+    /**
+     * 获取:门店编号
+     */
+    public String getShopSn() {
+        return shopSn;
+    }
+    /**
+     * 设置:登录时间
+     */
+    public void setLoginTime(Date loginTime) {
+        this.loginTime = loginTime;
+    }
+
+    /**
+     * 获取:登录时间
+     */
+    public Date getLoginTime() {
+        return loginTime;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间,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;
+    }
+}

+ 205 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/SaleRecordEntity.java

@@ -0,0 +1,205 @@
+package com.kmall.admin.entity;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 销售记录实体
+ * 表名 mall_sale_record
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 10:48:45
+ */
+public class SaleRecordEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer msrId;
+    /**
+     * 订单编号
+     */
+    private String orderSn;
+    /**
+     * 收银机编号
+     */
+    private String cashierSn;
+    /**
+     * 店员id
+     */
+    private String sallerId;
+    /**
+     * 活动id
+     */
+    private String discountId;
+    /**
+     * 销售时间
+     */
+    private Date salesTime;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间,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 setMsrId(Integer msrId) {
+        this.msrId = msrId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMsrId() {
+        return msrId;
+    }
+    /**
+     * 设置:订单编号
+     */
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    /**
+     * 获取:订单编号
+     */
+    public String getOrderSn() {
+        return orderSn;
+    }
+    /**
+     * 设置:收银机编号
+     */
+    public void setCashierSn(String cashierSn) {
+        this.cashierSn = cashierSn;
+    }
+
+    /**
+     * 获取:收银机编号
+     */
+    public String getCashierSn() {
+        return cashierSn;
+    }
+    /**
+     * 设置:店员id
+     */
+    public void setSallerId(String sallerId) {
+        this.sallerId = sallerId;
+    }
+
+    /**
+     * 获取:店员id
+     */
+    public String getSallerId() {
+        return sallerId;
+    }
+    /**
+     * 设置:活动id
+     */
+    public void setDiscountId(String discountId) {
+        this.discountId = discountId;
+    }
+
+    /**
+     * 获取:活动id
+     */
+    public String getDiscountId() {
+        return discountId;
+    }
+    /**
+     * 设置:销售时间
+     */
+    public void setSalesTime(Date salesTime) {
+        this.salesTime = salesTime;
+    }
+
+    /**
+     * 获取:销售时间
+     */
+    public Date getSalesTime() {
+        return salesTime;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间,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;
+    }
+}

+ 240 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/alarm/Mall2OrderingEarlyWarningRemindsEntity.java

@@ -0,0 +1,240 @@
+package com.kmall.admin.entity.alarm;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 订货提醒预警表实体
+ * 表名 mall2_ordering_early_warning_reminds
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mall2OrderingEarlyWarningRemindsEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer moewrId;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 平均销量
+     */
+    private BigDecimal averageSales;
+    /**
+     * 总库存数
+     */
+    private Integer totalNum;
+    /**
+     * 预警条件  00 周  10  月
+     */
+    private String alarmType;
+    /**
+     * 预警时间
+     */
+    private Date alarmTime;
+    /**
+     * 是否已经预警
+     */
+    private Integer isWarning;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间,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 setMoewrId(Integer moewrId) {
+        this.moewrId = moewrId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMoewrId() {
+        return moewrId;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:商品名称
+     */
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    /**
+     * 获取:商品名称
+     */
+    public String getGoodsName() {
+        return goodsName;
+    }
+    /**
+     * 设置:平均销量
+     */
+    public void setAverageSales(BigDecimal averageSales) {
+        this.averageSales = averageSales;
+    }
+
+    /**
+     * 获取:平均销量
+     */
+    public BigDecimal getAverageSales() {
+        return averageSales;
+    }
+    /**
+     * 设置:总库存数
+     */
+    public void setTotalNum(Integer totalNum) {
+        this.totalNum = totalNum;
+    }
+
+    /**
+     * 获取:总库存数
+     */
+    public Integer getTotalNum() {
+        return totalNum;
+    }
+    /**
+     * 设置:预警条件  00 周  10  月
+     */
+    public void setAlarmType(String alarmType) {
+        this.alarmType = alarmType;
+    }
+
+    /**
+     * 获取:预警条件  00 周  10  月
+     */
+    public String getAlarmType() {
+        return alarmType;
+    }
+    /**
+     * 设置:预警时间
+     */
+    public void setAlarmTime(Date alarmTime) {
+        this.alarmTime = alarmTime;
+    }
+
+    /**
+     * 获取:预警时间
+     */
+    public Date getAlarmTime() {
+        return alarmTime;
+    }
+    /**
+     * 设置:是否已经预警
+     */
+    public void setIsWarning(Integer isWarning) {
+        this.isWarning = isWarning;
+    }
+
+    /**
+     * 获取:是否已经预警
+     */
+    public Integer getIsWarning() {
+        return isWarning;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间,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;
+    }
+}

+ 291 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/alarm/Mall2ShippingReminderAlarmEntity.java

@@ -0,0 +1,291 @@
+package com.kmall.admin.entity.alarm;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 出货提醒预警表实体
+ * 表名 mall2_shipping_reminder_alarm
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mall2ShippingReminderAlarmEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer msraId;
+    /**
+     * 商品id
+     */
+    private Integer goodsId;
+    /**
+     * 商品名称
+     */
+    private String goodsName;
+    /**
+     * 平均销量
+     */
+    private BigDecimal averageSales;
+    /**
+     * 门店id
+     */
+    private Integer storeId;
+    /**
+     * 门店商品sku
+     */
+    private String sku;
+    /**
+     * 门店名称
+     */
+    private String storeName;
+    /**
+     * 门店库存数
+     */
+    private Integer stockNum;
+    /**
+     * 预警条件  00 周  10  月
+     */
+    private String alarmType;
+    /**
+     * 预警时间
+     */
+    private Date alarmTime;
+    /**
+     * 是否已经预警
+     */
+    private Integer isWarning;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间,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 setMsraId(Integer msraId) {
+        this.msraId = msraId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMsraId() {
+        return msraId;
+    }
+    /**
+     * 设置:商品id
+     */
+    public void setGoodsId(Integer goodsId) {
+        this.goodsId = goodsId;
+    }
+
+    /**
+     * 获取:商品id
+     */
+    public Integer getGoodsId() {
+        return goodsId;
+    }
+    /**
+     * 设置:商品名称
+     */
+    public void setGoodsName(String goodsName) {
+        this.goodsName = goodsName;
+    }
+
+    /**
+     * 获取:商品名称
+     */
+    public String getGoodsName() {
+        return goodsName;
+    }
+    /**
+     * 设置:平均销量
+     */
+    public void setAverageSales(BigDecimal averageSales) {
+        this.averageSales = averageSales;
+    }
+
+    /**
+     * 获取:平均销量
+     */
+    public BigDecimal getAverageSales() {
+        return averageSales;
+    }
+    /**
+     * 设置:门店id
+     */
+    public void setStoreId(Integer storeId) {
+        this.storeId = storeId;
+    }
+
+    /**
+     * 获取:门店id
+     */
+    public Integer getStoreId() {
+        return storeId;
+    }
+    /**
+     * 设置:门店商品sku
+     */
+    public void setSku(String sku) {
+        this.sku = sku;
+    }
+
+    /**
+     * 获取:门店商品sku
+     */
+    public String getSku() {
+        return sku;
+    }
+    /**
+     * 设置:门店名称
+     */
+    public void setStoreName(String storeName) {
+        this.storeName = storeName;
+    }
+
+    /**
+     * 获取:门店名称
+     */
+    public String getStoreName() {
+        return storeName;
+    }
+    /**
+     * 设置:门店库存数
+     */
+    public void setStockNum(Integer stockNum) {
+        this.stockNum = stockNum;
+    }
+
+    /**
+     * 获取:门店库存数
+     */
+    public Integer getStockNum() {
+        return stockNum;
+    }
+    /**
+     * 设置:预警条件  00 周  10  月
+     */
+    public void setAlarmType(String alarmType) {
+        this.alarmType = alarmType;
+    }
+
+    /**
+     * 获取:预警条件  00 周  10  月
+     */
+    public String getAlarmType() {
+        return alarmType;
+    }
+    /**
+     * 设置:预警时间
+     */
+    public void setAlarmTime(Date alarmTime) {
+        this.alarmTime = alarmTime;
+    }
+
+    /**
+     * 获取:预警时间
+     */
+    public Date getAlarmTime() {
+        return alarmTime;
+    }
+    /**
+     * 设置:是否已经预警
+     */
+    public void setIsWarning(Integer isWarning) {
+        this.isWarning = isWarning;
+    }
+
+    /**
+     * 获取:是否已经预警
+     */
+    public Integer getIsWarning() {
+        return isWarning;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间,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;
+    }
+}

+ 206 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/mk/Mk2GoodsTopicHistoryPriceEntity.java

@@ -0,0 +1,206 @@
+package com.kmall.admin.entity.mk;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 商品活动历史价格表实体
+ * 表名 mk2_goods_topic_history_price
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mk2GoodsTopicHistoryPriceEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer mgthpId;
+    /**
+     * 活动id
+     */
+    private Integer topicId;
+    /**
+     * 活动类别
+     */
+    private String topicType;
+    /**
+     * 活动价格
+     */
+    private BigDecimal topicPrice;
+    /**
+     * 活动名称
+     */
+    private String topicName;
+    /**
+     * 活动内容
+     */
+    private String topicContent;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:主键
+     */
+    public void setMgthpId(Integer mgthpId) {
+        this.mgthpId = mgthpId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMgthpId() {
+        return mgthpId;
+    }
+    /**
+     * 设置:活动id
+     */
+    public void setTopicId(Integer topicId) {
+        this.topicId = topicId;
+    }
+
+    /**
+     * 获取:活动id
+     */
+    public Integer getTopicId() {
+        return topicId;
+    }
+    /**
+     * 设置:活动类别
+     */
+    public void setTopicType(String topicType) {
+        this.topicType = topicType;
+    }
+
+    /**
+     * 获取:活动类别
+     */
+    public String getTopicType() {
+        return topicType;
+    }
+    /**
+     * 设置:活动价格
+     */
+    public void setTopicPrice(BigDecimal topicPrice) {
+        this.topicPrice = topicPrice;
+    }
+
+    /**
+     * 获取:活动价格
+     */
+    public BigDecimal getTopicPrice() {
+        return topicPrice;
+    }
+    /**
+     * 设置:活动名称
+     */
+    public void setTopicName(String topicName) {
+        this.topicName = topicName;
+    }
+
+    /**
+     * 获取:活动名称
+     */
+    public String getTopicName() {
+        return topicName;
+    }
+    /**
+     * 设置:活动内容
+     */
+    public void setTopicContent(String topicContent) {
+        this.topicContent = topicContent;
+    }
+
+    /**
+     * 获取:活动内容
+     */
+    public String getTopicContent() {
+        return topicContent;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 274 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/mk/Mk2GoodsTopicPriceEntity.java

@@ -0,0 +1,274 @@
+package com.kmall.admin.entity.mk;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 商品活动价格表实体
+ * 表名 mk2_goods_topic_price
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mk2GoodsTopicPriceEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer mgthpId;
+    /**
+     * 活动id
+     */
+    private Integer topicId;
+    /**
+     * 活动类别
+     */
+    private String topicType;
+    /**
+     * 活动价格
+     */
+    private BigDecimal topicPrice;
+    /**
+     * 活动名称
+     */
+    private String topicName;
+    /**
+     * 活动内容
+     */
+    private String topicContent;
+    /**
+     * 活动产品
+     */
+    private Integer topicGoodsId;
+    /**
+     * 活动开始时间
+     */
+    private Date topicBeginTime;
+    /**
+     * 活动结束时间
+     */
+    private Date topicEndTime;
+    /**
+     * 导入时间
+     */
+    private Date importTime;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:主键
+     */
+    public void setMgthpId(Integer mgthpId) {
+        this.mgthpId = mgthpId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMgthpId() {
+        return mgthpId;
+    }
+    /**
+     * 设置:活动id
+     */
+    public void setTopicId(Integer topicId) {
+        this.topicId = topicId;
+    }
+
+    /**
+     * 获取:活动id
+     */
+    public Integer getTopicId() {
+        return topicId;
+    }
+    /**
+     * 设置:活动类别
+     */
+    public void setTopicType(String topicType) {
+        this.topicType = topicType;
+    }
+
+    /**
+     * 获取:活动类别
+     */
+    public String getTopicType() {
+        return topicType;
+    }
+    /**
+     * 设置:活动价格
+     */
+    public void setTopicPrice(BigDecimal topicPrice) {
+        this.topicPrice = topicPrice;
+    }
+
+    /**
+     * 获取:活动价格
+     */
+    public BigDecimal getTopicPrice() {
+        return topicPrice;
+    }
+    /**
+     * 设置:活动名称
+     */
+    public void setTopicName(String topicName) {
+        this.topicName = topicName;
+    }
+
+    /**
+     * 获取:活动名称
+     */
+    public String getTopicName() {
+        return topicName;
+    }
+    /**
+     * 设置:活动内容
+     */
+    public void setTopicContent(String topicContent) {
+        this.topicContent = topicContent;
+    }
+
+    /**
+     * 获取:活动内容
+     */
+    public String getTopicContent() {
+        return topicContent;
+    }
+    /**
+     * 设置:活动产品
+     */
+    public void setTopicGoodsId(Integer topicGoodsId) {
+        this.topicGoodsId = topicGoodsId;
+    }
+
+    /**
+     * 获取:活动产品
+     */
+    public Integer getTopicGoodsId() {
+        return topicGoodsId;
+    }
+    /**
+     * 设置:活动开始时间
+     */
+    public void setTopicBeginTime(Date topicBeginTime) {
+        this.topicBeginTime = topicBeginTime;
+    }
+
+    /**
+     * 获取:活动开始时间
+     */
+    public Date getTopicBeginTime() {
+        return topicBeginTime;
+    }
+    /**
+     * 设置:活动结束时间
+     */
+    public void setTopicEndTime(Date topicEndTime) {
+        this.topicEndTime = topicEndTime;
+    }
+
+    /**
+     * 获取:活动结束时间
+     */
+    public Date getTopicEndTime() {
+        return topicEndTime;
+    }
+    /**
+     * 设置:导入时间
+     */
+    public void setImportTime(Date importTime) {
+        this.importTime = importTime;
+    }
+
+    /**
+     * 获取:导入时间
+     */
+    public Date getImportTime() {
+        return importTime;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 206 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/mk/Mk2MemberBirthdayEntity.java

@@ -0,0 +1,206 @@
+package com.kmall.admin.entity.mk;
+
+import java.io.Serializable;
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 会员生日优惠表实体
+ * 表名 mk2_member_birthday
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mk2MemberBirthdayEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 生日优惠活动id
+     */
+    private Integer mmbId;
+    /**
+     * 活动名称
+     */
+    private String topicName;
+    /**
+     * 优惠类型 00.按比例  10.按金额
+     */
+    private String topicType;
+    /**
+     * 优惠金额
+     */
+    private BigDecimal topicPrice;
+    /**
+     * 优惠比例
+     */
+    private String topicProportion;
+    /**
+     * 是否有效
+     */
+    private String isValid;
+    /**
+     * 创建人编号
+     */
+    private String createrSn;
+    /**
+     * 创建时间
+     */
+    private Date createTime;
+    /**
+     * 修改人编号
+     */
+    private String moderSn;
+    /**
+     * 修改时间
+     */
+    private Date modTime;
+    /**
+     * 时间戳
+     */
+    private Date tstm;
+
+    /**
+     * 设置:生日优惠活动id
+     */
+    public void setMmbId(Integer mmbId) {
+        this.mmbId = mmbId;
+    }
+
+    /**
+     * 获取:生日优惠活动id
+     */
+    public Integer getMmbId() {
+        return mmbId;
+    }
+    /**
+     * 设置:活动名称
+     */
+    public void setTopicName(String topicName) {
+        this.topicName = topicName;
+    }
+
+    /**
+     * 获取:活动名称
+     */
+    public String getTopicName() {
+        return topicName;
+    }
+    /**
+     * 设置:优惠类型 00.按比例  10.按金额
+     */
+    public void setTopicType(String topicType) {
+        this.topicType = topicType;
+    }
+
+    /**
+     * 获取:优惠类型 00.按比例  10.按金额
+     */
+    public String getTopicType() {
+        return topicType;
+    }
+    /**
+     * 设置:优惠金额
+     */
+    public void setTopicPrice(BigDecimal topicPrice) {
+        this.topicPrice = topicPrice;
+    }
+
+    /**
+     * 获取:优惠金额
+     */
+    public BigDecimal getTopicPrice() {
+        return topicPrice;
+    }
+    /**
+     * 设置:优惠比例
+     */
+    public void setTopicProportion(String topicProportion) {
+        this.topicProportion = topicProportion;
+    }
+
+    /**
+     * 获取:优惠比例
+     */
+    public String getTopicProportion() {
+        return topicProportion;
+    }
+    /**
+     * 设置:是否有效
+     */
+    public void setIsValid(String isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:是否有效
+     */
+    public String getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:创建时间
+     */
+    public void setCreateTime(Date createTime) {
+        this.createTime = createTime;
+    }
+
+    /**
+     * 获取:创建时间
+     */
+    public Date getCreateTime() {
+        return createTime;
+    }
+    /**
+     * 设置:修改人编号
+     */
+    public void setModerSn(String moderSn) {
+        this.moderSn = moderSn;
+    }
+
+    /**
+     * 获取:修改人编号
+     */
+    public String getModerSn() {
+        return moderSn;
+    }
+    /**
+     * 设置:修改时间
+     */
+    public void setModTime(Date modTime) {
+        this.modTime = modTime;
+    }
+
+    /**
+     * 获取:修改时间
+     */
+    public Date getModTime() {
+        return modTime;
+    }
+    /**
+     * 设置:时间戳
+     */
+    public void setTstm(Date tstm) {
+        this.tstm = tstm;
+    }
+
+    /**
+     * 获取:时间戳
+     */
+    public Date getTstm() {
+        return tstm;
+    }
+}

+ 205 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2MemberConsumptionRecordsEntity.java

@@ -0,0 +1,205 @@
+package com.kmall.admin.entity.vip;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 会员消费记录表实体
+ * 表名 mall2_member_consumption_records
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mall2MemberConsumptionRecordsEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer mmcrId;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 订单编号
+     */
+    private String orderSn;
+    /**
+     * 消费时间
+     */
+    private Date consumptionTime;
+    /**
+     * 消费门店id
+     */
+    private String shopSn;
+    /**
+     * 是否使用生日优惠
+     */
+    private String isUseBirthdayOffer;
+    /**
+     * +创建人编号
+     */
+    private String createrSn;
+    /**
+     * +创建时间,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 setMmcrId(Integer mmcrId) {
+        this.mmcrId = mmcrId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMmcrId() {
+        return mmcrId;
+    }
+    /**
+     * 设置:用户id
+     */
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    /**
+     * 获取:用户id
+     */
+    public String getUserId() {
+        return userId;
+    }
+    /**
+     * 设置:订单编号
+     */
+    public void setOrderSn(String orderSn) {
+        this.orderSn = orderSn;
+    }
+
+    /**
+     * 获取:订单编号
+     */
+    public String getOrderSn() {
+        return orderSn;
+    }
+    /**
+     * 设置:消费时间
+     */
+    public void setConsumptionTime(Date consumptionTime) {
+        this.consumptionTime = consumptionTime;
+    }
+
+    /**
+     * 获取:消费时间
+     */
+    public Date getConsumptionTime() {
+        return consumptionTime;
+    }
+    /**
+     * 设置:消费门店id
+     */
+    public void setShopSn(String shopSn) {
+        this.shopSn = shopSn;
+    }
+
+    /**
+     * 获取:消费门店id
+     */
+    public String getShopSn() {
+        return shopSn;
+    }
+    /**
+     * 设置:是否使用生日优惠
+     */
+    public void setIsUseBirthdayOffer(String isUseBirthdayOffer) {
+        this.isUseBirthdayOffer = isUseBirthdayOffer;
+    }
+
+    /**
+     * 获取:是否使用生日优惠
+     */
+    public String getIsUseBirthdayOffer() {
+        return isUseBirthdayOffer;
+    }
+    /**
+     * 设置:+创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:+创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:+创建时间,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;
+    }
+}

+ 171 - 0
kmall-admin/src/main/java/com/kmall/admin/entity/vip/Mall2MemberPointsEntity.java

@@ -0,0 +1,171 @@
+package com.kmall.admin.entity.vip;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 会员积分表实体
+ * 表名 mall2_member_points
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mall2MemberPointsEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer mmpId;
+    /**
+     * 用户id
+     */
+    private String userId;
+    /**
+     * 积分数
+     */
+    private Integer points;
+    /**
+     * 积分到期时间
+     */
+    private Date pointsExpireDate;
+    /**
+     * +创建人编号
+     */
+    private String createrSn;
+    /**
+     * +创建时间,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 setMmpId(Integer mmpId) {
+        this.mmpId = mmpId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMmpId() {
+        return mmpId;
+    }
+    /**
+     * 设置:用户id
+     */
+    public void setUserId(String userId) {
+        this.userId = userId;
+    }
+
+    /**
+     * 获取:用户id
+     */
+    public String getUserId() {
+        return userId;
+    }
+    /**
+     * 设置:积分数
+     */
+    public void setPoints(Integer points) {
+        this.points = points;
+    }
+
+    /**
+     * 获取:积分数
+     */
+    public Integer getPoints() {
+        return points;
+    }
+    /**
+     * 设置:积分到期时间
+     */
+    public void setPointsExpireDate(Date pointsExpireDate) {
+        this.pointsExpireDate = pointsExpireDate;
+    }
+
+    /**
+     * 获取:积分到期时间
+     */
+    public Date getPointsExpireDate() {
+        return pointsExpireDate;
+    }
+    /**
+     * 设置:+创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:+创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:+创建时间,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;
+    }
+}

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

@@ -0,0 +1,188 @@
+package com.kmall.admin.entity.vip;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * 积分规则表实体
+ * 表名 mall2_points_rules
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public class Mall2PointsRulesEntity implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * 主键
+     */
+    private Integer mprId;
+    /**
+     * 积分类型  00.按金额  10.按数量
+     */
+    private String pointsType;
+    /**
+     * 积分规则适用开始时间
+     */
+    private Date pointsBeginTime;
+    /**
+     * 积分规则适用结束时间
+     */
+    private Date pointsEndTime;
+    /**
+     * 积分规则是否有效
+     */
+    private String isValid;
+    /**
+     * +创建人编号
+     */
+    private String createrSn;
+    /**
+     * +创建时间,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 setMprId(Integer mprId) {
+        this.mprId = mprId;
+    }
+
+    /**
+     * 获取:主键
+     */
+    public Integer getMprId() {
+        return mprId;
+    }
+    /**
+     * 设置:积分类型  00.按金额  10.按数量
+     */
+    public void setPointsType(String pointsType) {
+        this.pointsType = pointsType;
+    }
+
+    /**
+     * 获取:积分类型  00.按金额  10.按数量
+     */
+    public String getPointsType() {
+        return pointsType;
+    }
+    /**
+     * 设置:积分规则适用开始时间
+     */
+    public void setPointsBeginTime(Date pointsBeginTime) {
+        this.pointsBeginTime = pointsBeginTime;
+    }
+
+    /**
+     * 获取:积分规则适用开始时间
+     */
+    public Date getPointsBeginTime() {
+        return pointsBeginTime;
+    }
+    /**
+     * 设置:积分规则适用结束时间
+     */
+    public void setPointsEndTime(Date pointsEndTime) {
+        this.pointsEndTime = pointsEndTime;
+    }
+
+    /**
+     * 获取:积分规则适用结束时间
+     */
+    public Date getPointsEndTime() {
+        return pointsEndTime;
+    }
+    /**
+     * 设置:积分规则是否有效
+     */
+    public void setIsValid(String isValid) {
+        this.isValid = isValid;
+    }
+
+    /**
+     * 获取:积分规则是否有效
+     */
+    public String getIsValid() {
+        return isValid;
+    }
+    /**
+     * 设置:+创建人编号
+     */
+    public void setCreaterSn(String createrSn) {
+        this.createrSn = createrSn;
+    }
+
+    /**
+     * 获取:+创建人编号
+     */
+    public String getCreaterSn() {
+        return createrSn;
+    }
+    /**
+     * 设置:+创建时间,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;
+    }
+}

+ 26 - 1
kmall-admin/src/main/java/com/kmall/admin/fromcomm/controller/SysLoginController.java

@@ -2,6 +2,10 @@ package com.kmall.admin.fromcomm.controller;
 
 import com.google.code.kaptcha.Constants;
 import com.google.code.kaptcha.Producer;
+import com.kmall.admin.entity.CashierEntity;
+import com.kmall.admin.entity.CashierLoginRecordEntity;
+import com.kmall.admin.service.CashierLoginRecordService;
+import com.kmall.admin.service.CashierService;
 import com.kmall.common.annotation.SysLog;
 import com.kmall.common.utils.R;
 import com.kmall.admin.utils.ShiroUtils;
@@ -24,6 +28,7 @@ import javax.servlet.http.HttpServletResponse;
 import javax.servlet.http.HttpSession;
 import java.awt.image.BufferedImage;
 import java.io.IOException;
+import java.util.Date;
 import java.util.HashSet;
 import java.util.Set;
 
@@ -38,6 +43,10 @@ import java.util.Set;
 public class SysLoginController {
     @Autowired
     private Producer producer;
+    @Autowired
+    private CashierService cashierService;
+    @Autowired
+    private CashierLoginRecordService cashierLoginRecordService;
     public static int wsTokenExpireTime = 3600 * 24 * 30;
 
     private final Logger LOGGER = LoggerFactory.getLogger(SysLoginController.class);
@@ -65,7 +74,7 @@ public class SysLoginController {
     @SysLog("登录")
     @ResponseBody
     @RequestMapping(value = "/sys/login", method = RequestMethod.POST)
-    public R login(String username, String password, String captcha,HttpSession session) throws IOException {
+    public R login(String username, String password, String captcha,String machineCode ,HttpSession session) throws IOException {
         String kaptcha = (String) JedisUtil.get(Constants.KAPTCHA_SESSION_KEY);
         LOGGER.info("获取验证码:"+kaptcha);
         System.out.println(kaptcha);
@@ -96,6 +105,22 @@ public class SysLoginController {
             permsSet = ShiroUtils.getUserEntity().getPermsSet();
             storeId = ShiroUtils.getUserEntity().getStoreId();
         }
+
+
+        // 判断是否是店员
+        if(storeId != null){
+            // 是店员,根据机器码查询机器
+            CashierEntity cashierEntity =  cashierService.queryByMachineCode(machineCode);
+
+            // 记录登录记录
+            CashierLoginRecordEntity cashierLoginRecordEntity = new CashierLoginRecordEntity();
+            cashierLoginRecordEntity.setSallerId(ShiroUtils.getUserEntity().getUsername());
+            cashierLoginRecordEntity.setCashierId(cashierEntity.getCashierSn());
+            cashierLoginRecordEntity.setShopSn(cashierEntity.getShopSn());
+            cashierLoginRecordEntity.setLoginTime(new Date());
+            cashierLoginRecordService.save(cashierLoginRecordEntity);
+        }
+
         return R.ok().put("permsSet", permsSet).put("storeId",storeId);
     }
 

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/CashierLoginRecordService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service;
+
+import com.kmall.admin.entity.CashierLoginRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 店员登录收银机记录表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:09
+ */
+public interface CashierLoginRecordService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param mclrId 主键
+     * @return 实体
+     */
+    CashierLoginRecordEntity queryObject(String mclrId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<CashierLoginRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param cashierLoginRecord 实体
+     * @return 保存条数
+     */
+    int save(CashierLoginRecordEntity cashierLoginRecord);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param cashierLoginRecord 实体
+     * @return 更新条数
+     */
+    int update(CashierLoginRecordEntity cashierLoginRecord);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mclrId
+     * @return 删除条数
+     */
+    int delete(String mclrId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mclrIds
+     * @return 删除条数
+     */
+    int deleteBatch(String[] mclrIds);
+}

+ 78 - 0
kmall-admin/src/main/java/com/kmall/admin/service/CashierService.java

@@ -0,0 +1,78 @@
+package com.kmall.admin.service;
+
+import com.kmall.admin.entity.CashierEntity;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 收银机表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:15
+ */
+public interface CashierService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param mcId 主键
+     * @return 实体
+     */
+    CashierEntity queryObject(String mcId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<CashierEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param cashier 实体
+     * @return 保存条数
+     */
+    int save(CashierEntity cashier);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param cashier 实体
+     * @return 更新条数
+     */
+    int update(CashierEntity cashier);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mcId
+     * @return 删除条数
+     */
+    int delete(String mcId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mcIds
+     * @return 删除条数
+     */
+    int deleteBatch(String[] mcIds);
+
+    /**
+     * 根据机器码id查询收银机
+     * @param machineCode
+     * @return
+     */
+    CashierEntity queryByMachineCode(String machineCode);
+}

+ 73 - 0
kmall-admin/src/main/java/com/kmall/admin/service/SaleRecordService.java

@@ -0,0 +1,73 @@
+package com.kmall.admin.service;
+
+
+import com.kmall.admin.entity.SaleRecordEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 销售记录Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 10:48:45
+ */
+public interface SaleRecordService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param msrId 主键
+     * @return 实体
+     */
+    SaleRecordEntity queryObject(Integer msrId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<SaleRecordEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param saleRecord 实体
+     * @return 保存条数
+     */
+    int save(SaleRecordEntity saleRecord);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param saleRecord 实体
+     * @return 更新条数
+     */
+    int update(SaleRecordEntity saleRecord);
+
+    /**
+     * 根据主键删除
+     *
+     * @param msrId
+     * @return 删除条数
+     */
+    int delete(Integer msrId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param msrIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] msrIds);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/alarm/Mall2OrderingEarlyWarningRemindsService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.alarm;
+
+import com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 订货提醒预警表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2OrderingEarlyWarningRemindsService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mall2OrderingEarlyWarningRemindsEntity queryObject(Integer moewrId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mall2OrderingEarlyWarningRemindsEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mall2OrderingEarlyWarningReminds 实体
+     * @return 保存条数
+     */
+    int save(Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mall2OrderingEarlyWarningReminds 实体
+     * @return 更新条数
+     */
+    int update(Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds);
+
+    /**
+     * 根据主键删除
+     *
+     * @param moewrId
+     * @return 删除条数
+     */
+    int delete(Integer moewrId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param moewrIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] moewrIds);
+}

+ 71 - 0
kmall-admin/src/main/java/com/kmall/admin/service/alarm/Mall2ShippingReminderAlarmService.java

@@ -0,0 +1,71 @@
+package com.kmall.admin.service.alarm;
+import com.kmall.admin.entity.alarm.Mall2ShippingReminderAlarmEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 出货提醒预警表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2ShippingReminderAlarmService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mall2ShippingReminderAlarmEntity queryObject(Integer msraId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mall2ShippingReminderAlarmEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mall2ShippingReminderAlarm 实体
+     * @return 保存条数
+     */
+    int save(Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mall2ShippingReminderAlarm 实体
+     * @return 更新条数
+     */
+    int update(Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm);
+
+    /**
+     * 根据主键删除
+     *
+     * @param msraId
+     * @return 删除条数
+     */
+    int delete(Integer msraId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param msraIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] msraIds);
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/CashierLoginRecordServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl;
+
+import com.kmall.admin.dao.CashierLoginRecordDao;
+import com.kmall.admin.entity.CashierLoginRecordEntity;
+import com.kmall.admin.service.CashierLoginRecordService;
+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-06-13 09:39:09
+ */
+@Service("cashierLoginRecordService")
+public class CashierLoginRecordServiceImpl implements CashierLoginRecordService {
+    @Autowired
+    private CashierLoginRecordDao cashierLoginRecordDao;
+
+    @Override
+    public CashierLoginRecordEntity queryObject(String mclrId) {
+        return cashierLoginRecordDao.queryObject(mclrId);
+    }
+
+    @Override
+    public List<CashierLoginRecordEntity> queryList(Map<String, Object> map) {
+        return cashierLoginRecordDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return cashierLoginRecordDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(CashierLoginRecordEntity cashierLoginRecord) {
+        return cashierLoginRecordDao.save(cashierLoginRecord);
+    }
+
+    @Override
+    public int update(CashierLoginRecordEntity cashierLoginRecord) {
+        return cashierLoginRecordDao.update(cashierLoginRecord);
+    }
+
+    @Override
+    public int delete(String mclrId) {
+        return cashierLoginRecordDao.delete(mclrId);
+    }
+
+    @Override
+    public int deleteBatch(String[]mclrIds) {
+        return cashierLoginRecordDao.deleteBatch(mclrIds);
+    }
+}

+ 71 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/CashierServiceImpl.java

@@ -0,0 +1,71 @@
+package com.kmall.admin.service.impl;
+
+import com.kmall.admin.dao.CashierDao;
+import com.kmall.admin.service.CashierService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.entity.CashierEntity;
+
+/**
+ * 收银机表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 09:39:15
+ */
+@Service("cashierService")
+public class CashierServiceImpl implements CashierService {
+    @Autowired
+    private CashierDao cashierDao;
+
+    @Override
+    public CashierEntity queryObject(String mcId) {
+        return cashierDao.queryObject(mcId);
+    }
+
+    @Override
+    public List<CashierEntity> queryList(Map<String, Object> map) {
+        return cashierDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return cashierDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(CashierEntity cashier) {
+
+        return cashierDao.save(cashier);
+    }
+
+    @Override
+    public int update(CashierEntity cashier) {
+        return cashierDao.update(cashier);
+    }
+
+    @Override
+    public int delete(String mcId) {
+        return cashierDao.delete(mcId);
+    }
+
+    @Override
+    public int deleteBatch(String[]mcIds) {
+        return cashierDao.deleteBatch(mcIds);
+    }
+
+    /**
+     * 根据机器码id查询收银机
+     *
+     * @param machineCode
+     * @return
+     */
+    @Override
+    public CashierEntity queryByMachineCode(String machineCode) {
+        return cashierDao.queryByMachineCode(machineCode);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/SaleRecordServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.SaleRecordDao;
+import com.kmall.admin.entity.SaleRecordEntity;
+import com.kmall.admin.service.SaleRecordService;
+
+/**
+ * 销售记录Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-13 10:48:45
+ */
+@Service("saleRecordService")
+public class SaleRecordServiceImpl implements SaleRecordService {
+    @Autowired
+    private SaleRecordDao saleRecordDao;
+
+    @Override
+    public SaleRecordEntity queryObject(Integer msrId) {
+        return saleRecordDao.queryObject(msrId);
+    }
+
+    @Override
+    public List<SaleRecordEntity> queryList(Map<String, Object> map) {
+        return saleRecordDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return saleRecordDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(SaleRecordEntity saleRecord) {
+        return saleRecordDao.save(saleRecord);
+    }
+
+    @Override
+    public int update(SaleRecordEntity saleRecord) {
+        return saleRecordDao.update(saleRecord);
+    }
+
+    @Override
+    public int delete(Integer msrId) {
+        return saleRecordDao.delete(msrId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]msrIds) {
+        return saleRecordDao.deleteBatch(msrIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2OrderingEarlyWarningRemindsServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.alarm;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.alarm.Mall2OrderingEarlyWarningRemindsDao;
+import com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity;
+import com.kmall.admin.service.alarm.Mall2OrderingEarlyWarningRemindsService;
+
+/**
+ * 订货提醒预警表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mall2OrderingEarlyWarningRemindsService")
+public class Mall2OrderingEarlyWarningRemindsServiceImpl implements Mall2OrderingEarlyWarningRemindsService {
+    @Autowired
+    private Mall2OrderingEarlyWarningRemindsDao mall2OrderingEarlyWarningRemindsDao;
+
+    @Override
+    public Mall2OrderingEarlyWarningRemindsEntity queryObject(Integer moewrId) {
+        return mall2OrderingEarlyWarningRemindsDao.queryObject(moewrId);
+    }
+
+    @Override
+    public List<Mall2OrderingEarlyWarningRemindsEntity> queryList(Map<String, Object> map) {
+        return mall2OrderingEarlyWarningRemindsDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mall2OrderingEarlyWarningRemindsDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds) {
+        return mall2OrderingEarlyWarningRemindsDao.save(mall2OrderingEarlyWarningReminds);
+    }
+
+    @Override
+    public int update(Mall2OrderingEarlyWarningRemindsEntity mall2OrderingEarlyWarningReminds) {
+        return mall2OrderingEarlyWarningRemindsDao.update(mall2OrderingEarlyWarningReminds);
+    }
+
+    @Override
+    public int delete(Integer moewrId) {
+        return mall2OrderingEarlyWarningRemindsDao.delete(moewrId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]moewrIds) {
+        return mall2OrderingEarlyWarningRemindsDao.deleteBatch(moewrIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/alarm/Mall2ShippingReminderAlarmServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.alarm;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.alarm.Mall2ShippingReminderAlarmDao;
+import com.kmall.admin.entity.alarm.Mall2ShippingReminderAlarmEntity;
+import com.kmall.admin.service.alarm.Mall2ShippingReminderAlarmService;
+
+/**
+ * 出货提醒预警表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mall2ShippingReminderAlarmService")
+public class Mall2ShippingReminderAlarmServiceImpl implements Mall2ShippingReminderAlarmService {
+    @Autowired
+    private Mall2ShippingReminderAlarmDao mall2ShippingReminderAlarmDao;
+
+    @Override
+    public Mall2ShippingReminderAlarmEntity queryObject(Integer msraId) {
+        return mall2ShippingReminderAlarmDao.queryObject(msraId);
+    }
+
+    @Override
+    public List<Mall2ShippingReminderAlarmEntity> queryList(Map<String, Object> map) {
+        return mall2ShippingReminderAlarmDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mall2ShippingReminderAlarmDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm) {
+        return mall2ShippingReminderAlarmDao.save(mall2ShippingReminderAlarm);
+    }
+
+    @Override
+    public int update(Mall2ShippingReminderAlarmEntity mall2ShippingReminderAlarm) {
+        return mall2ShippingReminderAlarmDao.update(mall2ShippingReminderAlarm);
+    }
+
+    @Override
+    public int delete(Integer msraId) {
+        return mall2ShippingReminderAlarmDao.delete(msraId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]msraIds) {
+        return mall2ShippingReminderAlarmDao.deleteBatch(msraIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/Mk2GoodsTopicHistoryPriceServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.mk;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.mk.Mk2GoodsTopicHistoryPriceDao;
+import com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity;
+import com.kmall.admin.service.mk.Mk2GoodsTopicHistoryPriceService;
+
+/**
+ * 商品活动历史价格表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mk2GoodsTopicHistoryPriceService")
+public class Mk2GoodsTopicHistoryPriceServiceImpl implements Mk2GoodsTopicHistoryPriceService {
+    @Autowired
+    private Mk2GoodsTopicHistoryPriceDao mk2GoodsTopicHistoryPriceDao;
+
+    @Override
+    public Mk2GoodsTopicHistoryPriceEntity queryObject(Integer mgthpId) {
+        return mk2GoodsTopicHistoryPriceDao.queryObject(mgthpId);
+    }
+
+    @Override
+    public List<Mk2GoodsTopicHistoryPriceEntity> queryList(Map<String, Object> map) {
+        return mk2GoodsTopicHistoryPriceDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mk2GoodsTopicHistoryPriceDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice) {
+        return mk2GoodsTopicHistoryPriceDao.save(mk2GoodsTopicHistoryPrice);
+    }
+
+    @Override
+    public int update(Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice) {
+        return mk2GoodsTopicHistoryPriceDao.update(mk2GoodsTopicHistoryPrice);
+    }
+
+    @Override
+    public int delete(Integer mgthpId) {
+        return mk2GoodsTopicHistoryPriceDao.delete(mgthpId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mgthpIds) {
+        return mk2GoodsTopicHistoryPriceDao.deleteBatch(mgthpIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/Mk2GoodsTopicPriceServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.mk;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.mk.Mk2GoodsTopicPriceDao;
+import com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity;
+import com.kmall.admin.service.mk.Mk2GoodsTopicPriceService;
+
+/**
+ * 商品活动价格表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mk2GoodsTopicPriceService")
+public class Mk2GoodsTopicPriceServiceImpl implements Mk2GoodsTopicPriceService {
+    @Autowired
+    private Mk2GoodsTopicPriceDao mk2GoodsTopicPriceDao;
+
+    @Override
+    public Mk2GoodsTopicPriceEntity queryObject(Integer mgthpId) {
+        return mk2GoodsTopicPriceDao.queryObject(mgthpId);
+    }
+
+    @Override
+    public List<Mk2GoodsTopicPriceEntity> queryList(Map<String, Object> map) {
+        return mk2GoodsTopicPriceDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mk2GoodsTopicPriceDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice) {
+        return mk2GoodsTopicPriceDao.save(mk2GoodsTopicPrice);
+    }
+
+    @Override
+    public int update(Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice) {
+        return mk2GoodsTopicPriceDao.update(mk2GoodsTopicPrice);
+    }
+
+    @Override
+    public int delete(Integer mgthpId) {
+        return mk2GoodsTopicPriceDao.delete(mgthpId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mgthpIds) {
+        return mk2GoodsTopicPriceDao.deleteBatch(mgthpIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/mk/Mk2MemberBirthdayServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.mk;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.mk.Mk2MemberBirthdayDao;
+import com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity;
+import com.kmall.admin.service.mk.Mk2MemberBirthdayService;
+
+/**
+ * 会员生日优惠表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mk2MemberBirthdayService")
+public class Mk2MemberBirthdayServiceImpl implements Mk2MemberBirthdayService {
+    @Autowired
+    private Mk2MemberBirthdayDao mk2MemberBirthdayDao;
+
+    @Override
+    public Mk2MemberBirthdayEntity queryObject(Integer mmbId) {
+        return mk2MemberBirthdayDao.queryObject(mmbId);
+    }
+
+    @Override
+    public List<Mk2MemberBirthdayEntity> queryList(Map<String, Object> map) {
+        return mk2MemberBirthdayDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mk2MemberBirthdayDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mk2MemberBirthdayEntity mk2MemberBirthday) {
+        return mk2MemberBirthdayDao.save(mk2MemberBirthday);
+    }
+
+    @Override
+    public int update(Mk2MemberBirthdayEntity mk2MemberBirthday) {
+        return mk2MemberBirthdayDao.update(mk2MemberBirthday);
+    }
+
+    @Override
+    public int delete(Integer mmbId) {
+        return mk2MemberBirthdayDao.delete(mmbId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mmbIds) {
+        return mk2MemberBirthdayDao.deleteBatch(mmbIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2MemberConsumptionRecordsServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.vip;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.vip.Mall2MemberConsumptionRecordsDao;
+import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
+import com.kmall.admin.service.vip.Mall2MemberConsumptionRecordsService;
+
+/**
+ * 会员消费记录表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mall2MemberConsumptionRecordsService")
+public class Mall2MemberConsumptionRecordsServiceImpl implements Mall2MemberConsumptionRecordsService {
+    @Autowired
+    private Mall2MemberConsumptionRecordsDao mall2MemberConsumptionRecordsDao;
+
+    @Override
+    public Mall2MemberConsumptionRecordsEntity queryObject(Integer mmcrId) {
+        return mall2MemberConsumptionRecordsDao.queryObject(mmcrId);
+    }
+
+    @Override
+    public List<Mall2MemberConsumptionRecordsEntity> queryList(Map<String, Object> map) {
+        return mall2MemberConsumptionRecordsDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mall2MemberConsumptionRecordsDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords) {
+        return mall2MemberConsumptionRecordsDao.save(mall2MemberConsumptionRecords);
+    }
+
+    @Override
+    public int update(Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords) {
+        return mall2MemberConsumptionRecordsDao.update(mall2MemberConsumptionRecords);
+    }
+
+    @Override
+    public int delete(Integer mmcrId) {
+        return mall2MemberConsumptionRecordsDao.delete(mmcrId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mmcrIds) {
+        return mall2MemberConsumptionRecordsDao.deleteBatch(mmcrIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2MemberPointsServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.vip;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.vip.Mall2MemberPointsDao;
+import com.kmall.admin.entity.vip.Mall2MemberPointsEntity;
+import com.kmall.admin.service.vip.Mall2MemberPointsService;
+
+/**
+ * 会员积分表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mall2MemberPointsService")
+public class Mall2MemberPointsServiceImpl implements Mall2MemberPointsService {
+    @Autowired
+    private Mall2MemberPointsDao mall2MemberPointsDao;
+
+    @Override
+    public Mall2MemberPointsEntity queryObject(Integer mmpId) {
+        return mall2MemberPointsDao.queryObject(mmpId);
+    }
+
+    @Override
+    public List<Mall2MemberPointsEntity> queryList(Map<String, Object> map) {
+        return mall2MemberPointsDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mall2MemberPointsDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mall2MemberPointsEntity mall2MemberPoints) {
+        return mall2MemberPointsDao.save(mall2MemberPoints);
+    }
+
+    @Override
+    public int update(Mall2MemberPointsEntity mall2MemberPoints) {
+        return mall2MemberPointsDao.update(mall2MemberPoints);
+    }
+
+    @Override
+    public int delete(Integer mmpId) {
+        return mall2MemberPointsDao.delete(mmpId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mmpIds) {
+        return mall2MemberPointsDao.deleteBatch(mmpIds);
+    }
+}

+ 59 - 0
kmall-admin/src/main/java/com/kmall/admin/service/impl/vip/Mall2PointsRulesServiceImpl.java

@@ -0,0 +1,59 @@
+package com.kmall.admin.service.impl.vip;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+import java.util.Map;
+
+import com.kmall.admin.dao.vip.Mall2PointsRulesDao;
+import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
+import com.kmall.admin.service.vip.Mall2PointsRulesService;
+
+/**
+ * 积分规则表Service实现类
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+@Service("mall2PointsRulesService")
+public class Mall2PointsRulesServiceImpl implements Mall2PointsRulesService {
+    @Autowired
+    private Mall2PointsRulesDao mall2PointsRulesDao;
+
+    @Override
+    public Mall2PointsRulesEntity queryObject(Integer mprId) {
+        return mall2PointsRulesDao.queryObject(mprId);
+    }
+
+    @Override
+    public List<Mall2PointsRulesEntity> queryList(Map<String, Object> map) {
+        return mall2PointsRulesDao.queryList(map);
+    }
+
+    @Override
+    public int queryTotal(Map<String, Object> map) {
+        return mall2PointsRulesDao.queryTotal(map);
+    }
+
+    @Override
+    public int save(Mall2PointsRulesEntity mall2PointsRules) {
+        return mall2PointsRulesDao.save(mall2PointsRules);
+    }
+
+    @Override
+    public int update(Mall2PointsRulesEntity mall2PointsRules) {
+        return mall2PointsRulesDao.update(mall2PointsRules);
+    }
+
+    @Override
+    public int delete(Integer mprId) {
+        return mall2PointsRulesDao.delete(mprId);
+    }
+
+    @Override
+    public int deleteBatch(Integer[]mprIds) {
+        return mall2PointsRulesDao.deleteBatch(mprIds);
+    }
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/mk/Mk2GoodsTopicHistoryPriceService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.mk;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 商品活动历史价格表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mk2GoodsTopicHistoryPriceService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mk2GoodsTopicHistoryPriceEntity queryObject(Integer mgthpId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mk2GoodsTopicHistoryPriceEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mk2GoodsTopicHistoryPrice 实体
+     * @return 保存条数
+     */
+    int save(Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mk2GoodsTopicHistoryPrice 实体
+     * @return 更新条数
+     */
+    int update(Mk2GoodsTopicHistoryPriceEntity mk2GoodsTopicHistoryPrice);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mgthpId
+     * @return 删除条数
+     */
+    int delete(Integer mgthpId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mgthpIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mgthpIds);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/mk/Mk2GoodsTopicPriceService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.mk;
+
+import com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 商品活动价格表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mk2GoodsTopicPriceService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mk2GoodsTopicPriceEntity queryObject(Integer mgthpId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mk2GoodsTopicPriceEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mk2GoodsTopicPrice 实体
+     * @return 保存条数
+     */
+    int save(Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mk2GoodsTopicPrice 实体
+     * @return 更新条数
+     */
+    int update(Mk2GoodsTopicPriceEntity mk2GoodsTopicPrice);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mgthpId
+     * @return 删除条数
+     */
+    int delete(Integer mgthpId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mgthpIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mgthpIds);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/mk/Mk2MemberBirthdayService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.mk;
+
+import com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 会员生日优惠表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mk2MemberBirthdayService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mk2MemberBirthdayEntity queryObject(Integer mmbId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mk2MemberBirthdayEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mk2MemberBirthday 实体
+     * @return 保存条数
+     */
+    int save(Mk2MemberBirthdayEntity mk2MemberBirthday);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mk2MemberBirthday 实体
+     * @return 更新条数
+     */
+    int update(Mk2MemberBirthdayEntity mk2MemberBirthday);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mmbId
+     * @return 删除条数
+     */
+    int delete(Integer mmbId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mmbIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mmbIds);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2MemberConsumptionRecordsService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.vip;
+
+import com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 会员消费记录表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2MemberConsumptionRecordsService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mall2MemberConsumptionRecordsEntity queryObject(Integer mmcrId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mall2MemberConsumptionRecordsEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mall2MemberConsumptionRecords 实体
+     * @return 保存条数
+     */
+    int save(Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mall2MemberConsumptionRecords 实体
+     * @return 更新条数
+     */
+    int update(Mall2MemberConsumptionRecordsEntity mall2MemberConsumptionRecords);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mmcrId
+     * @return 删除条数
+     */
+    int delete(Integer mmcrId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mmcrIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mmcrIds);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2MemberPointsService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.vip;
+
+import com.kmall.admin.entity.vip.Mall2MemberPointsEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 会员积分表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2MemberPointsService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mall2MemberPointsEntity queryObject(Integer mmpId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mall2MemberPointsEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mall2MemberPoints 实体
+     * @return 保存条数
+     */
+    int save(Mall2MemberPointsEntity mall2MemberPoints);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mall2MemberPoints 实体
+     * @return 更新条数
+     */
+    int update(Mall2MemberPointsEntity mall2MemberPoints);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mmpId
+     * @return 删除条数
+     */
+    int delete(Integer mmpId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mmpIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mmpIds);
+}

+ 72 - 0
kmall-admin/src/main/java/com/kmall/admin/service/vip/Mall2PointsRulesService.java

@@ -0,0 +1,72 @@
+package com.kmall.admin.service.vip;
+
+import com.kmall.admin.entity.vip.Mall2PointsRulesEntity;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 积分规则表Service接口
+ *
+ * @author emato
+ * @email admin@qhdswl.com
+ * @date 2020-06-15 10:44:07
+ */
+public interface Mall2PointsRulesService {
+
+    /**
+     * 根据主键查询实体
+     *
+     * @param id 主键
+     * @return 实体
+     */
+    Mall2PointsRulesEntity queryObject(Integer mprId);
+
+    /**
+     * 分页查询
+     *
+     * @param map 参数
+     * @return list
+     */
+    List<Mall2PointsRulesEntity> queryList(Map<String, Object> map);
+
+    /**
+     * 分页统计总数
+     *
+     * @param map 参数
+     * @return 总数
+     */
+    int queryTotal(Map<String, Object> map);
+
+    /**
+     * 保存实体
+     *
+     * @param mall2PointsRules 实体
+     * @return 保存条数
+     */
+    int save(Mall2PointsRulesEntity mall2PointsRules);
+
+    /**
+     * 根据主键更新实体
+     *
+     * @param mall2PointsRules 实体
+     * @return 更新条数
+     */
+    int update(Mall2PointsRulesEntity mall2PointsRules);
+
+    /**
+     * 根据主键删除
+     *
+     * @param mprId
+     * @return 删除条数
+     */
+    int delete(Integer mprId);
+
+    /**
+     * 根据主键批量删除
+     *
+     * @param mprIds
+     * @return 删除条数
+     */
+    int deleteBatch(Integer[] mprIds);
+}

+ 161 - 0
kmall-admin/src/main/resources/mybatis/mapper/CashierDao.xml

@@ -0,0 +1,161 @@
+<?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.CashierDao">
+
+    <resultMap type="com.kmall.admin.entity.CashierEntity" id="cashierMap">
+        <id property="mcId" column="mc_id"/>
+        <result property="machineCodeType" column="machine_code_type"/>
+        <result property="machineCode" column="machine_code"/>
+        <result property="cashierSn" column="cashier_sn"/>
+        <result property="stationCode" column="station_code"/>
+        <result property="shopSn" column="shop_sn"/>
+        <result property="merchSn" column="merch_sn"/>
+        <result property="thirdMerchSn" column="third_merch_sn"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.CashierEntity">
+		select
+			`mc_id`,
+			`machine_code_type`,
+			`machine_code`,
+			`cashier_sn`,
+			`station_code`,
+			`shop_sn`,
+			`merch_sn`,
+			`third_merch_sn`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_cashier
+		where mc_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.CashierEntity">
+		select
+    		`mc_id`,
+    		`machine_code_type`,
+    		`machine_code`,
+    		`cashier_sn`,
+    		`station_code`,
+    		`shop_sn`,
+    		`merch_sn`,
+    		`third_merch_sn`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_cashier
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mc_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_cashier
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.CashierEntity" useGeneratedKeys="true" keyProperty="mcId">
+		insert into mall2_cashier(
+			`machine_code_type`,
+			`machine_code`,
+			`cashier_sn`,
+			`station_code`,
+			`shop_sn`,
+			`merch_sn`,
+			`third_merch_sn`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{machineCodeType},
+			#{machineCode},
+			#{cashierSn},
+			#{stationCode},
+			#{shopSn},
+			#{merchSn},
+			#{thirdMerchSn},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.CashierEntity">
+		update mall2_cashier
+		<set>
+			<if test="machineCodeType != null">`machine_code_type` = #{machineCodeType}, </if>
+			<if test="machineCode != null">`machine_code` = #{machineCode}, </if>
+			<if test="cashierSn != null">`cashier_sn` = #{cashierSn}, </if>
+			<if test="stationCode != null">`station_code` = #{stationCode}, </if>
+			<if test="shopSn != null">`shop_sn` = #{shopSn}, </if>
+			<if test="merchSn != null">`merch_sn` = #{merchSn}, </if>
+			<if test="thirdMerchSn != null">`third_merch_sn` = #{thirdMerchSn}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mc_id = #{mcId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_cashier where mc_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_cashier where mc_id in
+		<foreach item="mcId" collection="array" open="(" separator="," close=")">
+			#{mcId}
+		</foreach>
+	</delete>
+
+
+	<select id="queryByMachineCode" resultType="com.kmall.admin.entity.CashierEntity">
+		select
+			`mc_id`,
+			`machine_code_type`,
+			`machine_code`,
+			`cashier_sn`,
+			`station_code`,
+			`shop_sn`,
+			`merch_sn`,
+			`third_merch_sn`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_cashier
+		where machine_code = #{machineCode}
+	</select>
+
+</mapper>

+ 125 - 0
kmall-admin/src/main/resources/mybatis/mapper/CashierLoginRecordDao.xml

@@ -0,0 +1,125 @@
+<?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.CashierLoginRecordDao">
+
+    <resultMap type="com.kmall.admin.entity.CashierLoginRecordEntity" id="cashierLoginRecordMap">
+        <result property="mclrId" column="mclr_id"/>
+        <result property="sallerId" column="saller_id"/>
+        <result property="cashierId" column="cashier_id"/>
+        <result property="shopSn" column="shop_sn"/>
+        <result property="loginTime" column="login_time"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.CashierLoginRecordEntity">
+		select
+			`mclr_id`,
+			`saller_id`,
+			`cashier_id`,
+			`shop_sn`,
+			`login_time`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_cashier_login_record
+		where mclr_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.CashierLoginRecordEntity">
+		select
+    		`mclr_id`,
+    		`saller_id`,
+    		`cashier_id`,
+    		`shop_sn`,
+    		`login_time`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_cashier_login_record
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mclr_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_cashier_login_record
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.CashierLoginRecordEntity">
+		insert into mall2_cashier_login_record(
+			`mclr_id`,
+			`saller_id`,
+			`cashier_id`,
+			`shop_sn`,
+			`login_time`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mclrId},
+			#{sallerId},
+			#{cashierId},
+			#{shopSn},
+			#{loginTime},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.CashierLoginRecordEntity">
+		update mall2_cashier_login_record
+		<set>
+			<if test="sallerId != null">`saller_id` = #{sallerId}, </if>
+			<if test="cashierId != null">`cashier_id` = #{cashierId}, </if>
+			<if test="shopSn != null">`shop_sn` = #{shopSn}, </if>
+			<if test="loginTime != null">`login_time` = #{loginTime}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mclr_id = #{mclrId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_cashier_login_record where mclr_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_cashier_login_record where mclr_id in
+		<foreach item="mclrId" collection="array" open="(" separator="," close=")">
+			#{mclrId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 129 - 0
kmall-admin/src/main/resources/mybatis/mapper/SaleRecordDao.xml

@@ -0,0 +1,129 @@
+<?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.SaleRecordDao">
+
+    <resultMap type="com.kmall.admin.entity.SaleRecordEntity" id="saleRecordMap">
+        <result property="msrId" column="msr_id"/>
+        <result property="orderSn" column="order_sn"/>
+        <result property="cashierSn" column="cashier_sn"/>
+        <result property="sallerId" column="saller_id"/>
+        <result property="discountId" column="discount_id"/>
+        <result property="salesTime" column="sales_time"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.SaleRecordEntity">
+		select
+			`msr_id`,
+			`order_sn`,
+			`cashier_sn`,
+			`saller_id`,
+			`discount_id`,
+			`sales_time`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall_sale_record
+		where msr_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.SaleRecordEntity">
+		select
+    		`msr_id`,
+    		`order_sn`,
+    		`cashier_sn`,
+    		`saller_id`,
+    		`discount_id`,
+    		`sales_time`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall_sale_record
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by msr_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall_sale_record
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.SaleRecordEntity" useGeneratedKeys="true" keyProperty="msrId">
+		insert into mall_sale_record(
+			`order_sn`,
+			`cashier_sn`,
+			`saller_id`,
+			`discount_id`,
+			`sales_time`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{orderSn},
+			#{cashierSn},
+			#{sallerId},
+			#{discountId},
+			#{salesTime},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.SaleRecordEntity">
+		update mall_sale_record
+		<set>
+			<if test="orderSn != null">`order_sn` = #{orderSn}, </if>
+			<if test="cashierSn != null">`cashier_sn` = #{cashierSn}, </if>
+			<if test="sallerId != null">`saller_id` = #{sallerId}, </if>
+			<if test="discountId != null">`discount_id` = #{discountId}, </if>
+			<if test="salesTime != null">`sales_time` = #{salesTime}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 msr_id = #{msrId}
+	</update>
+
+	<delete id="delete">
+		delete from mall_sale_record where msr_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall_sale_record where msr_id in
+		<foreach item="msrId" collection="array" open="(" separator="," close=")">
+			#{msrId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 143 - 0
kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2OrderingEarlyWarningRemindsDao.xml

@@ -0,0 +1,143 @@
+<?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.alarm.Mall2OrderingEarlyWarningRemindsDao">
+
+    <resultMap type="com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity" id="mall2OrderingEarlyWarningRemindsMap">
+        <result property="moewrId" column="moewr_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="averageSales" column="average_sales"/>
+        <result property="totalNum" column="total_num"/>
+        <result property="alarmType" column="alarm_type"/>
+        <result property="alarmTime" column="alarm_time"/>
+        <result property="isWarning" column="is_warning"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.alarm.Mall2OrderingEarlyWarningRemindsEntity">
+		select
+			`moewr_id`,
+			`goods_id`,
+			`goods_name`,
+			`average_sales`,
+			`total_num`,
+			`alarm_type`,
+			`alarm_time`,
+			`is_warning`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_ordering_early_warning_reminds
+		where moewr_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity">
+		select
+    		`moewr_id`,
+    		`goods_id`,
+    		`goods_name`,
+    		`average_sales`,
+    		`total_num`,
+    		`alarm_type`,
+    		`alarm_time`,
+    		`is_warning`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_ordering_early_warning_reminds
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by moewr_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_ordering_early_warning_reminds
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity">
+		insert into mall2_ordering_early_warning_reminds(
+			`moewr_id`,
+			`goods_id`,
+			`goods_name`,
+			`average_sales`,
+			`total_num`,
+			`alarm_type`,
+			`alarm_time`,
+			`is_warning`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{moewrId},
+			#{goodsId},
+			#{goodsName},
+			#{averageSales},
+			#{totalNum},
+			#{alarmType},
+			#{alarmTime},
+			#{isWarning},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.alarm.Mall2OrderingEarlyWarningRemindsEntity">
+		update mall2_ordering_early_warning_reminds
+		<set>
+			<if test="goodsId != null">`goods_id` = #{goodsId}, </if>
+			<if test="goodsName != null">`goods_name` = #{goodsName}, </if>
+			<if test="averageSales != null">`average_sales` = #{averageSales}, </if>
+			<if test="totalNum != null">`total_num` = #{totalNum}, </if>
+			<if test="alarmType != null">`alarm_type` = #{alarmType}, </if>
+			<if test="alarmTime != null">`alarm_time` = #{alarmTime}, </if>
+			<if test="isWarning != null">`is_warning` = #{isWarning}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 moewr_id = #{moewrId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_ordering_early_warning_reminds where moewr_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_ordering_early_warning_reminds where moewr_id in
+		<foreach item="moewrId" collection="array" open="(" separator="," close=")">
+			#{moewrId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 161 - 0
kmall-admin/src/main/resources/mybatis/mapper/alarm/Mall2ShippingReminderAlarmDao.xml

@@ -0,0 +1,161 @@
+<?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.dao.Mall2ShippingReminderAlarmDao">
+
+    <resultMap type="com.kmall.entity.Mall2ShippingReminderAlarmEntity" id="mall2ShippingReminderAlarmMap">
+        <result property="msraId" column="msra_id"/>
+        <result property="goodsId" column="goods_id"/>
+        <result property="goodsName" column="goods_name"/>
+        <result property="averageSales" column="average_sales"/>
+        <result property="storeId" column="store_id"/>
+        <result property="sku" column="sku"/>
+        <result property="storeName" column="store_name"/>
+        <result property="stockNum" column="stock_num"/>
+        <result property="alarmType" column="alarm_type"/>
+        <result property="alarmTime" column="alarm_time"/>
+        <result property="isWarning" column="is_warning"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.entity.Mall2ShippingReminderAlarmEntity">
+		select
+			`msra_id`,
+			`goods_id`,
+			`goods_name`,
+			`average_sales`,
+			`store_id`,
+			`sku`,
+			`store_name`,
+			`stock_num`,
+			`alarm_type`,
+			`alarm_time`,
+			`is_warning`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_shipping_reminder_alarm
+		where msra_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.entity.Mall2ShippingReminderAlarmEntity">
+		select
+    		`msra_id`,
+    		`goods_id`,
+    		`goods_name`,
+    		`average_sales`,
+    		`store_id`,
+    		`sku`,
+    		`store_name`,
+    		`stock_num`,
+    		`alarm_type`,
+    		`alarm_time`,
+    		`is_warning`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_shipping_reminder_alarm
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by msra_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+	
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_shipping_reminder_alarm
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+	 
+	<insert id="save" parameterType="com.kmall.entity.Mall2ShippingReminderAlarmEntity">
+		insert into mall2_shipping_reminder_alarm(
+			`msra_id`,
+			`goods_id`,
+			`goods_name`,
+			`average_sales`,
+			`store_id`,
+			`sku`,
+			`store_name`,
+			`stock_num`,
+			`alarm_type`,
+			`alarm_time`,
+			`is_warning`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{msraId},
+			#{goodsId},
+			#{goodsName},
+			#{averageSales},
+			#{storeId},
+			#{sku},
+			#{storeName},
+			#{stockNum},
+			#{alarmType},
+			#{alarmTime},
+			#{isWarning},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+	 
+	<update id="update" parameterType="com.kmall.entity.Mall2ShippingReminderAlarmEntity">
+		update mall2_shipping_reminder_alarm 
+		<set>
+			<if test="goodsId != null">`goods_id` = #{goodsId}, </if>
+			<if test="goodsName != null">`goods_name` = #{goodsName}, </if>
+			<if test="averageSales != null">`average_sales` = #{averageSales}, </if>
+			<if test="storeId != null">`store_id` = #{storeId}, </if>
+			<if test="sku != null">`sku` = #{sku}, </if>
+			<if test="storeName != null">`store_name` = #{storeName}, </if>
+			<if test="stockNum != null">`stock_num` = #{stockNum}, </if>
+			<if test="alarmType != null">`alarm_type` = #{alarmType}, </if>
+			<if test="alarmTime != null">`alarm_time` = #{alarmTime}, </if>
+			<if test="isWarning != null">`is_warning` = #{isWarning}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 msra_id = #{msraId}
+	</update>
+	
+	<delete id="delete">
+		delete from mall2_shipping_reminder_alarm where msra_id = #{value}
+	</delete>
+	
+	<delete id="deleteBatch">
+		delete from mall2_shipping_reminder_alarm where msra_id in 
+		<foreach item="msraId" collection="array" open="(" separator="," close=")">
+			#{msraId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 131 - 0
kmall-admin/src/main/resources/mybatis/mapper/mk/Mk2GoodsTopicHistoryPriceDao.xml

@@ -0,0 +1,131 @@
+<?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.admin.dao.mk.Mk2GoodsTopicHistoryPriceDao">
+
+    <resultMap type="com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity" id="mk2GoodsTopicHistoryPriceMap">
+        <result property="mgthpId" column="mgthp_id"/>
+        <result property="topicId" column="topic_id"/>
+        <result property="topicType" column="topic_type"/>
+        <result property="topicPrice" column="topic_price"/>
+        <result property="topicName" column="topic_name"/>
+        <result property="topicContent" column="topic_content"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.mk.Mk2GoodsTopicHistoryPriceEntity">
+		select
+			`mgthp_id`,
+			`topic_id`,
+			`topic_type`,
+			`topic_price`,
+			`topic_name`,
+			`topic_content`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mk2_goods_topic_history_price
+		where mgthp_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity">
+		select
+    		`mgthp_id`,
+    		`topic_id`,
+    		`topic_type`,
+    		`topic_price`,
+    		`topic_name`,
+    		`topic_content`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mk2_goods_topic_history_price
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mgthp_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mk2_goods_topic_history_price
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity">
+		insert into mk2_goods_topic_history_price(
+			`mgthp_id`,
+			`topic_id`,
+			`topic_type`,
+			`topic_price`,
+			`topic_name`,
+			`topic_content`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mgthpId},
+			#{topicId},
+			#{topicType},
+			#{topicPrice},
+			#{topicName},
+			#{topicContent},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.mk.Mk2GoodsTopicHistoryPriceEntity">
+		update mk2_goods_topic_history_price
+		<set>
+			<if test="topicId != null">`topic_id` = #{topicId}, </if>
+			<if test="topicType != null">`topic_type` = #{topicType}, </if>
+			<if test="topicPrice != null">`topic_price` = #{topicPrice}, </if>
+			<if test="topicName != null">`topic_name` = #{topicName}, </if>
+			<if test="topicContent != null">`topic_content` = #{topicContent}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mgthp_id = #{mgthpId}
+	</update>
+
+	<delete id="delete">
+		delete from mk2_goods_topic_history_price where mgthp_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mk2_goods_topic_history_price where mgthp_id in
+		<foreach item="mgthpId" collection="array" open="(" separator="," close=")">
+			#{mgthpId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 155 - 0
kmall-admin/src/main/resources/mybatis/mapper/mk/Mk2GoodsTopicPriceDao.xml

@@ -0,0 +1,155 @@
+<?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.Mk2GoodsTopicPriceDao">
+
+    <resultMap type="com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity" id="mk2GoodsTopicPriceMap">
+        <result property="mgthpId" column="mgthp_id"/>
+        <result property="topicId" column="topic_id"/>
+        <result property="topicType" column="topic_type"/>
+        <result property="topicPrice" column="topic_price"/>
+        <result property="topicName" column="topic_name"/>
+        <result property="topicContent" column="topic_content"/>
+        <result property="topicGoodsId" column="topic_goods_id"/>
+        <result property="topicBeginTime" column="topic_begin_time"/>
+        <result property="topicEndTime" column="topic_end_time"/>
+        <result property="importTime" column="import_time"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.mk.Mk2GoodsTopicPriceEntity">
+		select
+			`mgthp_id`,
+			`topic_id`,
+			`topic_type`,
+			`topic_price`,
+			`topic_name`,
+			`topic_content`,
+			`topic_goods_id`,
+			`topic_begin_time`,
+			`topic_end_time`,
+			`import_time`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mk2_goods_topic_price
+		where mgthp_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity">
+		select
+    		`mgthp_id`,
+    		`topic_id`,
+    		`topic_type`,
+    		`topic_price`,
+    		`topic_name`,
+    		`topic_content`,
+    		`topic_goods_id`,
+    		`topic_begin_time`,
+    		`topic_end_time`,
+    		`import_time`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mk2_goods_topic_price
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mgthp_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mk2_goods_topic_price
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity">
+		insert into mk2_goods_topic_price(
+			`mgthp_id`,
+			`topic_id`,
+			`topic_type`,
+			`topic_price`,
+			`topic_name`,
+			`topic_content`,
+			`topic_goods_id`,
+			`topic_begin_time`,
+			`topic_end_time`,
+			`import_time`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mgthpId},
+			#{topicId},
+			#{topicType},
+			#{topicPrice},
+			#{topicName},
+			#{topicContent},
+			#{topicGoodsId},
+			#{topicBeginTime},
+			#{topicEndTime},
+			#{importTime},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.mk.Mk2GoodsTopicPriceEntity">
+		update mk2_goods_topic_price
+		<set>
+			<if test="topicId != null">`topic_id` = #{topicId}, </if>
+			<if test="topicType != null">`topic_type` = #{topicType}, </if>
+			<if test="topicPrice != null">`topic_price` = #{topicPrice}, </if>
+			<if test="topicName != null">`topic_name` = #{topicName}, </if>
+			<if test="topicContent != null">`topic_content` = #{topicContent}, </if>
+			<if test="topicGoodsId != null">`topic_goods_id` = #{topicGoodsId}, </if>
+			<if test="topicBeginTime != null">`topic_begin_time` = #{topicBeginTime}, </if>
+			<if test="topicEndTime != null">`topic_end_time` = #{topicEndTime}, </if>
+			<if test="importTime != null">`import_time` = #{importTime}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mgthp_id = #{mgthpId}
+	</update>
+
+	<delete id="delete">
+		delete from mk2_goods_topic_price where mgthp_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mk2_goods_topic_price where mgthp_id in
+		<foreach item="mgthpId" collection="array" open="(" separator="," close=")">
+			#{mgthpId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 131 - 0
kmall-admin/src/main/resources/mybatis/mapper/mk/Mk2MemberBirthdayDao.xml

@@ -0,0 +1,131 @@
+<?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.mk.Mk2MemberBirthdayDao">
+
+    <resultMap type="com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity" id="mk2MemberBirthdayMap">
+        <result property="mmbId" column="mmb_id"/>
+        <result property="topicName" column="topic_name"/>
+        <result property="topicType" column="topic_type"/>
+        <result property="topicPrice" column="topic_price"/>
+        <result property="topicProportion" column="topic_proportion"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.mk.Mk2MemberBirthdayEntity">
+		select
+			`mmb_id`,
+			`topic_name`,
+			`topic_type`,
+			`topic_price`,
+			`topic_proportion`,
+			`is_valid`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mk2_member_birthday
+		where mmb_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity">
+		select
+    		`mmb_id`,
+    		`topic_name`,
+    		`topic_type`,
+    		`topic_price`,
+    		`topic_proportion`,
+    		`is_valid`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mk2_member_birthday
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mmb_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mk2_member_birthday
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity">
+		insert into mk2_member_birthday(
+			`mmb_id`,
+			`topic_name`,
+			`topic_type`,
+			`topic_price`,
+			`topic_proportion`,
+			`is_valid`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mmbId},
+			#{topicName},
+			#{topicType},
+			#{topicPrice},
+			#{topicProportion},
+			#{isValid},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.mk.Mk2MemberBirthdayEntity">
+		update mk2_member_birthday
+		<set>
+			<if test="topicName != null">`topic_name` = #{topicName}, </if>
+			<if test="topicType != null">`topic_type` = #{topicType}, </if>
+			<if test="topicPrice != null">`topic_price` = #{topicPrice}, </if>
+			<if test="topicProportion != null">`topic_proportion` = #{topicProportion}, </if>
+			<if test="isValid != null">`is_valid` = #{isValid}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mmb_id = #{mmbId}
+	</update>
+
+	<delete id="delete">
+		delete from mk2_member_birthday where mmb_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mk2_member_birthday where mmb_id in
+		<foreach item="mmbId" collection="array" open="(" separator="," close=")">
+			#{mmbId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 131 - 0
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2MemberConsumptionRecordsDao.xml

@@ -0,0 +1,131 @@
+<?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.vip.Mall2MemberConsumptionRecordsDao">
+
+    <resultMap type="com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity" id="mall2MemberConsumptionRecordsMap">
+        <result property="mmcrId" column="mmcr_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="orderSn" column="order_sn"/>
+        <result property="consumptionTime" column="consumption_time"/>
+        <result property="shopSn" column="shop_sn"/>
+        <result property="isUseBirthdayOffer" column="is_use_birthday_offer"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.vip.Mall2MemberConsumptionRecordsEntity">
+		select
+			`mmcr_id`,
+			`user_id`,
+			`order_sn`,
+			`consumption_time`,
+			`shop_sn`,
+			`is_use_birthday_offer`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_member_consumption_records
+		where mmcr_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity">
+		select
+    		`mmcr_id`,
+    		`user_id`,
+    		`order_sn`,
+    		`consumption_time`,
+    		`shop_sn`,
+    		`is_use_birthday_offer`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_member_consumption_records
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mmcr_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_member_consumption_records
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity">
+		insert into mall2_member_consumption_records(
+			`mmcr_id`,
+			`user_id`,
+			`order_sn`,
+			`consumption_time`,
+			`shop_sn`,
+			`is_use_birthday_offer`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mmcrId},
+			#{userId},
+			#{orderSn},
+			#{consumptionTime},
+			#{shopSn},
+			#{isUseBirthdayOffer},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.vip.Mall2MemberConsumptionRecordsEntity">
+		update mall2_member_consumption_records
+		<set>
+			<if test="userId != null">`user_id` = #{userId}, </if>
+			<if test="orderSn != null">`order_sn` = #{orderSn}, </if>
+			<if test="consumptionTime != null">`consumption_time` = #{consumptionTime}, </if>
+			<if test="shopSn != null">`shop_sn` = #{shopSn}, </if>
+			<if test="isUseBirthdayOffer != null">`is_use_birthday_offer` = #{isUseBirthdayOffer}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mmcr_id = #{mmcrId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_member_consumption_records where mmcr_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_member_consumption_records where mmcr_id in
+		<foreach item="mmcrId" collection="array" open="(" separator="," close=")">
+			#{mmcrId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 119 - 0
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2MemberPointsDao.xml

@@ -0,0 +1,119 @@
+<?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.vip.Mall2MemberPointsDao">
+
+    <resultMap type="com.kmall.admin.entity.vip.Mall2MemberPointsEntity" id="mall2MemberPointsMap">
+        <result property="mmpId" column="mmp_id"/>
+        <result property="userId" column="user_id"/>
+        <result property="points" column="points"/>
+        <result property="pointsExpireDate" column="points_expire_date"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.vip.Mall2MemberPointsEntity">
+		select
+			`mmp_id`,
+			`user_id`,
+			`points`,
+			`points_expire_date`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_member_points
+		where mmp_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.vip.Mall2MemberPointsEntity">
+		select
+    		`mmp_id`,
+    		`user_id`,
+    		`points`,
+    		`points_expire_date`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_member_points
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mmp_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_member_points
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.vip.Mall2MemberPointsEntity">
+		insert into mall2_member_points(
+			`mmp_id`,
+			`user_id`,
+			`points`,
+			`points_expire_date`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mmpId},
+			#{userId},
+			#{points},
+			#{pointsExpireDate},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.vip.Mall2MemberPointsEntity">
+		update mall2_member_points
+		<set>
+			<if test="userId != null">`user_id` = #{userId}, </if>
+			<if test="points != null">`points` = #{points}, </if>
+			<if test="pointsExpireDate != null">`points_expire_date` = #{pointsExpireDate}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mmp_id = #{mmpId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_member_points where mmp_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_member_points where mmp_id in
+		<foreach item="mmpId" collection="array" open="(" separator="," close=")">
+			#{mmpId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 125 - 0
kmall-admin/src/main/resources/mybatis/mapper/vip/Mall2PointsRulesDao.xml

@@ -0,0 +1,125 @@
+<?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.vip.Mall2PointsRulesDao">
+
+    <resultMap type="com.kmall.admin.entity.vip.Mall2PointsRulesEntity" id="mall2PointsRulesMap">
+        <result property="mprId" column="mpr_id"/>
+        <result property="pointsType" column="points_type"/>
+        <result property="pointsBeginTime" column="points_begin_time"/>
+        <result property="pointsEndTime" column="points_end_time"/>
+        <result property="isValid" column="is_valid"/>
+        <result property="createrSn" column="creater_sn"/>
+        <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.vip.Mall2PointsRulesEntity">
+		select
+			`mpr_id`,
+			`points_type`,
+			`points_begin_time`,
+			`points_end_time`,
+			`is_valid`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`
+		from mall2_points_rules
+		where mpr_id = #{id}
+	</select>
+
+	<select id="queryList" resultType="com.kmall.admin.entity.vip.Mall2PointsRulesEntity">
+		select
+    		`mpr_id`,
+    		`points_type`,
+    		`points_begin_time`,
+    		`points_end_time`,
+    		`is_valid`,
+    		`creater_sn`,
+    		`create_time`,
+    		`moder_sn`,
+    		`mod_time`,
+    		`tstm`
+		from mall2_points_rules
+		WHERE 1=1
+		<if test="name != null and name.trim() != ''">
+			AND name LIKE concat('%',#{name},'%')
+		</if>
+        <choose>
+            <when test="sidx != null and sidx.trim() != ''">
+                order by ${sidx} ${order}
+            </when>
+			<otherwise>
+                order by mpr_id desc
+			</otherwise>
+        </choose>
+		<if test="offset != null and limit != null">
+			limit #{offset}, #{limit}
+		</if>
+	</select>
+
+ 	<select id="queryTotal" resultType="int">
+		select count(*) from mall2_points_rules
+		WHERE 1=1
+        <if test="name != null and name.trim() != ''">
+            AND name LIKE concat('%',#{name},'%')
+        </if>
+	</select>
+
+	<insert id="save" parameterType="com.kmall.admin.entity.vip.Mall2PointsRulesEntity">
+		insert into mall2_points_rules(
+			`mpr_id`,
+			`points_type`,
+			`points_begin_time`,
+			`points_end_time`,
+			`is_valid`,
+			`creater_sn`,
+			`create_time`,
+			`moder_sn`,
+			`mod_time`,
+			`tstm`)
+		values(
+			#{mprId},
+			#{pointsType},
+			#{pointsBeginTime},
+			#{pointsEndTime},
+			#{isValid},
+			#{createrSn},
+			#{createTime},
+			#{moderSn},
+			#{modTime},
+			#{tstm})
+	</insert>
+
+	<update id="update" parameterType="com.kmall.admin.entity.vip.Mall2PointsRulesEntity">
+		update mall2_points_rules
+		<set>
+			<if test="pointsType != null">`points_type` = #{pointsType}, </if>
+			<if test="pointsBeginTime != null">`points_begin_time` = #{pointsBeginTime}, </if>
+			<if test="pointsEndTime != null">`points_end_time` = #{pointsEndTime}, </if>
+			<if test="isValid != null">`is_valid` = #{isValid}, </if>
+			<if test="createrSn != null">`creater_sn` = #{createrSn}, </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 mpr_id = #{mprId}
+	</update>
+
+	<delete id="delete">
+		delete from mall2_points_rules where mpr_id = #{value}
+	</delete>
+
+	<delete id="deleteBatch">
+		delete from mall2_points_rules where mpr_id in
+		<foreach item="mprId" collection="array" open="(" separator="," close=")">
+			#{mprId}
+		</foreach>
+	</delete>
+
+</mapper>

+ 49 - 0
kmall-admin/src/main/webapp/WEB-INF/page/alarm/mall2orderingearlywarningreminds.html

@@ -0,0 +1,49 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>订货提醒预警表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="mall2OrderingEarlyWarningReminds" :rules="ruleValidate" :label-width="80">
+            <Form-item label="商品id" prop="goodsId">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.goodsId" placeholder="商品id"/>
+            </Form-item>
+            <Form-item label="商品名称" prop="goodsName">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.goodsName" placeholder="商品名称"/>
+            </Form-item>
+            <Form-item label="平均销量" prop="averageSales">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.averageSales" placeholder="平均销量"/>
+            </Form-item>
+            <Form-item label="总库存数" prop="totalNum">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.totalNum" placeholder="总库存数"/>
+            </Form-item>
+            <Form-item label="预警条件  00 周  10  月" prop="alarmType">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.alarmType" placeholder="预警条件  00 周  10  月"/>
+            </Form-item>
+            <Form-item label="预警时间" prop="alarmTime">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.alarmTime" placeholder="预警时间"/>
+            </Form-item>
+            <Form-item label="是否已经预警" prop="isWarning">
+                <i-input v-model="mall2OrderingEarlyWarningReminds.isWarning" 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/alarm/mall2orderingearlywarningreminds.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 60 - 0
kmall-admin/src/main/webapp/WEB-INF/page/alarm/mall2shippingreminderalarm.html

@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title>出货提醒预警表</title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+	<div v-show="showList">
+        <Row :gutter="16">
+        </Row>
+	    <table id="jqGrid"></table>
+	    <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="!showList">
+        <p slot="title">{{title}}</p>
+		<i-form ref="formValidate" :model="mall2ShippingReminderAlarm" :rules="ruleValidate" :label-width="80">
+            <Form-item label="商品id" prop="goodsId">
+                <i-input v-model="mall2ShippingReminderAlarm.goodsId" placeholder="商品id"/>
+            </Form-item>
+            <Form-item label="商品名称" prop="goodsName">
+                <i-input v-model="mall2ShippingReminderAlarm.goodsName" placeholder="商品名称"/>
+            </Form-item>
+            <Form-item label="平均销量" prop="averageSales">
+                <i-input v-model="mall2ShippingReminderAlarm.averageSales" placeholder="平均销量"/>
+            </Form-item>
+            <Form-item label="门店id" prop="storeId">
+                <i-input v-model="mall2ShippingReminderAlarm.storeId" placeholder="门店id"/>
+            </Form-item>
+            <Form-item label="门店商品sku" prop="sku">
+                <i-input v-model="mall2ShippingReminderAlarm.sku" placeholder="门店商品sku"/>
+            </Form-item>
+            <Form-item label="门店名称" prop="storeName">
+                <i-input v-model="mall2ShippingReminderAlarm.storeName" placeholder="门店名称"/>
+            </Form-item>
+            <Form-item label="门店库存数" prop="stockNum">
+                <i-input v-model="mall2ShippingReminderAlarm.stockNum" placeholder="门店库存数"/>
+            </Form-item>
+            <Form-item label="预警条件  00 周  10  月" prop="alarmType">
+                <i-input v-model="mall2ShippingReminderAlarm.alarmType" placeholder="预警条件  00 周  10  月"/>
+            </Form-item>
+            <Form-item label="预警时间" prop="alarmTime">
+                <i-input v-model="mall2ShippingReminderAlarm.alarmTime" placeholder="预警时间"/>
+            </Form-item>
+            <Form-item label="是否已经预警" prop="isWarning">
+                <i-input v-model="mall2ShippingReminderAlarm.isWarning" 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/alarm/mall2shippingreminderalarm.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 61 - 0
kmall-admin/src/main/webapp/WEB-INF/page/cashier/cashierLoginRecord.html

@@ -0,0 +1,61 @@
+<!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("cashierloginrecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("cashierloginrecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("cashierloginrecord: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="cashierLoginRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="店员id" prop="sallerId">
+                <i-input v-model="cashierLoginRecord.sallerId" placeholder="店员id"/>
+            </Form-item>
+            <Form-item label="收银机id" prop="cashierId">
+                <i-input v-model="cashierLoginRecord.cashierId" placeholder="收银机id"/>
+            </Form-item>
+            <Form-item label="门店编号" prop="shopSn">
+                <i-input v-model="cashierLoginRecord.shopSn" placeholder="门店编号"/>
+            </Form-item>
+            <Form-item label="登录时间" prop="loginTime">
+                <i-input v-model="cashierLoginRecord.loginTime" 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/cashier/cashierLoginRecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 65 - 0
kmall-admin/src/main/webapp/WEB-INF/page/cashier/cashierManager.html

@@ -0,0 +1,65 @@
+<!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">查询1</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+            <div class="buttons-group">
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                <i-button type="error" @click="del"><i class="fa fa-trash-o"></i>&nbsp;删除</i-button>
+            </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="cashier" :rules="ruleValidate" :label-width="80">
+            <Form-item label="机器码类型" prop="machineCodeType">
+                <i-input v-model="cashier.machineCodeType" placeholder="机器码类型"/>
+            </Form-item>
+            <Form-item label="机器码" prop="machineCode">
+                <i-input v-model="cashier.machineCode" placeholder="机器码"/>
+            </Form-item>
+            <Form-item label="收银机编号" prop="cashierSn">
+                <i-input v-model="cashier.cashierSn" placeholder="收银机编号"/>
+            </Form-item>
+            <Form-item label="站点编码" prop="stationCode">
+                <i-input v-model="cashier.stationCode" placeholder="站点编码"/>
+            </Form-item>
+            <Form-item label="门店编号" prop="shopSn">
+                <i-input v-model="cashier.shopSn" placeholder="门店编号"/>
+            </Form-item>
+            <Form-item label="商户编号" prop="merchSn">
+                <i-input v-model="cashier.merchSn" placeholder="商户编号"/>
+            </Form-item>
+            <Form-item label="第三方商户编号" prop="thirdMerchSn">
+                <i-input v-model="cashier.thirdMerchSn" 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/cashier/cashierManager.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 64 - 0
kmall-admin/src/main/webapp/WEB-INF/page/cashier/salerecord.html

@@ -0,0 +1,64 @@
+<!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("salerecord:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("salerecord:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("salerecord: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="saleRecord" :rules="ruleValidate" :label-width="80">
+            <Form-item label="订单编号" prop="orderSn">
+                <i-input v-model="saleRecord.orderSn" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="收银机编号" prop="cashierSn">
+                <i-input v-model="saleRecord.cashierSn" placeholder="收银机编号"/>
+            </Form-item>
+            <Form-item label="店员id" prop="sallerId">
+                <i-input v-model="saleRecord.sallerId" placeholder="店员id"/>
+            </Form-item>
+            <Form-item label="活动id" prop="discountId">
+                <i-input v-model="saleRecord.discountId" placeholder="活动id"/>
+            </Form-item>
+            <Form-item label="销售时间" prop="salesTime">
+                <i-input v-model="saleRecord.salesTime" 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/cashier/salerecord.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 78 - 0
kmall-admin/src/main/webapp/WEB-INF/page/mk/mk2goodstopichistoryprice.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("mk2goodstopichistoryprice:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mk2goodstopichistoryprice:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mk2goodstopichistoryprice: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="mk2GoodsTopicHistoryPrice" :rules="ruleValidate" :label-width="80">
+            <Form-item label="活动id" prop="topicId">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.topicId" placeholder="活动id"/>
+            </Form-item>
+            <Form-item label="活动类别" prop="topicType">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.topicType" placeholder="活动类别"/>
+            </Form-item>
+            <Form-item label="活动价格" prop="topicPrice">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.topicPrice" placeholder="活动价格"/>
+            </Form-item>
+            <Form-item label="活动名称" prop="topicName">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.topicName" placeholder="活动名称"/>
+            </Form-item>
+            <Form-item label="活动内容" prop="topicContent">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.topicContent" placeholder="活动内容"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modTime">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.modTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="时间戳" prop="tstm">
+                <i-input v-model="mk2GoodsTopicHistoryPrice.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/mk/mk2goodstopichistoryprice.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 90 - 0
kmall-admin/src/main/webapp/WEB-INF/page/mk/mk2goodstopicprice.html

@@ -0,0 +1,90 @@
+<!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("mk2goodstopicprice:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mk2goodstopicprice:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mk2goodstopicprice: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="mk2GoodsTopicPrice" :rules="ruleValidate" :label-width="80">
+            <Form-item label="活动id" prop="topicId">
+                <i-input v-model="mk2GoodsTopicPrice.topicId" placeholder="活动id"/>
+            </Form-item>
+            <Form-item label="活动类别" prop="topicType">
+                <i-input v-model="mk2GoodsTopicPrice.topicType" placeholder="活动类别"/>
+            </Form-item>
+            <Form-item label="活动价格" prop="topicPrice">
+                <i-input v-model="mk2GoodsTopicPrice.topicPrice" placeholder="活动价格"/>
+            </Form-item>
+            <Form-item label="活动名称" prop="topicName">
+                <i-input v-model="mk2GoodsTopicPrice.topicName" placeholder="活动名称"/>
+            </Form-item>
+            <Form-item label="活动内容" prop="topicContent">
+                <i-input v-model="mk2GoodsTopicPrice.topicContent" placeholder="活动内容"/>
+            </Form-item>
+            <Form-item label="活动产品" prop="topicGoodsId">
+                <i-input v-model="mk2GoodsTopicPrice.topicGoodsId" placeholder="活动产品"/>
+            </Form-item>
+            <Form-item label="活动开始时间" prop="topicBeginTime">
+                <i-input v-model="mk2GoodsTopicPrice.topicBeginTime" placeholder="活动开始时间"/>
+            </Form-item>
+            <Form-item label="活动结束时间" prop="topicEndTime">
+                <i-input v-model="mk2GoodsTopicPrice.topicEndTime" placeholder="活动结束时间"/>
+            </Form-item>
+            <Form-item label="导入时间" prop="importTime">
+                <i-input v-model="mk2GoodsTopicPrice.importTime" placeholder="导入时间"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="mk2GoodsTopicPrice.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="mk2GoodsTopicPrice.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="mk2GoodsTopicPrice.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modTime">
+                <i-input v-model="mk2GoodsTopicPrice.modTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="时间戳" prop="tstm">
+                <i-input v-model="mk2GoodsTopicPrice.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/mk/mk2goodstopicprice.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 78 - 0
kmall-admin/src/main/webapp/WEB-INF/page/mk/mk2memberbirthday.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("mk2memberbirthday:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mk2memberbirthday:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mk2memberbirthday: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="mk2MemberBirthday" :rules="ruleValidate" :label-width="80">
+            <Form-item label="活动名称" prop="topicName">
+                <i-input v-model="mk2MemberBirthday.topicName" placeholder="活动名称"/>
+            </Form-item>
+            <Form-item label="优惠类型 00.按比例  10.按金额" prop="topicType">
+                <i-input v-model="mk2MemberBirthday.topicType" placeholder="优惠类型 00.按比例  10.按金额"/>
+            </Form-item>
+            <Form-item label="优惠金额" prop="topicPrice">
+                <i-input v-model="mk2MemberBirthday.topicPrice" placeholder="优惠金额"/>
+            </Form-item>
+            <Form-item label="优惠比例" prop="topicProportion">
+                <i-input v-model="mk2MemberBirthday.topicProportion" placeholder="优惠比例"/>
+            </Form-item>
+            <Form-item label="是否有效" prop="isValid">
+                <i-input v-model="mk2MemberBirthday.isValid" placeholder="是否有效"/>
+            </Form-item>
+            <Form-item label="创建人编号" prop="createrSn">
+                <i-input v-model="mk2MemberBirthday.createrSn" placeholder="创建人编号"/>
+            </Form-item>
+            <Form-item label="创建时间" prop="createTime">
+                <i-input v-model="mk2MemberBirthday.createTime" placeholder="创建时间"/>
+            </Form-item>
+            <Form-item label="修改人编号" prop="moderSn">
+                <i-input v-model="mk2MemberBirthday.moderSn" placeholder="修改人编号"/>
+            </Form-item>
+            <Form-item label="修改时间" prop="modTime">
+                <i-input v-model="mk2MemberBirthday.modTime" placeholder="修改时间"/>
+            </Form-item>
+            <Form-item label="时间戳" prop="tstm">
+                <i-input v-model="mk2MemberBirthday.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/mk/mk2memberbirthday.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 235 - 0
kmall-admin/src/main/webapp/WEB-INF/page/receipt/receiptCheck.html

@@ -0,0 +1,235 @@
+<!DOCTYPE html>
+<html>
+<head>
+    <title></title>
+    #parse("sys/header.html")
+</head>
+<body>
+<div id="rrapp" v-cloak>
+    <div v-show="showDiv == 1">
+        <Row :gutter="16">
+            <div class="search-group">
+                <i-col span="4">
+                    <i-input v-model="q.orderSn" @on-enter="query" placeholder="小票号"/>
+                </i-col>
+
+                <i-button @click="query">查询</i-button>
+                <i-button @click="reloadSearch">重置</i-button>
+            </div>
+           <!-- TODO req_hidden_20200610 #if($shiro.hasPermission("order:wxMicropayPay"))
+            <div class="buttons-group">
+                <i-button type="error" @click="showInputAuthCode">微信付款</i-button>
+            </div>
+            #end
+            #if($shiro.hasPermission("order:confirmPay"))
+            <div class="buttons-group">
+                <i-button type="error" @click="confirm">现金付款</i-button>
+            </div>
+            #end-->
+        </Row>
+        <table id="jqGrid"></table>
+        <div id="jqGridPager"></div>
+    </div>
+
+    <Card v-show="showDiv == 2">
+        <p slot="title" style="height: auto">{{title}}</p>
+        <Tabs>
+            <Tab-Pane label="订单信息" name="name1">
+                <i-form ref="formValidate" :model="order" :label-width="100">
+                    <Form-item label="订单号" prop="orderSn">
+                        <i-input v-model="order.orderSn" readonly/>
+                    </Form-item>
+                    <Form-item label="会员" prop="userName">
+                        <i-input v-model="order.userName" readonly/>
+                    </Form-item>
+
+                    <Form-item label="订单状态" prop="orderStatus" readonly>
+                        <Radio-group v-model="order.orderStatus">
+                            <Radio label="0" disabled>
+                                <span>待付款</span>
+                            </Radio>
+                            <Radio label="101" disabled>
+                                <span>订单已取消</span>
+                            </Radio>
+                            <Radio label="102" disabled>
+                                <span>订单已删除</span>
+                            </Radio>
+                            <Radio label="201" disabled>
+                                <span>订单已付款</span>
+                            </Radio>
+                            <Radio label="300" disabled>
+                                <span>订单已发货</span>
+                            </Radio>
+                            <Radio label="301" disabled>
+                                <span>用户确认收货</span>
+                            </Radio>
+                            <Radio label="401" disabled>
+                                <span>退款</span>
+                            </Radio>
+                            <Radio label="402" disabled>
+                                <span>完成</span>
+                            </Radio>
+                        </Radio-group>
+                    </Form-item>
+                    <!--<Form-item label="发货状态" prop="shippingStatus">-->
+                        <!--<Radio-group v-model="order.shippingStatus">-->
+                            <!--<Radio label="0" disabled>-->
+                                <!--<span>待发货</span>-->
+                            <!--</Radio>-->
+                            <!--<Radio label="1" disabled>-->
+                                <!--<span>已发货</span>-->
+                            <!--</Radio>-->
+                            <!--<Radio label="2" disabled>-->
+                                <!--<span>已收货</span>-->
+                            <!--</Radio>-->
+                            <!--<Radio label="4" disabled>-->
+                                <!--<span>退货</span>-->
+                            <!--</Radio>-->
+                        <!--</Radio-group>-->
+                    <!--</Form-item>-->
+                    <Form-item label="付款状态" prop="payStatus">
+                        <Radio-group v-model="order.payStatus">
+                            <Radio label="0" disabled>
+                                <span>待付款</span>
+                            </Radio>
+                            <Radio label="1" disabled>
+                                <span>付款中</span>
+                            </Radio>
+                            <Radio label="2" disabled>
+                                <span>已付款</span>
+                            </Radio>
+                        </Radio-group>
+                    </Form-item>
+                    <!--<Form-item label="收货人" prop="consignee">-->
+                        <!--<i-input v-model="order.consignee" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="收货地址" prop="address">-->
+                        <!--<i-input v-model="order.address" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="联系电话" prop="mobile">-->
+                        <!--<i-input v-model="order.mobile" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="客户留言" prop="postscript">-->
+                        <!--<i-input v-model="order.postscript" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="快递公司" prop="shippingName">-->
+                        <!--<i-input v-model="order.shippingName" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="配送单号" prop="shippingNo">-->
+                        <!--<i-input v-model="order.shippingNo" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="配送费用" prop="shippingFee">-->
+                        <!--<i-input v-model="order.shippingFee" readonly/>-->
+                    <!--</Form-item>-->
+                    <Form-item label="实际支付" prop="actualPrice">
+                        <i-input v-model="order.actualPrice" readonly/>
+                    </Form-item>
+                    <Form-item label="订单总价" prop="orderPrice">
+                        <i-input v-model="order.orderPrice" readonly/>
+                    </Form-item>
+                    <Form-item label="商品总价" prop="goodsPrice">
+                        <i-input v-model="order.goodsPrice" readonly/>
+                    </Form-item>
+                    <Form-item label="下单时间" prop="addTime">
+                        <Date-picker format="yyyy-MM-dd HH:mm:ss" v-model="order.addTime" placeholder="使用时间" readonly/>
+                    </Form-item>
+                    <!--<Form-item label="付款时间" prop="payTime">-->
+                        <!--<Date-picker format="yyyy-MM-dd HH:mm:ss" v-model="order.payTime" placeholder="使用时间" readonly/>-->
+                    <!--</Form-item>-->
+                    <!--<Form-item label="配送费用" prop="freightPrice">-->
+                        <!--<i-input v-model="order.freightPrice" readonly/>-->
+                    <!--</Form-item>-->
+                    <Form-item>
+                        <i-button type="warning" @click="reload" style="margin-left: 8px"/>
+                        返回</i-button>
+                    </Form-item>
+                </i-form>
+            </Tab-Pane>
+            <Tab-Pane label="商品" name="name2">
+                <table class="table">
+                    <tr>
+                        <td style="text-align: left; width: 600px; font-weight: bold;" colspan="2">商品</td>
+                        <td style="text-align: center; width: 240px; font-weight: bold;">小计</td>
+                        <td style="text-align: center; width: 240px; font-weight: bold;">优惠抵扣金额(元)</td>
+                        <td style="text-align: center; width: 240px; font-weight: bold;">应收金额(元)</td>
+                        <td style="text-align: center; width: 240px; font-weight: bold;">实收金额(元)</td>
+                    </tr>
+                    <tr v-for="(item,index) in orderGoodsList">
+                        <td width="120px">
+                            <img :src="item.listPicUrl" width="100px" height="100px" />
+                        </td>
+                        <td>
+                            <p style="line-height: 30px;">{{item.goodsName}}</p>
+                            <p style="line-height: 30px;">数量:{{item.number}}</p>
+                            <p style="line-height: 30px;">单价:¥{{item.retailPrice}}</p>
+                            <p style="line-height: 30px;">SKU:{{item.sku}}</p>
+                        </td>
+                        <td align="center">¥{{item.number * item.retailPrice}}</td>
+                        <td align="center">-</td>
+                        <td align="center">-</td>
+                        <td align="center">-</td>
+                    </tr>
+                    <tr>
+                        <td align="left" style="font-weight: bold;">运费</td>
+                        <td align="center">-</td>
+                        <td align="center">-</td>
+                        <td align="center">-</td>
+                        <td align="center">¥{{order.freightPrice}}</td>
+                        <td align="center">-</td>
+                    </tr>
+                    <tr>
+                        <td align="left" colspan="2" style="font-weight: bold;">总计</td>
+                        <td align="center">¥{{order.orderPrice}}</td>
+                        <td align="center">¥{{order.couponPrice}}</td>
+                        <td align="center">¥{{order.actualPrice}}</td>
+                        <td align="center" v-show="order.payStatus == 0">未付款</td>
+                        <td align="center" v-show="order.payStatus == 1">付款中</td>
+                        <td align="center" v-show="order.payStatus == 2 || order.payStatus == 4">¥{{order.actualPrice}}</td>
+                    </tr>
+                </table>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+            </Tab-Pane>
+            <Tab-Pane label="支付记录" name="name3">
+                <table class="table">
+                    <tr>
+                        <td style="text-align: left; width: 240px; font-weight: bold;">支付编号</td>
+                        <td style="text-align: center; width: 240px; font-weight: bold;">支付金额(分)</td>
+                        <td style="text-align: center; width: 240px; font-weight: bold;">交易状态</td>
+                        <td style="text-align: center; width: 600px; font-weight: bold;">描述</td>
+                    </tr>
+                    <tr v-for="(item,index) in payRecordList">
+                        <td align="left">{{item.outTradeNoWX}}</td>
+                        <td align="center">{{item.totalFee}}</td>
+                        <td align="center" v-show="item.tradeState == 'SUCCESS'">支付成功</td>
+                        <td align="center" v-show="item.tradeState == 'REFUND'">转入退款</td>
+                        <td align="center" v-show="item.tradeState == 'NOTPAY'">未支付</td>
+                        <td align="center" v-show="item.tradeState == 'CLOSED'">已关闭</td>
+                        <td align="center" v-show="item.tradeState == 'REVOKED'">已撤销</td>
+                        <td align="center" v-show="item.tradeState == 'USERPAYING'">用户支付中</td>
+                        <td align="center" v-show="item.tradeState == 'PAYERROR'">支付失败</td>
+                        <td align="center">{{item.errCodeDes}}</td>
+                    </tr>
+                </table>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>返回</i-button>
+            </Tab-Pane>
+        </Tabs>
+    </Card>
+
+    <Card v-show="showDiv == 5">
+        <p slot="title">退款</p>
+        <i-form :model="order" :label-width="100">
+            <Form-item label="退款金额" prop="refundMoney">
+                <i-input v-model="refundMoney" placeholder="退款金额"/>
+            </Form-item>
+            <Form-item>
+                <i-button type="primary" @click="refundUpdate">提交</i-button>
+                <i-button type="warning" @click="reload" style="margin-left: 8px"/>
+                返回</i-button>
+            </Form-item>
+        </i-form>
+    </Card>
+
+</div>
+<script src="${rc.contextPath}/js/receipt/receiptCheck.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 78 - 0
kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2memberconsumptionrecords.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("mall2memberconsumptionrecords:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mall2memberconsumptionrecords:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mall2memberconsumptionrecords: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="mall2MemberConsumptionRecords" :rules="ruleValidate" :label-width="80">
+            <Form-item label="用户id" prop="userId">
+                <i-input v-model="mall2MemberConsumptionRecords.userId" placeholder="用户id"/>
+            </Form-item>
+            <Form-item label="订单编号" prop="orderSn">
+                <i-input v-model="mall2MemberConsumptionRecords.orderSn" placeholder="订单编号"/>
+            </Form-item>
+            <Form-item label="消费时间" prop="consumptionTime">
+                <i-input v-model="mall2MemberConsumptionRecords.consumptionTime" placeholder="消费时间"/>
+            </Form-item>
+            <Form-item label="消费门店id" prop="shopSn">
+                <i-input v-model="mall2MemberConsumptionRecords.shopSn" placeholder="消费门店id"/>
+            </Form-item>
+            <Form-item label="是否使用生日优惠" prop="isUseBirthdayOffer">
+                <i-input v-model="mall2MemberConsumptionRecords.isUseBirthdayOffer" placeholder="是否使用生日优惠"/>
+            </Form-item>
+            <Form-item label="+创建人编号" prop="createrSn">
+                <i-input v-model="mall2MemberConsumptionRecords.createrSn" placeholder="+创建人编号"/>
+            </Form-item>
+            <Form-item label="+创建时间,yyyy-MM-dd HH:mm:ss" prop="createTime">
+                <i-input v-model="mall2MemberConsumptionRecords.createTime" placeholder="+创建时间,yyyy-MM-dd HH:mm:ss"/>
+            </Form-item>
+            <Form-item label="+修改人编号" prop="moderSn">
+                <i-input v-model="mall2MemberConsumptionRecords.moderSn" placeholder="+修改人编号"/>
+            </Form-item>
+            <Form-item label="+修改时间,yyyy-MM-dd HH:mm:ss" prop="modTime">
+                <i-input v-model="mall2MemberConsumptionRecords.modTime" placeholder="+修改时间,yyyy-MM-dd HH:mm:ss"/>
+            </Form-item>
+            <Form-item label="+时间戳" prop="tstm">
+                <i-input v-model="mall2MemberConsumptionRecords.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/vip/mall2memberconsumptionrecords.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 72 - 0
kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2memberpoints.html

@@ -0,0 +1,72 @@
+<!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("mall2memberpoints:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mall2memberpoints:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mall2memberpoints: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="mall2MemberPoints" :rules="ruleValidate" :label-width="80">
+            <Form-item label="用户id" prop="userId">
+                <i-input v-model="mall2MemberPoints.userId" placeholder="用户id"/>
+            </Form-item>
+            <Form-item label="积分数" prop="points">
+                <i-input v-model="mall2MemberPoints.points" placeholder="积分数"/>
+            </Form-item>
+            <Form-item label="积分到期时间" prop="pointsExpireDate">
+                <i-input v-model="mall2MemberPoints.pointsExpireDate" placeholder="积分到期时间"/>
+            </Form-item>
+            <Form-item label="+创建人编号" prop="createrSn">
+                <i-input v-model="mall2MemberPoints.createrSn" placeholder="+创建人编号"/>
+            </Form-item>
+            <Form-item label="+创建时间,yyyy-MM-dd HH:mm:ss" prop="createTime">
+                <i-input v-model="mall2MemberPoints.createTime" placeholder="+创建时间,yyyy-MM-dd HH:mm:ss"/>
+            </Form-item>
+            <Form-item label="+修改人编号" prop="moderSn">
+                <i-input v-model="mall2MemberPoints.moderSn" placeholder="+修改人编号"/>
+            </Form-item>
+            <Form-item label="+修改时间,yyyy-MM-dd HH:mm:ss" prop="modTime">
+                <i-input v-model="mall2MemberPoints.modTime" placeholder="+修改时间,yyyy-MM-dd HH:mm:ss"/>
+            </Form-item>
+            <Form-item label="+时间戳" prop="tstm">
+                <i-input v-model="mall2MemberPoints.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}/vip/shop/mall2memberpoints.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 75 - 0
kmall-admin/src/main/webapp/WEB-INF/page/vip/mall2pointsrules.html

@@ -0,0 +1,75 @@
+<!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("mall2pointsrules:save"))
+                <i-button type="info" @click="add"><i class="fa fa-plus"></i>&nbsp;新增</i-button>
+                #end
+                #if($shiro.hasPermission("mall2pointsrules:update"))
+                <i-button type="warning" @click="update"><i class="fa fa-pencil-square-o"></i>&nbsp;修改</i-button>
+                #end
+                #if($shiro.hasPermission("mall2pointsrules: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="mall2PointsRules" :rules="ruleValidate" :label-width="80">
+            <Form-item label="积分类型  00.按金额  10.按数量" prop="pointsType">
+                <i-input v-model="mall2PointsRules.pointsType" placeholder="积分类型  00.按金额  10.按数量"/>
+            </Form-item>
+            <Form-item label="积分规则适用开始时间" prop="pointsBeginTime">
+                <i-input v-model="mall2PointsRules.pointsBeginTime" placeholder="积分规则适用开始时间"/>
+            </Form-item>
+            <Form-item label="积分规则适用结束时间" prop="pointsEndTime">
+                <i-input v-model="mall2PointsRules.pointsEndTime" placeholder="积分规则适用结束时间"/>
+            </Form-item>
+            <Form-item label="积分规则是否有效" prop="isValid">
+                <i-input v-model="mall2PointsRules.isValid" placeholder="积分规则是否有效"/>
+            </Form-item>
+            <Form-item label="+创建人编号" prop="createrSn">
+                <i-input v-model="mall2PointsRules.createrSn" placeholder="+创建人编号"/>
+            </Form-item>
+            <Form-item label="+创建时间,yyyy-MM-dd HH:mm:ss" prop="createTime">
+                <i-input v-model="mall2PointsRules.createTime" placeholder="+创建时间,yyyy-MM-dd HH:mm:ss"/>
+            </Form-item>
+            <Form-item label="+修改人编号" prop="moderSn">
+                <i-input v-model="mall2PointsRules.moderSn" placeholder="+修改人编号"/>
+            </Form-item>
+            <Form-item label="+修改时间,yyyy-MM-dd HH:mm:ss" prop="modTime">
+                <i-input v-model="mall2PointsRules.modTime" placeholder="+修改时间,yyyy-MM-dd HH:mm:ss"/>
+            </Form-item>
+            <Form-item label="+时间戳" prop="tstm">
+                <i-input v-model="mall2PointsRules.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/vip/mall2pointsrules.js?_${date.systemTime}"></script>
+</body>
+</html>

+ 146 - 0
kmall-admin/src/main/webapp/js/alarm/mall2orderingearlywarningreminds.js

@@ -0,0 +1,146 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mall2orderingearlywarningreminds/list',
+        datatype: "json",
+        colModel: [
+			{label: 'moewrId', name: 'moewrId', index: 'moewr_id', key: true, hidden: true},
+			{label: '商品id', name: 'goodsId', index: 'goods_id', width: 80},
+			{label: '商品名称', name: 'goodsName', index: 'goods_name', width: 80},
+			{label: '平均销量', name: 'averageSales', index: 'average_sales', width: 80},
+			{label: '总库存数', name: 'totalNum', index: 'total_num', width: 80},
+			{label: '预警条件  00 周  10  月', name: 'alarmType', index: 'alarm_type', width: 80},
+			{label: '预警时间', name: 'alarmTime', index: 'alarm_time', width: 80},
+			{label: '是否已经预警', name: 'isWarning', index: 'is_warning', 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,
+		mall2OrderingEarlyWarningReminds: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mall2OrderingEarlyWarningReminds = {};
+		},
+		update: function (event) {
+            let moewrId = getSelectedRow();
+			if (moewrId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(moewrId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mall2OrderingEarlyWarningReminds.moewrId == null ? "../mall2orderingearlywarningreminds/save" : "../mall2orderingearlywarningreminds/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mall2OrderingEarlyWarningReminds),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let moewrIds = getSelectedRows();
+			if (moewrIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mall2orderingearlywarningreminds/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(moewrIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(moewrId){
+			$.get("../mall2orderingearlywarningreminds/info/"+moewrId, function (r) {
+                vm.mall2OrderingEarlyWarningReminds = r.mall2OrderingEarlyWarningReminds;
+            });
+		},
+        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);
+        }
+	}
+});

+ 149 - 0
kmall-admin/src/main/webapp/js/alarm/mall2shippingreminderalarm.js

@@ -0,0 +1,149 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mall2shippingreminderalarm/list',
+        datatype: "json",
+        colModel: [
+			{label: 'msraId', name: 'msraId', index: 'msra_id', key: true, hidden: true},
+			{label: '商品id', name: 'goodsId', index: 'goods_id', width: 80},
+			{label: '商品名称', name: 'goodsName', index: 'goods_name', width: 80},
+			{label: '平均销量', name: 'averageSales', index: 'average_sales', width: 80},
+			{label: '门店id', name: 'storeId', index: 'store_id', width: 80},
+			{label: '门店商品sku', name: 'sku', index: 'sku', width: 80},
+			{label: '门店名称', name: 'storeName', index: 'store_name', width: 80},
+			{label: '门店库存数', name: 'stockNum', index: 'stock_num', width: 80},
+			{label: '预警条件  00 周  10  月', name: 'alarmType', index: 'alarm_type', width: 80},
+			{label: '预警时间', name: 'alarmTime', index: 'alarm_time', width: 80},
+			{label: '是否已经预警', name: 'isWarning', index: 'is_warning', 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,
+		mall2ShippingReminderAlarm: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mall2ShippingReminderAlarm = {};
+		},
+		update: function (event) {
+            let msraId = getSelectedRow();
+			if (msraId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(msraId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mall2ShippingReminderAlarm.msraId == null ? "../mall2shippingreminderalarm/save" : "../mall2shippingreminderalarm/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mall2ShippingReminderAlarm),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let msraIds = getSelectedRows();
+			if (msraIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mall2shippingreminderalarm/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(msraIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(msraId){
+			$.get("../mall2shippingreminderalarm/info/"+msraId, function (r) {
+                vm.mall2ShippingReminderAlarm = r.mall2ShippingReminderAlarm;
+            });
+		},
+        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);
+        }
+	}
+});

+ 143 - 0
kmall-admin/src/main/webapp/js/cashier/cashierLoginRecord.js

@@ -0,0 +1,143 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../cashierloginrecord/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mclrId', name: 'mclrId', index: 'mclr_id', key: true, hidden: true},
+			{label: '店员id', name: 'sallerId', index: 'saller_id', width: 80},
+			{label: '收银机id', name: 'cashierId', index: 'cashier_id', width: 80},
+			{label: '门店编号', name: 'shopSn', index: 'shop_sn', width: 80},
+			{label: '登录时间', name: 'loginTime', index: 'login_time', 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,
+		cashierLoginRecord: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.cashierLoginRecord = {};
+		},
+		update: function (event) {
+            let mclrId = getSelectedRow();
+			if (mclrId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mclrId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.cashierLoginRecord.mclrId == null ? "../cashierloginrecord/save" : "../cashierloginrecord/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.cashierLoginRecord),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mclrIds = getSelectedRows();
+			if (mclrIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../cashierloginrecord/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mclrIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mclrId){
+			$.get("../cashierloginrecord/info/"+mclrId, function (r) {
+                vm.cashierLoginRecord = r.cashierLoginRecord;
+            });
+		},
+        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);
+        }
+	}
+});

+ 146 - 0
kmall-admin/src/main/webapp/js/cashier/cashierManager.js

@@ -0,0 +1,146 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../cashier/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mcId', name: 'mcId', index: 'mc_id', key: true, hidden: true},
+			{label: '机器码类型', name: 'machineCodeType', index: 'machine_code_type', width: 80},
+			{label: '机器码', name: 'machineCode', index: 'machine_code', width: 80},
+			{label: '收银机编号', name: 'cashierSn', index: 'cashier_sn', width: 80},
+			{label: '站点编码', name: 'stationCode', index: 'station_code', width: 80},
+			{label: '门店编号', name: 'shopSn', index: 'shop_sn', width: 80},
+			{label: '商户编号', name: 'merchSn', index: 'merch_sn', width: 80},
+			{label: '第三方商户编号', name: 'thirdMerchSn', index: 'third_merch_sn', 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,
+		cashier: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.cashier = {};
+		},
+		update: function (event) {
+            let mcId = getSelectedRow();
+			if (mcId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mcId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.cashier.mcId == null ? "../cashier/save" : "../cashier/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.cashier),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mcIds = getSelectedRows();
+			if (mcIds == null){
+				return;
+			}
+			console.log(mcIds);
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../cashier/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mcIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mcId){
+			$.get("../cashier/info/"+mcId, function (r) {
+                vm.cashier = r.cashier;
+            });
+		},
+        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);
+        }
+	}
+});

+ 144 - 0
kmall-admin/src/main/webapp/js/cashier/salerecord.js

@@ -0,0 +1,144 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../salerecord/list',
+        datatype: "json",
+        colModel: [
+			{label: 'msrId', name: 'msrId', index: 'msr_id', key: true, hidden: true},
+			{label: '订单编号', name: 'orderSn', index: 'order_sn', width: 80},
+			{label: '收银机编号', name: 'cashierSn', index: 'cashier_sn', width: 80},
+			{label: '店员id', name: 'sallerId', index: 'saller_id', width: 80},
+			{label: '活动id', name: 'discountId', index: 'discount_id', width: 80},
+			{label: '销售时间', name: 'salesTime', index: 'sales_time', 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,
+		saleRecord: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.saleRecord = {};
+		},
+		update: function (event) {
+            let msrId = getSelectedRow();
+			if (msrId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(msrId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.saleRecord.msrId == null ? "../salerecord/save" : "../salerecord/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.saleRecord),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let msrIds = getSelectedRows();
+			if (msrIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../salerecord/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(msrIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(msrId){
+			$.get("../salerecord/info/"+msrId, function (r) {
+                vm.saleRecord = r.saleRecord;
+            });
+		},
+        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);
+        }
+	}
+});

+ 148 - 0
kmall-admin/src/main/webapp/js/mk/mk2goodstopichistoryprice.js

@@ -0,0 +1,148 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mk2goodstopichistoryprice/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mgthpId', name: 'mgthpId', index: 'mgthp_id', key: true, hidden: true},
+			{label: '活动id', name: 'topicId', index: 'topic_id', width: 80},
+			{label: '活动类别', name: 'topicType', index: 'topic_type', width: 80},
+			{label: '活动价格', name: 'topicPrice', index: 'topic_price', width: 80},
+			{label: '活动名称', name: 'topicName', index: 'topic_name', width: 80},
+			{label: '活动内容', name: 'topicContent', index: 'topic_content', width: 80},
+			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', 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,
+		mk2GoodsTopicHistoryPrice: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mk2GoodsTopicHistoryPrice = {};
+		},
+		update: function (event) {
+            let mgthpId = getSelectedRow();
+			if (mgthpId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mgthpId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mk2GoodsTopicHistoryPrice.mgthpId == null ? "../mk2goodstopichistoryprice/save" : "../mk2goodstopichistoryprice/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mk2GoodsTopicHistoryPrice),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mgthpIds = getSelectedRows();
+			if (mgthpIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mk2goodstopichistoryprice/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mgthpIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mgthpId){
+			$.get("../mk2goodstopichistoryprice/info/"+mgthpId, function (r) {
+                vm.mk2GoodsTopicHistoryPrice = r.mk2GoodsTopicHistoryPrice;
+            });
+		},
+        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);
+        }
+	}
+});

+ 152 - 0
kmall-admin/src/main/webapp/js/mk/mk2goodstopicprice.js

@@ -0,0 +1,152 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mk2goodstopicprice/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mgthpId', name: 'mgthpId', index: 'mgthp_id', key: true, hidden: true},
+			{label: '活动id', name: 'topicId', index: 'topic_id', width: 80},
+			{label: '活动类别', name: 'topicType', index: 'topic_type', width: 80},
+			{label: '活动价格', name: 'topicPrice', index: 'topic_price', width: 80},
+			{label: '活动名称', name: 'topicName', index: 'topic_name', width: 80},
+			{label: '活动内容', name: 'topicContent', index: 'topic_content', width: 80},
+			{label: '活动产品', name: 'topicGoodsId', index: 'topic_goods_id', width: 80},
+			{label: '活动开始时间', name: 'topicBeginTime', index: 'topic_begin_time', width: 80},
+			{label: '活动结束时间', name: 'topicEndTime', index: 'topic_end_time', width: 80},
+			{label: '导入时间', name: 'importTime', index: 'import_time', width: 80},
+			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', 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,
+		mk2GoodsTopicPrice: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mk2GoodsTopicPrice = {};
+		},
+		update: function (event) {
+            let mgthpId = getSelectedRow();
+			if (mgthpId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mgthpId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mk2GoodsTopicPrice.mgthpId == null ? "../mk2goodstopicprice/save" : "../mk2goodstopicprice/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mk2GoodsTopicPrice),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mgthpIds = getSelectedRows();
+			if (mgthpIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mk2goodstopicprice/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mgthpIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mgthpId){
+			$.get("../mk2goodstopicprice/info/"+mgthpId, function (r) {
+                vm.mk2GoodsTopicPrice = r.mk2GoodsTopicPrice;
+            });
+		},
+        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);
+        }
+	}
+});

+ 148 - 0
kmall-admin/src/main/webapp/js/mk/mk2memberbirthday.js

@@ -0,0 +1,148 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mk2memberbirthday/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mmbId', name: 'mmbId', index: 'mmb_id', key: true, hidden: true},
+			{label: '活动名称', name: 'topicName', index: 'topic_name', width: 80},
+			{label: '优惠类型 00.按比例  10.按金额', name: 'topicType', index: 'topic_type', width: 80},
+			{label: '优惠金额', name: 'topicPrice', index: 'topic_price', width: 80},
+			{label: '优惠比例', name: 'topicProportion', index: 'topic_proportion', width: 80},
+			{label: '是否有效', name: 'isValid', index: 'is_valid', width: 80},
+			{label: '创建人编号', name: 'createrSn', index: 'creater_sn', 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,
+		mk2MemberBirthday: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mk2MemberBirthday = {};
+		},
+		update: function (event) {
+            let mmbId = getSelectedRow();
+			if (mmbId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mmbId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mk2MemberBirthday.mmbId == null ? "../mk2memberbirthday/save" : "../mk2memberbirthday/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mk2MemberBirthday),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mmbIds = getSelectedRows();
+			if (mmbIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mk2memberbirthday/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mmbIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mmbId){
+			$.get("../mk2memberbirthday/info/"+mmbId, function (r) {
+                vm.mk2MemberBirthday = r.mk2MemberBirthday;
+            });
+		},
+        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);
+        }
+	}
+});

+ 559 - 0
kmall-admin/src/main/webapp/js/receipt/receiptCheck.js

@@ -0,0 +1,559 @@
+$(function () {
+    let shippingStatus = getQueryString("shippingStatus");
+    let payStatus = getQueryString("payStatus");
+    let orderStatus = getQueryString("orderStatus");
+    let orderType = getQueryString("orderType");
+    let url = '../order/offilineOrderList?1';
+    if (shippingStatus) {
+        url += '&shippingStatus=' + shippingStatus;
+    }
+    if (payStatus) {
+        url += '&payStatus=' + payStatus;
+    }
+    if (orderStatus) {
+        url += '&orderStatus=' + orderStatus;
+    }
+    if (orderType) {
+        url += '&orderType=' + orderType;
+    }
+    $("#jqGrid").jqGrid({
+        url: url,
+        datatype: "json",
+        colModel: [
+            {label: 'id', name: 'id', index: 'id', key: true, hidden: true},
+            {label: '订单号', name: 'orderSn', index: 'order_sn', align: 'center',width: 120},
+            {label: '操作店员', name: 'userName', index: 'user_name', align: 'center',width: 80},
+            {
+                label: '订单状态', name: 'orderStatus', index: 'order_status', align: 'center',width: 180,
+                formatter: function (value) {
+                    if (value == '0') {
+                        return '订单创建成功等待付款';
+                    } else if (value == '100') {
+                        return '订单付款中';
+                    } else if (value == '101') {
+                        return '订单已取消';
+                    } else if (value == '102') {
+                        return '订单已删除';
+                    } else if (value == '201') {
+                        return '订单已付款';
+                    } else if (value == '300') {
+                        return '订单已发货';
+                    } else if (value == '301') {
+                        return '用户确认收货';
+                    } else if (value == '401') {
+                        return '没有发货,退款';
+                    } else if (value == '402') {
+                        return '已收货,退款退货';
+                    }
+                    return value;
+                }
+            },
+            {label: '订单总价', name: 'orderPrice', index: 'order_price',align: 'center', width: 80},
+            {
+                label: '下单时间', name: 'addTime', index: 'add_time', width: 140,align: 'center',
+                formatter: function (value) {
+                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+                }
+            },
+            {
+                label: '付款时间', name: 'payTime', index: 'pay_time', width: 140, align: 'center',
+                formatter: function (value) {
+                    return transDate(value, 'yyyy-MM-dd hh:mm:ss');
+                }
+            },
+            // {label: '快递公司', name: 'shippingName', index: 'shipping_name', width: 80},
+            // {label: '配送单号', name: 'shippingNo', index: 'shipping_No', width: 80},
+            // {label: '快递费用', name: 'shippingFee', index: 'shipping_fee', width: 80},
+            {
+                label: '操作', width: 180, sortable: false,align: 'center',
+                formatter: function (value, col, row) {
+                    let htmlStr = '<button class="btn btn-outline btn-info" onclick="vm.lookDetail(' + row.id + ')"><i class="fa fa-info-circle"></i>详情</button>&nbsp;';
+                    if (row.orderStatus == 201 && (row.orderBizType == '11')) {
+                        htmlStr += '<button class="btn btn-outline btn-primary" onclick="vm.printDetail(' + row.id + ')"><i class="fa fa-print"></i>打印</button>&nbsp;';
+                    }
+                    if (row.orderStatus == 0) {
+                        htmlStr += '<button class="btn btn-outline btn-danger" onclick="vm.cancelUpdate(' + row.id + ')"><i class="fa fa-times-circle-o"></i>&nbsp;取消</button>&nbsp;';
+                    }
+                    if (row.orderStatus == 201) {
+                        htmlStr += '<button class="btn btn-outline btn-danger" onclick="vm.refundUpdate(' + row.id + ')"><i class="fa fa-times-circle-o"></i>&nbsp;退款</button>&nbsp;';
+                    }
+
+                    return htmlStr;
+                }
+            }
+        ],
+        viewrecords: true,
+        height: 675,
+        rowNum: 10,
+        rowList: [10, 30, 50],
+        rownumbers: true,
+        rownumWidth: 25,
+        autowidth: true,
+        shrinkToFit: false,
+        autoScroll: true,   //开启水平滚动条
+        width: 1500,
+        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": "scroll"});
+        }
+    });
+});
+
+let vm = new Vue({
+    el: '#rrapp',
+    data: {
+        showDiv: 1, // 1查询 2编辑 3发货 4选择骑手 5退款
+        title: null,
+        order: {},
+        shippings: [],
+        q: {
+            orderSn: '',
+            orderStatus: '',
+            orderType: ''
+        },
+        refundMoney: 0,
+        shipping: {},
+        logisticsInfo: {
+            tracesList: [],
+            logisticCode: '',
+            shipperCode: ''
+        },
+        macros: [],
+        orderProcessRecordEntity: {},
+        orderGoodsList: [],
+        payRecordList:[]
+    },
+    methods: {
+        query: function () {
+            vm.reload(1);
+        },
+        getMacro: function () {
+            $.get("../sys/macro/queryMacrosByValue?value=goodsBizType", function (r) {
+                vm.macros = r.list;
+            });
+        },
+        shippingChange: function (opt) {
+            vm.order.shippingName = opt.label;
+            vm.order.shippingCode = opt.value;
+        },
+        saveOrUpdate: function (event) {
+            $.ajax({
+                type: "POST",
+                url: '../order/sendGoods',
+                contentType: "application/json",
+                data: JSON.stringify(vm.order),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+            });
+        },
+        reload: function (event) {
+            vm.showDiv = 1;
+            let page = event;
+            if (event != 1) {
+                page = $("#jqGrid").jqGrid('getGridParam', 'page');
+            }
+            $("#jqGrid").jqGrid('setGridParam', {
+                postData: {
+                    'orderSn': vm.q.orderSn,
+                    'orderStatus': vm.q.orderStatus,
+                    'orderType': vm.q.orderType
+                },
+                page: page
+            }).trigger("reloadGrid");
+        },
+        reloadSearch: function () {
+            vm.q = {
+                orderSn: '',
+                orderStatus: '',
+                orderType: ''
+            };
+        },
+        lookDetail: function (rowId) { //第三步:定义编辑操作
+            vm.showDiv = 2;
+            vm.title = "订单详情";
+            $.get("../order/offlineInfos/" + rowId, function (r) {
+                vm.order = r.order;
+                vm.orderGoodsList = r.order.orderGoodsEntityList;
+                vm.payRecordList = r.order.payRecordList;
+            });
+            vm.getMacro();
+        },
+        printDetail: function (rowId) {
+            confirm('确定连接打票机打印出票?', function () {
+                $.ajax({
+                    type: "POST",
+                    url: "../order/printMsg",
+                    contentType: "application/json",
+                    data: JSON.stringify(rowId),
+                    success: function (r) {
+                        if (r.ticket != null) {
+                            // printArea(r.ticket);
+                            var content = getPrintContent(r.ticket);
+                            printArea(content);
+                            alert('打印小票完成');
+                        }else{
+                            alert("打印小票失败");
+                        }
+                    }
+                });
+            })
+        },
+        confirm: function (event) {
+            let id = getSelectedRow();
+            if (id == null) {
+                return;
+            }
+            var rowData = $("#jqGrid").jqGrid('getRowData', id);
+            if(rowData.orderStatus == '订单已付款'){
+                alert('该订单已支付');
+            }else if(rowData.orderStatus == '订单已取消'){
+                alert('该订单已取消');
+            }else if(rowData.orderStatus == '订单已删除'){
+                alert('该订单已删除');
+            }else {
+                confirm('确定付款?', function () {
+                    $.ajax({
+                        type: "POST",
+                        url: "../order/confirmPay",
+                        contentType: "application/json",
+                        data: JSON.stringify(id),
+                        dataType: "json",
+                        success: function (r) {
+
+                            if (r.code == 0) {
+                                alert('操作成功', function (index) {
+                                    $("#jqGrid").trigger("reloadGrid");
+                                });
+                            } else {
+                                alert(r.msg);
+                            }
+                        }
+                    });
+                });
+            }
+        },
+        showInputAuthCode: function (event) {
+            let id = getSelectedRow();
+            if (id == null) {
+                return;
+            }
+            var rowData = $("#jqGrid").jqGrid('getRowData', id);
+            if(rowData.orderStatus == '订单已付款'){
+                alert('该订单已支付');
+            }else if(rowData.orderStatus == '订单已取消'){
+                alert('该订单已取消');
+            }else if(rowData.orderStatus == '订单已删除'){
+                alert('该订单已删除');
+            }else{
+                var layer_index = layer.prompt({title: '请输入微信付款码',
+                    formType: 3,   //隐藏用户输入内容
+                    // 这个是确定按钮的事件
+                    "success":function(layero,index){
+                        // 键盘事件,判断回车
+                        $("input.layui-layer-input").on('keydown',function(e){
+                            if (e.which == 13) {
+                                var authCode = $(this).val();
+                                if (authCode == null || authCode == "") {
+                                    iview.Message.error("请输入微信付款码");
+                                    return;
+                                }
+
+                                layer.close(layer_index);
+                                var msg_index = layer.msg('支付中', {
+                                    icon: 16
+                                    ,shade: 0.01
+                                });
+                                wxPay(authCode,id,msg_index);
+                            }
+                        });
+                    },
+                    // 点击确定按钮事件
+                    yes : function(index,layero){
+                        // 取输入框数据
+                        var authCode =$(document.getElementsByClassName('layui-layer-input')[0]).val();
+                        if (authCode == null || authCode == "") {
+                            iview.Message.error("请输入微信付款码");
+                            return;
+                        }
+
+                        layer.close(layer_index);
+                        var msg_index = layer.msg('支付中', {
+                            icon: 16,
+                            shade: 0.01
+                        });
+                        wxPay(authCode,id,msg_index);
+                    }
+                });
+            }
+
+            // layer.prompt({title: '请输入微信付款码', formType: 3}, function(pass, index){
+            //     var authCode= pass;
+            //     if (authCode == null || authCode == "") {
+            //         iview.Message.error("请输入微信付款码");
+            //         return;
+            //     }
+            //
+            //     $.ajax({
+            //         type: "POST",
+            //         url: '../order/wxMicropayPay',
+            //         data: {auth_code: authCode, id: id},
+            //         success: function (r) {
+            //             if (r.code === 0) {
+            //                 alert('支付成功', function (index) {
+            //                     vm.reload();
+            //                 });
+            //             } else {
+            //                 alert(r.msg);
+            //             }
+            //         }
+            //     });
+            //
+            //     layer.close(index);
+            // });
+        },
+        refundUpdate: function (rowId) {
+            let params = {};
+            params.orderId = rowId;
+
+            confirm("确认退款吗?",function () {
+                $.ajax({
+                    type: "POST",
+                    url: '../order/offilineRefund',
+                    data: params,
+                    success: function (r) {
+                        if (r.code === 0) {
+                            alert('退款成功', function (index) {
+                                vm.reload();
+                            });
+                        } else {
+                            alert(r.msg);
+                        }
+                    }
+                });
+            })
+        },
+        shippingBind: function (event) {
+            let orderId = vm.order.id;
+            $.ajax({
+                type: "POST",
+                url: '../order/shippingBind',
+                data: {orderId: orderId, shippingCode: vm.shipping},
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+            });
+        },
+        refund: function (rowId) {
+            vm.showDiv = 5;
+            vm.refundMoney = 0;
+            Ajax.request({
+                url: "../order/info/" + rowId,
+                async: true,
+                successCallback: function (r) {
+                    vm.order = r.order;
+                    vm.refundMoney = r.order.actualPrice;
+                }
+            });
+        },
+        cancelUpdate: function (rowId) {
+            let params = {};
+            params.orderId = rowId;
+
+            confirm("是否取消订单?",function(){
+                $.ajax({
+                    type: "POST",
+                    url: '../order/cancel',
+                    data: params,
+                    success: function (r) {
+                        if (r.code === 0) {
+                            alert('取消成功', function (index) {
+                                vm.reload();
+                            });
+                        } else {
+                            alert(r.msg);
+                        }
+                    }
+                });
+            });
+        }
+    },
+    created: function () {
+        $.get("../shipping/queryAll", function (r) {
+            vm.shippings = r.list;
+        });
+    }
+});
+    function getPrintContent(ticket) {
+        var content = "<div style=\"width: 250px;font-family: 微软雅黑;font-size: 8px;\">";
+        //小票头
+        content += "<div style=\"text-align: center;width: 100%;font-weight:bold;font-size: 13px;\">";
+        content += ticket.ticketHead.title;
+        content += "</div>";
+        // content += "<div style=\"width: 100%;\">";
+        // content += "会员:" + ticket.ticketHead.memberId;
+        // content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "订单号:" + ticket.ticketHead.orderId;
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "交易时间:" + ticket.ticketHead.tradeTime;
+        content += "</div>";
+        content += "<div style=\"width: 100%;overflow:hidden;white-space: nowrap;\">--------------------------------------------------</div>";
+        //商品信息
+        content += "<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
+        content += "<tr>";
+        content += "<td style=\"width: 50%;text-align: left;font-size: 10px;font-weight: bold;\">商品名称</td>";
+        content += "<td style=\"width: 17%;text-align: right;font-size: 10px;font-weight: bold;\">单价</td>";
+        content += "<td style=\"width: 15%;text-align: right;font-size: 10px;font-weight: bold;\">数量</td>";
+        content += "<td style=\"width: 18%;text-align: right;font-size: 10px;font-weight: bold;\">小计</td>";
+        content += "</tr>";
+        content += "</table>";
+        content += "<div style=\"width: 100%;overflow:hidden;white-space: nowrap;\">--------------------------------------------------</div>";
+        content += "<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
+        for (var i=0;i< ticket.goods.length;i++){
+            content += "<tr>";
+            content += "<td style=\"width: 50%;text-align: left;font-size: 8px;padding-top: 8px;\">";
+            content += "<table style=\"width: 100%;\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">";
+            content += "<tr>";
+            content += "<td style=\"text-align: left;font-size: 8px;vertical-align:top;\">#</td>";
+            content += "<td style=\"text-align: left;font-size: 8px;\">" + ticket.goods[i].gname + "</td>";
+            content += "</tr>";
+            content += "</table>";
+            content += "</td>";
+            content += "<td style=\"width: 17%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].uprice + "</td>";
+            content += "<td style=\"width: 15%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].num + "</td>";
+            content += "<td style=\"width: 18%;text-align: right;font-size: 8px;vertical-align:bottom;padding-top: 8px;\">" + ticket.goods[i].subtotal + "元</td>";
+            content += "</tr>";
+
+        }
+        content += "</table>";
+        content += "<div style=\"width: 100%;overflow:hidden;white-space: nowrap;\">--------------------------------------------------</div>";
+        //收银信息
+        content += "<div style=\"width: 100%;\">";
+        content += "<span style=\"float: left;width: 50%;text-align: left;\">商品合计:</span>";
+        content += "<span style=\"float: left;width: 17%;text-align: left;\">" + ticket.cashInfo.goodsTotal + "件</span>";
+        content += "<span style=\"float: right;width: 33%;text-align: right;\">" + ticket.cashInfo.total + "元</span>";
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "<span style=\"float: left;width: 50%;text-align: left;\">实收:</span>";
+        content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.receipts + "元</span>";
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "<span style=\"float: left;width: 50%;text-align: left;\">找零:</span>";
+        content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.oddChange + "元</span>";
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "<span style=\"float: left;width: 50%;text-align: left;\">优惠券:</span>";
+        content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.coupon + "元</span>";
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "<span style=\"float: left;width: 50%;text-align: left;\">运费:</span>";
+        content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.freight + "元</span>";
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "<span style=\"float: left;width: 50%;text-align: left;\">支付渠道:</span>";
+        content += "<span style=\"float: right;width: 50%;text-align: right;\">" + ticket.cashInfo.paymentMode + "</span>";
+        content += "</div>";
+        content += "<div style=\"width: 100%;overflow:hidden;white-space: nowrap;\">--------------------------------------------------</div>";
+        //海关清单信息
+        content += "<div style=\"width: 100%;\">";
+        content += "订单号:" + ticket.cusListing.orderId;
+        content += "</div>";
+        // content += "<div style=\"width: 100%;\">";
+        // content += "始发地:" + ticket.cusListing.originAddress;
+        // content += "</div>";
+        // content += "<div style=\"width: 100%;\">";
+        // content += "交货地:" + ticket.cusListing.deliveryAddress;
+        // content += "</div>";
+        content += "<div style=\"width: 100%;overflow:hidden;white-space: nowrap;\">--------------------------------------------------</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += ticket.ticketFoot.summary;
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "客服电话:" + ticket.ticketFoot.serviceTel;
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += "网址:" + ticket.ticketFoot.url1;
+        content += "</div>";
+        content += "<div style=\"width: 100%;\">";
+        content += ticket.ticketFoot.welcome;
+        content += "</div>";
+        return content;
+    }
+
+    function wxPay(authCode,id,msg_index){
+        $.ajax({
+            type: "POST",
+            url: '../order/wxMicropayPay',
+            data: {auth_code: authCode, id: id},
+            success: function (r) {
+                layer.close(msg_index);
+                if (r.code === 0) {
+                    alert('支付成功', function (index) {
+                        vm.reload();
+                    });
+                } else {
+                    alert(r.msg);
+                }
+            }
+        });
+    }
+
+    var printAreaCount = 0;
+    function printArea(content) {
+        var idPrefix = "printArea_";
+        removePrintArea(idPrefix + printAreaCount);
+        printAreaCount++;
+        var iframeId = idPrefix + printAreaCount;
+        var iframeStyle = 'position:absolute;width:0px;height:0px;left:-500px;top:-500px;';
+        iframe = document.createElement('IFRAME');
+        $(iframe).attr({
+            style: iframeStyle,
+            id: iframeId
+        });
+        document.body.appendChild(iframe);
+        var doc = iframe.contentWindow.document;
+        doc.open();
+        //$(document).find("link").filter(function () {
+            //return $(this).attr("rel").toLowerCase() == "stylesheet";
+        //}).each(
+            //function () {
+                //doc.write('<link type="text/css" rel="stylesheet" href="'
+                    //+ $(this).attr("href") + '" >');
+            //});
+        doc.write('<div class="">' + content
+            + '</div>');
+        doc.close();
+        var frameWindow = iframe.contentWindow;
+        frameWindow.close();
+        frameWindow.focus();
+        frameWindow.print();
+    }
+    var removePrintArea = function (id) {
+        $("iframe#" + id).remove();
+    };

+ 148 - 0
kmall-admin/src/main/webapp/js/vip/mall2memberconsumptionrecords.js

@@ -0,0 +1,148 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mall2memberconsumptionrecords/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mmcrId', name: 'mmcrId', index: 'mmcr_id', key: true, hidden: true},
+			{label: '用户id', name: 'userId', index: 'user_id', width: 80},
+			{label: '订单编号', name: 'orderSn', index: 'order_sn', width: 80},
+			{label: '消费时间', name: 'consumptionTime', index: 'consumption_time', width: 80},
+			{label: '消费门店id', name: 'shopSn', index: 'shop_sn', width: 80},
+			{label: '是否使用生日优惠', name: 'isUseBirthdayOffer', index: 'is_use_birthday_offer', width: 80},
+			{label: '+创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
+			{label: '+创建时间,yyyy-MM-dd HH:mm:ss', name: 'createTime', index: 'create_time', width: 80},
+			{label: '+修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
+			{label: '+修改时间,yyyy-MM-dd HH:mm:ss', 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,
+		mall2MemberConsumptionRecords: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mall2MemberConsumptionRecords = {};
+		},
+		update: function (event) {
+            let mmcrId = getSelectedRow();
+			if (mmcrId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mmcrId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mall2MemberConsumptionRecords.mmcrId == null ? "../mall2memberconsumptionrecords/save" : "../mall2memberconsumptionrecords/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mall2MemberConsumptionRecords),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mmcrIds = getSelectedRows();
+			if (mmcrIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mall2memberconsumptionrecords/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mmcrIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mmcrId){
+			$.get("../mall2memberconsumptionrecords/info/"+mmcrId, function (r) {
+                vm.mall2MemberConsumptionRecords = r.mall2MemberConsumptionRecords;
+            });
+		},
+        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);
+        }
+	}
+});

+ 146 - 0
kmall-admin/src/main/webapp/js/vip/mall2memberpoints.js

@@ -0,0 +1,146 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mall2memberpoints/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mmpId', name: 'mmpId', index: 'mmp_id', key: true, hidden: true},
+			{label: '用户id', name: 'userId', index: 'user_id', width: 80},
+			{label: '积分数', name: 'points', index: 'points', width: 80},
+			{label: '积分到期时间', name: 'pointsExpireDate', index: 'points_expire_date', width: 80},
+			{label: '+创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
+			{label: '+创建时间,yyyy-MM-dd HH:mm:ss', name: 'createTime', index: 'create_time', width: 80},
+			{label: '+修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
+			{label: '+修改时间,yyyy-MM-dd HH:mm:ss', 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,
+		mall2MemberPoints: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mall2MemberPoints = {};
+		},
+		update: function (event) {
+            let mmpId = getSelectedRow();
+			if (mmpId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mmpId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mall2MemberPoints.mmpId == null ? "../mall2memberpoints/save" : "../mall2memberpoints/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mall2MemberPoints),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mmpIds = getSelectedRows();
+			if (mmpIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mall2memberpoints/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mmpIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mmpId){
+			$.get("../mall2memberpoints/info/"+mmpId, function (r) {
+                vm.mall2MemberPoints = r.mall2MemberPoints;
+            });
+		},
+        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);
+        }
+	}
+});

+ 147 - 0
kmall-admin/src/main/webapp/js/vip/mall2pointsrules.js

@@ -0,0 +1,147 @@
+$(function () {
+    $("#jqGrid").jqGrid({
+        url: '../mall2pointsrules/list',
+        datatype: "json",
+        colModel: [
+			{label: 'mprId', name: 'mprId', index: 'mpr_id', key: true, hidden: true},
+			{label: '积分类型  00.按金额  10.按数量', name: 'pointsType', index: 'points_type', width: 80},
+			{label: '积分规则适用开始时间', name: 'pointsBeginTime', index: 'points_begin_time', width: 80},
+			{label: '积分规则适用结束时间', name: 'pointsEndTime', index: 'points_end_time', width: 80},
+			{label: '积分规则是否有效', name: 'isValid', index: 'is_valid', width: 80},
+			{label: '+创建人编号', name: 'createrSn', index: 'creater_sn', width: 80},
+			{label: '+创建时间,yyyy-MM-dd HH:mm:ss', name: 'createTime', index: 'create_time', width: 80},
+			{label: '+修改人编号', name: 'moderSn', index: 'moder_sn', width: 80},
+			{label: '+修改时间,yyyy-MM-dd HH:mm:ss', 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,
+		mall2PointsRules: {},
+		ruleValidate: {
+			name: [
+				{required: true, message: '名称不能为空', trigger: 'blur'}
+			]
+		},
+		q: {
+		    name: ''
+		}
+	},
+	methods: {
+		query: function () {
+			vm.reload();
+		},
+		add: function () {
+			vm.showList = false;
+			vm.title = "新增";
+			vm.mall2PointsRules = {};
+		},
+		update: function (event) {
+            let mprId = getSelectedRow();
+			if (mprId == null) {
+				return;
+			}
+			vm.showList = false;
+            vm.title = "修改";
+
+            vm.getInfo(mprId)
+		},
+		saveOrUpdate: function (event) {
+            let url = vm.mall2PointsRules.mprId == null ? "../mall2pointsrules/save" : "../mall2pointsrules/update";
+			$.ajax({
+				type: "POST",
+			    url: url,
+			    contentType: "application/json",
+			    data: JSON.stringify(vm.mall2PointsRules),
+                success: function (r) {
+                    if (r.code === 0) {
+                        alert('操作成功', function (index) {
+                            vm.reload();
+                        });
+                    } else {
+                        alert(r.msg);
+                    }
+                }
+			});
+		},
+		del: function (event) {
+            let mprIds = getSelectedRows();
+			if (mprIds == null){
+				return;
+			}
+
+			confirm('确定要删除选中的记录?', function () {
+				$.ajax({
+					type: "POST",
+				    url: "../mall2pointsrules/delete",
+				    contentType: "application/json",
+				    data: JSON.stringify(mprIds),
+				    success: function (r) {
+						if (r.code == 0) {
+							alert('操作成功', function (index) {
+								$("#jqGrid").trigger("reloadGrid");
+							});
+						} else {
+							alert(r.msg);
+						}
+					}
+				});
+			});
+		},
+		getInfo: function(mprId){
+			$.get("../mall2pointsrules/info/"+mprId, function (r) {
+                vm.mall2PointsRules = r.mall2PointsRules;
+            });
+		},
+        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);
+        }
+	}
+});

+ 10 - 1
kmall-admin/src/main/webapp/login.html

@@ -106,19 +106,28 @@
             username: '',
             password: '',
             captcha: '',
+            machineCode: '' ,
             src: 'captcha.jpg'
         },
         beforeCreate: function () {
             if (self != top) {
                 top.location.href = self.location.href;
             }
+
+
+
+        },
+        beforeMount: function(){
+            // TODO 调用接口获取机器码
+            console.log("获取机器码");
+            this.machineCode = "1";
         },
         methods: {
             refreshCode: function () {
                 this.src = "captcha.jpg?t=" + $.now();
             },
             login: function (event) {
-                var data = "username=" + vm.username + "&password=" + vm.password + "&captcha=" + vm.captcha;
+                var data = "username=" + vm.username + "&password=" + vm.password + "&captcha=" + vm.captcha + "&machineCode=" + vm.machineCode //TODO  新增加一个机器码;
                 sessionStorage.removeItem("permsSet");
                 $.ajax({
                     type: "POST",