From 03b512ef7582231518ca0778f28e838435ae5a29 Mon Sep 17 00:00:00 2001 From: "@QQNZX" Date: Wed, 3 Jan 2024 14:24:24 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E5=89=8D=E7=AB=AF=20=E6=A8=A1=E6=9D=BF?= =?UTF-8?q?=E7=9A=84=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EventMarketing/cardFavorable/index.vue | 47 ++------------ gasStation-uni/config.js | 4 +- gasStation-uni/package/cji/cji.vue | 61 ++++++++++++++++++- gasStation-uni/pages/my/my.vue | 3 +- gasStation-uni/pagesMy/invite/invite.vue | 26 +++++++- 5 files changed, 91 insertions(+), 50 deletions(-) diff --git a/fuintAdmin/src/views/EventMarketing/cardFavorable/index.vue b/fuintAdmin/src/views/EventMarketing/cardFavorable/index.vue index d16eadfad..bd279912d 100644 --- a/fuintAdmin/src/views/EventMarketing/cardFavorable/index.vue +++ b/fuintAdmin/src/views/EventMarketing/cardFavorable/index.vue @@ -184,7 +184,7 @@ -
领券后立即生效,有效期 +
领券后立即生效,有效期
@@ -193,64 +193,27 @@
- 固定有效周期,固定开始日期 + 固定有效周期,固定开始日期 - 有效期 + 有效期
- 领券后第 + 领券后第 - 有效期 + 有效期
- - - - - - - - - - - 满减活动 diff --git a/gasStation-uni/config.js b/gasStation-uni/config.js index 7e113ca1b..aa44da9d5 100644 --- a/gasStation-uni/config.js +++ b/gasStation-uni/config.js @@ -3,7 +3,7 @@ module.exports = { // baseUrl: 'https://vue.ruoyi.vip/prod-api', // baseUrl: 'http://192.168.0.196:8081/', // baseUrl: 'http://192.168.1.4:8080/', - baseUrl: 'http://localhost:8008/', + baseUrl: 'http://192.168.0.138:8080/', // baseUrl: 'http://192.168.1.5:8002/cdJdc', @@ -29,4 +29,4 @@ module.exports = { } ] } -} \ No newline at end of file +} diff --git a/gasStation-uni/package/cji/cji.vue b/gasStation-uni/package/cji/cji.vue index 79febaa74..4fa30a4bb 100644 --- a/gasStation-uni/package/cji/cji.vue +++ b/gasStation-uni/package/cji/cji.vue @@ -6,20 +6,46 @@ 样版页 - + diff --git a/fuintAdmin/src/views/oilConfig/oilPrice/index.vue b/fuintAdmin/src/views/oilConfig/oilPrice/index.vue index 5105f7a4e..55d6db502 100644 --- a/fuintAdmin/src/views/oilConfig/oilPrice/index.vue +++ b/fuintAdmin/src/views/oilConfig/oilPrice/index.vue @@ -516,6 +516,7 @@ import { }, handleChange(value) { + console.log("this.oilNumber",this.oilNumber); console.log(value); }, // 获取数据 @@ -524,7 +525,6 @@ import { try { const response = await getOilNumberList(); this.oilNumberList2 = response.data.records; - console.log("this.oilNumberList2",this.oilNumberList2) await this.getAllOilList(); resolve(); } catch (error) { @@ -573,11 +573,10 @@ import { } }, - // 编辑时使用 + + // 编辑时使用 async oilTypeMethods(data) { if (data === 1) { - console.log("123123",data) - // this.oilNumber = {} this.dialogFormVisible = true this.res() @@ -595,6 +594,7 @@ import { this.getOilTypeList("pricingUnitCN"), this.getOilTypeList("pricingUnitEN"), ]); + this.receivingUnitList = []; var cla1 = { label : "英文简称", @@ -641,7 +641,6 @@ import { }, // 选择油品类型之后触发 oilTypeClick(data) { - console.log("selectedValue",data) // 清除油品名称 // this.oilNumber.oilName = '' // this.oilNumber.oilNameT = '' @@ -661,14 +660,12 @@ import { // 打开修改窗口 openOilNumberEdit(item) { - console.log("item", item); this.oilNumber = {}; let oil = item.allOil.split(' '); - console.log("oil[1];",item) - - item.oilNameT = oil[1]; - item.oilName = oil[1]; + console.log("oilNameT",item) + // item.oilNameT = oil[1]; + // item.oilName = oil[1]; this.oilNumber = item; this.$set(this.oilNumber,'oilNameT',oil[1]) @@ -700,7 +697,6 @@ import { // 修改 async updateOilNumberin(){ - console.log this.$refs["form"].validate(valid => { if (valid) { var this_ = this @@ -724,6 +720,7 @@ import { // 查询数组字典类型 async getOilTypeList(data) { + var this_ = this await dictSelect(data).then( response => { var list = response.data @@ -736,7 +733,6 @@ import { }else { this_.oilNameList = list; } - console.log("this_.oilTypeList",this_.oilTypeList) }); }, @@ -789,8 +785,6 @@ import { // 添加youjia1 insertOilPresePrices(){ - // console.log(typeof oilPresetPrices.presetOilPrices); - console.log("typeof oilPresetPrices.presetOilPrices",this.oilPresetPrices); this.$refs["priForm"].validate(valid => { if (valid) { this.dialogFormPricesAdd = false @@ -817,7 +811,6 @@ import { // 新增油价预设 oilTypeClickByPrice() { var count = this.oilPresetPrices.numberId; - console.log("this.selectOilTypeByPrice",this.selectOilTypeByPrice) this.selectOilTypeByPrice.forEach((oil) => { if (oil.numberId == parseInt(count)) { this.oilPresetPrices.currentPetrolPrices = oil.oilPrice; diff --git a/fuintAdmin/src/views/oilConfig/oilStatistics/list.vue b/fuintAdmin/src/views/oilConfig/oilStatistics/list.vue index 8b86bbe06..bca511529 100644 --- a/fuintAdmin/src/views/oilConfig/oilStatistics/list.vue +++ b/fuintAdmin/src/views/oilConfig/oilStatistics/list.vue @@ -19,7 +19,7 @@ 搜索 - + 重置 @@ -278,6 +278,25 @@ export default { this.drawer=true }, + // 搜索框重置 + resetQuery() { + this.res() + + this.getList() + }, + + res() { + // 查询参数 + this.queryParams= { + numberId:'', + status:'', + tankName: '', + page:null, + pageSize:null + } + }, + + handleClose(done) { done(); // this.$confirm('确认关闭?') diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/controller/IntegralOrdersController.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/controller/IntegralOrdersController.java index 92e5dad94..13720b978 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/controller/IntegralOrdersController.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/controller/IntegralOrdersController.java @@ -175,5 +175,39 @@ public class IntegralOrdersController extends BaseController { return getSuccessResult(this.integralOrdersService.integralOrdersProcessingUni(integralOrdersList)); } + + /** + * 查询是否领取到同一件商品领取了几件 + * @param giftId + * @param userId + * @return + */ + @GetMapping("enquiryForCollection") + public ResponseObject enquiryForCollection(Integer giftId, Integer userId) { + return getSuccessResult(this.integralOrdersService.enquiryForCollection(giftId, userId)); + } + + + /** + * 查询是否已达到领取上限 + * @param giftId + * @return + */ + @GetMapping("checkTheRedemptionLimit") + public ResponseObject checkTheRedemptionLimit(Integer giftId) { + return getSuccessResult(this.integralOrdersService.checkTheRedemptionLimit(giftId)); + } + + + /** + * 查询是否已达到领取上限22 + * @param giftId + * @return + */ + @GetMapping("checkTheRedemptionLimit2") + public ResponseObject checkTheRedemptionLimit2(Integer giftId) { + return getSuccessResult(this.integralOrdersService.checkTheRedemptionLimit(giftId)); + } + } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/entity/IntegralOrders.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/entity/IntegralOrders.java index 941a1cc2f..5c833beb5 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/entity/IntegralOrders.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/entity/IntegralOrders.java @@ -89,6 +89,7 @@ public class IntegralOrders extends BaseEntity { * 店铺ID */ private Integer storeId; + private Integer chainStoreId; /** * 快递公司 */ diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/IntegralOrdersMapper.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/IntegralOrdersMapper.java index 5cfc9943c..a03ac41e2 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/IntegralOrdersMapper.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/IntegralOrdersMapper.java @@ -98,6 +98,10 @@ public interface IntegralOrdersMapper { List getListByOrderNo(@Param("orderNumber") String orderNumber,@Param("storeId") Integer storeId); + List getListByOrderNo2(@Param("orderNumber") String orderNumber); + + List enquiryForCollection(@Param("giftId") Integer giftId,@Param("userId") Integer userId); + int editPayStatus(@Param("orderNumber") String orderNumber,@Param("payStates") String payStates, @Param("storeId") Integer storeId ); // int editPayStatus(@Param("orderNumber") String orderNumber,@Param("payStates") String payStates, @Param("storeId") Integer storeId ); diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/xml/IntegralOrdersMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/xml/IntegralOrdersMapper.xml index c693460f7..1197027fc 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/xml/IntegralOrdersMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/mapper/xml/IntegralOrdersMapper.xml @@ -21,6 +21,7 @@ + @@ -194,7 +195,7 @@ and date_format(io.create_time,'%y%m%d') <= date_format(#{integralOrders.params.endTime},'%y%m%d') - + and ( (#{integralOrders.orderStatus} = 1 and (io.order_status = '待处理' or io.order_status = '待发货' or io.order_status = '已发货')) or (#{integralOrders.orderStatus} = 2 and (io.order_status = '已完成' )) or @@ -306,10 +307,10 @@ - insert into integral_orders(user_id, order_number, gift_id, shipping_type, paid_info, amount, integral, come_on, exchange_quantity, order_status, status, order_type, processing_result, notes, store_id, create_time, update_time, create_by, update_by,staff_id,payment_type) + insert into integral_orders(user_id, order_number, gift_id, shipping_type, paid_info, amount, integral, come_on, exchange_quantity, order_status, status, order_type, processing_result, notes, store_id, create_time, update_time, create_by, update_by,staff_id,payment_type,chain_store_id) values - (#{entity.userId}, #{entity.orderNumber}, #{entity.giftId}, #{entity.shippingType}, #{entity.paidInfo}, #{entity.amount}, #{entity.integral}, #{entity.comeOn}, #{entity.exchangeQuantity}, #{entity.orderStatus}, #{entity.status}, #{entity.orderType}, #{entity.processingResult}, #{entity.notes}, #{entity.storeId}, NOW(), NOW(), #{entity.createBy}, #{entity.updateBy},#{entity.staffId},#{entity.paymentType}) + (#{entity.userId}, #{entity.orderNumber}, #{entity.giftId}, #{entity.shippingType}, #{entity.paidInfo}, #{entity.amount}, #{entity.integral}, #{entity.comeOn}, #{entity.exchangeQuantity}, #{entity.orderStatus}, #{entity.status}, #{entity.orderType}, #{entity.processingResult}, #{entity.notes}, #{entity.storeId}, NOW(), NOW(), #{entity.createBy}, #{entity.updateBy},#{entity.staffId},#{entity.paymentType},#{entity.chainStoreId}) @@ -418,6 +419,14 @@ select * from integral_orders where order_number = #{orderNumber} and store_id = #{storeId} + + + + update integral_orders set status = #{payStates} where order_number = #{orderNumber} diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/IntegralOrdersService.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/IntegralOrdersService.java index 760e4225d..0f69b9f9b 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/IntegralOrdersService.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/IntegralOrdersService.java @@ -75,5 +75,20 @@ public interface IntegralOrdersService { Map integralOrdersProcessingUni(IntegralOrdersRequest integralOrdersList); + /** + * 查询是否领取到同一件商品领取了几件 + * @param giftId + * @param userId + * @return + */ + String enquiryForCollection(Integer giftId, Integer userId); + + + /** + * 查询是否已达到领取上限 + * @param giftId + * @return + */ + Boolean checkTheRedemptionLimit(Integer giftId); } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralGiftServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralGiftServiceImpl.java index 681e677cb..113f5bff1 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralGiftServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralGiftServiceImpl.java @@ -5,13 +5,17 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fuint.business.integral.entity.IntegralGift; import com.fuint.business.integral.mapper.IntegralGiftMapper; import com.fuint.business.integral.service.IntegralGiftService; +import com.fuint.business.integral.service.IntegralOrdersService; import com.fuint.business.integral.vo.IntegralGiftVO; import com.fuint.common.dto.AccountInfo; import com.fuint.common.util.TokenUtil; import org.apache.ibatis.annotations.Param; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Lazy; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.List; /** * (IntegralGift)表服务实现类 @@ -19,11 +23,13 @@ import javax.annotation.Resource; * @author makejava * @since 2023-11-02 14:18:52 */ -@Service("integralGiftService") +@Service public class IntegralGiftServiceImpl implements IntegralGiftService { @Resource private IntegralGiftMapper integralGiftDao; - + @Autowired + @Lazy + private IntegralOrdersService integralOrdersService; /** * 通过ID查询单条数据 * @@ -52,9 +58,15 @@ public class IntegralGiftServiceImpl implements IntegralGiftService { } + @Override public IPage queryByPageByStoreId(@Param("page") Page page, @Param("integralGiftCategory") IntegralGift integralGift) { - return integralGiftDao.queryAllByLimit(page, integralGift); + IPage integralGiftVOIPage = integralGiftDao.queryAllByLimit(page, integralGift); + List records = integralGiftVOIPage.getRecords(); + for (IntegralGiftVO record : records) { + record.setIfRedemptionIsOnline(integralOrdersService.checkTheRedemptionLimit(record.getId())); + } + return integralGiftVOIPage; } /** diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralOrdersServiceImpl.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralOrdersServiceImpl.java index ac8e000ff..407e8809c 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralOrdersServiceImpl.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/service/impl/IntegralOrdersServiceImpl.java @@ -1,5 +1,6 @@ package com.fuint.business.integral.service.impl; +import cn.hutool.core.util.HashUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.metadata.IPage; import com.fuint.api.fuyou.entity.MerchantConfig; @@ -12,12 +13,14 @@ import com.fuint.business.integral.entity.IntegralGift; import com.fuint.business.integral.entity.IntegralOrders; import com.fuint.business.integral.mapper.IntegralOrdersMapper; import com.fuint.business.integral.service.IntegralDetailService; +import com.fuint.business.integral.service.IntegralGiftService; import com.fuint.business.integral.service.IntegralOrdersService; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.fuint.business.integral.vo.IntegralGiftVO; import com.fuint.business.integral.vo.IntegralOrdersRequest; import com.fuint.business.integral.vo.IntegralOrdersVO; +import com.fuint.business.marketingActivity.cardExchange.service.CardExchangeRecordService; import com.fuint.business.marketingActivity.cardValue.entity.CardValueRecord; import com.fuint.business.userManager.entity.UserBalance; import com.fuint.business.userManager.mapper.LJUserMapper; @@ -25,6 +28,7 @@ import com.fuint.business.userManager.service.UserBalanceService; import com.fuint.business.userManager.vo.LJUserVo; import com.fuint.common.dto.AccountInfo; import com.fuint.common.util.TokenUtil; +import io.swagger.models.auth.In; import org.apache.ibatis.annotations.Param; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -43,7 +47,7 @@ import java.util.*; * @author makejava * @since 2023-11-07 13:59:23 */ -@Service("integralOrdersService") +@Service public class IntegralOrdersServiceImpl implements IntegralOrdersService { @Resource private IntegralOrdersMapper integralOrdersDao; @@ -57,6 +61,9 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { private UserBalanceService userBalanceService; @Resource IntegralDetailService integralDetailService; + @Resource + IntegralGiftService integralGiftService; + /** * 通过ID查询单条数据 * @@ -72,7 +79,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { * 分页查询 * * @param integralOrders 筛选条件 - * @param page 分页对象 + * @param page 分页对象 * @return 查询结果 */ @Override @@ -89,6 +96,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { integralOrders.setUserId(nowAccountInfo.getId()); return integralOrdersDao.queryByPageUni(page, integralOrders); } + /** * 新增数据 * @@ -102,7 +110,6 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { } - /** * 修改数据 receiving_information * @@ -142,6 +149,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { /** * 插入订单状态 并进行支付 + * * @param integralOrdersList * @return */ @@ -158,28 +166,28 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { } // 首先判断是否足够积分 - LJUserVo ljUserVos = ljUserMapper.selectAllInfoById2(integralOrdersList.getIntegralOrdersList().get(0).getUserId(),nowAccountInfo.getChainStoreId()); + LJUserVo ljUserVos = ljUserMapper.selectAllInfoById2(integralOrdersList.getIntegralOrdersList().get(0).getUserId(), nowAccountInfo.getChainStoreId()); if (ljUserVos.getPoints() < integralOrdersList.getAllPoints()) { integralOrdersList.getIntegralOrdersList().get(0).setStatus("un"); return integralOrdersList.getIntegralOrdersList().get(0); } // 插入订单 List integralOrdersList1 = integralOrdersList.getIntegralOrdersList(); - if (integralOrdersList1.size()<0) return null; + if (integralOrdersList1.size() < 0) return null; String status = "unpaid"; // 添加储存充值 if ("CASH".equals(integralOrdersList.getPaymentType()) || integralOrdersList.getAllAmout() <= epsilon) { status = "paid"; - }else { + } else { status = "unpaid"; } // 根据日期生成支付编号 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String timestamp = dateFormat.format(new Date()); - String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6); - String orderNo = "2345"+timestamp+randomString; + String randomString = UUID.randomUUID().toString().replace("-", "").substring(0, 6); + String orderNo = "2345" + timestamp + randomString; // 生成订单编号 for (IntegralOrders integralOrders : integralOrdersList1) { @@ -190,6 +198,7 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { integralOrders.setOrderNumber(orderNo); integralOrders.setStatus(status); + integralOrders.setOrderType("1"); // 设置交易类型 } integralOrdersDao.insertBatch(integralOrdersList.getIntegralOrdersList()); @@ -197,31 +206,31 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { if (!ObjectUtil.isEmpty(integralOrdersList.getAllAmout()) && integralOrdersList.getAllAmout() > epsilon - && "unpaid".equals(status)){ + && "unpaid".equals(status)) { flag = true; } if (flag) { // Integer allAmount = (int) (integralOrdersList.getAllAmout()*100); - System.out.println("金额"+(int) (integralOrdersList.getAllAmout()*100)); - Integer allAmount = (int) (0.01*100); + System.out.println("金额" + (int) (integralOrdersList.getAllAmout() * 100)); + Integer allAmount = (int) (0.01 * 100); MerchantConfig merchantConfig = merchantConfigService.selectMeChByIdIsUse(nowAccountInfo.getStoreId()); // 处理支付需要的数据 - Map map = new HashMap<>(); - map.put("authCode",integralOrdersList.getAuthCode()); - map.put("allAmount",allAmount.toString()); - map.put("orderNo",orderNo); - map.put("payType",integralOrdersList.getPaymentType()); - map.put("insCd",merchantConfig.getInsCd()); - map.put("mchntCd",merchantConfig.getMchntCd()); - map.put("goodsDes",merchantConfig.getMerchantName()); - map.put("publicKey",merchantConfig.getPublicKey()); - map.put("privateKey",merchantConfig.getPrivateKey()); - map.put("type","IOS"); - map.put("storeId",nowAccountInfo.getStoreId().toString()); + Map map = new HashMap<>(); + map.put("authCode", integralOrdersList.getAuthCode()); + map.put("allAmount", allAmount.toString()); + map.put("orderNo", orderNo); + map.put("payType", integralOrdersList.getPaymentType()); + map.put("insCd", merchantConfig.getInsCd()); + map.put("mchntCd", merchantConfig.getMchntCd()); + map.put("goodsDes", merchantConfig.getMerchantName()); + map.put("publicKey", merchantConfig.getPublicKey()); + map.put("privateKey", merchantConfig.getPrivateKey()); + map.put("type", "IOS"); + map.put("storeId", nowAccountInfo.getStoreId().toString()); // 调用支付接口 try { fyPayService.pay(map); - } catch (Exception e){ + } catch (Exception e) { e.printStackTrace(); } } @@ -230,46 +239,68 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { /** * 查询订单状态并添加记录 + * * @param orderNo * @return */ - +// @Resource +// IntegralGiftService integralGiftService; + @Resource + CardExchangeRecordService cardExchangeRecordService; // todo 判断积分商城兑换类型 根据类型在进行处理 - @Override public IntegralOrders checkTheStatusOfYourPaymentByIntegral(String orderNo) { AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); // 查询订单信息 - List listByOrderNo = integralOrdersDao.getListByOrderNo(orderNo, nowAccountInfo.getStoreId()); - if ("paid".equals(listByOrderNo.get(0).getStatus())){ +// List listByOrderNo = integralOrdersDao.getListByOrderNo2(orderNo, nowAccountInfo.getStoreId()); + List listByOrderNo = integralOrdersDao.getListByOrderNo2(orderNo); + if ("paid".equals(listByOrderNo.get(0).getStatus())) { BigDecimal totalPoints = new BigDecimal(0); for (IntegralOrders integralOrders : listByOrderNo) { totalPoints = totalPoints.add(new BigDecimal(integralOrders.getIntegral())); + // 加兑换卷和优惠券判断 + IntegralGift integralGift = integralGiftService.queryById(integralOrders.getGiftId()); + if (integralGift.getGiftType().equals("兑换券")) { + // 兑换卷处理 + integralGift.getVoucherId(); +// cardExchangeRecordService +// 兑换券:CardExchangeRecordService的addCardExchangeRecord方法 传参: + } + + if (integralGift.getGiftType().equals("优惠券")) { + // 优惠卷处理 + integralGift.getCouponId(); + } + } // 查询用户信息 - LJUserVo ljUserVos = ljUserMapper.selectAllInfoById(listByOrderNo.get(0).getUserId()); + LJUserVo ljUserVos = ljUserMapper.selectAllInfoById2(listByOrderNo.get(0).getUserId(), listByOrderNo.get(0).getChainStoreId()); // 用户积分余额变动 - if (totalPoints.doubleValue()>0) { - UserBalance userBalance = balanceCalculation(ljUserVos,totalPoints.doubleValue()); + if (totalPoints.doubleValue() > 0) { + UserBalance userBalance = balanceCalculation(ljUserVos, totalPoints.doubleValue()); + userBalance.setChainStoreId(listByOrderNo.get(0).getChainStoreId()); userBalanceService.updateUserBalance(userBalance); } // 积分表变动 - if (totalPoints.doubleValue()>0) { - IntegralDetail integralDetail = changesInPoints(totalPoints.doubleValue(),ljUserVos); - integralDetailService.insert(integralDetail); + if (totalPoints.doubleValue() > 0) { + IntegralDetail integralDetail = changesInPoints(totalPoints.doubleValue(), ljUserVos); + integralDetail.setStoreId(listByOrderNo.get(0).getStoreId()); + integralDetail.setChainStoreId(listByOrderNo.get(0).getChainStoreId()); + integralDetailService.insert2(integralDetail); } + + } return listByOrderNo.get(0); } - //用户余额表计算 - private UserBalance balanceCalculation(LJUserVo ljUserVos,Double totalPoints) { + private UserBalance balanceCalculation(LJUserVo ljUserVos, Double totalPoints) { if (ObjectUtil.isEmpty(ljUserVos.getPoints())) ljUserVos.setPoints(0); // 减去积分 BigDecimal bigPoints = new BigDecimal(ljUserVos.getPoints()); @@ -281,8 +312,9 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { return userBalance; } + // 积分变动 - private IntegralDetail changesInPoints(Double totalPoints,LJUserVo ljUserVos) { + private IntegralDetail changesInPoints(Double totalPoints, LJUserVo ljUserVos) { IntegralDetail integralDetail = new IntegralDetail(); integralDetail.setUserId(ljUserVos.getId()); integralDetail.setPointsChange(-totalPoints); @@ -298,53 +330,59 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { @Override public int editPayStatus(String orderNumber, String payStates, Integer storeId) { - return integralOrdersDao.editPayStatus(orderNumber,payStates,storeId); + return integralOrdersDao.editPayStatus(orderNumber, payStates, storeId); } - @Override public Map integralOrdersProcessingUni(IntegralOrdersRequest integralOrdersList) { double epsilon = 1e-10; // 阈值 AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); - Map applet = null; + Map applet = new HashMap<>(); // 首先判断是否足够积分 - LJUserVo ljUserVos = ljUserMapper.selectAllInfoById2(nowAccountInfo.getId(),integralOrdersList.getChainStoreId()); + LJUserVo ljUserVos = ljUserMapper.selectAllInfoById2(nowAccountInfo.getId(), integralOrdersList.getChainStoreId()); if (ljUserVos.getPoints() < integralOrdersList.getAllPoints()) { integralOrdersList.getIntegralOrdersList().get(0).setStatus("un"); - applet.put("code","error"); + applet.put("code", "error"); + applet.put("msg", "积分不足"); return applet; } + // 判断是否达到最高的商品领取上线 + //1根据商品id查询 +// enquiryForCollection(); + //2. + // 插入订单 List integralOrdersList1 = integralOrdersList.getIntegralOrdersList(); - if (integralOrdersList1.size()<0) return null; + if (integralOrdersList1.size() < 0) return null; String status = "unpaid"; // 添加储存充值 if ("CASH".equals(integralOrdersList.getPaymentType()) || integralOrdersList.getAllAmout() <= epsilon) { status = "paid"; - }else { - status = "unpaid"; } + // 根据日期生成支付编号 SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMddHHmmss"); String timestamp = dateFormat.format(new Date()); - String randomString = UUID.randomUUID().toString().replace("-","").substring(0,6); - String orderNo = timestamp+randomString; + String randomString = UUID.randomUUID().toString().replace("-", "").substring(0, 6); + int hash = HashUtil.additiveHash(integralOrdersList.getStoreId().toString(), 3); + String orderNo = timestamp + randomString + '-' + hash; // 生成订单编号 for (IntegralOrders integralOrders : integralOrdersList1) { - integralOrders.setStoreId(nowAccountInfo.getStoreId()); + // integralOrders.setStoreId(nowAccountInfo.getStoreId()); if (ObjectUtil.isNotEmpty(nowAccountInfo.getStaffId())) { integralOrders.setCreateBy(nowAccountInfo.getStaffId().toString()); } - integralOrders.setOrderNumber(orderNo); integralOrders.setStatus(status); integralOrders.setUserId(nowAccountInfo.getId()); + integralOrders.setOrderStatus("待处理"); + integralOrders.setOrderType("0"); } integralOrdersDao.insertBatch(integralOrdersList.getIntegralOrdersList()); @@ -352,38 +390,89 @@ public class IntegralOrdersServiceImpl implements IntegralOrdersService { if (!ObjectUtil.isEmpty(integralOrdersList.getAllAmout()) && integralOrdersList.getAllAmout() > epsilon - && "unpaid".equals(status)){ + && "unpaid".equals(status)) { flag = true; } -// Map applet = null; // 支付 if (flag) { - // 调用支付接口 -// 判断是否开启支付规则 + // 调用支付接口 + // 判断是否开启支付规则 List list = merchantConfigService.selectMeChByIsOpen(); -// if (list.size() > 0) { -// oilConfigService.oilRule(); -// } - // 处理支付需要的数据 + // if (list.size() > 0) { + // oilConfigService.oilRule(); + // } + // 处理支付需要的数据 ReceiveParameter receiveParameter = new ReceiveParameter(); receiveParameter.setOrderNo(orderNo); - receiveParameter.setType("积分订单"); + receiveParameter.setType("4"); receiveParameter.setContent("积分订单"); receiveParameter.setGoodsMoney(integralOrdersList.getAllAmout()); receiveParameter.setStoreId(integralOrdersList.getStoreId()); receiveParameter.setPayType(integralOrdersList.getPaymentType()); receiveParameter.setUserId(nowAccountInfo.getId()); - // 调用支付接口 + // 调用支付接口 try { applet = fyPayService.applet(receiveParameter); - applet.put("orderNo",orderNo); + applet.put("orderNo", orderNo); } catch (Exception e) { e.printStackTrace(); } + } else { + // 订单直接处理 + checkTheStatusOfYourPaymentByIntegral(orderNo); + applet.put("orderNo", orderNo); + applet.put("code", "paid"); + applet.put("msg", "直接支付"); } return applet; } + + /** + * 查询是否领取到同一件商品领取了几件 + * + * @param giftId + * @param userId + * @return + */ + @Override + public String enquiryForCollection(Integer giftId, Integer userId) { + if (ObjectUtil.isEmpty(userId)) { + AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); + + + userId = nowAccountInfo.getId(); + } + List integralOrders = integralOrdersDao.enquiryForCollection(giftId, userId); + BigDecimal bigDecimal = new BigDecimal("0"); + for (IntegralOrders integralOrder : integralOrders) { +// bigDecimal = bigDecimal.add(new BigDecimal("1")); + if (ObjectUtil.isNotEmpty(integralOrder.getExchangeQuantity())) { + bigDecimal = bigDecimal.add(new BigDecimal(integralOrder.getExchangeQuantity())); + } + } + return bigDecimal.toString(); + } + + + + + @Override + public Boolean checkTheRedemptionLimit(Integer giftId) { + AccountInfo nowAccountInfo = TokenUtil.getNowAccountInfo(); + IntegralGift integralGift = integralGiftService.queryById(giftId); + + String num = enquiryForCollection(giftId, nowAccountInfo.getId()); + boolean flag = false; + if (ObjectUtil.isNotEmpty(integralGift)) { + Integer limit = integralGift.getExchangeTimes(); + Integer numInt = Integer.parseInt(num); + // 达到库存上限反会true + flag = numInt.compareTo(limit) > 0; + } + + return flag; + } } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/vo/IntegralGiftVO.java b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/vo/IntegralGiftVO.java index d64e1b51c..1b57741d6 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/vo/IntegralGiftVO.java +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/integral/vo/IntegralGiftVO.java @@ -8,6 +8,7 @@ public class IntegralGiftVO extends IntegralGift { // 分类名称 private String categoryName; private String goodsName; + private Boolean ifRedemptionIsOnline; // 商品 // 优惠卷 } diff --git a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/mapper/xml/CardFuelRecordMapper.xml b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/mapper/xml/CardFuelRecordMapper.xml index 89e8b2a89..380e7b924 100644 --- a/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/mapper/xml/CardFuelRecordMapper.xml +++ b/fuintBackend/fuint-application/src/main/java/com/fuint/business/marketingActivity/cardFule/mapper/xml/CardFuelRecordMapper.xml @@ -358,28 +358,28 @@ SELECT -- 当天的数据和条数 - CAST((SELECT COUNT(*) FROM oil_order WHERE DATE(create_time) = CURDATE()and store_id = #{storeId}) AS CHAR) AS today_count, - CAST((SELECT SUM(pay_amount) FROM oil_order WHERE DATE(create_time) = CURDATE()and store_id = #{storeId}) AS CHAR) AS today_sum, + CAST((SELECT COUNT(*) FROM mt_order WHERE DATE(create_time) = CURDATE()and store_id = #{storeId}) AS CHAR) AS today_count, + CAST((SELECT SUM(pay_amount) FROM mt_order WHERE DATE(create_time) = CURDATE()and store_id = #{storeId}) AS CHAR) AS today_sum, -- 当周的数据和条数 - CAST((SELECT COUNT(*) FROM oil_order WHERE WEEK(create_time) = WEEK(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_week_count, - CAST((SELECT SUM(pay_amount) FROM oil_order WHERE WEEK(create_time) = WEEK(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_week_sum, + CAST((SELECT COUNT(*) FROM mt_order WHERE WEEK(create_time) = WEEK(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_week_count, + CAST((SELECT SUM(pay_amount) FROM mt_order WHERE WEEK(create_time) = WEEK(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_week_sum, -- 当月的数据和条数 - CAST((SELECT COUNT(*) FROM oil_order WHERE MONTH(create_time) = MONTH(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_month_count, - CAST((SELECT SUM(pay_amount) FROM oil_order WHERE MONTH(create_time) = MONTH(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_month_sum, + CAST((SELECT COUNT(*) FROM mt_order WHERE MONTH(create_time) = MONTH(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_month_count, + CAST((SELECT SUM(pay_amount) FROM mt_order WHERE MONTH(create_time) = MONTH(CURDATE())and store_id = #{storeId}) AS CHAR) AS this_month_sum, -- 昨天的数据 - CAST((SELECT COUNT(*) FROM oil_order WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)and store_id = #{storeId}) AS CHAR) AS yesterday_count, - CAST((SELECT SUM(pay_amount) FROM oil_order WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)and store_id = #{storeId}) AS CHAR) AS yesterday_sum, + CAST((SELECT COUNT(*) FROM mt_order WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)and store_id = #{storeId}) AS CHAR) AS yesterday_count, + CAST((SELECT SUM(pay_amount) FROM mt_order WHERE DATE(create_time) = DATE_SUB(CURDATE(), INTERVAL 1 DAY)and store_id = #{storeId}) AS CHAR) AS yesterday_sum, -- 上周的数据 - CAST((SELECT COUNT(*) FROM oil_order WHERE WEEK(create_time) = WEEK(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))and store_id = #{storeId}) AS CHAR) AS last_week_count, - CAST((SELECT SUM(pay_amount) FROM oil_order WHERE WEEK(create_time) = WEEK(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))and store_id = #{storeId}) AS CHAR) AS last_week_sum, + CAST((SELECT COUNT(*) FROM mt_order WHERE WEEK(create_time) = WEEK(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))and store_id = #{storeId}) AS CHAR) AS last_week_count, + CAST((SELECT SUM(pay_amount) FROM mt_order WHERE WEEK(create_time) = WEEK(DATE_SUB(CURDATE(), INTERVAL 1 WEEK))and store_id = #{storeId}) AS CHAR) AS last_week_sum, -- 上个月的数据 - CAST((SELECT COUNT(*) FROM oil_order WHERE MONTH(create_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))and store_id = #{storeId}) AS CHAR) AS last_month_count, - CAST((SELECT SUM(pay_amount) FROM oil_order WHERE MONTH(create_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))and store_id = #{storeId}) AS CHAR) AS last_month_sum; + CAST((SELECT COUNT(*) FROM mt_order WHERE MONTH(create_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))and store_id = #{storeId}) AS CHAR) AS last_month_count, + CAST((SELECT SUM(pay_amount) FROM mt_order WHERE MONTH(create_time) = MONTH(DATE_SUB(CURDATE(), INTERVAL 1 MONTH))and store_id = #{storeId}) AS CHAR) AS last_month_sum;