From 02cbfc8b67b079293c01fb0f31efbee268ce8374 Mon Sep 17 00:00:00 2001 From: wangpengfei <1928057482@qq.com> Date: Fri, 8 Dec 2023 18:31:35 +0800 Subject: [PATCH] 12/8 --- .../com/yxt/yyth/api/empcard/EmpAppletVo.java | 125 ++++++++++ .../com/yxt/yyth/api/empcard/EmpCard.java | 35 +++ .../com/yxt/yyth/api/empcard/EmpCardDto.java | 35 +++ .../yxt/yyth/api/empcard/EmpCardExport.java | 23 ++ .../yxt/yyth/api/empcard/EmpCardQuery.java | 18 ++ .../com/yxt/yyth/api/empcard/EmpCardVo.java | 29 +++ .../EmpCardBuildRecord.java | 31 +++ .../EmpCardBuildRecordDto.java | 30 +++ .../EmpCardBuildRecordQuery.java | 15 ++ .../EmpCardBuildRecordVo.java | 19 ++ .../yxt/yyth/api/lpkgiftcard/AppletVo.java | 40 ++- .../yxt/yyth/biz/empcard/EmpCardMapper.java | 39 +++ .../yxt/yyth/biz/empcard/EmpCardMapper.xml | 104 ++++++++ .../com/yxt/yyth/biz/empcard/EmpCardRest.java | 67 ++++++ .../yxt/yyth/biz/empcard/EmpCardService.java | 227 ++++++++++++++++++ .../EmpCardBuildRecordMapper.java | 22 ++ .../EmpCardBuildRecordMapper.xml | 22 ++ .../EmpCardBuildRecordRest.java | 34 +++ .../EmpCardBuildRecordService.java | 59 +++++ 19 files changed, 966 insertions(+), 8 deletions(-) create mode 100644 src/main/java/com/yxt/yyth/api/empcard/EmpAppletVo.java create mode 100644 src/main/java/com/yxt/yyth/api/empcard/EmpCard.java create mode 100644 src/main/java/com/yxt/yyth/api/empcard/EmpCardDto.java create mode 100644 src/main/java/com/yxt/yyth/api/empcard/EmpCardExport.java create mode 100644 src/main/java/com/yxt/yyth/api/empcard/EmpCardQuery.java create mode 100644 src/main/java/com/yxt/yyth/api/empcard/EmpCardVo.java create mode 100644 src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecord.java create mode 100644 src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordDto.java create mode 100644 src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordQuery.java create mode 100644 src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordVo.java create mode 100644 src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.java create mode 100644 src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.xml create mode 100644 src/main/java/com/yxt/yyth/biz/empcard/EmpCardRest.java create mode 100644 src/main/java/com/yxt/yyth/biz/empcard/EmpCardService.java create mode 100644 src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.java create mode 100644 src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.xml create mode 100644 src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordRest.java create mode 100644 src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordService.java diff --git a/src/main/java/com/yxt/yyth/api/empcard/EmpAppletVo.java b/src/main/java/com/yxt/yyth/api/empcard/EmpAppletVo.java new file mode 100644 index 0000000..1b221a0 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcard/EmpAppletVo.java @@ -0,0 +1,125 @@ +package com.yxt.yyth.api.empcard; + +import cn.hutool.core.date.DateUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.yyth.api.lpkgiftcard.GoodsVo; +import com.yxt.yyth.api.lpkreserveorder.LpkReserveOrderCardVo; +import com.yxt.yyth.api.lpkstore.StoreSelect; +import lombok.Data; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + +/** + * @author wangpengfei + * @date 2023/12/8 11:26 + */ +@Data +public class EmpAppletVo { + private String dateStart; + private String dateEnd; + private String customerSid; + private String giftbagSid; + private String code; + private String sid ; + private String state; + private String states; + private boolean showBtn=true; + private boolean showRecord=true; + private String time; + private String name="卡号:"; + private String pName; + private String start; + private String end; + private String store; //门店 + private String reserveDate; //预约时间 + private List goodsVos; + private List select; + private String storeSid;//上次提货地点 + private String addressName; + private String isReservation;//是否超过预约时间 0 否 1是 + private boolean notRese=true; //是否能预约 + private List orderCardVoList; + private String value; + private String serialNumber; + + + public String getStart() { + SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); + start=sdf.format(DateUtil.offsetDay(new Date(),+2)); + if(StringUtils.isNotBlank(dateEnd)){ + int i=DateUtil.parse(sdf.format(DateUtil.parse(start))).compareTo(DateUtil.parse(sdf.format(DateUtil.parse(dateEnd)))); + if(String.valueOf(i).equals("-1")){ + end=sdf.format(DateUtil.parse(dateEnd)); + }else{ + end=sdf.format(DateUtil.offsetDay(DateUtil.parse(dateEnd),2)); + } + } + return start; + } + + public String getName() { + name=name+code; + return name; + } + + public String getTime() { + SimpleDateFormat sdf =new SimpleDateFormat("yyyy.MM.dd"); + if(StringUtils.isNotBlank(dateStart)){ + if(StringUtils.isNotBlank(dateEnd)){ + time=sdf.format(DateUtil.parse(dateStart))+"~"+sdf.format(DateUtil.parse(dateEnd)); + } + } + return time; + } + + public boolean isShowBtn() { + if(states.equals("5")){ + if(isReservation.equals("1")){ + this.state="已完成"; + showBtn=false; + } + } + return showBtn; + } + + public String getState() { + SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); + if(StringUtils.isNotBlank(dateEnd)){ + int i=DateUtil.parse(sdf.format(DateUtil.parse(dateEnd))).compareTo(DateUtil.parse(sdf.format(DateUtil.date()))); + if( String.valueOf(i).equals("-1")){ + state="已过期"; + showBtn=false; + }else{ + state="待提货"; + if(states.equals("5")){ + if(isReservation.equals("0")){ + this.state="已预约"; + this.notRese=false; + }else{ + this.state="已完成"; + showBtn=false; + } + }else if(states.equals("4")){ + if(isReservation.equals("0")){ + this.state="已预约"; + }else{ + this.state="待提货"; + } + } + } + }else{ + state="待提货"; + if(states.equals("5")){ + if(isReservation.equals("0")){ + this.state="已预约"; + }else{ + this.state="已完成"; + showBtn=false; + } + } + } + return state; + } +} diff --git a/src/main/java/com/yxt/yyth/api/empcard/EmpCard.java b/src/main/java/com/yxt/yyth/api/empcard/EmpCard.java new file mode 100644 index 0000000..eff8067 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcard/EmpCard.java @@ -0,0 +1,35 @@ +package com.yxt.yyth.api.empcard; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; +import java.util.UUID; + +/** + * @author wangpengfei + * @date 2023/12/8 9:10 + */ +@Data +public class EmpCard { + private String id; + private String sid= UUID.randomUUID().toString(); + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + private String remarks; + private String isEnable; + private String recordId; + private String recordSid; + private String giftbagSid; + private String serialNumber; + private String code; + private String codeKey; + private String state; + private String grantName; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date grantDate; + private String customerSid; + private String customerMobile; + private Date bindDate; + +} diff --git a/src/main/java/com/yxt/yyth/api/empcard/EmpCardDto.java b/src/main/java/com/yxt/yyth/api/empcard/EmpCardDto.java new file mode 100644 index 0000000..1739994 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcard/EmpCardDto.java @@ -0,0 +1,35 @@ +package com.yxt.yyth.api.empcard; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +import java.util.Date; + +/** + * @author wangpengfei + * @date 2023/12/8 9:11 + */ +@Data +public class EmpCardDto implements Dto { + private String id; + private String sid; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + private String remarks; + private String isEnable; + private String recordId; + private String recordSid; + private String serialNumber; + private String code; + private String codeKey; + private String state; + private String grantName; + private String grantDate; + private String customerSid; + private String customerMobile; + + private String giftbagSid; + private String num; + private String cardArea; +} diff --git a/src/main/java/com/yxt/yyth/api/empcard/EmpCardExport.java b/src/main/java/com/yxt/yyth/api/empcard/EmpCardExport.java new file mode 100644 index 0000000..33425dd --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcard/EmpCardExport.java @@ -0,0 +1,23 @@ +package com.yxt.yyth.api.empcard; + +import com.yxt.common.core.utils.ExportEntityMap; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/12/8 11:29 + */ +@Data +public class EmpCardExport { + @ExportEntityMap(CnName = "企业卡二维码", EnName = "pic") + private String pic; + @ExportEntityMap(CnName = "企业卡编码第一行", EnName = "code1") + private String code1; + @ExportEntityMap(CnName = "企业卡编码第二行", EnName = "code2") + private String code2; + @ExportEntityMap(CnName = "企业卡密码", EnName = "codeKey") + private String codeKey; + @ExportEntityMap(CnName = "序列号", EnName = "serialNumber") + private String serialNumber; + private String code; +} diff --git a/src/main/java/com/yxt/yyth/api/empcard/EmpCardQuery.java b/src/main/java/com/yxt/yyth/api/empcard/EmpCardQuery.java new file mode 100644 index 0000000..4f6afaa --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcard/EmpCardQuery.java @@ -0,0 +1,18 @@ +package com.yxt.yyth.api.empcard; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/12/8 9:11 + */ +@Data +public class EmpCardQuery implements Query { + private String state; + private String noEnd; + private String noStart; + + private String number; + private String sid; +} diff --git a/src/main/java/com/yxt/yyth/api/empcard/EmpCardVo.java b/src/main/java/com/yxt/yyth/api/empcard/EmpCardVo.java new file mode 100644 index 0000000..2d17d94 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcard/EmpCardVo.java @@ -0,0 +1,29 @@ +package com.yxt.yyth.api.empcard; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/12/8 9:11 + */ +@Data +public class EmpCardVo implements Vo { + private String id; + private String sid; + private String createTime; + private String remarks; + private String isEnable; + private String recordId; + private String recordSid; + private String giftbagSid; + private String serialNumber; + private String code; + private String codeKey; + private String state; + private String grantName; + private String grantDate; + private String customerSid; + private String customerMobile; + +} diff --git a/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecord.java b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecord.java new file mode 100644 index 0000000..656c3da --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecord.java @@ -0,0 +1,31 @@ +package com.yxt.yyth.api.empcardbuildrecord; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; + +import java.util.Date; +import java.util.UUID; + +/** + * @author wangpengfei + * @date 2023/12/8 9:10 + */ +@Data +public class EmpCardBuildRecord { + private String id; + private String sid= UUID.randomUUID().toString(); + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date createTime; + private String remarks; +// private String isEnable; + private String giftbagSid; + + private String startNumber; + private String endNumber; + private String countNumber; + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + private Date buildDate; + private String cardArea; + + +} diff --git a/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordDto.java b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordDto.java new file mode 100644 index 0000000..9f540b2 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordDto.java @@ -0,0 +1,30 @@ +package com.yxt.yyth.api.empcardbuildrecord; + +import com.yxt.common.core.dto.Dto; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/12/8 9:11 + */ +@Data +public class EmpCardBuildRecordDto implements Dto { + private String id; + private String sid; + private String createTime; + private String remarks; + private String isEnable; + private String recordId; + private String recordSid; + private String giftbagSid; + private String serialNumber; + private String code; + private String codeKey; + private String state; + private String grantName; + private String grantDate; + private String customerSid; + private String customerMobile; + private String Num; + private String cardArea; +} diff --git a/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordQuery.java b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordQuery.java new file mode 100644 index 0000000..ae9dc9b --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordQuery.java @@ -0,0 +1,15 @@ +package com.yxt.yyth.api.empcardbuildrecord; + +import com.yxt.common.core.query.Query; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/12/8 9:11 + */ +@Data +public class EmpCardBuildRecordQuery implements Query { + private String startDate; //开始时间 + private String endDate; //结束时间 + private String countNumber; //总数 +} diff --git a/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordVo.java b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordVo.java new file mode 100644 index 0000000..82a6df3 --- /dev/null +++ b/src/main/java/com/yxt/yyth/api/empcardbuildrecord/EmpCardBuildRecordVo.java @@ -0,0 +1,19 @@ +package com.yxt.yyth.api.empcardbuildrecord; + +import com.yxt.common.core.vo.Vo; +import lombok.Data; + +/** + * @author wangpengfei + * @date 2023/12/8 9:11 + */ +@Data +public class EmpCardBuildRecordVo implements Vo { + private String sid; + private String buildDate; //创建时间 + private String countNumber; //总数 + private String startNumber; //起始号 + private String endNumber; //结束号 + private String bagName; + private String grantCountNumber; //发放总数 +} diff --git a/src/main/java/com/yxt/yyth/api/lpkgiftcard/AppletVo.java b/src/main/java/com/yxt/yyth/api/lpkgiftcard/AppletVo.java index c0e9716..eb5a82f 100644 --- a/src/main/java/com/yxt/yyth/api/lpkgiftcard/AppletVo.java +++ b/src/main/java/com/yxt/yyth/api/lpkgiftcard/AppletVo.java @@ -1,5 +1,6 @@ package com.yxt.yyth.api.lpkgiftcard; +import cn.hutool.core.date.DateUnit; import cn.hutool.core.date.DateUtil; import com.yxt.common.base.utils.StringUtils; import com.yxt.yyth.api.lpkreserveorder.LpkReserveOrderCardVo; @@ -7,6 +8,10 @@ import com.yxt.yyth.api.lpkstore.StoreSelect; import lombok.Data; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.Date; import java.util.List; @@ -46,13 +51,37 @@ public class AppletVo { public String getStart() { SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd"); - start=sdf.format(DateUtil.offsetDay(new Date(),+2)); + SimpleDateFormat sdf1 =new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + LocalDate today = LocalDate.now(); // 获取今天的日期 + LocalTime timeOfDay = LocalTime.of(16, 0); // 设置下午4点的小时数为16,分钟数为0 + LocalDateTime dateAndTime = LocalDateTime.of(today, timeOfDay); // 将日期和时间合并成完整的日期时间对象 + + ZoneId zoneId = ZoneId.systemDefault(); + Date date = Date.from(dateAndTime.atZone(zoneId).toInstant()); + System.out.println(date); + //1>2 1 、1<2 -1 、1=2 0 + int k=DateUtil.parse(sdf1.format(DateUtil.parse(sdf1.format(new Date())))).compareTo(DateUtil.parse(sdf1.format(DateUtil.parse(sdf1.format(date))))); + if(String.valueOf(k).equals("1")){ + start=sdf.format(DateUtil.offsetDay(new Date(),+2)); + }else{ + start=sdf.format(DateUtil.offsetDay(new Date(),+1)); + } + if(StringUtils.isNotBlank(dateEnd)){ int i=DateUtil.parse(sdf.format(DateUtil.parse(start))).compareTo(DateUtil.parse(sdf.format(DateUtil.parse(dateEnd)))); if(String.valueOf(i).equals("-1")){ - end=sdf.format(DateUtil.parse(dateEnd)); + long o=DateUtil.between(DateUtil.parse(start),DateUtil.parse(dateEnd), DateUnit.DAY); + if(o<10){ + end=sdf.format(DateUtil.offsetDay(DateUtil.parse(dateEnd),10)); + }else{ + end=sdf.format(DateUtil.parse(dateEnd)); + } }else{ - end=sdf.format(DateUtil.offsetDay(DateUtil.parse(dateEnd),2)); + if(String.valueOf(k).equals("1")){ + end=sdf.format(DateUtil.offsetDay(DateUtil.parse(dateEnd),2)); + }else{ + end=sdf.format(DateUtil.offsetDay(DateUtil.parse(dateEnd),1)); + } } } return start; @@ -118,11 +147,6 @@ public class AppletVo { showBtn=false; } } -// state="正常"; -// if(states.equals("5")){ -// this.state="失效"; -// showBtn=false; -// } } return state; } diff --git a/src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.java b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.java new file mode 100644 index 0000000..b6752dc --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.java @@ -0,0 +1,39 @@ +package com.yxt.yyth.biz.empcard; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.yyth.api.empcard.EmpAppletVo; +import com.yxt.yyth.api.empcard.EmpCard; +import com.yxt.yyth.api.empcard.EmpCardExport; +import com.yxt.yyth.api.empcard.EmpCardVo; +import com.yxt.yyth.api.lpkgiftcard.AppletVo; +import com.yxt.yyth.api.lpkgiftcard.LpkGiftCard; +import com.yxt.yyth.api.lpkgiftcard.LpkGiftCardListVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; +import org.apache.ibatis.annotations.Select; + +import java.util.List; + +/** + * @author wangpengfei + * @date 2023/12/8 9:19 + */ +@Mapper +public interface EmpCardMapper extends BaseMapper { + String selctMaxSerNum(@Param("cardArea") String cardArea); + IPage cardList(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + IPage recordDetails(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + @Select("SELECT card.*, case card.state WHEN 3 then '未提货' WHEN 4 then '已经预约提货(预约部分提货)' WHEN 5 then '已经提取完成' end stateValue,\n" + + "bag.dateStart as dateStart,bag.dateEnd as dateEnd,bag.name as pname,card.state as states,card.serialNumber as serialNumber\n" + + "FROM emp_card card LEFT JOIN lpk_giftbag bag on card.giftbagSid=bag.sid where card.sid=#{sid}") + EmpAppletVo getEmpCardBySid(@Param("sid") String sid); + + List exportExcel(@Param(Constants.WRAPPER) QueryWrapper qw); + @Select("select count(id) from emp_card where recordSid=#{recordSid} and grantRecordSid is not null") + Integer cardGrantCount(@Param("recordSid") String recordSid); + + IPage getGifCardByCustomerSid(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); +} diff --git a/src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.xml b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.xml new file mode 100644 index 0000000..03ee08e --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardMapper.xml @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/empcard/EmpCardRest.java b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardRest.java new file mode 100644 index 0000000..832bb7d --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardRest.java @@ -0,0 +1,67 @@ +package com.yxt.yyth.biz.empcard; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.empcard.EmpCardDto; +import com.yxt.yyth.api.empcard.EmpCardQuery; +import com.yxt.yyth.api.empcard.EmpCardVo; +import com.yxt.yyth.api.lpkgiftcard.BindCardDto; +import com.yxt.yyth.api.lpkgiftcard.LpkGiftCardListQuery; +import com.yxt.yyth.api.lpkgiftcard.LpkGiftCardListVo; +import com.yxt.yyth.api.lpkgiftcard.LpkGiftCardQuery; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author wangpengfei + * @date 2023/12/8 9:19 + */ +@Api(tags = "礼品卡信息") +@RestController +@RequestMapping("empcard") +public class EmpCardRest { + + + + @Autowired + EmpCardService empCardService; + + @PostMapping("/bindCard") + @ApiOperation(value = "客户绑定企业卡") + public ResultBean wxBindMobile(@RequestBody EmpCardDto dto) { + return empCardService.bindCard(dto); + } + @PostMapping("/generateCard") + @ApiOperation(value = "生成企业卡信息") + public ResultBean generateCard(@RequestBody EmpCardDto dto) { + return empCardService.generateCard(dto); + } + + @PostMapping("/cardList") + @ApiOperation(value = "企业卡信息列表") + public ResultBean> cardList(@RequestBody PagerQuery pq) { + return empCardService.cardList(pq); + } + @ApiOperation("查看记录详情列表") + @PostMapping("/recordDetails") + public ResultBean> recordDetails(@RequestBody PagerQuery pq) { + return empCardService.recordDetails(pq); + } + @ApiOperation(value = "企业卡信息列表导出") + @PostMapping("/exportExcel") + public void exportExcel(@RequestBody LpkGiftCardListQuery query) { + empCardService.exportExcel(query); + } + + @PostMapping("/gifCardByCustomerSid") + @ApiOperation(value = "获取客户绑定的礼包卡") + public ResultBean gifCardByCustomerSid(@RequestBody PagerQuery query) { + return empCardService.getGifCardByCustomerSid(query); + } +} diff --git a/src/main/java/com/yxt/yyth/biz/empcard/EmpCardService.java b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardService.java new file mode 100644 index 0000000..afbb086 --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcard/EmpCardService.java @@ -0,0 +1,227 @@ +package com.yxt.yyth.biz.empcard; + +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.ExportExcelUtils; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.empcard.*; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecord; +import com.yxt.yyth.api.lpkgiftcard.*; +import com.yxt.yyth.biz.empcardbuildrecord.EmpCardBuildRecordService; +import com.yxt.yyth.biz.lpkgiftcard.generateRule.UniqueIdGenerator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import javax.servlet.http.HttpServletResponse; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; +import java.util.Random; + +/** + * @author wangpengfei + * @date 2023/12/8 9:19 + */ +@Service +public class EmpCardService extends MybatisBaseService { + + @Autowired + EmpCardBuildRecordService empCardBuildRecordService; + @Autowired + private HttpServletResponse response; + + + + public ResultBean bindCard(EmpCardDto bindCardDto) { + ResultBean rb = new ResultBean().fail(); + EmpCard lpkGiftCard = baseMapper.selectOne(new QueryWrapper().eq("code", bindCardDto.getCode()) + .eq("codeKey", bindCardDto.getCodeKey())); + if (null == lpkGiftCard) { + return rb.setMsg("请核对卡号和密钥"); + } + EmpAppletVo vo = baseMapper.getEmpCardBySid(lpkGiftCard.getSid()); + if (vo.getState().equals("已过期")) { + return rb.setMsg("该卡已过期"); + } + if (StringUtils.isNotBlank(lpkGiftCard.getCustomerSid())) { + return rb.setMsg("该卡已绑定"); + } + lpkGiftCard.setCustomerSid(bindCardDto.getCustomerSid()); + lpkGiftCard.setState("2"); + lpkGiftCard.setBindDate(new Date()); + baseMapper.updateById(lpkGiftCard); + return rb.success().setMsg("绑定成功"); + } + + @Transactional(rollbackFor = Exception.class) + public ResultBean generateCard(EmpCardDto dto) { + ResultBean rb = ResultBean.fireFail(); + if (StringUtils.isBlank(dto.getGiftbagSid())) { + return rb.setMsg("请添加礼包"); + } + if (StringUtils.isBlank(dto.getNum())) { + return rb.setMsg("请输入生成卡片的数量"); + } + if (StringUtils.isBlank(dto.getCardArea())) { + return rb.setMsg("请输入区域号"); + } + int i = Integer.parseInt(dto.getNum()); + String cardArea = dto.getCardArea(); + EmpCardBuildRecord record = new EmpCardBuildRecord(); + record.setCountNumber(dto.getNum()); + record.setBuildDate(new DateTime()); + record.setCreateTime(new DateTime()); + record.setGiftbagSid(dto.getGiftbagSid()); + String startNum = ""; + String endNum = ""; + record.setCardArea(cardArea); + empCardBuildRecordService.insert(record); + EmpCardBuildRecord cardBuildRecord = empCardBuildRecordService.fetchBySid(record.getSid()); + if (null != cardBuildRecord) { + for (int j = 0; j < i; j++) { + EmpCard card = new EmpCard(); + card.setRecordSid(record.getSid()); + card.setState("1"); + card.setCreateTime(new DateTime()); + card.setGiftbagSid(dto.getGiftbagSid()); + String uuid = UniqueIdGenerator.generateUniqueID(); + int randomNumber = new Random().nextInt(900000) + 100000; + card.setCodeKey(String.valueOf(randomNumber)); + card.setCode(uuid); + String maxSerNum = baseMapper.selctMaxSerNum(cardArea); + if (StringUtils.isBlank(maxSerNum)) { + card.setSerialNumber(cardArea + "000001"); + } else { + String substringSer = maxSerNum.substring(cardArea.length()); + int i1 = Integer.parseInt(substringSer); + int finNum = i1 + 1; + int length = String.valueOf(finNum).length(); + int len = 6 - length; + String num = String.valueOf(finNum); + for (int a = 0; a < len; a++) { + num = "0" + num; + } + card.setSerialNumber(cardArea + num); + } + if (j == 0) { + startNum = card.getSerialNumber(); + } + if (j == i - 1) { + endNum = card.getSerialNumber(); + } + card.setRecordId(cardBuildRecord.getId()); + //生成二维码转base64 +// genarateQRCodesToBase64(card.getCode(),card.getSid()); + baseMapper.insert(card); + } + } + cardBuildRecord.setStartNumber(startNum); + cardBuildRecord.setEndNumber(endNum); + empCardBuildRecordService.updateById(cardBuildRecord); + return rb.success(); + } + public ResultBean> cardList(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + EmpCardQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("state", query.getState()); + } + qw.eq("1", "1"); + String sNoStart = query.getNoStart(); + String sNoEnd = query.getNoEnd(); + qw.apply(StringUtils.isNotBlank(sNoStart), "serialNumber >=" + sNoStart). + apply(StringUtils.isNotBlank(sNoEnd), "serialNumber <=" + sNoEnd + ); + qw.orderByDesc("id"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.cardList(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + public ResultBean> recordDetails(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + EmpCardQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("1", "1"); + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("state", query.getState()); + } + if (StringUtils.isNotBlank(query.getNumber())) { + qw.like("serialNumber", query.getNumber()); + } + if (StringUtils.isNotBlank(query.getSid())) { + qw.eq("recordSid", query.getSid()); + } + qw.orderByDesc("serialNumber"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.recordDetails(page, qw); + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } + public void exportExcel(LpkGiftCardListQuery query) { + + String finUrl = "https://supervise.yxtsoft.com/lpkapi?qy="; + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("1", "1"); + if (StringUtils.isNotBlank(query.getState())) { + qw.eq("state", query.getState()); + } + if (StringUtils.isNotBlank(query.getNumber())) { + qw.like("serialNumber", query.getNumber()); + } +// qw.eq("recordSid", query.getSid()); + //得到所有要导出的数据 + List exportList = baseMapper.exportExcel(qw); + if (!exportList.isEmpty()) { + for (EmpCardExport lpkGiftCardExport : exportList) { + if (StringUtils.isNotBlank(lpkGiftCardExport.getCode())) { + lpkGiftCardExport.setPic(finUrl + lpkGiftCardExport.getCode()); + lpkGiftCardExport.setCode1(lpkGiftCardExport.getCode().substring(0, 10)); + lpkGiftCardExport.setCode2(lpkGiftCardExport.getCode().substring(lpkGiftCardExport.getCode().length() - 10)); + } + } + } + //定义导出的excel名字 + String excelName = "1"; + String fileNameURL = "1"; +// try { +// fileNameURL = URLEncoder.encode(excelName, "UTF-8"); +// fileNameURL = URLEncoder.encode(excelName, "UTF-8"); +// } catch (UnsupportedEncodingException e) { +// e.printStackTrace(); +// } + //导出提货卡信息列表 + ExportExcelUtils.export(fileNameURL, exportList, EmpCardExport.class, response); + + } + public ResultBean cardGrantCount(String recordSid) { + ResultBean rb = new ResultBean().fail(); + Integer i = baseMapper.cardGrantCount(recordSid); + return rb.success().setData(i); + } + public ResultBean getGifCardByCustomerSid(PagerQuery pq) { + ResultBean rb = new ResultBean().fail(); + LpkGiftCardQuery query = pq.getParams(); + if (StringUtils.isBlank(query.getCustomerSid())) { + return rb.setMsg("参数不能为空"); + } + QueryWrapper qw = new QueryWrapper<>(); +// updateIsItInvalid(query.getCustomerSid()); + if (StringUtils.isNotBlank(query.getCustomerSid())) { + qw.eq("customerSid", query.getCustomerSid()); + } + IPage page = PagerUtil.queryToPage(pq); + IPage list = baseMapper.getGifCardByCustomerSid(page, qw); + PagerVo p = PagerUtil.pageToVo(list, null); + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + return rb.success().setData(p); + } +} diff --git a/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.java b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.java new file mode 100644 index 0000000..85ea3fd --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.java @@ -0,0 +1,22 @@ +package com.yxt.yyth.biz.empcardbuildrecord; + +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; +import com.yxt.yyth.api.empcard.EmpCard; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecord; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecordVo; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecord; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecordVo; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +/** + * @author wangpengfei + * @date 2023/12/8 9:19 + */ +@Mapper +public interface EmpCardBuildRecordMapper extends BaseMapper { + IPage recordListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); +} diff --git a/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.xml b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.xml new file mode 100644 index 0000000..3fcc994 --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordMapper.xml @@ -0,0 +1,22 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordRest.java b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordRest.java new file mode 100644 index 0000000..4de04a3 --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordRest.java @@ -0,0 +1,34 @@ +package com.yxt.yyth.biz.empcardbuildrecord; + +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.empcard.EmpCardDto; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecordQuery; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecordVo; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecordQuery; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecordVo; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * @author wangpengfei + * @date 2023/12/8 9:19 + */ +@Api(tags = "礼品卡信息") +@RestController +@RequestMapping("empcardbuildrecord") +public class EmpCardBuildRecordRest { + @Autowired + EmpCardBuildRecordService empCardBuildRecordService; + @ApiOperation("创建记录列表") + @PostMapping("/recordListPage") + public ResultBean> recordListPage(@RequestBody PagerQuery pq) { + return empCardBuildRecordService.recordListPage(pq); + } +} diff --git a/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordService.java b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordService.java new file mode 100644 index 0000000..8334b2d --- /dev/null +++ b/src/main/java/com/yxt/yyth/biz/empcardbuildrecord/EmpCardBuildRecordService.java @@ -0,0 +1,59 @@ +package com.yxt.yyth.biz.empcardbuildrecord; + +import cn.hutool.core.date.DateTime; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.yxt.common.base.service.MybatisBaseService; +import com.yxt.common.base.utils.PagerUtil; +import com.yxt.common.base.utils.StringUtils; +import com.yxt.common.core.query.PagerQuery; +import com.yxt.common.core.result.ResultBean; +import com.yxt.common.core.vo.PagerVo; +import com.yxt.yyth.api.empcard.EmpCard; +import com.yxt.yyth.api.empcard.EmpCardDto; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecord; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecordQuery; +import com.yxt.yyth.api.empcardbuildrecord.EmpCardBuildRecordVo; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecord; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecordQuery; +import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecordVo; +import com.yxt.yyth.biz.empcard.EmpCardService; +import com.yxt.yyth.biz.lpkgiftcard.generateRule.UniqueIdGenerator; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.util.Random; + +/** + * @author wangpengfei + * @date 2023/12/8 9:19 + */ +@Service +public class EmpCardBuildRecordService extends MybatisBaseService { + + @Autowired + EmpCardService empCardService; + public ResultBean> recordListPage(PagerQuery pq) { + ResultBean rb = ResultBean.fireFail(); + EmpCardBuildRecordQuery query = pq.getParams(); + QueryWrapper qw = new QueryWrapper<>(); + qw.eq("1", "1"); + if (StringUtils.isNotBlank(query.getCountNumber())) { + qw.eq("r.countNumber", query.getCountNumber()); + } + String startDate = query.getStartDate(); + String effEndTime = query.getEndDate(); + qw.apply(org.apache.commons.lang3.StringUtils.isNotEmpty(startDate), "date_format (r.buildDate,'%Y-%m-%d') >= date_format('" + startDate + "','%Y-%m-%d')"). + apply(org.apache.commons.lang3.StringUtils.isNotEmpty(effEndTime), "date_format (r.buildDate,'%Y-%m-%d') <= date_format('" + effEndTime + "','%Y-%m-%d')" + ); + qw.orderByDesc("r.createTime"); + IPage page = PagerUtil.queryToPage(pq); + IPage pagging = baseMapper.recordListPage(page, qw); +// for(EmpCardBuildRecordVo vo:pagging.getRecords()){ +// vo.setGrantCountNumber(String.valueOf(empCardService.cardGrantCount(vo.getSid()).getData())); +// } + PagerVo p = PagerUtil.pageToVo(pagging, null); + return rb.success().setData(p); + } +}