package com.yijia.coupon.controller; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.stream.Collectors; import com.yijia.common.core.domain.model.LoginUser; import com.yijia.common.utils.SecurityUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.PutMapping; import org.springframework.web.bind.annotation.DeleteMapping; import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import com.yijia.common.annotation.Log; import com.yijia.common.core.controller.BaseController; import com.yijia.common.core.domain.AjaxResult; import com.yijia.common.enums.BusinessType; import com.yijia.coupon.domain.CouponInfo; import com.yijia.coupon.service.ICouponInfoService; import com.yijia.common.utils.poi.ExcelUtil; import com.yijia.common.core.page.TableDataInfo; /** * 优惠劵Controller * * @author yijia * @date 2021-08-09 */ @RestController @RequestMapping("/coupon/info") public class CouponInfoController extends BaseController { @Autowired private ICouponInfoService couponInfoService; /** * 查询优惠劵列表 */ @GetMapping("/list") public TableDataInfo list(CouponInfo couponInfo) { LoginUser currentUser = SecurityUtils.getLoginUser(); couponInfo.setStationId(currentUser.getUser().getDeptId()); startPage(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); List list = couponInfoService.selectCouponInfoList(couponInfo); if(list!=null && list.size()>0){ for(CouponInfo coupon:list){ if(coupon!=null && coupon.getOilName()!=null){ coupon.setOilNameList(Arrays.asList(coupon.getOilName().split(","))); } List eff = new ArrayList<>(); if(coupon!=null && coupon.getEffectiveTimeStart()!=null){ eff.add(dateFormat.format(coupon.getEffectiveTimeStart())); } if(coupon!=null && coupon.getEffectiveTimeEnd()!=null){ eff.add(dateFormat.format(coupon.getEffectiveTimeEnd())); } coupon.setEffectiveTime(eff); if(coupon!=null && coupon.getVerification()!=null){ //List integerList = Arrays.asList(stringList).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toList()); List stringList = Arrays.asList(coupon.getVerification().split(",")); List sssd = stringList.stream() .map(s -> Integer.parseInt(s)) .collect(Collectors.toList()); coupon.setVerificationList(sssd); } if(coupon!=null && coupon.getAppointedDays()!=null){ coupon.setAppointedDaysList(Arrays.asList(coupon.getAppointedDays().split(","))); } if(coupon!=null && coupon.getCycleDays()!=null){ coupon.setCycleDaysList(Arrays.asList(coupon.getCycleDays().split(","))); } } } return getDataTable(list); } /** * 导出优惠劵列表 */ @Log(title = "优惠劵", businessType = BusinessType.EXPORT) @GetMapping("/export") public AjaxResult export(CouponInfo couponInfo) { List list = couponInfoService.selectCouponInfoList(couponInfo); ExcelUtil util = new ExcelUtil(CouponInfo.class); return util.exportExcel(list, "info"); } /** * 获取优惠劵详细信息 */ @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Integer id) { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); CouponInfo couponInfo = couponInfoService.selectCouponInfoById(id); if(couponInfo!=null && couponInfo.getOilName()!=null){ couponInfo.setOilNameList(Arrays.asList(couponInfo.getOilName().split(","))); } List eff = new ArrayList<>(); if(couponInfo!=null && couponInfo.getEffectiveTimeStart()!=null){ eff.add(dateFormat.format(couponInfo.getEffectiveTimeStart())); } if(couponInfo!=null && couponInfo.getEffectiveTimeEnd()!=null){ eff.add(dateFormat.format(couponInfo.getEffectiveTimeEnd())); } couponInfo.setEffectiveTime(eff); if(couponInfo!=null && couponInfo.getVerification()!=null){ couponInfo.setVerificationList(Arrays.asList(couponInfo.getVerification().split(",")).stream().map(s -> Integer.parseInt(s.trim())).collect(Collectors.toList())); } if(couponInfo!=null && couponInfo.getAppointedDays()!=null){ couponInfo.setAppointedDaysList(Arrays.asList(couponInfo.getAppointedDays().split(","))); } if(couponInfo!=null && couponInfo.getCycleDays()!=null){ couponInfo.setCycleDaysList(Arrays.asList(couponInfo.getCycleDays().split(","))); } return AjaxResult.success(couponInfo); } /** * 新增优惠劵 */ @Log(title = "优惠劵", businessType = BusinessType.INSERT) @PostMapping public AjaxResult add(@RequestBody CouponInfo couponInfo) { try { SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); LoginUser currentUser = SecurityUtils.getLoginUser(); couponInfo.setCreateBy(String.valueOf(currentUser.getUser().getUserId())); couponInfo.setStationId(currentUser.getUser().getDeptId()); if(couponInfo!=null &&couponInfo.getVerificationList()!=null && couponInfo.getVerificationList().size()>0){ String verification= StringUtils.join( couponInfo.getVerificationList(),","); couponInfo.setVerification(verification); } if(couponInfo!=null&& couponInfo.getOilNameList() !=null && couponInfo.getOilNameList().size()>0){ String oilname= String.join(",", couponInfo.getOilNameList()); couponInfo.setOilName(oilname); } if(couponInfo!=null && couponInfo.getEffectiveTime() !=null&& couponInfo.getEffectiveTime().size()>0){ String start = couponInfo.getEffectiveTime().get(0); String end = couponInfo.getEffectiveTime().get(1); if(start!=null && start!=""){ couponInfo.setEffectiveTimeStart( dateFormat.parse(start)); } if(end!=null && end!=""){ couponInfo.setEffectiveTimeEnd(dateFormat.parse(end)); } } if(couponInfo!=null&& couponInfo.getCycleDaysList() !=null && couponInfo.getCycleDaysList().size()>0){ String cycleDays= String.join(",", couponInfo.getCycleDaysList()); couponInfo.setCycleDays(cycleDays); } if(couponInfo!=null&& couponInfo.getAppointedDaysList() !=null && couponInfo.getAppointedDaysList().size()>0){ String appointedDays= String.join(",", couponInfo.getAppointedDaysList()); couponInfo.setAppointedDays(appointedDays); } } catch (ParseException e) { e.printStackTrace(); } return toAjax(couponInfoService.insertCouponInfo(couponInfo)); } /** * 修改优惠劵 */ @Log(title = "优惠劵", businessType = BusinessType.UPDATE) @PutMapping public AjaxResult edit(@RequestBody CouponInfo couponInfo) { try { if(couponInfo!=null &&couponInfo.getVerificationList()!=null && couponInfo.getVerificationList().size()>0){ String verification= StringUtils.join( couponInfo.getVerificationList(),","); couponInfo.setVerification(verification); } if(couponInfo!=null&& couponInfo.getOilNameList() !=null && couponInfo.getOilNameList() .size()>0){ String oilname= String.join(",", couponInfo.getOilNameList()); couponInfo.setOilName(oilname); } if(couponInfo!=null && couponInfo.getEffectiveTime() !=null&& couponInfo.getEffectiveTime().size()>0){ String start = couponInfo.getEffectiveTime().get(0); String end = couponInfo.getEffectiveTime().get(1); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); if(start!=null && start!=""){ couponInfo.setEffectiveTimeStart( dateFormat.parse(start)); } if(end!=null && end!=""){ couponInfo.setEffectiveTimeStart(dateFormat.parse(end)); } } if(couponInfo!=null&& couponInfo.getCycleDaysList() !=null && couponInfo.getCycleDaysList().size()>0){ String cycleDays= String.join(",", couponInfo.getCycleDaysList()); couponInfo.setCycleDays(cycleDays); } if(couponInfo!=null&& couponInfo.getAppointedDaysList() !=null && couponInfo.getAppointedDaysList().size()>0){ String appointedDays= String.join(",", couponInfo.getAppointedDaysList()); couponInfo.setAppointedDays(appointedDays); } } catch (ParseException e) { e.printStackTrace(); } return toAjax(couponInfoService.updateCouponInfo(couponInfo)); } /** * 删除优惠劵 */ @Log(title = "优惠劵", businessType = BusinessType.DELETE) @DeleteMapping("/{ids}") public AjaxResult remove(@PathVariable Integer[] ids) { return toAjax(couponInfoService.deleteCouponInfoByIds(ids)); } }