From b967512dc1c91445d696c18a9497e8bd6e4c521c Mon Sep 17 00:00:00 2001 From: fanzongzhe <285169773@qq.com> Date: Thu, 21 Dec 2023 17:50:35 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=B9=E9=87=8F=E5=AF=BC=E5=85=A5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../LpkCardBuildRecordMapper.java | 4 + .../LpkCardBuildRecordMapper.xml | 9 +- .../LpkCardBuildRecordService.java | 3 + .../lpkcardqrcode/LpkCardQrcodeMapper.java | 4 + .../biz/lpkcardqrcode/LpkCardQrcodeMapper.xml | 7 + .../lpkcardqrcode/LpkCardQrcodeService.java | 5 + .../yyth/biz/lpkgiftbag/LpkGiftBagMapper.java | 2 + .../yyth/biz/lpkgiftbag/LpkGiftBagMapper.xml | 8 + .../biz/lpkgiftbag/LpkGiftBagService.java | 4 + .../LpkGiftBagGoodsMapper.java | 3 + .../lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml | 7 + .../LpkGiftBagGoodsService.java | 5 + .../biz/lpkgiftcard/LpkGiftCardMapper.java | 4 + .../biz/lpkgiftcard/LpkGiftCardMapper.xml | 30 ++- .../biz/lpkgiftcard/LpkGiftCardService.java | 192 +++++++++++++++++- 15 files changed, 272 insertions(+), 15 deletions(-) diff --git a/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.java b/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.java index 51963a4..b229355 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.java @@ -12,6 +12,8 @@ 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/11/21 15:03 @@ -20,4 +22,6 @@ import org.apache.ibatis.annotations.Select; public interface LpkCardBuildRecordMapper extends BaseMapper { IPage recordListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int saveRecords(@Param("records") List records); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.xml index f50f975..c78bf85 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordMapper.xml @@ -8,7 +8,7 @@ + + insert into lpk_card_build_record(sid,createTime,giftbagSid,buildDate,countNumber,startNumber,endNumber) + values + + (#{item.sid},#{item.createTime},#{item.giftbagSid},#{item.buildDate},#{item.countNumber},#{item.startNumber},#{item.endNumber}) + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordService.java b/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordService.java index 4f6d98e..f05d995 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkcardbuildrecord/LpkCardBuildRecordService.java @@ -59,4 +59,7 @@ public class LpkCardBuildRecordService extends MybatisBaseService records) { + return baseMapper.saveRecords(records); + } } diff --git a/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.java b/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.java index 515b919..861e05d 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.java @@ -9,6 +9,8 @@ import com.yxt.yyth.api.lpkcardqrcode.LpkCardQrcodeVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; +import java.util.List; + /** * @author wangpengfei * @date 2023/11/21 15:03 @@ -17,4 +19,6 @@ import org.apache.ibatis.annotations.Param; public interface LpkCardQrcodeMapper extends BaseMapper { IPage recordListPage(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + int saveCodes(@Param("codes")List codes); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.xml index ba947ec..28509ce 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkcardqrcode/LpkCardQrcodeMapper.xml @@ -4,6 +4,13 @@ + + insert into lpk_card_qrcode(sid,createTime,cardSid,file) + values + + (#{item.sid},#{item.createTime},#{item.cardSid},#{item.file}) + + select sid, diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java index 9ffaf2f..898fdd6 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbag/LpkGiftBagService.java @@ -189,4 +189,8 @@ public class LpkGiftBagService extends MybatisBaseService bags) { + return baseMapper.saveBags(bags); + } } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java index 97d6cd1..8708f6a 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.java @@ -23,5 +23,8 @@ public interface LpkGiftBagGoodsMapper extends BaseMapper { @Select("select goods.name as goodsName,bads.goodsNumber ,bads.goodsSid,goods.picUrl,goods.price,goods.unitName,goods.remarks " + " from lpk_giftbag_goods bads left join lpk_goods goods on goods.sid =bads.goodsSid where bads.giftbagSid=#{sid}") List getGoodsByBagSid(String sid); + List getRecordsByBagSid(@Param("sid") String sid); + + int saveBagGoods(@Param("bagGoods") List bagGoods); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml index f709f44..707570f 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsMapper.xml @@ -14,4 +14,11 @@ from lpk_giftbag_goods WHERE giftbagSid = #{sid} + + insert into lpk_giftbag_goods(sid,createTime,giftbagSid,goodsSid,goodsNumber) + values + + (#{item.sid},#{item.createTime},#{item.giftbagSid},#{item.goodsSid},#{item.goodsNumber}) + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java index d71474b..f0c5b71 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftbaggoods/LpkGiftBagGoodsService.java @@ -4,6 +4,7 @@ import com.yxt.common.base.service.MybatisBaseService; import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoods; import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoodsVo; +import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Service; import java.util.List; @@ -22,9 +23,13 @@ public class LpkGiftBagGoodsService extends MybatisBaseService getRecordsByBagSid(String sid) { return baseMapper.getRecordsByBagSid(sid); } + public List getGoodsByBagSid(String sid) { return baseMapper.getGoodsByBagSid(sid); } + public int saveBagGoods(List bagGoods) { + return baseMapper.saveBagGoods(bagGoods); + } } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.java b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.java index 3f78e1f..b74f556 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.java @@ -59,4 +59,8 @@ public interface LpkGiftCardMapper extends BaseMapper { // List selGiftCard(@Param("serialNumbers") List serialNumbers); IPage selGiftCard(IPage page, @Param(Constants.WRAPPER) QueryWrapper qw); + + String selctMaxSerNumForExport(); + + int saveCards(@Param("cards") List cards); } diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.xml b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.xml index 37c5976..a4b37fa 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.xml +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardMapper.xml @@ -1,6 +1,17 @@ + + + + insert into lpk_giftcard(sid,createTime,recordSid,giftbagSid,serialNumber,code,codeKey,`state`) + values + + (#{item.sid},#{item.createTime},#{item.recordSid},#{item.giftbagSid},#{item.serialNumber},#{item.code},#{item.codeKey},#{item.state}) + + @@ -121,16 +132,21 @@ #{item} - - - - - - + + + + + + + \ No newline at end of file diff --git a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java index 05b307d..21b5255 100644 --- a/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java +++ b/src/main/java/com/yxt/yyth/biz/lpkgiftcard/LpkGiftCardService.java @@ -25,10 +25,12 @@ import com.yxt.common.core.result.ResultBean; import com.yxt.common.core.vo.PagerVo; import com.yxt.yyth.api.lpkcardbuildrecord.LpkCardBuildRecord; import com.yxt.yyth.api.lpkcardgrantrecord.LpkCardGrantRecordDto; +import com.yxt.yyth.api.lpkcardqrcode.LpkCardQrcode; import com.yxt.yyth.api.lpkcardqrcode.LpkCardQrcodeDto; import com.yxt.yyth.api.lpkgiftbag.GiftBagGoods; import com.yxt.yyth.api.lpkgiftbag.LpkGiftBag; import com.yxt.yyth.api.lpkgiftbag.LpkGiftBagDto; +import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoods; import com.yxt.yyth.api.lpkgiftbaggoods.LpkGiftBagGoodsVo; import com.yxt.yyth.api.lpkgiftcard.*; import com.yxt.yyth.api.lpkgoods.LpkGoods; @@ -1056,13 +1058,14 @@ public class LpkGiftCardService extends MybatisBaseService setMsg = returnMsg.getSetMsg(); + StringBuffer sbMsg = new StringBuffer(); + if (null != setMsg && setMsg.size() > 0) { + for (String s : setMsg) { + sbMsg.append(s).append(","); + } + sbMsg.delete(sbMsg.length() - 1, sbMsg.length()); + if (StringUtils.isNotBlank(sbMsg.toString())) { + return rb.setMsg(sbMsg.toString()); + } + } + List importReturn = returnMsg.getInfos(); + importReturn.removeAll(Collections.singleton(null)); + String startNo = ""; + String endNo = ""; + List cards = new ArrayList<>(); //卡片 + List bagGoods = new ArrayList<>(); //卡片礼包关联 + List bags = new ArrayList<>(); //礼包 + List codes = new ArrayList<>(); //二维码 + List records = new ArrayList<>(); //二维码 + SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); + int cardSerNum = 0; + //生成卡包 + if (!importReturn.isEmpty()) { + for (int i = 0; i < importReturn.size(); i++) { + ReturnExcelInfo info = importReturn.get(i); + LpkGiftCard card = new LpkGiftCard(); + LpkGiftBag bag = new LpkGiftBag(); + LpkCardQrcode code = new LpkCardQrcode(); + LpkCardBuildRecord record = new LpkCardBuildRecord(); + String serNum = baseMapper.selctMaxSerNumForExport(); + card.setCreateTime(new DateTime());//卡片生成时间 + bag.setCreateTime(new DateTime());//礼包生成时间 + code.setCreateTime(new DateTime());//二维码生成时间 + record.setCreateTime(new DateTime());//礼包记录生成时间 + record.setBuildDate(new DateTime());//礼包记录生成时间 + record.setGiftbagSid(bag.getSid()); + record.setCountNumber("1"); + if (StringUtils.isNotBlank(serNum)) { + int serNumInt = Integer.parseInt(serNum); + if (i == 0) { + cardSerNum = serNumInt + 1; + } + } else { + if (cardSerNum == 0) { + cardSerNum = 70000001; + } + } + card.setSerialNumber(String.valueOf(cardSerNum)); + record.setStartNumber(String.valueOf(cardSerNum)); + record.setEndNumber(String.valueOf(cardSerNum)); + bag.setName("家庭菜窖" + cardSerNum); + card.setGiftbagSid(bag.getSid()); //卡片赋值关联礼包sid + card.setRecordSid(record.getSid()); //卡片赋值关联生成卡记录sid + card.setState("1"); + String uuid = UniqueIdGenerator.generateUniqueID(); + int randomNumber = new Random().nextInt(900000) + 100000; + card.setCodeKey(String.valueOf(randomNumber)); //6位密码 + card.setCode(uuid); //20位提货码 + //生成二维码转base64 + String s = genarateQRCodesToBase64ForExport(card.getCode()); + code.setCardSid(card.getSid()); + code.setCreateTime(new DateTime()); + code.setFile(s); + //------礼包信息赋值------------- + try { + bag.setDateStart(sdf.parse(startDate)); + bag.setDateEnd(sdf.parse(endDate)); + } catch (ParseException e) { + e.printStackTrace(); + } + cards.add(card); + bags.add(bag); + codes.add(code); + records.add(record); + List infoDetails = info.getInfoDetails(); + if (!infoDetails.isEmpty()) { + for (ReturnExcelInfoDetails detail : infoDetails) { + LpkGiftBagGoods giftBagGoods = new LpkGiftBagGoods(); + giftBagGoods.setCreateTime(new DateTime()); + if (StringUtils.isNotBlank(detail.getGoodNum()) && StringUtils.isNotBlank(detail.getGoodName())) { + LpkGoods lpkGoods = lpkGoodsService.getGoodsByName(detail.getGoodName()); + if (null != lpkGoods) { + giftBagGoods.setGoodsSid(lpkGoods.getSid()); + if (detail.getGoodNum().contains(".")) { + String num = detail.getGoodNum().substring(0, detail.getGoodNum().indexOf(".")); + giftBagGoods.setGoodsNumber(num); + } else { + giftBagGoods.setGoodsNumber(detail.getGoodNum()); + } + } + giftBagGoods.setGiftbagSid(bag.getSid()); + bagGoods.add(giftBagGoods); + } + } + } + if (i == 0) { + startNo = String.valueOf(cardSerNum); + } + if (i == importReturn.size() - 1) { + endNo = String.valueOf(cardSerNum); + } + cardSerNum = cardSerNum + 1; + } + //批量插入数据 + //卡片 + if (!cards.isEmpty()) { + int i = baseMapper.saveCards(cards); + } + //卡记录 + if (!records.isEmpty()) { + int i = lpkCardBuildRecordService.saveRecords(records); + } + //二维码 + if (!codes.isEmpty()) { + int i = lpkCardQrcodeService.saveCodes(codes); + } + //礼包 + if (!bags.isEmpty()) { + int i = lpkGiftBagService.saveBags(bags); + } + //礼包商品 + if (!bagGoods.isEmpty()) { + int i = LpkGiftBagGoodsService.saveBagGoods(bagGoods); + } + return rb.success().setMsg("本次导入:" + importReturn.size() + "条数据,生成卡券共计" + importReturn.size() + "张;卡券序列号:" + startNo + "-" + endNo); + } + return rb.success().setMsg("导入成功"); + } + + /** + * 二维码转base64 + */ + public String genarateQRCodesToBase64ForExport(String uuid) { + BufferedImage bufferedImage = QrCodeUtil.generate(uuid, 300, 300); + byte[] bytes = ImgUtil.toBytes(bufferedImage, "JPG"); + Base64Encoder base64Encoder = new Base64Encoder(); + String a = base64Encoder.encode(bytes); + a = a.trim(); + a = a.replaceAll("\n", "").replaceAll("\r", ""); + return a; + } + + /** + * 校验导入结果 + * + * @param sheet + * @return + */ private ReturnMsg getSheetVal2(Sheet sheet) { ReturnMsg returnMsg = new ReturnMsg(); List voList = new ArrayList<>(); @@ -1168,12 +1345,12 @@ public class LpkGiftCardService extends MybatisBaseService