package com.dsh.guns.modular.system.controller.general; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.dsh.course.feignClient.activity.UserActivityClient; import com.dsh.course.feignClient.activity.model.LargeCouponUpdateReq; import com.dsh.course.feignClient.activity.model.UserLargeCouponReq; import com.dsh.course.feignClient.order.OrderPrivateCarClient; import com.dsh.course.feignClient.order.model.LargeListReq; import com.dsh.course.feignClient.order.model.LargerAllReq; import com.dsh.course.mapper.SysCouponRecordMapper; import com.dsh.guns.config.UserExt; import com.dsh.guns.core.base.controller.BaseController; import com.dsh.guns.core.support.HttpKit; import com.dsh.guns.core.util.SinataUtil; import com.dsh.guns.modular.system.model.*; import com.dsh.guns.modular.system.service.ITAuditRecordService; import com.dsh.guns.modular.system.service.ITUserLargeService; import com.dsh.guns.modular.system.util.DateUtil; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** * 大额优惠券 * * @author fengshuonan * @Date 2020-06-05 14:31:28 */ @Controller @RequestMapping("/tUserLarge") public class TUserLargeController extends BaseController { private String PREFIX = "/system/tUserLargeCoupon/"; @Autowired private ITUserLargeService userLargeService; @Autowired private UserActivityClient activityClient; @Resource private SysCouponRecordMapper sysCouponRecordMapper; @Autowired private OrderPrivateCarClient orderPrivateCarClient; @Autowired private ITAuditRecordService recordService; /** * 跳转到车辆类型管理首页 */ @RequestMapping("") public String index(Model model) { model.addAttribute("language", UserExt.getLanguage()); model.addAttribute("companyId", UserExt.getUser().getObjectId()); return PREFIX + "tUserLargeCoupon.html"; } /** * 跳转到添加车辆类型管理 */ @RequestMapping("/tUserLarge_add") public String tCarModelAdd(Model model) { model.addAttribute("language", UserExt.getLanguage()); return PREFIX + "tUserLargeCoupon_add.html"; } @RequestMapping("/tUserLarge_audit/{tCarModelId}") public String tCarModelAudit(@PathVariable Integer tCarModelId,Model model) { model.addAttribute("language", UserExt.getLanguage()); model.addAttribute("id", tCarModelId); return PREFIX + "immediately.html"; } /** * 跳转到修改车辆类型管理 */ @RequestMapping("/tUserLarge_update/{tCarModelId}") public String tCarModelUpdate(@PathVariable Integer tCarModelId, Model model) { TUserLargeCoupon tUserLargeCoupon = activityClient.getUserLargeCouponFromId(tCarModelId); model.addAttribute("item",tUserLargeCoupon); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); model.addAttribute("language",UserExt.getLanguage()); model.addAttribute("sTime",format.format(tUserLargeCoupon.getStartTime())); model.addAttribute("eTime",format.format(tUserLargeCoupon.getEndTime())); return PREFIX + "tUserLargeCoupon_edit.html"; } @RequestMapping("/tUserLarge_all") public String tUserLargeAll(Model model) { model.addAttribute("language",UserExt.getLanguage()); // List collect = sysCouponRecordMapper.selectList(new LambdaQueryWrapper().eq(SysCouponRecord::getCouponType, 3)).stream().map(SysCouponRecord::getId).collect(Collectors.toList()); List ids =activityClient.getLargeCouponIds(); Map map = new HashMap<>(); if(ids.size()>0){ map = orderPrivateCarClient.tUserLargeAll(new LargerAllReq(ids,null,null)); }else { map.put("allMoney",0); map.put("num",0); map.put("userNum",0); map.put("money",0); } model.addAttribute("map",map); return PREFIX + "tUserLargeCoupon_all.html"; } /** * 获取车辆类型管理列表 */ @RequestMapping(value = "/list") @ResponseBody public Object list(String createTime, String name,Integer status) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(createTime)){ String[] timeArray = createTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } HttpServletRequest request = HttpKit.getRequest(); int limit = Integer.valueOf(request.getParameter("limit")); //每页多少条数据 int offset = Integer.valueOf(request.getParameter("offset")); // 远程activity Page> userLargeCoupons = activityClient.getUserLargeCoupon(new UserLargeCouponReq(limit,offset, beginTime, endTime, name, status,UserExt.getUser().getObjectId())); return super.packForBT(userLargeCoupons); } /** * 获取车辆类型管理列表 */ @RequestMapping(value = "/largeList") @ResponseBody public Object list(String useTime, String user,String phone,String couponName ,String number) { String beginTime = null; String endTime = null; if (SinataUtil.isNotEmpty(useTime)){ String[] timeArray = useTime.split(" - "); beginTime = timeArray[0]; endTime = timeArray[1]; } HttpServletRequest request = HttpKit.getRequest(); int limit = Integer.valueOf(request.getParameter("limit")); //每页多少条数据 int offset = Integer.valueOf(request.getParameter("offset")); LambdaQueryWrapper like = new LambdaQueryWrapper().eq(SysCouponRecord::getCouponType, 3); if(Objects.nonNull(couponName)){ like.like(SysCouponRecord::getName, couponName); } List sysCouponRecords = sysCouponRecordMapper.selectList(like); Page> userLargeCoupons =new Page<>(); if(sysCouponRecords.size()>0) { List ids = sysCouponRecords.stream().map(SysCouponRecord::getId).collect(Collectors.toList()); // 远程activity userLargeCoupons = orderPrivateCarClient.largeList(new LargeListReq(limit, offset, beginTime, endTime, user, phone, number,ids)); List> records = userLargeCoupons.getRecords(); for (Map record : records) { for (SysCouponRecord sysCouponRecord : sysCouponRecords) { if(record.get("cId")!=null) { String couponId = record.get("cId").toString(); if (couponId.equals(sysCouponRecord.getId().toString())) { record.put("couponName", sysCouponRecord.getName()); } } } } } return super.packForBT(userLargeCoupons); } /** * 新增车辆类型管理 */ @RequestMapping(value = "/add") @ResponseBody public Object add(TUserLargeCoupon tUserLargeCoupon,Integer type,String time) { String[] split = time.split(" - "); tUserLargeCoupon.setStartTime(DateUtil.parseDateOne(split[0]+" 00:00:00")); tUserLargeCoupon.setEndTime(DateUtil.parseDateOne(split[1]+" 23:59:59")); tUserLargeCoupon.setType(type); tUserLargeCoupon.setCompanyId(UserExt.getUser().getObjectId()); activityClient.addLargeCoupon(tUserLargeCoupon); return SUCCESS_TIP; } @RequestMapping(value = "/immediately") @ResponseBody public Object immediately(Integer id,String remark,Integer state) { TUserLargeCoupon tUserLargeCoupon = activityClient.updateLargeCounpon(new LargeCouponUpdateReq(id,state,remark)); TAuditRecord tAuditRecord = new TAuditRecord(); if(state==3){ tAuditRecord.setAuditStatus(2); }else { tAuditRecord.setAuditStatus(3); } tAuditRecord.setActivityId(tUserLargeCoupon.getId()); tAuditRecord.setActivityName(tUserLargeCoupon.getName()); tAuditRecord.setActivityType(4); tAuditRecord.setAuditTime(new Date()); tAuditRecord.setAuditUserId(UserExt.getUser().getId()); tAuditRecord.setRemark(remark); recordService.save(tAuditRecord); return SUCCESS_TIP; } /** * 删除车辆类型管理 */ @RequestMapping(value = "/updateStatus") @ResponseBody public Object updateStatus(@RequestParam Integer tCarModelId) { activityClient.updateStatusFromId(tCarModelId); return SUCCESS_TIP; } @RequestMapping(value = "/updateTime") @ResponseBody public Object updateTime(@RequestParam String time) { String sTime=null; String eTime=null; if(time!=null && time !=""){ sTime =time.split(" - ")[0]; eTime =time.split(" - ")[1]; } // List collect = sysCouponRecordMapper.selectList(new LambdaQueryWrapper().eq(SysCouponRecord::getCouponType, 3)).stream().map(SysCouponRecord::getId).collect(Collectors.toList()); List ids =activityClient.getLargeCouponIds(); Map map = new HashMap<>(); if(ids.size()>0){ map = orderPrivateCarClient.tUserLargeAll(new LargerAllReq(ids,sTime,eTime)); }else { map.put("allMoney",0); map.put("num",0); map.put("userNum",0); map.put("money",0); } return map; } /** * 修改车辆类型管理 */ @RequestMapping(value = "/update") @ResponseBody public Object update(TCarModel tCarModel,Integer language) { tCarModel.setLanguage(language); return SUCCESS_TIP; } }