package com.ruoyi.order.controller; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import com.ruoyi.account.api.dto.GiveVipDto; import com.ruoyi.account.api.feignClient.AppUserClient; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.DateUtils; import com.ruoyi.common.core.utils.WebUtils; import com.ruoyi.common.core.web.domain.AjaxResult; import com.ruoyi.common.core.web.page.PageInfo; import com.ruoyi.common.log.annotation.Log; import com.ruoyi.common.log.enums.BusinessType; import com.ruoyi.order.api.model.TExchangeOrder; import com.ruoyi.order.api.model.TShoppingOrder; import com.ruoyi.order.api.model.TVipOrder; import com.ruoyi.order.api.query.ShoppingOrderQuery; import com.ruoyi.order.api.query.VipShoppingOrderQuery; import com.ruoyi.order.dto.TEnterpriseExport; import com.ruoyi.order.service.TVipOrderService; import com.ruoyi.other.api.domain.TEnterpriseUserApplication; import com.ruoyi.other.api.feignClient.OtherClient; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.Workbook; import org.omg.CORBA.PRIVATE_MEMBER; import org.springframework.beans.BeanUtils; import org.springframework.util.StringUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.List; /** *

* 前端控制器 *

* * @author xiaochen * @since 2024-08-07 */ @Api(tags = "会员订单") @RestController @RequestMapping("/t-vip-order") public class TVipOrderController { @Resource private TVipOrderService vipOrderService; @Resource private AppUserClient appUserClient; @PostMapping("/getVipOrderList") @ApiOperation(value = "列表查询", tags = {"管理后台-会员订单"}) public AjaxResult> getVipOrderList(@RequestBody VipShoppingOrderQuery query) { if (StringUtils.hasLength(query.getPhone())){ List data = appUserClient.getUserIdsByPhone(query.getPhone()).getData(); if (data.isEmpty()){ return AjaxResult.success(new PageInfo()); } } PageInfo res = vipOrderService.pageList(query); return AjaxResult.success(res); } @PostMapping("/addVipOrder") @ApiOperation(value = "添加会员订单", tags = {"管理后台-会员订单"}) public R addVipOrder(@RequestBody TVipOrder dto) { if (dto.getId()!=null){ List list = vipOrderService.lambdaQuery().eq(TVipOrder::getCode, dto.getCode()) .ne(TVipOrder::getId, dto.getId()).list(); if (!list.isEmpty())return R.fail("订单编号已存在"); }else{ List list = vipOrderService.lambdaQuery().eq(TVipOrder::getCode, dto.getCode()).list(); if (!list.isEmpty())return R.fail("订单编号已存在"); } vipOrderService.saveOrUpdate(dto); return R.ok(dto.getId()); } @GetMapping("/deleteVipOrder") @ApiOperation(value = "批量删除会员订单", tags = {"管理后台-会员订单"}) public AjaxResult deleteVipOrder(String id) { vipOrderService.removeBatchByIds(Arrays.asList(id.split(","))); return AjaxResult.success(); } @PostMapping("/callBack") public R callBack(@RequestParam("code")String code,@RequestParam("outTradeNo")String outTradeNo){ TVipOrder one = vipOrderService.lambdaQuery().eq(TVipOrder::getCode, code).one(); one.setSerialNumber(outTradeNo); one.setPaymentStatus(2); vipOrderService.updateById(one); GiveVipDto giveVipDto = new GiveVipDto(); giveVipDto.setVipId(one.getVipId()); giveVipDto.setType(one.getVipType()); giveVipDto.setUserIds(one.getAppUserId().toString()); appUserClient.giveVip(giveVipDto); return R.ok(); } @Resource private OtherClient otherClient; @ApiOperation(tags = {"后台-申请表单-集团用户"},value = "导出") @PutMapping(value = "/export") @Log(title = "【申请建桩】导出建桩申请列表", businessType = BusinessType.EXPORT) public void export(String landlordPhone) { R> tnterPrise = otherClient.getTnterPrise(); List list = tnterPrise.getData(); List orderInvoiceExports = new ArrayList<>(); for (TEnterpriseUserApplication orderInvoiceVO : list) { TEnterpriseExport orderInvoiceExport = new TEnterpriseExport(); BeanUtils.copyProperties(orderInvoiceVO,orderInvoiceExport); orderInvoiceExport.setCreateTime(DateUtils.localDateTimeToString(orderInvoiceVO.getCreateTime())); orderInvoiceExports.add(orderInvoiceExport); } Workbook workbook = ExcelExportUtil.exportExcel(new ExportParams(), TEnterpriseExport.class, orderInvoiceExports); HttpServletResponse response = WebUtils.response(); response.setCharacterEncoding("utf-8"); ServletOutputStream outputStream = null; try { String fileName = URLEncoder.encode("集团用户导出.xls", "utf-8"); response.setHeader("Content-Disposition", "attachment;filename=" + fileName); response.setContentType("application/vnd.ms-excel;charset=UTF-8"); response.setHeader("Pragma", "no-cache"); response.setHeader("Cache-Control", "no-cache"); outputStream = response.getOutputStream(); workbook.write(outputStream); } catch (IOException e) { e.printStackTrace(); } finally { try { workbook.close(); outputStream.close(); } catch (IOException e) { e.printStackTrace(); } } } }