添加团购后台管理

This commit is contained in:
Menethil
2018-08-08 03:17:25 +08:00
parent ba09316751
commit eec5e2227c
8 changed files with 867 additions and 0 deletions

View File

@@ -0,0 +1,176 @@
package org.linlinjava.litemall.admin.web;
import org.linlinjava.litemall.admin.annotation.LoginAdmin;
import org.linlinjava.litemall.core.util.JacksonUtil;
import org.linlinjava.litemall.core.util.ResponseUtil;
import org.linlinjava.litemall.core.validator.Order;
import org.linlinjava.litemall.core.validator.Sort;
import org.linlinjava.litemall.db.domain.LitemallGoods;
import org.linlinjava.litemall.db.domain.LitemallGroupon;
import org.linlinjava.litemall.db.domain.LitemallGrouponRules;
import org.linlinjava.litemall.db.service.LitemallGoodsService;
import org.linlinjava.litemall.db.service.LitemallGrouponRulesService;
import org.linlinjava.litemall.db.service.LitemallGrouponService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@RestController
@RequestMapping("/admin/groupon")
@Validated
public class AdminGrouponController {
@Autowired
private LitemallGrouponRulesService rulesService;
@Autowired
private LitemallGoodsService goodsService;
@Autowired
private LitemallGrouponService grouponService;
@GetMapping("/listRecord")
public Object listRecord(@LoginAdmin Integer adminId,
String grouponId,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer limit,
@Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) {
if (adminId == null) {
return ResponseUtil.unlogin();
}
List<LitemallGroupon> grouponList = grouponService.querySelective(grouponId, page, limit, sort, order);
int total = grouponService.countSelective(grouponId, page, limit, sort, order);
List<Map<String, Object>> records = new ArrayList<>();
for (LitemallGroupon groupon : grouponList) {
Map<String, Object> RecordData = new HashMap<>();
List<LitemallGroupon> subGrouponList = grouponService.queryJoiners(groupon.getId());
LitemallGrouponRules rules = rulesService.queryById(groupon.getRulesId());
LitemallGoods goods = goodsService.findById(rules.getGoodsId());
RecordData.put("groupon", groupon);
RecordData.put("subGroupons", subGrouponList);
RecordData.put("rules", rules);
RecordData.put("goods", goods);
records.add(RecordData);
}
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", records);
return ResponseUtil.ok(data);
}
@GetMapping("/list")
public Object list(@LoginAdmin Integer adminId,
String goodsId,
@RequestParam(defaultValue = "1") Integer page,
@RequestParam(defaultValue = "10") Integer limit,
@Sort @RequestParam(defaultValue = "add_time") String sort,
@Order @RequestParam(defaultValue = "desc") String order) {
if (adminId == null) {
return ResponseUtil.unlogin();
}
List<LitemallGrouponRules> rulesList = rulesService.querySelective(goodsId, page, limit, sort, order);
int total = rulesService.countSelective(goodsId, page, limit, sort, order);
Map<String, Object> data = new HashMap<>();
data.put("total", total);
data.put("items", rulesList);
return ResponseUtil.ok(data);
}
@PostMapping("/update")
public Object update(@LoginAdmin Integer adminId, @RequestBody String grouponRulesBody) {
if (adminId == null) {
return ResponseUtil.unlogin();
}
Integer id = JacksonUtil.parseInteger(grouponRulesBody, "id");
Integer goodsId = JacksonUtil.parseInteger(grouponRulesBody, "goodsId");
String discount = JacksonUtil.parseString(grouponRulesBody, "discount");
Integer discountMember = JacksonUtil.parseInteger(grouponRulesBody, "discountMember");
String expireTimeString = JacksonUtil.parseString(grouponRulesBody, "expireTime");
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime expireTime = LocalDateTime.parse(expireTimeString, df);
LitemallGoods goods = goodsService.findById(goodsId);
if (goods == null) {
return ResponseUtil.badArgumentValue();
}
LitemallGrouponRules grouponRules = rulesService.queryById(id);
if (grouponRules == null) {
return ResponseUtil.badArgumentValue();
}
grouponRules.setGoodsId(goodsId);
grouponRules.setDiscount(new BigDecimal(discount));
grouponRules.setDiscountMember(discountMember);
grouponRules.setGoodsName(goods.getName());
grouponRules.setExpireTime(expireTime);
grouponRules.setPicUrl(goods.getPicUrl());
rulesService.update(grouponRules);
return ResponseUtil.ok();
}
@PostMapping("/create")
public Object create(@LoginAdmin Integer adminId, @RequestBody String grouponRulesBody) {
if (adminId == null) {
return ResponseUtil.unlogin();
}
Integer goodsId = JacksonUtil.parseInteger(grouponRulesBody, "goodsId");
String discount = JacksonUtil.parseString(grouponRulesBody, "discount");
Integer discountMember = JacksonUtil.parseInteger(grouponRulesBody, "discountMember");
String expireTimeString = JacksonUtil.parseString(grouponRulesBody, "expireTime");
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime expireTime = LocalDateTime.parse(expireTimeString, df);
LitemallGoods goods = goodsService.findById(goodsId);
if (goods == null) {
return ResponseUtil.badArgumentValue();
}
LitemallGrouponRules grouponRules = new LitemallGrouponRules();
grouponRules.setGoodsId(goodsId);
grouponRules.setDiscount(new BigDecimal(discount));
grouponRules.setDiscountMember(discountMember);
grouponRules.setAddTime(LocalDateTime.now());
grouponRules.setGoodsName(goods.getName());
grouponRules.setExpireTime(expireTime);
grouponRules.setPicUrl(goods.getPicUrl());
rulesService.createRules(grouponRules);
return ResponseUtil.ok();
}
@PostMapping("/delete")
public Object delete(@LoginAdmin Integer adminId, @RequestBody String body) {
if (adminId == null) {
return ResponseUtil.unlogin();
}
Integer id = JacksonUtil.parseInteger(body, "id");
rulesService.delete(id);
return ResponseUtil.ok();
}
}