diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java new file mode 100644 index 0000000..2d7c1d9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.dao.ScoreMapper; +import com.casic.missiles.modular.system.service.IScoreService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 积分记录 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class ScoreServiceImpl extends ServiceImpl implements IScoreService { + + @Override + public int getRemain(Long memberId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("member_id", memberId); + query.orderBy("ts", false); + query.last("limit 1"); + List scoreList = this.baseMapper.selectList(query); + if (ToolUtil.isNotEmpty(scoreList)) { + return scoreList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectList(Long id, String beginTime, String endTime) { + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(id)) { + query.eq("member_id", id); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List scoreList = this.baseMapper.selectList(query); + return scoreList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java new file mode 100644 index 0000000..2d7c1d9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.dao.ScoreMapper; +import com.casic.missiles.modular.system.service.IScoreService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 积分记录 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class ScoreServiceImpl extends ServiceImpl implements IScoreService { + + @Override + public int getRemain(Long memberId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("member_id", memberId); + query.orderBy("ts", false); + query.last("limit 1"); + List scoreList = this.baseMapper.selectList(query); + if (ToolUtil.isNotEmpty(scoreList)) { + return scoreList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectList(Long id, String beginTime, String endTime) { + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(id)) { + query.eq("member_id", id); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List scoreList = this.baseMapper.selectList(query); + return scoreList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java new file mode 100644 index 0000000..0fe9d8b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java @@ -0,0 +1,82 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.dao.WastebinMapper; +import com.casic.missiles.modular.system.service.IWastebinService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class WastebinServiceImpl extends ServiceImpl implements IWastebinService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page,String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectPage(page,query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + + @Override + public List selectList(String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectList(query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java new file mode 100644 index 0000000..2d7c1d9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.dao.ScoreMapper; +import com.casic.missiles.modular.system.service.IScoreService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 积分记录 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class ScoreServiceImpl extends ServiceImpl implements IScoreService { + + @Override + public int getRemain(Long memberId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("member_id", memberId); + query.orderBy("ts", false); + query.last("limit 1"); + List scoreList = this.baseMapper.selectList(query); + if (ToolUtil.isNotEmpty(scoreList)) { + return scoreList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectList(Long id, String beginTime, String endTime) { + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(id)) { + query.eq("member_id", id); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List scoreList = this.baseMapper.selectList(query); + return scoreList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java new file mode 100644 index 0000000..0fe9d8b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java @@ -0,0 +1,82 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.dao.WastebinMapper; +import com.casic.missiles.modular.system.service.IWastebinService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class WastebinServiceImpl extends ServiceImpl implements IWastebinService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page,String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectPage(page,query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + + @Override + public List selectList(String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectList(query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..7c38eba --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.util; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + /** + * 获取当年的第一天 + * + * @return + */ + public static Date getCurrYearFirst() { + Calendar currCal = Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year) { + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java new file mode 100644 index 0000000..2d7c1d9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.dao.ScoreMapper; +import com.casic.missiles.modular.system.service.IScoreService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 积分记录 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class ScoreServiceImpl extends ServiceImpl implements IScoreService { + + @Override + public int getRemain(Long memberId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("member_id", memberId); + query.orderBy("ts", false); + query.last("limit 1"); + List scoreList = this.baseMapper.selectList(query); + if (ToolUtil.isNotEmpty(scoreList)) { + return scoreList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectList(Long id, String beginTime, String endTime) { + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(id)) { + query.eq("member_id", id); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List scoreList = this.baseMapper.selectList(query); + return scoreList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java new file mode 100644 index 0000000..0fe9d8b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java @@ -0,0 +1,82 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.dao.WastebinMapper; +import com.casic.missiles.modular.system.service.IWastebinService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class WastebinServiceImpl extends ServiceImpl implements IWastebinService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page,String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectPage(page,query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + + @Override + public List selectList(String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectList(query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..7c38eba --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.util; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + /** + * 获取当年的第一天 + * + * @return + */ + public static Date getCurrYearFirst() { + Calendar currCal = Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year) { + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 69f7605..2759769 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -65,6 +65,19 @@ casic-server ${pro.version} + + + com.casic + casic-cache-redis + ${extension.version} + + + + org.springframework.session + spring-session + compile + + org.springframework.boot diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java new file mode 100644 index 0000000..2d7c1d9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.dao.ScoreMapper; +import com.casic.missiles.modular.system.service.IScoreService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 积分记录 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class ScoreServiceImpl extends ServiceImpl implements IScoreService { + + @Override + public int getRemain(Long memberId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("member_id", memberId); + query.orderBy("ts", false); + query.last("limit 1"); + List scoreList = this.baseMapper.selectList(query); + if (ToolUtil.isNotEmpty(scoreList)) { + return scoreList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectList(Long id, String beginTime, String endTime) { + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(id)) { + query.eq("member_id", id); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List scoreList = this.baseMapper.selectList(query); + return scoreList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java new file mode 100644 index 0000000..0fe9d8b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java @@ -0,0 +1,82 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.dao.WastebinMapper; +import com.casic.missiles.modular.system.service.IWastebinService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class WastebinServiceImpl extends ServiceImpl implements IWastebinService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page,String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectPage(page,query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + + @Override + public List selectList(String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectList(query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..7c38eba --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.util; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + /** + * 获取当年的第一天 + * + * @return + */ + public static Date getCurrYearFirst() { + Calendar currCal = Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year) { + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 69f7605..2759769 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -65,6 +65,19 @@ casic-server ${pro.version}
+ + + com.casic + casic-cache-redis + ${extension.version} + + + + org.springframework.session + spring-session + compile + + org.springframework.boot diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 08ec785..720d7a8 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,18 +3,25 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://111.198.10.15:11102/casic_system?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/casic_smartcity_dcms_cr?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root password: Casic203! initial-size: 2 min-idle: 1 jms: - pub-sub-domain: true -# session: -# store-type: redis + pub-sub-domain: true + session: + store-type: redis + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + casic: # kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken + spring-session-open: true #开启spring session logging: level.root: info level.com.casic: debug diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java deleted file mode 100644 index 5a00c42..0000000 --- a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/DemoController.java +++ /dev/null @@ -1,29 +0,0 @@ -package com.casic.missiles.modular.system.controller; - -import com.casic.missiles.core.base.response.ResponseData; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.ResponseBody; -import org.springframework.web.bind.annotation.RestController; - -/** - * @ClassName DemoController - * @Description TODO - * @Author lenovo - * @Date 2020/6/13 15:38 - * @Version 1.0 - */ -@RestController -@RequestMapping("/demo") -public class DemoController { - /** - * 获取mockToken - */ - @PostMapping("/list") - @ResponseBody - public Object list(){ - return ResponseData.success(); - } - - -} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java new file mode 100644 index 0000000..a8ce35e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/GarbageBagsController.java @@ -0,0 +1,92 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.util.DateUtils; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; + +import java.text.ParseException; +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.service.IGarbageBagsService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:37:35 + */ +@Controller +@RequestMapping("/garbageBag") +public class GarbageBagsController extends BaseController { + + + @Autowired + private IGarbageBagsService garbageBagsService; + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String type, String beginTime, String endTime) { + Page page = new PageFactory().defaultPage(); + List garbageBagsList = garbageBagsService.selectPageList(page, type, beginTime, endTime); + page.setRecords(garbageBagsList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 垃圾袋入库 + */ + @RequestMapping(value = "/inbound") + @ResponseBody + public Object add(Integer num, String useType, String recycable) { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("1"); + garbageBags.setRemain(remain + num); + garbageBags.setUseType(useType); + garbageBags.setRecyclable(recycable); + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } + + /** + * 垃圾袋出库 + */ + @RequestMapping(value = "/outbound") + @ResponseBody + public Object delete(Integer num, String useType, String useTime, String useArea, String recycable) throws ParseException { + num = num == null ? 0 : num; + int remain = garbageBagsService.getRemain(); + if (remain < num) { + return ResponseData.error("垃圾袋库存不足,当前库存:" + remain); + } + + GarbageBags garbageBags = new GarbageBags(); + garbageBags.setType("2"); + garbageBags.setRemain(remain - num); + garbageBags.setUseType(useType); + garbageBags.setUseArea(useArea); + garbageBags.setRecyclable(recycable); + + if (StringUtils.isNotEmpty(useTime)) { + garbageBags.setUseTime(DateUtils.sdf4.parse(useTime)); + } + garbageBagsService.insert(garbageBags); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java new file mode 100644 index 0000000..1daf08d --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/MemberController.java @@ -0,0 +1,91 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:10 + */ +@Controller +@RequestMapping("/member") +public class MemberController extends BaseController { + + + @Autowired + private IMemberService memberService; + + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords) { + + Page page = new PageFactory().defaultPage(); + List memberList = memberService.selectPageList(page, keywords); + page.setRecords(memberList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Member member) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("tel", member.getTel()); + query.eq("del_flag", "0"); + if (this.memberService.selectCount(query) > 0) { + return ResponseData.error("手机号" + member.getTel() + "已注册"); + } + + memberService.insert(member); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List memberList = memberService.selectBatchIds(ids); + memberList.forEach(member -> { + member.setDelFlag(System.currentTimeMillis() + ""); + }); + memberService.updateBatchById(memberList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Member member) { + + memberService.updateById(member); + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java new file mode 100644 index 0000000..d35c183 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/ScoreController.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.service.IMemberService; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; + +import java.util.List; + +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.service.IScoreService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:20 + */ +@Controller +@RequestMapping("/member") +public class ScoreController extends BaseController { + + + @Autowired + private IScoreService scoreService; + + @Autowired + private IMemberService memberService; + + + /** + * 某用户积分记录查询(不分页) + */ + @RequestMapping(value = "/scoreDetail") + @ResponseBody + public Object list(Long id, String beginTime, String endTime) { + List wastebinList = scoreService.selectList(id, beginTime, endTime); + return new SuccessResponseData(wastebinList); + } + + /** + * 新增 + */ + @RequestMapping(value = "/addScore") + @ResponseBody + public Object add(Score score) { + + int remain = scoreService.getRemain(score.getMemberId()); + //扣除积分 + if ("2".equals(score.getType())) { + + if (remain < score.getScore()) { + return ResponseData.error("剩余积分不足,无法扣除,剩余积分:" + remain); + } + score.setRemain(remain - score.getScore()); + } else { + score.setRemain(remain + score.getScore()); + } + scoreService.insert(score); + + Member member = new Member(); + member.setId(score.getMemberId()); + member.setScore(score.getRemain()); + memberService.updateById(member); + + return ResponseData.success(); + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java new file mode 100644 index 0000000..f6d90a6 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/controller/WastebinController.java @@ -0,0 +1,113 @@ +package com.casic.missiles.modular.system.controller; + +import com.casic.missiles.core.base.controller.BaseController; +import com.casic.missiles.core.base.response.ResponseData; +import com.casic.missiles.core.base.response.SuccessResponseData; +import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.beans.factory.annotation.Autowired; +import com.baomidou.mybatisplus.plugins.Page; +import com.baomidou.mybatisplus.mapper.EntityWrapper; + +import java.util.List; + +import com.casic.missiles.core.common.constant.factory.PageFactory; +import org.springframework.web.bind.annotation.RequestParam; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.service.IWastebinService; + +/** + * 控制器 + * + * @author gwq + * @Date 2021-05-06 16:38:27 + */ +@Controller +@RequestMapping("/wastebin") +public class WastebinController extends BaseController { + + + @Autowired + private IWastebinService wastebinService; + + + /** + * 获取列表 + */ + @RequestMapping(value = "/list") + @ResponseBody + public Object list(String keywords, String type, String isClassification, String position) { + List wastebinList = wastebinService.selectList(keywords, type, isClassification, position); + return new SuccessResponseData(wastebinList); + + } + + /** + * 获取分页列表 + */ + @RequestMapping(value = "/listPage") + @ResponseBody + public Object listPage(String keywords, String type, String isClassification, String position) { + Page page = new PageFactory().defaultPage(); + List wastebinList = wastebinService.selectPageList(page, keywords, type, isClassification, position); + page.setRecords(wastebinList); + return new SuccessResponseData(super.packForBT(page)); + } + + /** + * 新增 + */ + @RequestMapping(value = "/add") + @ResponseBody + public Object add(Wastebin wastebin) { + + //若已存在提示 + EntityWrapper query = new EntityWrapper<>(); + query.eq("code", wastebin.getCode()); + query.eq("del_flag", "0"); + if (this.wastebinService.selectCount(query) > 0) { + return ResponseData.error("垃圾桶编号" + wastebin.getCode() + "已存在"); + } + + wastebinService.insert(wastebin); + return ResponseData.success(); + } + + /** + * 批量删除 + */ + @RequestMapping(value = "/delete") + @ResponseBody + public Object delete(@RequestParam("ids") List ids) { + List wastebinList = wastebinService.selectBatchIds(ids); + wastebinList.forEach(wastebin -> { + wastebin.setDelFlag(System.currentTimeMillis() + ""); + }); + wastebinService.updateBatchById(wastebinList); + return ResponseData.success(); + } + + /** + * 修改 + */ + @RequestMapping(value = "/update") + @ResponseBody + public Object update(Wastebin wastebin) { + wastebinService.updateById(wastebin); + return ResponseData.success(); + } + +// /** +// * 详情 +// */ +// @RequestMapping(value = "/detail/{bizWastebinId}") +// @ResponseBody +// public Object detail(@PathVariable("bizWastebinId") String bizWastebinId) { +// ResultData resultData = new ResultData(); +// resultData.setCode(200); +// resultData.setMessage("查询详情成功"); +// resultData.setData(bizWastebinService.selectById(bizWastebinId)); +// return resultData; +// } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java new file mode 100644 index 0000000..054ba0e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/GarbageBagsMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 垃圾袋 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface GarbageBagsMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java new file mode 100644 index 0000000..7b0db89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/MemberMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 会员 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface MemberMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java new file mode 100644 index 0000000..20251ed --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/ScoreMapper.java @@ -0,0 +1,16 @@ +package com.casic.missiles.modular.system.dao; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.mapper.BaseMapper; + +/** + *

+ * 积分记录 Mapper 接口 + *

+ * + * @author stylefeng123 + * @since 2021-05-06 + */ +public interface ScoreMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java new file mode 100644 index 0000000..27a2ea3 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/WastebinMapper.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.dao; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.datascope.DataScope; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +/** + *

+ * 垃圾桶 Mapper 接口 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface WastebinMapper extends BaseMapper { + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml new file mode 100644 index 0000000..027cabe --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/GarbageBagsMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + id, type, remain, use_time AS useTime, use_type AS useType, use_area AS useArea, recyclable, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml new file mode 100644 index 0000000..9c21202 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/MemberMapper.xml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + id, name, sex, tel, birth, notes, score, create_time AS createTime, update_time AS updateTime + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml new file mode 100644 index 0000000..45808fc --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/ScoreMapper.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + id, member_id AS memberId, type, score, remain, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml new file mode 100644 index 0000000..df43d15 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/dao/mapping/WastebinMapper.xml @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + id, code, name, type, is_classification AS isClassification, road, area, street, position, service_people AS servicePeople, collect_company AS collectCompany, collect_car AS collectCar, collect_frequency AS collectFrequency, lng, lat, photo, responsible_person AS responsiblePerson, responsible_person_tel AS responsiblePersonTel, notes, ts + + + diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java new file mode 100644 index 0000000..5f96c96 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/GarbageBags.java @@ -0,0 +1,73 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾袋 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_garbage_bags") +public class GarbageBags extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 记录类型(1:入库,2:出库) + */ + private String type; + /** + * 当前库存 + */ + private Integer remain; + /** + * 使用时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("use_time") + private Date useTime; + /** + * 使用类型 + */ + @TableField("use_type") + private String useType; + /** + * 使用区域 + */ + @TableField("use_area") + private String useArea; + /** + * 回收情况(可回收,不可回收) + */ + private String recyclable; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java new file mode 100644 index 0000000..bc768c0 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Member.java @@ -0,0 +1,89 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +/** + *

+ * 会员 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_member") +public class Member extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 姓名 + */ + private String name; + /** + * 性别 + */ + private String sex; + /** + * 性别名称 + */ + @TableField(exist = false) + private String sexName; + /** + * 手机号 + */ + private String tel; + /** + * 生日 + */ + @DateTimeFormat(pattern="yyyy-MM-dd") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd") + private Date birth; + /** + * 备注 + */ + private String notes; + /** + * 当前积分 + */ + private Integer score; + /** + * 会员创建时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("create_time") + private Date createTime; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + @TableField("update_time") + private Date updateTime; + + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java new file mode 100644 index 0000000..3fad54a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Score.java @@ -0,0 +1,66 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.enums.IdType; +import java.util.Date; +import com.baomidou.mybatisplus.annotations.TableId; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 积分记录 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_score") +public class Score extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 自增主键 + */ + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + /** + * 用户id + */ + @TableField("member_id") + private Long memberId; + /** + * 积分类型(1:增加积分,2扣除积分) + */ + private String type; + /** + * 积分数 + */ + private Integer score; + /** + * 剩余积分数 + */ + private Integer remain; + /** + * 积分描述 + */ + private String content; + /** + * 记录时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + + @Override + protected Serializable pkVal() { + return this.id; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java new file mode 100644 index 0000000..bc4d054 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/model/Wastebin.java @@ -0,0 +1,130 @@ +package com.casic.missiles.modular.system.model; + +import java.io.Serializable; +import java.util.Date; + +import com.alibaba.fastjson.annotation.JSONField; +import com.baomidou.mybatisplus.annotations.TableField; +import com.baomidou.mybatisplus.activerecord.Model; +import com.baomidou.mybatisplus.annotations.TableName; +import com.casic.missiles.core.base.json.DateDeserializer; +import lombok.Data; + +/** + *

+ * 垃圾桶 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Data +@TableName("casic_smartcity_garbage.biz_wastebin") +public class Wastebin extends Model { + + private static final long serialVersionUID = 1L; + + /** + * 主键 + */ + private Long id; + /** + * 垃圾桶编号 + */ + private String code; + /** + * 垃圾桶名称 + */ + private String name; + /** + * 类别,字典值 (厨余、可回收等) + */ + private String type; + /** + * 类别名称 + */ + @TableField(exist = false) + private String typeName; + /** + * 是否分类箱(0不是,1是) + */ + @TableField("is_classification") + private Integer isClassification; + /** + * 小区/路段 + */ + private String road; + /** + * 区域 + */ + private String area; + /** + * 街道 + */ + private String street; + /** + * 位置 + */ + private String position; + /** + * 服务人口 + */ + @TableField("service_people") + private String servicePeople; + /** + * 当前收集单位 + */ + @TableField("collect_company") + private String collectCompany; + /** + * 当前收集车辆 + */ + @TableField("collect_car") + private String collectCar; + /** + * 收集频率 + */ + @TableField("collect_frequency") + private String collectFrequency; + /** + * 经度 + */ + private String lng; + /** + * 纬度 + */ + private String lat; + /** + * 照片 + */ + private String photo; + /** + * 责任人 + */ + @TableField("responsible_person") + private String responsiblePerson; + /** + * 责任人电话 + */ + @TableField("responsible_person_tel") + private String responsiblePersonTel; + /** + * 备注 + */ + private String notes; + /** + * 记录更新时间 + */ + @JSONField(serializeUsing = DateDeserializer.class) + private Date ts; + /** + * 删除标记 + */ + @TableField("del_flag") + private String delFlag; + + @Override + protected Serializable pkVal() { + return this.id; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java new file mode 100644 index 0000000..3870d11 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IGarbageBagsService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IGarbageBagsService extends IService { + int getRemain(); + + List selectPageList(Page page, String type, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java new file mode 100644 index 0000000..dfe2b89 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IMemberService.java @@ -0,0 +1,20 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Member; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 会员 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IMemberService extends IService { + + List selectPageList(Page page, String keywords); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java new file mode 100644 index 0000000..9baac3a --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IScoreService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.casic.missiles.modular.system.model.Score; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 积分记录 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IScoreService extends IService { + + int getRemain(Long memberId); + + List selectList(Long id, String beginTime, String endTime); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java new file mode 100644 index 0000000..f19135b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/IWastebinService.java @@ -0,0 +1,21 @@ +package com.casic.missiles.modular.system.service; + +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.modular.system.model.Wastebin; +import com.baomidou.mybatisplus.service.IService; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +public interface IWastebinService extends IService { + List selectPageList(Page page, String keywords, String type, String isClassification, String position); + + List selectList(String keywords, String type, String isClassification, String position); +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java new file mode 100644 index 0000000..e5d785e --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/GarbageBagsServiceImpl.java @@ -0,0 +1,54 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.GarbageBags; +import com.casic.missiles.modular.system.dao.GarbageBagsMapper; +import com.casic.missiles.modular.system.service.IGarbageBagsService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾袋 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class GarbageBagsServiceImpl extends ServiceImpl implements IGarbageBagsService { + + @Override + public int getRemain() { + EntityWrapper query = new EntityWrapper<>(); + query.orderBy("ts",false); + query.last("limit 1"); + List garbageBagsList = this.baseMapper.selectList(query); + if(ToolUtil.isNotEmpty(garbageBagsList)){ + return garbageBagsList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectPageList(Page page, String type, String beginTime, String endTime) { + EntityWrapper query = new EntityWrapper<>(); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List garbageBagsList = this.baseMapper.selectPage(page,query); + return garbageBagsList; + } +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java new file mode 100644 index 0000000..d1ba9db --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/MemberServiceImpl.java @@ -0,0 +1,47 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Member; +import com.casic.missiles.modular.system.dao.MemberMapper; +import com.casic.missiles.modular.system.service.IMemberService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 会员 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class MemberServiceImpl extends ServiceImpl implements IMemberService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page, String keywords) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("tel",keywords).or().like("name",keywords); + } + + List memberList = this.baseMapper.selectPage(page,query); + memberList.forEach(member -> { + member.setSexName(permissionService.getDictNameByCode("sysSex",member.getSex())); + }); + + return memberList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java new file mode 100644 index 0000000..2d7c1d9 --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/ScoreServiceImpl.java @@ -0,0 +1,56 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.casic.missiles.core.util.ToolUtil; +import com.casic.missiles.modular.system.model.Score; +import com.casic.missiles.modular.system.dao.ScoreMapper; +import com.casic.missiles.modular.system.service.IScoreService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 积分记录 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class ScoreServiceImpl extends ServiceImpl implements IScoreService { + + @Override + public int getRemain(Long memberId) { + EntityWrapper query = new EntityWrapper<>(); + query.eq("member_id", memberId); + query.orderBy("ts", false); + query.last("limit 1"); + List scoreList = this.baseMapper.selectList(query); + if (ToolUtil.isNotEmpty(scoreList)) { + return scoreList.get(0).getRemain(); + } + return 0; + } + + @Override + public List selectList(Long id, String beginTime, String endTime) { + + EntityWrapper query = new EntityWrapper<>(); + if (ToolUtil.isNotEmpty(id)) { + query.eq("member_id", id); + } + if (StringUtils.isNotEmpty(beginTime)) { + query.ge("ts",beginTime); + } + if (StringUtils.isNotEmpty(endTime)) { + query.le("ts",endTime); + } + + List scoreList = this.baseMapper.selectList(query); + return scoreList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java new file mode 100644 index 0000000..0fe9d8b --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/system/service/impl/WastebinServiceImpl.java @@ -0,0 +1,82 @@ +package com.casic.missiles.modular.system.service.impl; + +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.baomidou.mybatisplus.plugins.Page; +import com.casic.missiles.core.common.service.ICommonPermissionService; +import com.casic.missiles.modular.system.model.Wastebin; +import com.casic.missiles.modular.system.dao.WastebinMapper; +import com.casic.missiles.modular.system.service.IWastebinService; +import com.baomidou.mybatisplus.service.impl.ServiceImpl; +import org.apache.commons.lang.StringUtils; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + *

+ * 垃圾桶 服务实现类 + *

+ * + * @author gwq + * @since 2021-05-06 + */ +@Service +public class WastebinServiceImpl extends ServiceImpl implements IWastebinService { + + @Autowired + private ICommonPermissionService permissionService; + + @Override + public List selectPageList(Page page,String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectPage(page,query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + + @Override + public List selectList(String keywords, String type,String isClassification,String position) { + + EntityWrapper query = new EntityWrapper<>(); + query.eq("del_flag",0); + if (StringUtils.isNotEmpty(type)) { + query.eq("type",type); + } + if (StringUtils.isNotEmpty(isClassification)) { + query.eq("is_classification",isClassification); + } + if (StringUtils.isNotEmpty(position)) { + query.like("position",position); + } + if (StringUtils.isNotEmpty(keywords)) { + query.andNew().like("code",keywords).or().like("name",keywords); + } + + List wastebinList = this.baseMapper.selectList(query); + wastebinList.forEach(wastebin -> { + wastebin.setTypeName(permissionService.getDictNameByCode("wastebinType",wastebin.getType())); + }); + + return wastebinList; + } + +} diff --git a/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java new file mode 100644 index 0000000..7c38eba --- /dev/null +++ b/casic-server/src/main/java/com/casic/missiles/modular/util/DateUtils.java @@ -0,0 +1,42 @@ +package com.casic.missiles.modular.util; + +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; + +/** + * Created by Administrator on 2015/2/25. + */ +public class DateUtils { + public static SimpleDateFormat sdf_day = new SimpleDateFormat("yyyy-MM-dd"); + public static SimpleDateFormat sdf_day_time = new SimpleDateFormat("yyyyMMddhhmmss"); + public static final SimpleDateFormat sdf4 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + public static final SimpleDateFormat sdf5 = new SimpleDateFormat("HH:mm:ss"); + + + /** + * 获取当年的第一天 + * + * @return + */ + public static Date getCurrYearFirst() { + Calendar currCal = Calendar.getInstance(); + int currentYear = currCal.get(Calendar.YEAR); + return getYearFirst(currentYear); + } + + + /** + * 获取某年第一天日期 + * + * @param year 年份 + * @return Date + */ + public static Date getYearFirst(int year) { + Calendar calendar = Calendar.getInstance(); + calendar.clear(); + calendar.set(Calendar.YEAR, year); + Date currYearFirst = calendar.getTime(); + return currYearFirst; + } +} diff --git a/casic-web/pom.xml b/casic-web/pom.xml index 69f7605..2759769 100644 --- a/casic-web/pom.xml +++ b/casic-web/pom.xml @@ -65,6 +65,19 @@ casic-server ${pro.version}
+ + + com.casic + casic-cache-redis + ${extension.version} + + + + org.springframework.session + spring-session + compile + + org.springframework.boot diff --git a/casic-web/src/main/resources/config/application-dev.yml b/casic-web/src/main/resources/config/application-dev.yml index 08ec785..720d7a8 100644 --- a/casic-web/src/main/resources/config/application-dev.yml +++ b/casic-web/src/main/resources/config/application-dev.yml @@ -3,18 +3,25 @@ ################### spring配置 ################### spring: datasource: - url: jdbc:mysql://111.198.10.15:11102/casic_system?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull + url: jdbc:mysql://111.198.10.15:11102/casic_smartcity_dcms_cr?autoReconnect=true&useUnicode=true&characterEncoding=utf8&useSSL=false&allowMultiQueries=true&zeroDateTimeBehavior=convertToNull username: root password: Casic203! initial-size: 2 min-idle: 1 jms: - pub-sub-domain: true -# session: -# store-type: redis + pub-sub-domain: true + session: + store-type: redis + redis: + host: 111.198.10.15 + port: 11412 + password: ew5T4K3#203lwh + redisValueSerializer: org.springframework.data.redis.serializer.JdkSerializationRedisSerializer + casic: # kaptcha-open: false #是否开启登录时验证码 (true/false) nologin-urls: /user/login,/user/appLogin,/kaptcha/base64,/config/baseConfig,/route/mockToken + spring-session-open: true #开启spring session logging: level.root: info level.com.casic: debug diff --git a/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx b/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx deleted file mode 100644 index 62df0d4..0000000 --- a/casic-web/src/main/resources/config/temp/sluicewell_template.xlsx +++ /dev/null Binary files differ