123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716 |
- package com.szwl.controller;
- import cn.afterturn.easypoi.excel.ExcelExportUtil;
- import cn.afterturn.easypoi.excel.entity.ExportParams;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
- import com.baomidou.mybatisplus.core.metadata.IPage;
- import com.baomidou.mybatisplus.core.toolkit.Wrappers;
- import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
- import com.szwl.constant.JoinpayConstant;
- import com.szwl.constant.ResponseCodesEnum;
- import com.szwl.feign.bean.PayFeign;
- import com.szwl.model.bo.JsonMessage;
- import com.szwl.model.bo.R;
- import com.szwl.model.bo.ResponseModel;
- import com.szwl.model.dto.PromoCodeTarget;
- import com.szwl.model.dto.PromoCodeTargetEn;
- import com.szwl.model.entity.*;
- import com.szwl.model.utils.DateUtils;
- import com.szwl.service.*;
- import com.szwl.util.IDGenerator;
- import io.swagger.annotations.Api;
- import io.swagger.annotations.ApiOperation;
- import org.apache.commons.lang.StringUtils;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.web.bind.annotation.*;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.OutputStream;
- import java.math.BigDecimal;
- import java.net.URLEncoder;
- import java.text.SimpleDateFormat;
- import java.util.*;
- import java.util.stream.Collectors;
- import static com.szwl.constant.ResponseCodesEnum.A0001;
- import static com.szwl.constant.ResponseCodesEnum.A0002;
- import static com.szwl.model.utils.DateUtils.PATTERN_yyyy_MM_dd_HH_mm_ss;
- /**
- * <p>
- * 优惠码列表 前端控制器
- * </p>
- *
- * @author wuhs
- * @since 2022-06-17
- */
- @Api(value = "/tPromoCode", tags = {"优惠码"})
- @RestController
- @RequestMapping("/tPromoCode")
- public class TPromoCodeController {
- @Autowired
- TEquipmentService tEquipmentService;
- @Autowired
- TPromoCodeService promoCodeService;
- @Autowired
- TPriceService priceService;
- @Autowired
- TAdminService adminService;
- @Autowired
- TOrderService orderService;
- @Autowired
- TJoinpayMchService joinpayMchService;
- @Autowired
- PayFeign payFeign;
- @ApiOperation(value = "获取优惠码")
- @GetMapping("/getTPromoCode")
- public ResponseModel<IPage<TPromoCode>> getTPromoCode(@RequestParam String code) {
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getCode, code);
- Page<TPromoCode> page = new Page<>(1, 10, true);
- IPage<TPromoCode> iPage = promoCodeService.page(page, query);
- return R.ok(iPage);
- }
- @ApiOperation(value = "获取优惠码")
- @GetMapping("/getPromoCode")
- public ResponseModel<TPromoCode> getPromoCode(@RequestParam String code) {
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- String[] split = code.split("-");
- query.eq(TPromoCode::getCode, split[0]);
- query.eq(TPromoCode::getAdminId, split[1]);
- List<TPromoCode> list = promoCodeService.list(query);
- if (list.size() > 0) {
- return R.ok(list.get(0));
- }
- return R.ok();
- }
- @ApiOperation(value = "获取优惠码")
- @GetMapping("/selectTPromoCode")
- public ResponseModel<TPromoCode> selectTPromoCode(@RequestParam String code, @RequestParam String adminId) {
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getCode, code);
- query.eq(TPromoCode::getAdminId, adminId);
- // List<TPromoCode> list = promoCodeService.list(query);
- TPromoCode promoCode = promoCodeService.getOne(query);
- return R.ok(promoCode);
- }
- @ApiOperation(value = "小程序获取优惠码")
- @GetMapping("/getCode")
- public ResponseModel<TPromoCode> getCode(String clientId, String code) {
- if (StringUtils.isEmpty(clientId)) {
- return null;
- }
- LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
- query.eq(TEquipment::getClientId, clientId);
- List<TEquipment> list = tEquipmentService.list(query);
- TEquipment equipment = list.get(0);
- LambdaQueryWrapper<TPromoCode> query1 = Wrappers.lambdaQuery();
- query1.eq(TPromoCode::getCode, code);
- query1.eq(TPromoCode::getAdminId, equipment.getAdminId());
- List<TPromoCode> list1 = promoCodeService.list(query1);
- if (list1.size() > 0) {
- TPromoCode tPromoCode = list1.get(0);
- String isUse = tPromoCode.getIsUse();
- if (isUse.equals("1")) {
- return R.fail(A0002, "已使用");
- }
- Date lastUseDate = tPromoCode.getLastUseDate();
- Date date = new Date();
- if (date.getTime() > lastUseDate.getTime()) {
- return R.fail(A0002, "已过期");
- }
- return R.ok(tPromoCode);
- } else {
- return R.fail(A0002, "没有找到优惠码");
- }
- }
- @ApiOperation(value = "修改优惠码状态")
- @GetMapping("/updateCode")
- public ResponseModel<?> updateCode(String clientId, String code) {
- if (StringUtils.isEmpty(clientId)) {
- return null;
- }
- LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
- query.eq(TEquipment::getClientId, clientId);
- List<TEquipment> list = tEquipmentService.list(query);
- TEquipment equipment = list.get(0);
- LambdaQueryWrapper<TPromoCode> query1 = Wrappers.lambdaQuery();
- query1.eq(TPromoCode::getCode, code);
- query1.eq(TPromoCode::getAdminId, equipment.getAdminId());
- List<TPromoCode> list1 = promoCodeService.list(query1);
- if (!list1.isEmpty()) {
- TPromoCode tPromoCode = list1.get(0);
- tPromoCode.setIsUse("1");
- if (StringUtils.isNotEmpty(equipment.getName())) {
- tPromoCode.setUseBy(equipment.getName());
- } else {
- tPromoCode.setUseBy(clientId);
- }
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
- String time = sdf.format(new Date());
- tPromoCode.setUseDate(time);
- promoCodeService.updateById(tPromoCode);
- return R.ok(null, "修改成功");
- } else {
- return R.fail(A0002, "没有找到优惠码");
- }
- }
- @ApiOperation(value = "修改优惠码")
- @GetMapping("/updatePromoCode")
- public void updatePromoCode(@RequestParam(value = "id") String id, @RequestParam(value = "type") String type) {
- TPromoCode promoCode = promoCodeService.getById(id);
- promoCode.setIsUse(type);
- if (type.equals("1")) {
- promoCode.setUseDate(DateUtils.formatDate(new Date(), PATTERN_yyyy_MM_dd_HH_mm_ss));
- }
- promoCodeService.updateById(promoCode);
- }
- @ApiOperation(value = "生成0折优惠码")
- @GetMapping("/addPromoCode")
- public void addPromoCode(@RequestParam(value = "adminId") String adminId, @RequestParam(value = "lastUseDate") Date lastUseDate,
- @RequestParam(value = "number") String number, @RequestParam(value = "codeNum") String codeNum) {
- int num = Integer.parseInt(number);
- List<String> codes = new ArrayList<>();
- if (StringUtils.isEmpty(codeNum)) {
- for (int i = 0; i < num; i++) {
- String code = orderService.initSn(Long.valueOf(adminId));
- StringBuffer str = new StringBuffer();
- str.append(code.substring(0, 6));
- codes.add(str.toString());
- }
- } else {
- codes.add(codeNum);
- }
- TAdmin admin = adminService.getById(adminId);
- for (String code : codes) {
- TPromoCode promoCode = new TPromoCode();
- promoCode.setCreateDate(new Date());
- promoCode.setModifyDate(new Date());
- promoCode.setCode(Long.parseLong(code));
- promoCode.setAdminId(adminId);
- promoCode.setIsUse("0");
- promoCode.setDiscount(0f);
- promoCode.setLastUseDate(lastUseDate);
- // promoCode.setCreateDate(new Date());
- promoCode.setType("0");
- promoCode.setUserName(admin.getUsername());
- promoCodeService.save(promoCode);
- }
- }
- @ApiOperation(value = "生成n元优惠券")
- @GetMapping("/addYHJ")
- public ResponseModel<?> addYHJ(Long wxId, String flag) {
- if (wxId == null || StringUtils.isEmpty(flag)) {
- return R.fail(A0001);
- }
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getWxId, wxId);
- // if(flag.equals("YHJ5")||flag.equals("YHJ10")){
- // query.eq(TPromoCode::getType,"2");
- // List<TPromoCode> list = promoCodeService.list(query);
- // if(list.size()>0){
- // return R.ok(1,"此券每人限领一张,您已领取过,不能再领!");
- // }
- // }
- query.eq(TPromoCode::getType, "2");
- List<TPromoCode> list = promoCodeService.list(query);
- if (list.size() > 0) {
- return R.ok(1, "此券每人限领一张,您已领取过,不能再领!");
- }
- String code = orderService.initSn(Long.valueOf(wxId));
- TPromoCode promoCode = new TPromoCode();
- promoCode.setCreateDate(new Date());
- promoCode.setModifyDate(new Date());
- promoCode.setCode(Long.parseLong(code.substring(code.length() - 8, code.length())));
- promoCode.setAdminId(null);
- promoCode.setIsUse("0");
- // if(flag.equals("YHJ5")){
- // promoCode.setDiscount(5f);
- // promoCode.setType("2");
- // }
- // if(flag.equals("YHJ10")){
- // promoCode.setDiscount(10f);
- // promoCode.setType("2");
- // }
- String[] js = flag.split("J");
- String s = js[1];
- int price = Integer.parseInt(s);
- if (price > 100) {
- return R.fail(A0001);
- }
- promoCode.setDiscount(Float.valueOf(price));
- promoCode.setType("2");
- Long data = Calendar.getInstance().getTimeInMillis();
- Long t = 3l;
- Long mon = 30L * 24L * 60L * 60L * 1000L;
- Long d = data + (mon * t);
- Date lastUseDate = new Date(Long.parseLong(String.valueOf(d)));
- promoCode.setLastUseDate(lastUseDate);
- promoCode.setCreateDate(new Date());
- promoCode.setUserName(null);
- promoCode.setWxId(wxId);
- promoCodeService.save(promoCode);
- return R.ok(promoCode, "领取成功");
- }
- @ApiOperation(value = "核销优惠券")
- @GetMapping("/useYHJ")
- public void useYHJ(@RequestParam String code, @RequestParam String adminId, @RequestParam String clentId) {
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getCode, code);
- query.eq(TPromoCode::getIsUse, "0");
- List<TPromoCode> list = promoCodeService.list(query);
- if (list.size() > 0) {
- TPromoCode promoCode = list.get(0);
- promoCode.setUseDate(DateUtils.formatDate(new Date(), DateUtils.PATTERN_yyyy_MM_dd_HH_mm_ss));
- promoCode.setAdminId(adminId);
- promoCode.setUseBy(clentId);
- promoCode.setIsUse("1");
- promoCode.setModifyDate(new Date());
- promoCodeService.updateById(promoCode);
- }
- }
- @GetMapping("/getYHJList")
- public ResponseModel<?> getYHJList(Long wxId) {
- if (wxId == null) {
- return R.fail(A0001);
- }
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getWxId, wxId);
- query.eq(TPromoCode::getIsUse, "0");
- query.eq(TPromoCode::getType, "2");
- List<TPromoCode> list = promoCodeService.list(query);
- return R.ok(list, "成功");
- }
- @GetMapping("/checkYHJList")
- public ResponseModel<?> checkYHJList(Long wxId) {
- if (wxId == null) {
- return R.fail(A0001);
- }
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getWxId, wxId);
- query.eq(TPromoCode::getType, "2");
- List<TPromoCode> list = promoCodeService.list(query);
- if (list.size() > 0) {
- return R.ok(true, "已领取");
- } else {
- return R.ok(false, "未领取");
- }
- }
- @GetMapping("/getYHJ")
- public ResponseModel<TPromoCode> getYHJ(@RequestParam String code) {
- if (StringUtils.isEmpty(code)) {
- return R.fail(A0001);
- }
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- query.eq(TPromoCode::getCode, code);
- query.eq(TPromoCode::getType, "2");
- List<TPromoCode> list = promoCodeService.list(query);
- if (list.size() > 0) {
- TPromoCode tPromoCode = list.get(0);
- // String isUse = tPromoCode.getIsUse();
- // if(isUse.equals("1")){
- // return R.fail(A0002,"已使用");
- // }
- // Date lastUseDate = tPromoCode.getLastUseDate();
- // Date date = new Date();
- // if(date.getTime()>lastUseDate.getTime()){
- // return R.fail(A0002,"已过期");
- // }
- return R.ok(tPromoCode);
- }
- return R.ok();
- }
- @ApiOperation(value = "添加优惠码")
- @GetMapping("/add")
- public ResponseModel<?> add(String addMode, String codeNum,
- Long adminId, int number, Float discount,
- Float month, String type, String frpCode) {
- if (discount == null || month == null || adminId == null || StringUtils.isEmpty(type)) {
- return R.fail(A0001);
- }
- if (addMode.equals("2")) {
- if (StringUtils.isEmpty(codeNum)) {
- return R.fail(A0001, "优惠码为空");
- }
- LambdaQueryWrapper<TPromoCode> query = new LambdaQueryWrapper<>();
- query.eq(TPromoCode::getCode, codeNum);
- query.eq(TPromoCode::getIsUse, 0);
- query.eq(TPromoCode::getAdminId, adminId);
- TPromoCode tPromoCode = promoCodeService.getOne(query);
- if (tPromoCode != null) {
- // 已存在优惠码
- return R.fail(A0002, "已存在该优惠码");
- }
- }
- TAdmin admin = adminService.getById(adminId);
- // LocalDateTime now = LocalDateTime.now();
- // LocalDateTime startOfToday = now.with(LocalTime.MIN);
- // LocalDateTime endOfToday = now.with(LocalTime.MAX);
- // LambdaQueryWrapper<TPromoCode> promoCodeWrapper = new LambdaQueryWrapper<>();
- // promoCodeWrapper.between(TPromoCode::getCreateDate, startOfToday, endOfToday);
- // promoCodeWrapper.eq(TPromoCode::getAdminId, adminId);
- // int countCode = promoCodeService.count(promoCodeWrapper);
- // if (countCode >= 5000) {
- // return R.fail(B0002, "今日优惠码申请已达到上限");
- // }
- if (String.valueOf(admin.getId()).equals("1")) {
- List<String> codes = new ArrayList<>();
- if (addMode.equals("1")) {
- for (int i = 0; i < number; i++) {
- StringBuilder num = new StringBuilder();
- Random random = new Random();
- for (int j = 0; j < 8; j++) {
- num.append(random.nextInt(10));
- }
- String code = num.toString();
- codes.add(code);
- }
- } else {
- codes.add(codeNum);
- }
- Long data = Calendar.getInstance().getTimeInMillis();
- Float mm = month * 10;
- String m = String.valueOf(mm);
- String[] split = m.split("\\.");
- String th = split[0];
- Long t = Long.valueOf(th);
- Long mon = 30L * 24L * 60L * 60L * 1000L;
- Long d = data + ((mon * t) / 10);
- Date lastUseDate = new Date(Long.parseLong(String.valueOf(d)));
- for (String code : codes) {
- TPromoCode promoCode = new TPromoCode();
- promoCode.setCode(Long.parseLong(code));
- promoCode.setAdminId(String.valueOf(admin.getId()));
- promoCode.setIsUse("0");
- promoCode.setDiscount(discount);
- promoCode.setLastUseDate(lastUseDate);
- promoCode.setCreateDate(new Date());
- promoCode.setUserName(admin.getUsername());
- promoCode.setType(type);
- promoCodeService.save(promoCode);
- }
- return R.ok(null, "生成成功");
- }
- LambdaQueryWrapper<TEquipment> query = Wrappers.lambdaQuery();
- query.eq(TEquipment::getAdminId, admin.getId());
- List<TEquipment> list = tEquipmentService.list(query);
- TEquipment equipment = list.get(0);
- if (list.size() == 0) {
- // "要有机器才能购买优惠码";
- return R.fail("没有机器");
- }
- //0折优惠码需要支付
- if (type.equals("0") && discount == 0) {
- if (admin.getPromoCodeOpen() == null || admin.getPromoCodeOpen().equals("1")) {
- Long equipmentId = equipment.getId();
- Double money = null;
- LambdaQueryWrapper<TPrice> query1 = Wrappers.lambdaQuery();
- query1.eq(TPrice::getName, "优惠码");
- List<TPrice> prices = priceService.list(query1);
- for (TPrice price : prices) {
- if (price.getName().equals("优惠码")) {
- money = price.getPrice();
- }
- }
- Long client6 = Long.parseLong(equipment.getClientId().substring(equipment.getClientId().length() - 6));
- String sn = orderService.initSn(client6);
- String orderNo = sn;
- String productName = "优惠码";
- BigDecimal price = BigDecimal.valueOf(money * number);
- BigDecimal cutPrice = price.multiply(new BigDecimal(100)).divide(new BigDecimal(100));
- BigDecimal amount = cutPrice;
- String productDesc = "";
- String commonParameter = "";
- if (addMode.equals("2") && StringUtils.isNotEmpty(codeNum)) {
- commonParameter = codeNum;
- }
- String returnUrl = null;
- String notifyUrl = JoinpayConstant.Notify_Url_PromoCode;
- String isShowPic = "1";
- String openId = null;
- String authCode = null;
- String appid = null;
- String transactionModel = null;
- String tradeMerchantNo = null;
- String buyerId = null;
- String isAlt = "0";
- String altType = null;
- String altUrl = null;
- BigDecimal marketingAmount = null;
- // frpCode = "WEIXIN_NATIVE";
- TOrder order1 = new TOrder();
- order1.setId(IDGenerator.orderID());
- order1.setSn(sn);
- order1.setType(0);
- order1.setAdminId(admin.getId());
- order1.setProductName(productName);
- order1.setPrice(price);
- order1.setEquipmentId(equipmentId);
- order1.setClientId(equipment.getClientId());
- order1.setStatus(0);
- order1.setFrpCode(frpCode);
- order1.setRefundTrxNo(String.valueOf(month));
- order1.setCreateDate(new Date());
- order1.setModifyDate(new Date());
- payFeign.addOrder(order1);
- JSONArray altInfo = new JSONArray();
- String result = null;
- try {
- result = joinpayMchService.uniPay(
- orderNo, amount, productName, productDesc,
- commonParameter, returnUrl, notifyUrl, frpCode,
- isShowPic, openId, authCode, appid, transactionModel, tradeMerchantNo,
- buyerId, isAlt, altType, altInfo, altUrl, marketingAmount
- );
- } catch (Exception e) {
- e.printStackTrace();
- return R.fail("申请支付失败");
- }
- JSONObject resultJson = JSONObject.parseObject(result);
- // 汇聚支付支付申请返回支付二维码图片
- String rd_Pic = resultJson.getString("rd_Pic");
- if (resultJson == null || StringUtils.isBlank(rd_Pic)) {
- return R.fail("找不到支付图片");
- }
- JSONObject kindData = new JSONObject();
- kindData.put("sn", sn);
- kindData.put("price", price);
- kindData.put("image", rd_Pic);
- return R.ok(kindData);
- }
- }
- Long client6 = Long.parseLong(equipment.getClientId().substring(equipment.getClientId().length() - 6));
- List<String> codes = new ArrayList<>();
- if (addMode.equals("1")) {
- for (int i = 0; i < number; i++) {
- String code = orderService.initSn(client6);
- StringBuffer str = new StringBuffer();
- str.append(code.substring(0, 6));
- codes.add(str.toString());
- }
- } else {
- codes.add(codeNum);
- }
- Long data = Calendar.getInstance().getTimeInMillis();
- Float mm = month * 10;
- String m = String.valueOf(mm);
- String[] split = m.split("\\.");
- String th = split[0];
- Long t = Long.valueOf(th);
- Long mon = 30L * 24L * 60L * 60L * 1000L;
- Long d = data + ((mon * t) / 10);
- Date lastUseDate = new Date(Long.parseLong(String.valueOf(d)));
- for (String code : codes) {
- TPromoCode promoCode = new TPromoCode();
- promoCode.setCode(Long.parseLong(code));
- promoCode.setAdminId(String.valueOf(admin.getId()));
- promoCode.setIsUse("0");
- promoCode.setDiscount(discount);
- promoCode.setLastUseDate(lastUseDate);
- promoCode.setCreateDate(new Date());
- promoCode.setUserName(admin.getUsername());
- promoCode.setType(type);
- promoCodeService.save(promoCode);
- }
- return R.ok("生成成功");
- }
- @ApiOperation(value = "获取优惠码列表")
- @GetMapping("/pagePromoCode")
- public ResponseModel<IPage<?>> pagePromoCode(String adminId, String code, String isUse, Date useStratDate, Date useEndDate, Date createStratDate, Date createEndDate, long current, long size) {
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- if (StringUtils.isNotEmpty(adminId)) {
- TAdmin admin = adminService.getById(adminId);
- if (admin.getType() != 0 && admin.getType() != 1) {
- query.eq(TPromoCode::getAdminId, adminId);
- }
- if (admin.getId() == 2738) {
- LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
- adminQuery.isNull(TAdmin::getCompanyType).or()
- .eq(TAdmin::getCompanyType, "0");
- List<Long> adminIds = adminService.list(adminQuery).stream()
- .map(TAdmin::getId).collect(Collectors.toList());
- query.in(TPromoCode::getAdminId, adminIds);
- }
- // 七云平台管理员
- if (admin.getId() == 2739) {
- LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
- adminQuery.eq(TAdmin::getCompanyType, "1");
- List<Long> adminIds = adminService.list(adminQuery).stream()
- .map(TAdmin::getId).collect(Collectors.toList());
- query.in(TPromoCode::getAdminId, adminIds);
- }
- } else {
- return R.fail(A0001);
- }
- if (StringUtils.isNotEmpty(code)) {
- query.eq(TPromoCode::getCode, code);
- }
- if (StringUtils.isNotEmpty(isUse)) {
- query.like(TPromoCode::getIsUse, isUse);
- }
- if (useStratDate != null && useEndDate != null) {
- query.gt(TPromoCode::getUseDate, useStratDate);
- query.lt(TPromoCode::getUseDate, useEndDate);
- }
- if (createStratDate != null && createEndDate != null) {
- query.gt(TPromoCode::getCreateDate, createStratDate);
- query.lt(TPromoCode::getCreateDate, createEndDate);
- }
- query.orderByDesc(TPromoCode::getCreateDate);
- Page<TPromoCode> page = new Page<>(current, size, true);
- IPage<TPromoCode> iPage = promoCodeService.page(page, query);
- return R.ok(iPage);
- }
- @ApiOperation(value = "导出优惠码列表")
- @GetMapping("/export")
- public Object export(HttpServletResponse response, String adminId, String code, String isUse, Date useStratDate, Date useEndDate, Date createStratDate, Date createEndDate, long current, long size) {
- LambdaQueryWrapper<TPromoCode> query = Wrappers.lambdaQuery();
- String ifForeign = "0";
- String head = "优惠码数据-";
- if (StringUtils.isNotEmpty(adminId)) {
- TAdmin admin = adminService.getById(adminId);
- if (StringUtils.isNotEmpty(admin.getIfForeign()) && admin.getIfForeign().equals("1")) {
- ifForeign = admin.getIfForeign();
- head = "PromoCode-";
- }
- if (admin.getType() != 0 && admin.getType() != 1) {
- query.eq(TPromoCode::getAdminId, adminId);
- }
- // 申泽平台管理员
- if (admin.getId() == 2738) {
- LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
- adminQuery.isNull(TAdmin::getCompanyType).or()
- .eq(TAdmin::getCompanyType, "0");
- List<Long> adminIds = adminService.list(adminQuery).stream()
- .map(TAdmin::getId).collect(Collectors.toList());
- query.in(TPromoCode::getAdminId, adminIds);
- }
- // 七云平台管理员
- if (admin.getId() == 2739) {
- LambdaQueryWrapper<TAdmin> adminQuery = Wrappers.lambdaQuery();
- adminQuery.eq(TAdmin::getCompanyType, "1");
- List<Long> adminIds = adminService.list(adminQuery).stream()
- .map(TAdmin::getId).collect(Collectors.toList());
- query.in(TPromoCode::getAdminId, adminIds);
- }
- } else {
- return R.fail(A0001);
- }
- if (StringUtils.isNotEmpty(code)) {
- query.eq(TPromoCode::getCode, code);
- }
- if (StringUtils.isNotEmpty(isUse)) {
- query.like(TPromoCode::getIsUse, isUse);
- }
- if (useStratDate != null && useEndDate != null) {
- query.gt(TPromoCode::getUseDate, useStratDate);
- query.lt(TPromoCode::getUseDate, useEndDate);
- }
- if (createStratDate != null && createEndDate != null) {
- query.gt(TPromoCode::getCreateDate, createStratDate);
- query.lt(TPromoCode::getCreateDate, createEndDate);
- }
- Page<TPromoCode> page = new Page<>(current, size, true);
- IPage<TPromoCode> iPage = promoCodeService.page(page, query);
- List<TPromoCode> list = iPage.getRecords();
- Workbook workbook = null;
- if (ifForeign.equals("0")) {
- List<PromoCodeTarget> promoCodeTargets = promoCodeService.findById(list);
- ExportParams exportParams = new ExportParams("优惠码记录", "sheet1");
- workbook = ExcelExportUtil.exportExcel(exportParams, PromoCodeTarget.class, promoCodeTargets);
- } else {
- List<PromoCodeTargetEn> promoCodeTargetEns = promoCodeService.exportPromoCode(list);
- ExportParams exportParams = new ExportParams("Promo code record", "sheet1");
- workbook = ExcelExportUtil.exportExcel(exportParams, PromoCodeTargetEn.class, promoCodeTargetEns);
- }
- if (workbook != null) {
- OutputStream os = null;
- try {
- os = response.getOutputStream();
- SimpleDateFormat format = new SimpleDateFormat("yyyyMMddHHmmss");
- response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(head + format.format(new Date()) + ".xls", "UTF-8"));
- workbook.write(os);
- return JsonMessage.success("导出成功");
- } catch (Exception e) {
- e.printStackTrace();
- return JsonMessage.success("导出错误");
- } finally {
- try {
- os.close();
- workbook.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return JsonMessage.success("导出成功");
- }
- @ApiOperation(value = "查询优惠码几折")
- @RequestMapping(value = "/getCodeDiscount", method = RequestMethod.GET)
- @ResponseBody
- public Object getCodeDiscount(String code) {
- if (!StringUtils.isEmpty(code)) {
- LambdaQueryWrapper<TPromoCode> wrapper = new LambdaQueryWrapper<>();
- wrapper.in(TPromoCode::getCode, code);
- wrapper.in(TPromoCode::getIsUse, "0");
- wrapper.orderByDesc(TPromoCode::getCreateDate);
- List<TPromoCode> list = promoCodeService.list(wrapper);
- if (list == null) {
- return null;
- }
- TPromoCode promoCode = list.get(0);
- Float discount = promoCode.getDiscount();
- String type = promoCode.getType();
- JSONObject kindData = new JSONObject();
- kindData.put("type", type.equals("1") ? type : "0");
- kindData.put("discount", discount);
- return JsonMessage.success(kindData.toString());
- } else {
- return null;
- }
- }
- @ApiOperation(value = "批量删除优惠码")
- @PostMapping(value = "/deletes")
- @ResponseBody
- public ResponseModel<?> deletes(@RequestBody Long[] ids) {
- if (ids == null) {
- return R.fail(ResponseCodesEnum.A0001);
- }
- if (ids.length > 0) {
- ArrayList<Long> idList = new ArrayList<>();
- for (int i = 0; i < ids.length; i++) {
- idList.add(ids[i]);
- }
- promoCodeService.removeByIds(idList);
- }
- return R.ok();
- }
- }
|