diff --git a/pear-entrance/src/main/resources/templates/system/activity/add.html b/pear-entrance/src/main/resources/templates/system/activity/add.html
new file mode 100644
index 0000000000000000000000000000000000000000..64864655f8d89be8b85bedb55fad7589bc22a89f
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/activity/add.html
@@ -0,0 +1,120 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/activity/edit.html b/pear-entrance/src/main/resources/templates/system/activity/edit.html
new file mode 100644
index 0000000000000000000000000000000000000000..a0b86c729c02a674f4bfa4cb3aec7d594dbffb5e
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/activity/edit.html
@@ -0,0 +1,98 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/activity/main.html b/pear-entrance/src/main/resources/templates/system/activity/main.html
new file mode 100644
index 0000000000000000000000000000000000000000..ed9fd7991d9591447b5cf43bbd78e6fb6d3bf2b4
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/activity/main.html
@@ -0,0 +1,271 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/joinuser/add.html b/pear-entrance/src/main/resources/templates/system/joinuser/add.html
new file mode 100644
index 0000000000000000000000000000000000000000..04e27b13093c71fe1a7691a6862efb6309886068
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/joinuser/add.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/joinuser/edit.html b/pear-entrance/src/main/resources/templates/system/joinuser/edit.html
new file mode 100644
index 0000000000000000000000000000000000000000..fde51d288cd7f705e36e9c3c076781c4315dbeb9
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/joinuser/edit.html
@@ -0,0 +1,99 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/joinuser/main.html b/pear-entrance/src/main/resources/templates/system/joinuser/main.html
new file mode 100644
index 0000000000000000000000000000000000000000..2d2f83a98ffa33c2b05af4b0dcab7561f5eb4ab3
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/joinuser/main.html
@@ -0,0 +1,218 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/luckuser/add.html b/pear-entrance/src/main/resources/templates/system/luckuser/add.html
new file mode 100644
index 0000000000000000000000000000000000000000..c923a48f459339a2ffbb417f45103ab11168c1a3
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/luckuser/add.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/luckuser/edit.html b/pear-entrance/src/main/resources/templates/system/luckuser/edit.html
new file mode 100644
index 0000000000000000000000000000000000000000..0bc128afe027d10ce14d6b89ecec113eaf080f63
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/luckuser/edit.html
@@ -0,0 +1,110 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/luckuser/main.html b/pear-entrance/src/main/resources/templates/system/luckuser/main.html
new file mode 100644
index 0000000000000000000000000000000000000000..0123efcb328cf7208f5e9fbfeafb07f822b36ee9
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/luckuser/main.html
@@ -0,0 +1,226 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/prize/add.html b/pear-entrance/src/main/resources/templates/system/prize/add.html
new file mode 100644
index 0000000000000000000000000000000000000000..66648f3258d9d2179c23be797e1c1d3229a2df02
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/prize/add.html
@@ -0,0 +1,104 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/prize/edit.html b/pear-entrance/src/main/resources/templates/system/prize/edit.html
new file mode 100644
index 0000000000000000000000000000000000000000..b4d9d1e03c163dc914a2db575e2b506bd00ab230
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/prize/edit.html
@@ -0,0 +1,105 @@
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-entrance/src/main/resources/templates/system/prize/main.html b/pear-entrance/src/main/resources/templates/system/prize/main.html
new file mode 100644
index 0000000000000000000000000000000000000000..3e525ae60d107f48511e18dfd86071c5f0de7690
--- /dev/null
+++ b/pear-entrance/src/main/resources/templates/system/prize/main.html
@@ -0,0 +1,256 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckActivityController.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckActivityController.java
new file mode 100644
index 0000000000000000000000000000000000000000..faa9eec99d6210cbe4ad69bd0ad26cdfaf9117bb
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckActivityController.java
@@ -0,0 +1,132 @@
+package com.pearadmin.system.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.system.domain.LuckActivity;
+import com.pearadmin.common.tools.string.Convert;
+import com.pearadmin.common.web.base.BaseController;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.common.web.domain.response.Result;
+import com.pearadmin.common.web.domain.response.module.ResultTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import com.pearadmin.system.service.ILuckActivityService;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * 抽奖活动设置Controller
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-09
+ */
+@RestController
+@RequestMapping("/system/activity")
+public class LuckActivityController extends BaseController
+{
+ private String prefix = "system/activity";
+
+ @Autowired
+ private ILuckActivityService luckActivityService;
+
+ @GetMapping("/main")
+ @PreAuthorize("hasPermission('/system/activity/main','system:activity:main')")
+ public ModelAndView main()
+ {
+ return jumpPage(prefix + "/main");
+ }
+
+ /**
+ * 查询抽奖活动设置列表
+ */
+ @ResponseBody
+ @GetMapping("/data")
+ @PreAuthorize("hasPermission('/system/activity/data','system:activity:data')")
+ public ResultTable list(@ModelAttribute LuckActivity luckActivity, PageDomain pageDomain)
+ {
+ PageInfo
pageInfo = luckActivityService.selectLuckActivityPage(luckActivity,pageDomain);
+ return pageTable(pageInfo.getList(),pageInfo.getTotal());
+ }
+
+ /**
+ * 新增抽奖活动设置
+ */
+ @GetMapping("/add")
+ @PreAuthorize("hasPermission('/system/activity/add','system:activity:add')")
+ public ModelAndView add()
+ {
+ return jumpPage(prefix + "/add");
+ }
+
+ /**
+ * 新增保存抽奖活动设置
+ */
+ @ResponseBody
+ @PostMapping("/save")
+ @PreAuthorize("hasPermission('/system/activity/add','system:activity:add')")
+ public Result save(@RequestBody LuckActivity luckActivity)
+ {
+ return decide(luckActivityService.insertLuckActivity(luckActivity));
+ }
+
+ /**
+ * 修改抽奖活动设置
+ */
+ @GetMapping("/edit")
+ @PreAuthorize("hasPermission('/system/activity/edit','system:activity:edit')")
+ public ModelAndView edit(Long id, ModelMap mmap)
+ {
+ LuckActivity luckActivity = luckActivityService.selectLuckActivityById(id);
+ mmap.put("luckActivity", luckActivity);
+ return jumpPage(prefix + "/edit");
+ }
+
+ /**
+ * 修改保存抽奖活动设置
+ */
+ @ResponseBody
+ @PutMapping("/update")
+ @PreAuthorize("hasPermission('/system/activity/edit','system:activity:edit')")
+ public Result update(@RequestBody LuckActivity luckActivity)
+ {
+ return decide(luckActivityService.updateLuckActivity(luckActivity));
+ }
+
+ /**
+ * 删除抽奖活动设置
+ */
+ @ResponseBody
+ @DeleteMapping( "/batchRemove")
+ @PreAuthorize("hasPermission('/system/activity/remove','system:activity:remove')")
+ public Result batchRemove(String ids)
+ {
+ return decide(luckActivityService.deleteLuckActivityByIds(Convert.toStrArray(ids)));
+ }
+
+ /**
+ * 删除
+ */
+ @ResponseBody
+ @DeleteMapping("/remove/{id}")
+ @PreAuthorize("hasPermission('/system/activity/remove','system:activity:remove')")
+ public Result remove(@PathVariable("id") Long id)
+ {
+ return decide(luckActivityService.deleteLuckActivityById(id));
+ }
+
+ /**
+ * 删除
+ */
+ @GetMapping("/generate/qrcode/{id}")
+ @PreAuthorize("hasPermission('/system/activity/edit','system:activity:edit')")
+ public void generateQrcode(@PathVariable("id") Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ luckActivityService.generateQrcode(id,request,response);
+ }
+
+
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckJoinUserController.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckJoinUserController.java
new file mode 100644
index 0000000000000000000000000000000000000000..9f3f4f46cd4c07c63d5c9d08671a5d5861522993
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckJoinUserController.java
@@ -0,0 +1,117 @@
+package com.pearadmin.system.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.constant.ControllerConstant;
+import com.pearadmin.system.domain.LuckJoinUser;
+import com.pearadmin.common.tools.string.Convert;
+import com.pearadmin.common.web.base.BaseController;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.common.web.domain.response.Result;
+import com.pearadmin.common.web.domain.response.module.ResultTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import com.pearadmin.system.service.ILuckJoinUserService;
+
+/**
+ * 抽奖参加人员Controller
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@RestController
+@RequestMapping(ControllerConstant.API_SYSTEM_PREFIX + "joinuser")
+public class LuckJoinUserController extends BaseController
+{
+ private String prefix = "system/joinuser";
+
+ @Autowired
+ private ILuckJoinUserService luckJoinUserService;
+
+ @GetMapping("/main")
+ @PreAuthorize("hasPermission('/system/joinuser/main','system:joinuser:main')")
+ public ModelAndView main()
+ {
+ return jumpPage(prefix + "/main");
+ }
+
+ /**
+ * 查询抽奖参加人员列表
+ */
+ @ResponseBody
+ @GetMapping("/data")
+ @PreAuthorize("hasPermission('/system/joinuser/data','system:joinuser:data')")
+ public ResultTable list(@ModelAttribute LuckJoinUser luckJoinUser, PageDomain pageDomain)
+ {
+ PageInfo pageInfo = luckJoinUserService.selectLuckJoinUserPage(luckJoinUser,pageDomain);
+ return pageTable(pageInfo.getList(),pageInfo.getTotal());
+ }
+
+ /**
+ * 新增抽奖参加人员
+ */
+ @GetMapping("/add")
+ @PreAuthorize("hasPermission('/system/joinuser/add','system:joinuser:add')")
+ public ModelAndView add()
+ {
+ return jumpPage(prefix + "/add");
+ }
+
+ /**
+ * 新增保存抽奖参加人员
+ */
+ @ResponseBody
+ @PostMapping("/save")
+ @PreAuthorize("hasPermission('/system/joinuser/add','system:joinuser:add')")
+ public Result save(@RequestBody LuckJoinUser luckJoinUser)
+ {
+ return decide(luckJoinUserService.insertLuckJoinUser(luckJoinUser));
+ }
+
+ /**
+ * 修改抽奖参加人员
+ */
+ @GetMapping("/edit")
+ @PreAuthorize("hasPermission('/system/joinuser/edit','system:joinuser:edit')")
+ public ModelAndView edit(Long id, ModelMap mmap)
+ {
+ LuckJoinUser luckJoinUser = luckJoinUserService.selectLuckJoinUserById(id);
+ mmap.put("luckJoinUser", luckJoinUser);
+ return jumpPage(prefix + "/edit");
+ }
+
+ /**
+ * 修改保存抽奖参加人员
+ */
+ @ResponseBody
+ @PutMapping("/update")
+ @PreAuthorize("hasPermission('/system/joinuser/edit','system:joinuser:edit')")
+ public Result update(@RequestBody LuckJoinUser luckJoinUser)
+ {
+ return decide(luckJoinUserService.updateLuckJoinUser(luckJoinUser));
+ }
+
+ /**
+ * 删除抽奖参加人员
+ */
+ @ResponseBody
+ @DeleteMapping( "/batchRemove")
+ @PreAuthorize("hasPermission('/system/joinuser/remove','system:joinuser:remove')")
+ public Result batchRemove(String ids)
+ {
+ return decide(luckJoinUserService.deleteLuckJoinUserByIds(Convert.toStrArray(ids)));
+ }
+
+ /**
+ * 删除
+ */
+ @ResponseBody
+ @DeleteMapping("/remove/{id}")
+ @PreAuthorize("hasPermission('/system/joinuser/remove','system:joinuser:remove')")
+ public Result remove(@PathVariable("id") Long id)
+ {
+ return decide(luckJoinUserService.deleteLuckJoinUserById(id));
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckPrizeController.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckPrizeController.java
new file mode 100644
index 0000000000000000000000000000000000000000..e3f104622281ee498769309ba2078588fe9e5266
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckPrizeController.java
@@ -0,0 +1,126 @@
+package com.pearadmin.system.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.system.domain.LuckPrize;
+import com.pearadmin.common.tools.string.Convert;
+import com.pearadmin.common.web.base.BaseController;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.common.web.domain.response.Result;
+import com.pearadmin.common.web.domain.response.module.ResultTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import com.pearadmin.system.service.ILuckPrizeService;
+
+/**
+ * 奖品设置Controller
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@RestController
+@RequestMapping("/system/prize")
+public class LuckPrizeController extends BaseController
+{
+ private String prefix = "system/prize";
+
+ @Autowired
+ private ILuckPrizeService luckPrizeService;
+
+ @GetMapping("/main")
+ @PreAuthorize("hasPermission('/system/prize/main','system:prize:main')")
+ public ModelAndView main()
+ {
+ return jumpPage(prefix + "/main");
+ }
+
+ /**
+ * 查询奖品设置列表
+ */
+ @ResponseBody
+ @GetMapping("/data")
+ @PreAuthorize("hasPermission('/system/prize/data','system:prize:data')")
+ public ResultTable list(@ModelAttribute LuckPrize luckPrize, PageDomain pageDomain)
+ {
+ PageInfo pageInfo = luckPrizeService.selectLuckPrizePage(luckPrize,pageDomain);
+ return pageTable(pageInfo.getList(),pageInfo.getTotal());
+ }
+
+ /**
+ * 新增奖品设置
+ */
+ @GetMapping("/add")
+ @PreAuthorize("hasPermission('/system/prize/add','system:prize:add')")
+ public ModelAndView add()
+ {
+ return jumpPage(prefix + "/add");
+ }
+
+ /**
+ * 新增保存奖品设置
+ */
+ @ResponseBody
+ @PostMapping("/save")
+ @PreAuthorize("hasPermission('/system/prize/add','system:prize:add')")
+ public Result save(@RequestBody LuckPrize luckPrize)
+ {
+ return decide(luckPrizeService.insertLuckPrize(luckPrize));
+ }
+
+ /**
+ * 修改奖品设置
+ */
+ @GetMapping("/edit")
+ @PreAuthorize("hasPermission('/system/prize/edit','system:prize:edit')")
+ public ModelAndView edit(Integer id, ModelMap mmap)
+ {
+ LuckPrize luckPrize = luckPrizeService.selectLuckPrizeById(id);
+ mmap.put("luckPrize", luckPrize);
+ return jumpPage(prefix + "/edit");
+ }
+
+ /**
+ * 修改保存奖品设置
+ */
+ @ResponseBody
+ @PutMapping("/update")
+ @PreAuthorize("hasPermission('/system/prize/edit','system:prize:edit')")
+ public Result update(@RequestBody LuckPrize luckPrize)
+ {
+ return decide(luckPrizeService.updateLuckPrize(luckPrize));
+ }
+
+ /**
+ * 删除奖品设置
+ */
+ @ResponseBody
+ @DeleteMapping( "/batchRemove")
+ @PreAuthorize("hasPermission('/system/prize/remove','system:prize:remove')")
+ public Result batchRemove(String ids)
+ {
+ return decide(luckPrizeService.deleteLuckPrizeByIds(Convert.toStrArray(ids)));
+ }
+
+ /**
+ * 删除
+ */
+ @ResponseBody
+ @DeleteMapping("/remove/{id}")
+ @PreAuthorize("hasPermission('/system/prize/remove','system:prize:remove')")
+ public Result remove(@PathVariable("id") Integer id) {
+ return decide(luckPrizeService.deleteLuckPrizeById(id));
+ }
+
+
+ /**
+ * 删除
+ */
+ @ResponseBody
+ @GetMapping("/start/{id}")
+ @PreAuthorize("hasPermission('/system/prize/remove','system:prize:remove')")
+ public Result start(@PathVariable("id") Integer id) {
+ return decide(luckPrizeService.start(id));
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckUserController.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckUserController.java
new file mode 100644
index 0000000000000000000000000000000000000000..c53a448ec47eb17f5dc246393737a377462e612e
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/controller/LuckUserController.java
@@ -0,0 +1,116 @@
+package com.pearadmin.system.controller;
+
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.system.domain.LuckUser;
+import com.pearadmin.common.tools.string.Convert;
+import com.pearadmin.common.web.base.BaseController;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.common.web.domain.response.Result;
+import com.pearadmin.common.web.domain.response.module.ResultTable;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.security.access.prepost.PreAuthorize;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.servlet.ModelAndView;
+import com.pearadmin.system.service.ILuckUserService;
+
+/**
+ * 中奖名单Controller
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@RestController
+@RequestMapping("/system/luckuser")
+public class LuckUserController extends BaseController
+{
+ private String prefix = "system/luckuser";
+
+ @Autowired
+ private ILuckUserService luckUserService;
+
+ @GetMapping("/main")
+ @PreAuthorize("hasPermission('/system/luckuser/main','system:luckuser:main')")
+ public ModelAndView main()
+ {
+ return jumpPage(prefix + "/main");
+ }
+
+ /**
+ * 查询中奖名单列表
+ */
+ @ResponseBody
+ @GetMapping("/data")
+ @PreAuthorize("hasPermission('/system/luckuser/data','system:luckuser:data')")
+ public ResultTable list(@ModelAttribute LuckUser luckUser, PageDomain pageDomain)
+ {
+ PageInfo pageInfo = luckUserService.selectLuckUserPage(luckUser,pageDomain);
+ return pageTable(pageInfo.getList(),pageInfo.getTotal());
+ }
+
+ /**
+ * 新增中奖名单
+ */
+ @GetMapping("/add")
+ @PreAuthorize("hasPermission('/system/luckuser/add','system:luckuser:add')")
+ public ModelAndView add()
+ {
+ return jumpPage(prefix + "/add");
+ }
+
+ /**
+ * 新增保存中奖名单
+ */
+ @ResponseBody
+ @PostMapping("/save")
+ @PreAuthorize("hasPermission('/system/luckuser/add','system:luckuser:add')")
+ public Result save(@RequestBody LuckUser luckUser)
+ {
+ return decide(luckUserService.insertLuckUser(luckUser));
+ }
+
+ /**
+ * 修改中奖名单
+ */
+ @GetMapping("/edit")
+ @PreAuthorize("hasPermission('/system/luckuser/edit','system:luckuser:edit')")
+ public ModelAndView edit(Long id, ModelMap mmap)
+ {
+ LuckUser luckUser = luckUserService.selectLuckUserById(id);
+ mmap.put("luckUser", luckUser);
+ return jumpPage(prefix + "/edit");
+ }
+
+ /**
+ * 修改保存中奖名单
+ */
+ @ResponseBody
+ @PutMapping("/update")
+ @PreAuthorize("hasPermission('/system/luckuser/edit','system:luckuser:edit')")
+ public Result update(@RequestBody LuckUser luckUser)
+ {
+ return decide(luckUserService.updateLuckUser(luckUser));
+ }
+
+ /**
+ * 删除中奖名单
+ */
+ @ResponseBody
+ @DeleteMapping( "/batchRemove")
+ @PreAuthorize("hasPermission('/system/luckuser/remove','system:luckuser:remove')")
+ public Result batchRemove(String ids)
+ {
+ return decide(luckUserService.deleteLuckUserByIds(Convert.toStrArray(ids)));
+ }
+
+ /**
+ * 删除
+ */
+ @ResponseBody
+ @DeleteMapping("/remove/{id}")
+ @PreAuthorize("hasPermission('/system/luckuser/remove','system:luckuser:remove')")
+ public Result remove(@PathVariable("id") Long id)
+ {
+ return decide(luckUserService.deleteLuckUserById(id));
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckActivity.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckActivity.java
new file mode 100644
index 0000000000000000000000000000000000000000..b26e953129eb33a8ebcf51afac9a5f4469848096
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckActivity.java
@@ -0,0 +1,56 @@
+package com.pearadmin.system.domain;
+
+import java.util.Date;
+import lombok.Data;
+import com.pearadmin.common.web.base.BaseDomain;
+
+/**
+ * 抽奖活动设置对象 luck_activity
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-09
+ */
+@Data
+public class LuckActivity extends BaseDomain
+{
+ private static final long serialVersionUID = 1L;
+
+ /** null */
+ private Long id;
+
+ /** 活动名称 */
+ private String acctivityName;
+
+ /** 活动日期 */
+ private Date acctivityDate;
+
+ /** 开启日期 */
+ private Date startDate;
+
+ /** 结束日期 */
+ private Date endDate;
+
+ /** 活动日期 */
+ private String acctivityDateStr;
+
+ /** 开始日期格式后 */
+ private String startDateStr;
+
+ /** 结束日期格式后 */
+ private String endDateStr;
+
+ /**
+ * 活动状态
+ */
+ private Integer status;
+
+ /** 开奖类型 */
+ private Long drawType;
+
+ /** 创建人 */
+ private String createId;
+
+ /** 创建人名称 */
+ private String createName;
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckJoinUser.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckJoinUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..aae5aa78cc3c8b35b987051687257a4ead1ad0b7
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckJoinUser.java
@@ -0,0 +1,37 @@
+package com.pearadmin.system.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.pearadmin.common.web.base.BaseDomain;
+
+/**
+ * 抽奖参加人员对象 luck_join_user
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Data
+public class LuckJoinUser extends BaseDomain
+{
+ private static final long serialVersionUID = 1L;
+
+ /** null */
+ private Long id;
+
+ /** 星球编号 */
+ private Long number;
+
+ /** 星球昵称 */
+ private String nickName;
+
+ /** 活动版本号 */
+ private Integer activeNo;
+
+ /** 抽奖序号 */
+ private Integer luckNumber;
+
+ /** 删除标记 */
+ private Long isDeleted;
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckPrize.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckPrize.java
new file mode 100644
index 0000000000000000000000000000000000000000..a1436de5cb00d5dceaf4fa5e93ba82cb0c343f47
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckPrize.java
@@ -0,0 +1,40 @@
+package com.pearadmin.system.domain;
+
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.pearadmin.common.web.base.BaseDomain;
+
+/**
+ * 奖品设置对象 luck_prize
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Data
+public class LuckPrize extends BaseDomain
+{
+ private static final long serialVersionUID = 1L;
+
+ /** id */
+ private Integer id;
+
+ /** 奖品等级 */
+ private String grade;
+
+ /** 奖品名称 */
+ private String prizeName;
+
+ /** 奖品编号 */
+ private String luckCode;
+
+ /** 奖品数量 */
+ private Integer balance;
+
+ /** 活动版本号 */
+ private Integer activeNo;
+
+ /** 赞助人 */
+ private String sponsor;
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckUser.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckUser.java
new file mode 100644
index 0000000000000000000000000000000000000000..7ebf842ccb6be4867e835d5fb8bc1a7a809f3714
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/domain/LuckUser.java
@@ -0,0 +1,41 @@
+package com.pearadmin.system.domain;
+
+import java.util.Date;
+import lombok.Data;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import com.pearadmin.common.web.base.BaseDomain;
+
+/**
+ * 中奖名单对象 luck_user
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Data
+public class LuckUser extends BaseDomain
+{
+ private static final long serialVersionUID = 1L;
+
+ /** 主键 */
+ private Long id;
+
+ /** 星球编号 */
+ private Long number;
+
+ /** 星球昵称 */
+ private String nickName;
+
+ /** 奖品代码 */
+ private String luckCode;
+
+ /** 中奖日期 */
+ private Date luckDate;
+
+ /** 中奖日期 */
+ private String luckDateStr;
+
+ /** 活动编码 */
+ private Integer activeNo;
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/enums/LuckActivityStatusEnum.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/enums/LuckActivityStatusEnum.java
new file mode 100644
index 0000000000000000000000000000000000000000..5922296c11d68ec258e68db762c7caf509de2562
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/enums/LuckActivityStatusEnum.java
@@ -0,0 +1,38 @@
+package com.pearadmin.system.enums;
+
+import java.util.Objects;
+
+/**
+ * 活动状态
+ */
+public enum LuckActivityStatusEnum {
+
+ CSHD(1, "初始活动"),
+ HDKS(2, "活动开始"),
+ HDJS(3, "活动结束");
+
+ private Integer code;
+ private String desc;
+
+ private LuckActivityStatusEnum(Integer code, String desc) {
+ this.code = code;
+ this.desc = desc;
+ }
+
+ public Integer getCode() {
+ return code;
+ }
+
+ public String getDesc() {
+ return desc;
+ }
+
+ public static LuckActivityStatusEnum get(Integer code) {
+ for (LuckActivityStatusEnum value : values()) {
+ if (Objects.equals(value.code, code)) {
+ return value;
+ }
+ }
+ return null;
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckActivityMapper.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckActivityMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..f503115c44821cfbb6ed06077b92915c1ed7c494
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckActivityMapper.java
@@ -0,0 +1,64 @@
+package com.pearadmin.system.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import com.pearadmin.system.domain.LuckActivity;
+
+/**
+ * 抽奖活动设置Mapper接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-09
+ */
+@Mapper
+public interface LuckActivityMapper
+{
+ /**
+ * 查询抽奖活动设置
+ *
+ * @param id 抽奖活动设置ID
+ * @return 抽奖活动设置
+ */
+ public LuckActivity selectLuckActivityById(Long id);
+
+ /**
+ * 查询抽奖活动设置列表
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 抽奖活动设置集合
+ */
+ List selectLuckActivityList(LuckActivity luckActivity);
+
+ /**
+ * 新增抽奖活动设置
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 结果
+ */
+ int insertLuckActivity(LuckActivity luckActivity);
+
+ /**
+ * 修改抽奖活动设置
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 结果
+ */
+ int updateLuckActivity(LuckActivity luckActivity);
+
+ /**
+ * 删除抽奖活动设置
+ *
+ * @param id 抽奖活动设置ID
+ * @return 结果
+ */
+ int deleteLuckActivityById(Long id);
+
+ /**
+ * 批量删除抽奖活动设置
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckActivityByIds(String[] ids);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckJoinUserMapper.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckJoinUserMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..4dc9d35c119cfdce14fd036efcd0fd63c5a07a99
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckJoinUserMapper.java
@@ -0,0 +1,64 @@
+package com.pearadmin.system.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import com.pearadmin.system.domain.LuckJoinUser;
+
+/**
+ * 抽奖参加人员Mapper接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Mapper
+public interface LuckJoinUserMapper
+{
+ /**
+ * 查询抽奖参加人员
+ *
+ * @param id 抽奖参加人员ID
+ * @return 抽奖参加人员
+ */
+ public LuckJoinUser selectLuckJoinUserById(Long id);
+
+ /**
+ * 查询抽奖参加人员列表
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 抽奖参加人员集合
+ */
+ List selectLuckJoinUserList(LuckJoinUser luckJoinUser);
+
+ /**
+ * 新增抽奖参加人员
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 结果
+ */
+ int insertLuckJoinUser(LuckJoinUser luckJoinUser);
+
+ /**
+ * 修改抽奖参加人员
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 结果
+ */
+ int updateLuckJoinUser(LuckJoinUser luckJoinUser);
+
+ /**
+ * 删除抽奖参加人员
+ *
+ * @param id 抽奖参加人员ID
+ * @return 结果
+ */
+ int deleteLuckJoinUserById(Long id);
+
+ /**
+ * 批量删除抽奖参加人员
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckJoinUserByIds(String[] ids);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckPrizeMapper.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckPrizeMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..2bb5f6b31b4fe307ad518d8e3857863b0ec652b0
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckPrizeMapper.java
@@ -0,0 +1,64 @@
+package com.pearadmin.system.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import com.pearadmin.system.domain.LuckPrize;
+
+/**
+ * 奖品设置Mapper接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Mapper
+public interface LuckPrizeMapper
+{
+ /**
+ * 查询奖品设置
+ *
+ * @param id 奖品设置ID
+ * @return 奖品设置
+ */
+ public LuckPrize selectLuckPrizeById(Integer id);
+
+ /**
+ * 查询奖品设置列表
+ *
+ * @param luckPrize 奖品设置
+ * @return 奖品设置集合
+ */
+ List selectLuckPrizeList(LuckPrize luckPrize);
+
+ /**
+ * 新增奖品设置
+ *
+ * @param luckPrize 奖品设置
+ * @return 结果
+ */
+ int insertLuckPrize(LuckPrize luckPrize);
+
+ /**
+ * 修改奖品设置
+ *
+ * @param luckPrize 奖品设置
+ * @return 结果
+ */
+ int updateLuckPrize(LuckPrize luckPrize);
+
+ /**
+ * 删除奖品设置
+ *
+ * @param id 奖品设置ID
+ * @return 结果
+ */
+ int deleteLuckPrizeById(Integer id);
+
+ /**
+ * 批量删除奖品设置
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckPrizeByIds(String[] ids);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckUserMapper.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckUserMapper.java
new file mode 100644
index 0000000000000000000000000000000000000000..b628815cbf5ece6290a3808b0767a64f2a928dca
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/LuckUserMapper.java
@@ -0,0 +1,64 @@
+package com.pearadmin.system.mapper;
+
+import org.apache.ibatis.annotations.Mapper;
+import java.util.List;
+import com.pearadmin.system.domain.LuckUser;
+
+/**
+ * 中奖名单Mapper接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Mapper
+public interface LuckUserMapper
+{
+ /**
+ * 查询中奖名单
+ *
+ * @param id 中奖名单ID
+ * @return 中奖名单
+ */
+ public LuckUser selectLuckUserById(Long id);
+
+ /**
+ * 查询中奖名单列表
+ *
+ * @param luckUser 中奖名单
+ * @return 中奖名单集合
+ */
+ List selectLuckUserList(LuckUser luckUser);
+
+ /**
+ * 新增中奖名单
+ *
+ * @param luckUser 中奖名单
+ * @return 结果
+ */
+ int insertLuckUser(LuckUser luckUser);
+
+ /**
+ * 修改中奖名单
+ *
+ * @param luckUser 中奖名单
+ * @return 结果
+ */
+ int updateLuckUser(LuckUser luckUser);
+
+ /**
+ * 删除中奖名单
+ *
+ * @param id 中奖名单ID
+ * @return 结果
+ */
+ int deleteLuckUserById(Long id);
+
+ /**
+ * 批量删除中奖名单
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckUserByIds(String[] ids);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckActivityMapper.xml b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckActivityMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..0a6cf5ae65ade771be1e039dfa482f3fb1d92e75
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckActivityMapper.xml
@@ -0,0 +1,89 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, acctivity_name, acctivity_date, start_date, end_date, status, draw_type, create_id, create_name from luck_activity
+
+
+
+
+
+
+
+ insert into luck_activity
+
+ id,
+ acctivity_name,
+ acctivity_date,
+ start_date,
+ end_date,
+ draw_type,
+ status,
+ create_id,
+ create_name,
+
+
+ #{id},
+ #{acctivityName},
+ #{acctivityDate},
+ #{startDate},
+ #{endDate},
+ #{status},
+ #{drawType},
+ #{createId},
+ #{createName},
+
+
+
+
+ update luck_activity
+
+ acctivity_name = #{acctivityName},
+ acctivity_date = #{acctivityDate},
+ start_date = #{startDate},
+ end_date = #{endDate},
+ status = #{status},
+ draw_type = #{drawType},
+ create_id = #{createId},
+ create_name = #{createName},
+
+ where id = #{id}
+
+
+
+ delete from luck_activity where id = #{id}
+
+
+
+ delete from luck_activity where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckJoinUserMapper.xml b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckJoinUserMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..307b61043c0616e613acec331da99533e3c4c166
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckJoinUserMapper.xml
@@ -0,0 +1,75 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, number, nick_name, active_no, luck_number, is_deleted from luck_join_user
+
+
+
+
+
+
+
+ insert into luck_join_user
+
+ number,
+ nick_name,
+ active_no,
+ luck_number,
+ is_deleted,
+
+
+ #{number},
+ #{nickName},
+ #{activeNo},
+ #{luckNumber},
+ #{isDeleted},
+
+
+
+
+ update luck_join_user
+
+ number = #{number},
+ nick_name = #{nickName},
+ active_no = #{activeNo},
+ luck_number = #{luckNumber},
+ is_deleted = #{isDeleted},
+
+ where id = #{id}
+
+
+
+ delete from luck_join_user where id = #{id}
+
+
+
+ delete from luck_join_user where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckPrizeMapper.xml b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckPrizeMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..fff281f5d784522c1be52e7c0cb6f498d0f509bb
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckPrizeMapper.xml
@@ -0,0 +1,81 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, grade, prize_name, luck_code, balance, active_no, sponsor from luck_prize
+
+
+
+
+
+
+
+ insert into luck_prize
+
+ grade,
+ prize_name,
+ luck_code,
+ balance,
+ active_no,
+ sponsor,
+
+
+ #{grade},
+ #{prizeName},
+ #{luckCode},
+ #{balance},
+ #{activeNo},
+ #{sponsor},
+
+
+
+
+ update luck_prize
+
+ grade = #{grade},
+ prize_name = #{prizeName},
+ luck_code = #{luckCode},
+ balance = #{balance},
+ active_no = #{activeNo},
+ sponsor = #{sponsor},
+
+ where id = #{id}
+
+
+
+ delete from luck_prize where id = #{id}
+
+
+
+ delete from luck_prize where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckUserMapper.xml b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckUserMapper.xml
new file mode 100644
index 0000000000000000000000000000000000000000..f00dc8d3142b6612ba5479a251e3827d44668c04
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/mapper/xml/LuckUserMapper.xml
@@ -0,0 +1,77 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ select id, number, nick_name, luck_code, luck_date, active_no from luck_user
+
+
+
+
+
+
+
+ insert into luck_user
+
+ number,
+ nick_name,
+ luck_code,
+ luck_date,
+ active_no,
+
+
+ #{number},
+ #{nickName},
+ #{luckCode},
+ #{luckDate},
+ #{activeNo},
+
+
+
+
+ update luck_user
+
+ number = #{number},
+ nick_name = #{nickName},
+ luck_code = #{luckCode},
+ luck_date = #{luckDate},
+ active_no = #{activeNo},
+
+ where id = #{id}
+
+
+
+ delete from luck_user where id = #{id}
+
+
+
+ delete from luck_user where id in
+
+ #{id}
+
+
+
+
\ No newline at end of file
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckActivityService.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckActivityService.java
new file mode 100644
index 0000000000000000000000000000000000000000..fff64e9b5fddd68245abd18d79e10a016660345d
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckActivityService.java
@@ -0,0 +1,84 @@
+package com.pearadmin.system.service;
+
+import java.io.IOException;
+import java.util.List;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.domain.LuckActivity;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 抽奖活动设置Service接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-09
+ */
+public interface ILuckActivityService
+{
+ /**
+ * 查询抽奖活动设置
+ *
+ * @param id 抽奖活动设置ID
+ * @return 抽奖活动设置
+ */
+ LuckActivity selectLuckActivityById(Long id);
+
+
+ /**
+ * 查询抽奖活动设置
+ * @param ${classsName} 抽奖活动设置
+ * @param pageDomain
+ * @return 抽奖活动设置 分页集合
+ * */
+ PageInfo selectLuckActivityPage(LuckActivity luckActivity, PageDomain pageDomain);
+
+ /**
+ * 查询抽奖活动设置列表
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 抽奖活动设置集合
+ */
+ List selectLuckActivityList(LuckActivity luckActivity);
+
+ /**
+ * 新增抽奖活动设置
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 结果
+ */
+ int insertLuckActivity(LuckActivity luckActivity);
+
+ /**
+ * 修改抽奖活动设置
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 结果
+ */
+ int updateLuckActivity(LuckActivity luckActivity);
+
+ /**
+ * 批量删除抽奖活动设置
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckActivityByIds(String[] ids);
+
+ /**
+ * 删除抽奖活动设置信息
+ *
+ * @param id 抽奖活动设置ID
+ * @return 结果
+ */
+ int deleteLuckActivityById(Long id);
+
+ /**
+ * 生成活动地址二维码
+ * @param id
+ * @param request
+ * @param response
+ */
+ void generateQrcode(Long id, HttpServletRequest request, HttpServletResponse response) throws Exception;
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckJoinUserService.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckJoinUserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..53b136dbf67a143198309cbafd9b8d76eabc17f1
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckJoinUserService.java
@@ -0,0 +1,73 @@
+package com.pearadmin.system.service;
+
+import java.util.List;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.domain.LuckJoinUser;
+
+/**
+ * 抽奖参加人员Service接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+public interface ILuckJoinUserService
+{
+ /**
+ * 查询抽奖参加人员
+ *
+ * @param id 抽奖参加人员ID
+ * @return 抽奖参加人员
+ */
+ LuckJoinUser selectLuckJoinUserById(Long id);
+
+
+ /**
+ * 查询抽奖参加人员
+ * @param ${classsName} 抽奖参加人员
+ * @param pageDomain
+ * @return 抽奖参加人员 分页集合
+ * */
+ PageInfo selectLuckJoinUserPage(LuckJoinUser luckJoinUser, PageDomain pageDomain);
+
+ /**
+ * 查询抽奖参加人员列表
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 抽奖参加人员集合
+ */
+ List selectLuckJoinUserList(LuckJoinUser luckJoinUser);
+
+ /**
+ * 新增抽奖参加人员
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 结果
+ */
+ int insertLuckJoinUser(LuckJoinUser luckJoinUser);
+
+ /**
+ * 修改抽奖参加人员
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 结果
+ */
+ int updateLuckJoinUser(LuckJoinUser luckJoinUser);
+
+ /**
+ * 批量删除抽奖参加人员
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckJoinUserByIds(String[] ids);
+
+ /**
+ * 删除抽奖参加人员信息
+ *
+ * @param id 抽奖参加人员ID
+ * @return 结果
+ */
+ int deleteLuckJoinUserById(Long id);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckPrizeService.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckPrizeService.java
new file mode 100644
index 0000000000000000000000000000000000000000..016644ec94aa40d4f6f47605279b22856b76adc0
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckPrizeService.java
@@ -0,0 +1,81 @@
+package com.pearadmin.system.service;
+
+import java.util.List;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.domain.LuckPrize;
+
+/**
+ * 奖品设置Service接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+public interface ILuckPrizeService
+{
+ /**
+ * 查询奖品设置
+ *
+ * @param id 奖品设置ID
+ * @return 奖品设置
+ */
+ LuckPrize selectLuckPrizeById(Integer id);
+
+
+ /**
+ * 查询奖品设置
+ * @param ${classsName} 奖品设置
+ * @param pageDomain
+ * @return 奖品设置 分页集合
+ * */
+ PageInfo selectLuckPrizePage(LuckPrize luckPrize, PageDomain pageDomain);
+
+ /**
+ * 查询奖品设置列表
+ *
+ * @param luckPrize 奖品设置
+ * @return 奖品设置集合
+ */
+ List selectLuckPrizeList(LuckPrize luckPrize);
+
+ /**
+ * 新增奖品设置
+ *
+ * @param luckPrize 奖品设置
+ * @return 结果
+ */
+ int insertLuckPrize(LuckPrize luckPrize);
+
+ /**
+ * 修改奖品设置
+ *
+ * @param luckPrize 奖品设置
+ * @return 结果
+ */
+ int updateLuckPrize(LuckPrize luckPrize);
+
+ /**
+ * 批量删除奖品设置
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckPrizeByIds(String[] ids);
+
+ /**
+ * 删除奖品设置信息
+ *
+ * @param id 奖品设置ID
+ * @return 结果
+ */
+ int deleteLuckPrizeById(Integer id);
+
+ /**
+ * 开始抽奖
+ *
+ * @param id 奖品设置ID
+ * @return 结果
+ */
+ int start(Integer id);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckUserService.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckUserService.java
new file mode 100644
index 0000000000000000000000000000000000000000..7457dc822c4042585ff7c6b3816b9297bbea48b7
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/ILuckUserService.java
@@ -0,0 +1,73 @@
+package com.pearadmin.system.service;
+
+import java.util.List;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.domain.LuckUser;
+
+/**
+ * 中奖名单Service接口
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+public interface ILuckUserService
+{
+ /**
+ * 查询中奖名单
+ *
+ * @param id 中奖名单ID
+ * @return 中奖名单
+ */
+ LuckUser selectLuckUserById(Long id);
+
+
+ /**
+ * 查询中奖名单
+ * @param ${classsName} 中奖名单
+ * @param pageDomain
+ * @return 中奖名单 分页集合
+ * */
+ PageInfo selectLuckUserPage(LuckUser luckUser, PageDomain pageDomain);
+
+ /**
+ * 查询中奖名单列表
+ *
+ * @param luckUser 中奖名单
+ * @return 中奖名单集合
+ */
+ List selectLuckUserList(LuckUser luckUser);
+
+ /**
+ * 新增中奖名单
+ *
+ * @param luckUser 中奖名单
+ * @return 结果
+ */
+ int insertLuckUser(LuckUser luckUser);
+
+ /**
+ * 修改中奖名单
+ *
+ * @param luckUser 中奖名单
+ * @return 结果
+ */
+ int updateLuckUser(LuckUser luckUser);
+
+ /**
+ * 批量删除中奖名单
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ int deleteLuckUserByIds(String[] ids);
+
+ /**
+ * 删除中奖名单信息
+ *
+ * @param id 中奖名单ID
+ * @return 结果
+ */
+ int deleteLuckUserById(Long id);
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckActivityServiceImpl.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckActivityServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..eb5bd51f4474c61887257eba91b1f7392e75f5c4
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckActivityServiceImpl.java
@@ -0,0 +1,146 @@
+package com.pearadmin.system.service.impl;
+
+import java.util.List;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.tools.qrcode.QRCodeUtil;
+import com.pearadmin.common.tools.secure.SecurityUtil;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.domain.SysUser;
+import com.pearadmin.system.enums.LuckActivityStatusEnum;
+import com.pearadmin.system.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.stereotype.Service;
+import com.pearadmin.system.mapper.LuckActivityMapper;
+import com.pearadmin.system.domain.LuckActivity;
+import com.pearadmin.system.service.ILuckActivityService;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * 抽奖活动设置Service业务层处理
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-09
+ */
+@Service
+public class LuckActivityServiceImpl implements ILuckActivityService
+{
+ @Autowired
+ private LuckActivityMapper luckActivityMapper;
+
+ @Value("${qrcode.url}")
+ private String qrcodeUrl;
+
+ /**
+ * 查询抽奖活动设置
+ *
+ * @param id 抽奖活动设置ID
+ * @return 抽奖活动设置
+ */
+ @Override
+ public LuckActivity selectLuckActivityById(Long id)
+ {
+ return luckActivityMapper.selectLuckActivityById(id);
+ }
+
+ /**
+ * 查询抽奖活动设置列表
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 抽奖活动设置
+ */
+ @Override
+ public List selectLuckActivityList(LuckActivity luckActivity)
+ {
+ return luckActivityMapper.selectLuckActivityList(luckActivity);
+ }
+
+ /**
+ * 查询抽奖活动设置
+ * @param luckActivity 抽奖活动设置
+ * @param pageDomain
+ * @return 抽奖活动设置 分页集合
+ * */
+ @Override
+ public PageInfo selectLuckActivityPage(LuckActivity luckActivity, PageDomain pageDomain)
+ {
+ PageHelper.startPage(pageDomain.getPage(),pageDomain.getLimit());
+ List luckActivities = luckActivityMapper.selectLuckActivityList(luckActivity);
+ for (LuckActivity activity : luckActivities) {
+ activity.setAcctivityDateStr(DateUtils.formatDate(activity.getAcctivityDate(),DateUtils.YMD));
+ //activity.setStartDateStr(DateUtils.formatDate(activity.getStartDate(),DateUtils.YMD));
+ //activity.setEndDateStr(DateUtils.formatDate(activity.getEndDate(),DateUtils.YMD));
+ }
+ return new PageInfo<>(luckActivities);
+ }
+
+ /**
+ * 新增抽奖活动设置
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 结果
+ */
+
+ @Override
+ public int insertLuckActivity(LuckActivity luckActivity) {
+ SysUser sysUser =((SysUser)SecurityUtil.currentUser().getPrincipal());
+ luckActivity.setCreateId(sysUser.getUserId());
+ luckActivity.setCreateName(sysUser.getRealName());
+ luckActivity.setStatus(LuckActivityStatusEnum.CSHD.getCode());
+ return luckActivityMapper.insertLuckActivity(luckActivity);
+ }
+
+ /**
+ * 修改抽奖活动设置
+ *
+ * @param luckActivity 抽奖活动设置
+ * @return 结果
+ */
+ @Override
+ public int updateLuckActivity(LuckActivity luckActivity)
+ {
+ return luckActivityMapper.updateLuckActivity(luckActivity);
+ }
+
+ /**
+ * 删除抽奖活动设置对象
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckActivityByIds(String[] ids)
+ {
+ return luckActivityMapper.deleteLuckActivityByIds(ids);
+ }
+
+ /**
+ * 删除抽奖活动设置信息
+ *
+ * @param id 抽奖活动设置ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckActivityById(Long id)
+ {
+ return luckActivityMapper.deleteLuckActivityById(id);
+ }
+
+ @Override
+ public void generateQrcode(Long id, HttpServletRequest request, HttpServletResponse response) throws Exception {
+ setHeader(response);
+ QRCodeUtil.writeToStream(qrcodeUrl+"?id="+id,response.getOutputStream(),80,80);
+ }
+ public static void setHeader(HttpServletResponse response) {
+// response.setContentType("image/gif");
+ response.setHeader("Content-Type","application/octet-stream");
+ response.setHeader("Content-Disposition", "attachment;filename=" + "erweima.png");
+ response.setHeader("Pragma", "No-cache");
+ response.setHeader("Cache-Control", "no-cache");
+ response.setDateHeader("Expires", 0L);
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckJoinUserServiceImpl.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckJoinUserServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..0f38b1c93a8903290f10990fdc4642585caaf08c
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckJoinUserServiceImpl.java
@@ -0,0 +1,113 @@
+package com.pearadmin.system.service.impl;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.pearadmin.system.mapper.LuckJoinUserMapper;
+import com.pearadmin.system.domain.LuckJoinUser;
+import com.pearadmin.system.service.ILuckJoinUserService;
+
+/**
+ * 抽奖参加人员Service业务层处理
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Service
+public class LuckJoinUserServiceImpl implements ILuckJoinUserService
+{
+ @Autowired
+ private LuckJoinUserMapper luckJoinUserMapper;
+
+ /**
+ * 查询抽奖参加人员
+ *
+ * @param id 抽奖参加人员ID
+ * @return 抽奖参加人员
+ */
+ @Override
+ public LuckJoinUser selectLuckJoinUserById(Long id)
+ {
+ return luckJoinUserMapper.selectLuckJoinUserById(id);
+ }
+
+ /**
+ * 查询抽奖参加人员列表
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 抽奖参加人员
+ */
+ @Override
+ public List selectLuckJoinUserList(LuckJoinUser luckJoinUser)
+ {
+ return luckJoinUserMapper.selectLuckJoinUserList(luckJoinUser);
+ }
+
+ /**
+ * 查询抽奖参加人员
+ * @param luckJoinUser 抽奖参加人员
+ * @param pageDomain
+ * @return 抽奖参加人员 分页集合
+ * */
+ @Override
+ public PageInfo selectLuckJoinUserPage(LuckJoinUser luckJoinUser, PageDomain pageDomain)
+ {
+ PageHelper.startPage(pageDomain.getPage(),pageDomain.getLimit());
+ List data = luckJoinUserMapper.selectLuckJoinUserList(luckJoinUser);
+ return new PageInfo<>(data);
+ }
+
+ /**
+ * 新增抽奖参加人员
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 结果
+ */
+
+ @Override
+ public int insertLuckJoinUser(LuckJoinUser luckJoinUser)
+ {
+ return luckJoinUserMapper.insertLuckJoinUser(luckJoinUser);
+ }
+
+ /**
+ * 修改抽奖参加人员
+ *
+ * @param luckJoinUser 抽奖参加人员
+ * @return 结果
+ */
+ @Override
+ public int updateLuckJoinUser(LuckJoinUser luckJoinUser)
+ {
+ return luckJoinUserMapper.updateLuckJoinUser(luckJoinUser);
+ }
+
+ /**
+ * 删除抽奖参加人员对象
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckJoinUserByIds(String[] ids)
+ {
+ return luckJoinUserMapper.deleteLuckJoinUserByIds(ids);
+ }
+
+ /**
+ * 删除抽奖参加人员信息
+ *
+ * @param id 抽奖参加人员ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckJoinUserById(Long id)
+ {
+ return luckJoinUserMapper.deleteLuckJoinUserById(id);
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckPrizeServiceImpl.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckPrizeServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..f329c7568cda73a05012470e195bf58175d6c9b0
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckPrizeServiceImpl.java
@@ -0,0 +1,177 @@
+package com.pearadmin.system.service.impl;
+
+import java.text.SimpleDateFormat;
+import java.util.*;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.exception.base.BusinessException;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.domain.LuckJoinUser;
+import com.pearadmin.system.domain.LuckUser;
+import com.pearadmin.system.mapper.LuckJoinUserMapper;
+import com.pearadmin.system.mapper.LuckUserMapper;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.pearadmin.system.mapper.LuckPrizeMapper;
+import com.pearadmin.system.domain.LuckPrize;
+import com.pearadmin.system.service.ILuckPrizeService;
+
+import java.util.stream.Collectors;
+
+/**
+ * 奖品设置Service业务层处理
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Service
+public class LuckPrizeServiceImpl implements ILuckPrizeService
+{
+ @Autowired
+ private LuckPrizeMapper luckPrizeMapper;
+
+ @Autowired
+ private LuckUserMapper luckUserMapper;
+
+ @Autowired
+ private LuckJoinUserMapper luckJoinUserMapper;
+ /**
+ * 查询奖品设置
+ *
+ * @param id 奖品设置ID
+ * @return 奖品设置
+ */
+ @Override
+ public LuckPrize selectLuckPrizeById(Integer id)
+ {
+ return luckPrizeMapper.selectLuckPrizeById(id);
+ }
+
+ /**
+ * 查询奖品设置列表
+ *
+ * @param luckPrize 奖品设置
+ * @return 奖品设置
+ */
+ @Override
+ public List selectLuckPrizeList(LuckPrize luckPrize)
+ {
+ return luckPrizeMapper.selectLuckPrizeList(luckPrize);
+ }
+
+ /**
+ * 查询奖品设置
+ * @param luckPrize 奖品设置
+ * @param pageDomain
+ * @return 奖品设置 分页集合
+ * */
+ @Override
+ public PageInfo selectLuckPrizePage(LuckPrize luckPrize, PageDomain pageDomain)
+ {
+ PageHelper.startPage(pageDomain.getPage(),pageDomain.getLimit());
+ List data = luckPrizeMapper.selectLuckPrizeList(luckPrize);
+ return new PageInfo<>(data);
+ }
+
+ /**
+ * 新增奖品设置
+ *
+ * @param luckPrize 奖品设置
+ * @return 结果
+ */
+
+ @Override
+ public int insertLuckPrize(LuckPrize luckPrize)
+ {
+ luckPrize.setLuckCode(UUID.randomUUID().toString().toUpperCase());
+ return luckPrizeMapper.insertLuckPrize(luckPrize);
+ }
+
+ /**
+ * 修改奖品设置
+ *
+ * @param luckPrize 奖品设置
+ * @return 结果
+ */
+ @Override
+ public int updateLuckPrize(LuckPrize luckPrize)
+ {
+ return luckPrizeMapper.updateLuckPrize(luckPrize);
+ }
+
+ /**
+ * 删除奖品设置对象
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckPrizeByIds(String[] ids)
+ {
+ return luckPrizeMapper.deleteLuckPrizeByIds(ids);
+ }
+
+ /**
+ * 删除奖品设置信息
+ *
+ * @param id 奖品设置ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckPrizeById(Integer id)
+ {
+ return luckPrizeMapper.deleteLuckPrizeById(id);
+ }
+
+ /**
+ * 开始抽取该奖品
+ *
+ * @param id 奖品设置ID
+ * @return 结果
+ */
+ @Override
+ public int start(Integer id) {
+ //1取 当前抽奖奖品数量
+ LuckPrize luckPrize = luckPrizeMapper.selectLuckPrizeById(id);
+
+ List luckNumbers = new ArrayList<>();
+
+ //2查询本期抽奖用户
+ LuckJoinUser luckJoinUserQuery = new LuckJoinUser();
+ luckJoinUserQuery.setActiveNo(luckPrize.getActiveNo());
+ List luckJoinUsers = luckJoinUserMapper.selectLuckJoinUserList(luckJoinUserQuery);
+
+ //3根据最大的number 抽取 luck user
+ for (int i = 1; i <= luckPrize.getBalance(); i++) {
+ Random random = new Random();
+ int luckCode = random.nextInt(luckJoinUsers.size());
+ if(!luckNumbers.contains(luckCode)){
+ luckNumbers.add(luckCode);
+ }
+ }
+ //4 过滤出中奖用户名单
+ List luckJoinUsersResult = luckJoinUsers.stream().filter(item -> luckNumbers.contains(item.getLuckNumber())).collect(Collectors.toList());
+
+ //5 插入中奖名单
+ for (LuckJoinUser luckJoinUser : luckJoinUsersResult) {
+ LuckUser luckUser = new LuckUser();
+ luckUser.setActiveNo(luckJoinUser.getActiveNo());
+ luckUser.setLuckCode(luckPrize.getLuckCode());
+ luckUser.setLuckDate(new Date());
+ luckUser.setNumber(luckJoinUser.getNumber());
+ luckUser.setNickName(luckJoinUser.getNickName());
+ int result = luckUserMapper.insertLuckUser(luckUser);
+ }
+
+ //6 修改当前奖品的余额数量
+ LuckPrize luckPrizeParam = new LuckPrize();
+ luckPrizeParam.setId(id);
+ luckPrizeParam.setBalance(luckPrize.getBalance()-luckNumbers.size());
+ luckPrizeMapper.updateLuckPrize(luckPrizeParam);
+
+ return 1;
+ }
+
+
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckUserServiceImpl.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckUserServiceImpl.java
new file mode 100644
index 0000000000000000000000000000000000000000..889aa52f38e708f127a8e4755ed88f72f833f94e
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/service/impl/LuckUserServiceImpl.java
@@ -0,0 +1,116 @@
+package com.pearadmin.system.service.impl;
+
+import java.util.List;
+import java.util.ArrayList;
+
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.pearadmin.common.web.domain.request.PageDomain;
+import com.pearadmin.system.util.DateUtils;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import com.pearadmin.system.mapper.LuckUserMapper;
+import com.pearadmin.system.domain.LuckUser;
+import com.pearadmin.system.service.ILuckUserService;
+
+/**
+ * 中奖名单Service业务层处理
+ *
+ * @author zhangsenxiang
+ * @date 2021-03-03
+ */
+@Service
+public class LuckUserServiceImpl implements ILuckUserService
+{
+ @Autowired
+ private LuckUserMapper luckUserMapper;
+
+ /**
+ * 查询中奖名单
+ *
+ * @param id 中奖名单ID
+ * @return 中奖名单
+ */
+ @Override
+ public LuckUser selectLuckUserById(Long id)
+ {
+ return luckUserMapper.selectLuckUserById(id);
+ }
+
+ /**
+ * 查询中奖名单列表
+ *
+ * @param luckUser 中奖名单
+ * @return 中奖名单
+ */
+ @Override
+ public List selectLuckUserList(LuckUser luckUser)
+ {
+ return luckUserMapper.selectLuckUserList(luckUser);
+ }
+
+ /**
+ * 查询中奖名单
+ * @param luckUser 中奖名单
+ * @param pageDomain
+ * @return 中奖名单 分页集合
+ * */
+ @Override
+ public PageInfo selectLuckUserPage(LuckUser luckUser, PageDomain pageDomain) {
+ PageHelper.startPage(pageDomain.getPage(),pageDomain.getLimit());
+ List luckUserList = luckUserMapper.selectLuckUserList(luckUser);
+ for (LuckUser user : luckUserList) {
+ user.setLuckDateStr(DateUtils.formatDate(user.getLuckDate(),DateUtils.YMDHMS));
+ }
+ return new PageInfo<>(luckUserList);
+ }
+
+ /**
+ * 新增中奖名单
+ *
+ * @param luckUser 中奖名单
+ * @return 结果
+ */
+
+ @Override
+ public int insertLuckUser(LuckUser luckUser)
+ {
+ return luckUserMapper.insertLuckUser(luckUser);
+ }
+
+ /**
+ * 修改中奖名单
+ *
+ * @param luckUser 中奖名单
+ * @return 结果
+ */
+ @Override
+ public int updateLuckUser(LuckUser luckUser)
+ {
+ return luckUserMapper.updateLuckUser(luckUser);
+ }
+
+ /**
+ * 删除中奖名单对象
+ *
+ * @param ids 需要删除的数据ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckUserByIds(String[] ids)
+ {
+ return luckUserMapper.deleteLuckUserByIds(ids);
+ }
+
+ /**
+ * 删除中奖名单信息
+ *
+ * @param id 中奖名单ID
+ * @return 结果
+ */
+ @Override
+ public int deleteLuckUserById(Long id)
+ {
+ return luckUserMapper.deleteLuckUserById(id);
+ }
+}
diff --git a/pear-modules/pear-system/src/main/java/com/pearadmin/system/util/DateUtils.java b/pear-modules/pear-system/src/main/java/com/pearadmin/system/util/DateUtils.java
new file mode 100644
index 0000000000000000000000000000000000000000..590006c9fb7141b8797184251587cd5f6832974f
--- /dev/null
+++ b/pear-modules/pear-system/src/main/java/com/pearadmin/system/util/DateUtils.java
@@ -0,0 +1,498 @@
+package com.pearadmin.system.util;
+
+
+
+import com.pearadmin.common.exception.base.BusinessException;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.time.Instant;
+import java.time.LocalDate;
+import java.time.ZoneId;
+import java.util.*;
+
+/**
+ * 时间工具类,时间格式和int转换
+ */
+public class DateUtils {
+
+ public static final String YM = "yyyy-MM";
+ public static final String YMD = "yyyy-MM-dd";
+ public static final String YMDHMS = "yyyy-MM-dd HH:mm:ss";
+ public static final String KEY_INT_STARTTIME = "intStarttime";
+ public static final String KEY_STR_STARTTIME = "strStarttime";
+ public static final String KEY_INT_ENDTIME = "intEndtime";
+ public static final String KEY_STR_ENDTIME = "strEndtime";
+ public static final int DAY_SECOND = 86400;
+ public static final String MMDD = "MMdd";
+
+ public static long currentTimeMillis() {
+ return System.currentTimeMillis() / 1000;
+ }
+
+ /**
+ * 获取当前时间的时间戳
+ *
+ * @return int值
+ */
+ public static int getCurrentTimeIntValue() {
+ int sencends = (int) (System.currentTimeMillis() / 1000);
+ return sencends;
+ }
+
+ public static Date getCurrentDate(){
+ LocalDate localDate=LocalDate.now();
+ Instant inst3=Instant.from(localDate.atStartOfDay(ZoneId.systemDefault()));
+ Date date3=Date.from(inst3);
+
+ return date3;
+ }
+
+ /**
+ * 获取指定时间的 时间戳
+ *
+ * @param time 指定时间
+ * @param format 时间格式
+ * @return 时间戳
+ * @throws ParseException
+ */
+ public static int getAppointedTimeIntValue(String time, String format) throws ParseException {
+ // "yyyy-MM-dd HH:mm:ss"
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ Date date = f.parse(time);
+ return (int) (date.getTime() / 1000);
+
+ }
+
+ /**
+ * 获取指定时间的 时间戳
+ *
+ * @param time 指定时间
+ * @param format 时间格式
+ * @return 时间戳
+ * @throws ParseException
+ */
+ public static Date parseDate(String time, String format) throws ParseException {
+ // "yyyy-MM-dd HH:mm:ss"
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ Date date = f.parse(time);
+ return date;
+ }
+
+ /**
+ * 根据时间戳获取时间
+ *
+ * @param timeStamp 时间戳(int格式)
+ * @param format 返回时间格式
+ * @return
+ * @throws ParseException
+ */
+ public static Date getDateByTimeStamp(int timeStamp, String format) throws ParseException {
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ String d = f.format(((long) timeStamp) * 1000);
+ Date date = f.parse(d);
+ return date;
+ }
+
+ /**
+ * 根据时间戳获取时间
+ *
+ * @param timeStamp 时间戳(int格式)
+ * @param format 返回时间格式
+ * @return
+ * @throws ParseException
+ */
+ public static Date getDateByTimeStampOther(int timeStamp, String format){
+ try {
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ String d = f.format(((long) timeStamp) * 1000);
+ Date date = f.parse(d);
+ return date;
+ } catch (Exception e) {
+ throw new BusinessException("time convert error");
+ }
+ }
+
+ /**
+ * 根据时间戳获取时间字符串
+ *
+ * @param timeStamp 时间戳(int格式)
+ * @param format 返回时间格式
+ * @return string
+ * @throws ParseException
+ */
+ public static String getDateStringByTimeStamp(Integer timeStamp, String format) throws ParseException {
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ String d = "";
+ if (timeStamp != null) {
+ d = f.format(((long) timeStamp) * 1000);
+ }
+ return d;
+ }
+
+ /**
+ * 根据时间戳获取时间字符串
+ *
+ * @param timeStamp 时间戳(int格式)
+ * @param format 返回时间格式
+ * @return string
+ * @throws ParseException
+ */
+ public static String getStringByTimeStamp(Integer timeStamp, String format) {
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ String d = "";
+ try {
+ if (timeStamp != null) {
+ d = f.format(((long) timeStamp) * 1000);
+ }
+ }catch (Exception e){
+ throw new BusinessException("time convert error");
+ }
+ return d;
+ }
+
+
+ /**
+ * 格式化时间
+ *
+ * @param datetime
+ * @param format
+ * @return
+ */
+ public static String formatDate(Object datetime, String format) {
+ SimpleDateFormat f = new SimpleDateFormat(format);
+ if (datetime instanceof Date) {
+ return f.format((Date) datetime);
+ } else if (datetime instanceof Long) {
+ return f.format(new Date((Long) datetime));
+ } else {
+ throw new BusinessException("param datetime must be a Date or Long.");
+ }
+ }
+
+ /**
+ * 获得当天0点时间戳
+ *
+ * @param date
+ * @return int
+ */
+ public static int getTimesmorning(Date date) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(date);
+ cal.set(Calendar.HOUR_OF_DAY, 0);
+ cal.set(Calendar.SECOND, 0);
+ cal.set(Calendar.MINUTE, 0);
+ cal.set(Calendar.MILLISECOND, 0);
+ return (int) (cal.getTimeInMillis() / 1000);
+ }
+
+
+
+
+
+ /**
+ * 根据时间戳获取当月最晚时间
+ * @param timeStamp
+ * @return
+ */
+ public static int getMonthEndTime(int timeStamp){
+ Date date = new Date(timeStamp*1000L);
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(date);
+ cal.set(Calendar.DAY_OF_MONTH,cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+ cal.set(Calendar.HOUR_OF_DAY, 23);
+ cal.set(Calendar.SECOND, 59);
+ cal.set(Calendar.MINUTE, 59);
+ cal.set(Calendar.MILLISECOND, 999);
+ return (int) (cal.getTimeInMillis() / 1000);
+ }
+
+
+ /**
+ * 获得当天24点时间戳
+ *
+ * @param date
+ * @return int
+ */
+ public static int getTimesnight(Date date) {
+ Calendar cal = Calendar.getInstance();
+ cal.setTime(date);
+ cal.set(Calendar.HOUR_OF_DAY, 23);
+ cal.set(Calendar.SECOND, 59);
+ cal.set(Calendar.MINUTE, 59);
+ cal.set(Calendar.MILLISECOND, 999);
+ return (int) (cal.getTimeInMillis() / 1000);
+ }
+
+ /**
+ * 获取日期格式化字符串
+ *
+ * @param date
+ * @param format
+ * @return String
+ */
+ public static String formatDateToString(Date date, String format) {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ if (date == null) {
+ return "";
+ }
+ return sdf.format(date);
+ }
+
+ public static String foratterIntTime(Integer intTime) {
+ if (intTime == null || intTime <= 0) {
+ return "00:00";
+ }
+ int h = intTime / 60;
+ int m = intTime % 60;
+ String hh = h + "", mm = m + "";
+ if (hh.length() == 1) {
+ hh = "0" + h;
+ }
+ if (mm.length() == 1) {
+ mm = "0" + m;
+ }
+ return hh + ":" + mm;
+ }
+
+
+
+ /**
+ * 计算日期时间数值。strDateTime的数据请符合时间格式【"yyyy-MM-dd HH:mm:ss"】,数据前的0可以去掉 如果strDateTime没有年份,时间从00:00:00开始计算(忽略年份);
+ * 如果strDateTime有年份,strDateTime为截止时间; 格式化时例: --计算"8:00"分钟数 --计算"8:00:12"秒数 --计算截止"2015-12"月份数 --计算截止"2015-12-24
+ * 12:12:00"秒数 --其它类推....
+ *
+ * @param strDateTime
+ * @return 时间数
+ */
+ public static Integer foratterDateTime(String strDateTime) {
+ Integer resultIntTime = 0;
+ if (strDateTime == null) {
+ return resultIntTime;
+ } else {
+ strDateTime = strDateTime.trim();
+ }
+ SimpleDateFormat sdf = new SimpleDateFormat();
+ if ("".equals(strDateTime)) {
+ //获取当天截止当前时间的时间戳
+ } else if (strDateTime.indexOf("date") == 0) {//获取截止当前日其的时间戳,精确到天
+
+ } else if (strDateTime.indexOf("time") == 0) {//获取当天截止当前时间的时间
+ if (strDateTime.length() > 4) {
+ switch (strDateTime.toCharArray()[4]) {
+ case 'h':
+ case 'H':
+ sdf = new SimpleDateFormat("HH");
+ break;
+ case 'm':
+ case 'M':
+ sdf = new SimpleDateFormat("HH:mm");
+ break;
+ case 's':
+ sdf = new SimpleDateFormat("HH:mm:ss");
+ break;
+ case 'S':
+ sdf = new SimpleDateFormat("HH:mm:ss:SSS");
+ break;
+ }
+ strDateTime = sdf.format(new Date());
+ } else {
+ //默认当前时间秒数
+ sdf = new SimpleDateFormat("HH:mm:ss");
+ strDateTime = sdf.format(new Date());
+ }
+ resultIntTime = foratterDateTime(strDateTime);
+ } else if (strDateTime.indexOf("datetime") == 0) {//获取截止当前日其的时间戳,精确到秒
+
+ } else {
+ if (strDateTime.indexOf("-") > 0) {//有年份
+
+ } else if (strDateTime.indexOf("/") > 0) {//有年份
+
+ } else {//没有年份,只有时间
+ String[] strArrTime = strDateTime.split(":");
+ int strArrLenTime = strArrTime.length;
+ if (strArrLenTime == 1) {//时
+ resultIntTime = Integer.parseInt(strArrTime[0]);
+ } else if (strArrLenTime == 2) {//分
+ resultIntTime = Integer.parseInt(strArrTime[0]) * 60 + Integer.parseInt(strArrTime[1]);
+ } else if (strArrLenTime == 3) {//秒
+ resultIntTime = Integer.parseInt(strArrTime[0]) * 60 * 60 + Integer.parseInt(strArrTime[1]) * 60 + Integer.parseInt(strArrTime[2]);
+ } else {//不符合规范
+ resultIntTime = 0;
+ }
+ }
+ }
+ return resultIntTime;
+ }
+
+
+
+ /**
+ * 日期运算
+ *
+ * @param date 要进行运算的日期
+ * @param value value为正则往后,为负则往前
+ * @param field field取1加一年,取2加半年,取3加一季度,取4加一周,取5加一天
+ * @return 计算后的日期
+ */
+ public static Date gregorianCalendar(Date date, int value, int field) {
+ GregorianCalendar gc = new GregorianCalendar();
+ gc.setTime(date);
+ gc.add(field, value);
+ date = gc.getTime(); //这个时间就是日期往后推一天的结果
+ return date;
+ }
+
+ /**
+ * 为日期增加天数
+ *
+ * @param intDate 日期秒数
+ * @param day 天数,为正 则往后,为负 则往前
+ * @return
+ */
+ public static Integer addDay(Integer intDate, int day) {
+ Integer result = 0;
+ int oneDay = 24 * 60 * 60;
+ result = intDate + (day * oneDay);
+ return result;
+ }
+
+ public static Date addMonth(Date date, int month){
+
+ Calendar cld = Calendar.getInstance();
+ cld.setTime(date);
+ cld.add(Calendar.MONTH, month);
+
+ return cld.getTime();
+ }
+
+ /**
+ * 为日期增加天数
+ *
+ * @param date 日期
+ * @param day 天数,为正 则往后,为负 则往前
+ * @return
+ */
+ public static Integer addDay(Date date, int day) {
+ Integer intDate = (int) (date.getTime() / 1000);
+ Integer result = 0;
+ int oneDay = 24 * 60 * 60;
+ result = intDate + (day * oneDay);
+ return result;
+ }
+
+ /**
+ * 获取指定日期所在周的起始日期 参数为null时表示获取当前日期
+ *
+ * @param date
+ * @return
+ */
+ public static Integer getWeekBeginOfDate(Date date) {
+ //String[] weekOfDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
+ Integer beginDate = 0;
+ Calendar calendar = Calendar.getInstance();
+ if (date != null) {
+ calendar.setTime(date);
+ } else {
+ date = new Date();
+ }
+ int w = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+ if (w < 0) {
+ w = 0;
+ }
+ beginDate = addDay(date, -w);
+ return beginDate;
+ }
+
+ /**
+ * 获取指定日期所在周的起始日期 参数为null时表示获取当前日期
+ *
+ * @param date
+ * @return
+ */
+ public static Integer getWeekEndOfDate(Date date) {
+ //String[] weekOfDays = {"星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六"};
+ Integer endDate = 0;
+ Calendar calendar = Calendar.getInstance();
+ if (date != null) {
+ calendar.setTime(date);
+ } else {
+ date = new Date();
+ }
+ int w = calendar.get(Calendar.DAY_OF_WEEK) - 1;
+ if (w < 0) {
+ w = 0;
+ }
+ endDate = addDay(date, 6 - w);
+ return endDate;
+ }
+
+ //获得本周日0点时间
+ public static int getTimesWeekmorning() {
+ Calendar cal = Calendar.getInstance();
+ cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.SUNDAY);
+ return (int) (cal.getTimeInMillis() / 1000);
+ }
+
+ //获得本周日24点时间
+ public static int getTimesWeeknight() {
+ Calendar cal = Calendar.getInstance();
+ cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+ cal.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
+ return (int) ((cal.getTime().getTime() + (7 * 24 * 60 * 60 * 1000)) / 1000);
+ }
+
+ //获得本月第一天0点时间
+ public static int getTimesMonthmorning() {
+ Calendar cal = Calendar.getInstance();
+ cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+ cal.set(Calendar.DAY_OF_MONTH, cal.getActualMinimum(Calendar.DAY_OF_MONTH));
+ return (int) (cal.getTimeInMillis() / 1000);
+ }
+
+ //获得本月最后一天24点时间
+ public static int getTimesMonthnight() {
+ Calendar cal = Calendar.getInstance();
+ cal.set(cal.get(Calendar.YEAR), cal.get(Calendar.MONDAY), cal.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
+ cal.set(Calendar.DAY_OF_MONTH, cal.getActualMaximum(Calendar.DAY_OF_MONTH));
+ cal.set(Calendar.HOUR_OF_DAY, 24);
+ return (int) (cal.getTimeInMillis() / 1000);
+ }
+
+ public static String getMonthAndDay(Date date, String format) {
+ SimpleDateFormat sdf = new SimpleDateFormat(format);
+ if (date == null) {
+ return "";
+ }
+ return sdf.format(date);
+ }
+
+ public static Date timestampToDate(Integer timestamp){
+ if(timestamp == null){
+ return new Date();
+ }
+ return new Date(timestamp * 1000L);
+ }
+
+ /**
+ * 判断传入时间是否早于当天
+ * @param timestamp
+ * @return
+ */
+ public static Boolean timeEarlyThanToday(Integer timestamp){
+ if(timestamp == null){
+ return false;
+ }
+ return getTimesmorning(new Date()) > timestamp;
+ }
+
+ public static Boolean timeEarlyThanToday(Long timestampMillis){
+ if(timestampMillis == null){
+ return false;
+ }
+ return timeEarlyThanToday((int)(timestampMillis/1000));
+ }
+
+}
diff --git a/pom.xml b/pom.xml
index e0480e906ff24d8ad4493f542eccae24c17e4c69..0aa9a87f64b0a56c08f77225f7ca34c3ed0dc5d6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -262,6 +262,12 @@
jsoup
${jsoup.version}
+
+
+ com.google.zxing
+ javase
+ 3.3.3
+
@@ -280,27 +286,62 @@
pear-common
pear-entrance
- pear-modules
+ pear-modules
+ pear-client
-
- src/main/java
-
- **/*.xml
-
+ src/main/resources
+ true
- src/main/resources
+ src/main/java
- **/*
+ **/*.xml
+ **/*.json
+
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+ 1.8
+ 1.8
+ UTF-8
+
+
+
+
+ org.apache.maven.plugins
+ maven-surefire-plugin
+
+ true
+
+
+
+ org.apache.maven.plugins
+ maven-resources-plugin
+
+
+ ttf
+ jks
+ woff
+ woff2
+
+
+
+
@@ -316,4 +357,28 @@
+
+
+
+
+ dev
+
+
+ true
+
+
+
+ dev
+
+
+
+
+ prod
+
+
+ prod
+
+
+
+