From 2402c8b3f4cf92a17da73e0d47f43523f99afd18 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B5=B5=E5=BF=A0=E6=9E=97?= <170083662@qq.com> Date: Sat, 27 Jul 2024 23:08:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=95=86=E5=9F=8E=E5=88=86?= =?UTF-8?q?=E7=B1=BB=E5=8F=8A=E5=95=86=E5=93=81=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cms/controller/MpController.java | 20 +--- .../cms/service/impl/MpPagesServiceImpl.java | 5 +- .../controller/GoodsCategoryController.java | 38 +++++- .../shop/controller/GoodsController.java | 15 ++- .../java/com/gxwebsoft/shop/entity/Goods.java | 8 ++ .../gxwebsoft/shop/entity/GoodsCategory.java | 5 +- .../gxwebsoft/shop/mapper/GoodsMapper.java | 3 +- .../shop/mapper/xml/GoodsCategoryMapper.xml | 3 + .../shop/param/GoodsCategoryParam.java | 3 + .../gxwebsoft/shop/service/GoodsService.java | 9 ++ .../shop/service/impl/GoodsServiceImpl.java | 75 +++++++++--- .../shop/service/impl/OrderServiceImpl.java | 109 +++++++----------- 12 files changed, 187 insertions(+), 106 deletions(-) diff --git a/src/main/java/com/gxwebsoft/cms/controller/MpController.java b/src/main/java/com/gxwebsoft/cms/controller/MpController.java index c3c0cba..06ac3c5 100644 --- a/src/main/java/com/gxwebsoft/cms/controller/MpController.java +++ b/src/main/java/com/gxwebsoft/cms/controller/MpController.java @@ -213,22 +213,12 @@ public class MpController extends BaseController { public ApiResult index(GoodsParam param) { // 使用关联查询 final HashMap layout = new HashMap<>(); - // 瀑布流商品数据 - final List goods = goodsService.list(new LambdaQueryWrapper().ne(Goods::getCategoryParent, "外卖").last("limit 10")); - final List foods = goodsService.list(new LambdaQueryWrapper().eq(Goods::getCategoryParent, "外卖").last("limit 10")); -// List evenNumbers = new ArrayList<>(); -// List oddNumbers = new ArrayList<>(); -// for (Goods g : goods) { -// final int index = goods.indexOf(g); -// if (index % 2 == 0) { -// evenNumbers.add(g); -// } else { -// oddNumbers.add(g); -// } -// } + // 瀑布流商品数据 (type:0 商城商品,1 外卖商品) +// final List goods = goodsService.list(new LambdaQueryWrapper().ne(Goods::getType, 0).last("limit 10")); +// final List foods = goodsService.list(new LambdaQueryWrapper().eq(Goods::getType, 1).last("limit 10")); - layout.put("goods",goods); - layout.put("foods", foods); + layout.put("goods",goodsService.getGoodsSpecType0()); + layout.put("foods", goodsService.getGoodsSpecType1()); return success(layout); } diff --git a/src/main/java/com/gxwebsoft/cms/service/impl/MpPagesServiceImpl.java b/src/main/java/com/gxwebsoft/cms/service/impl/MpPagesServiceImpl.java index beae530..178eada 100644 --- a/src/main/java/com/gxwebsoft/cms/service/impl/MpPagesServiceImpl.java +++ b/src/main/java/com/gxwebsoft/cms/service/impl/MpPagesServiceImpl.java @@ -13,6 +13,7 @@ import com.gxwebsoft.cms.param.MpPagesParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; import org.springframework.stereotype.Service; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.util.List; @@ -37,7 +38,9 @@ public class MpPagesServiceImpl extends ServiceImpl impl PageParam page = new PageParam<>(param); page.setDefaultOrder("sort_number asc, create_time asc"); List list = baseMapper.selectPageRel(page, param); - if (param.getSceneType() != null && param.getSceneType().equals("showMpMenus")) { + System.out.println("param = " + param); + System.out.println("list2 = " + list); + if (!CollectionUtils.isEmpty(list) && param.getSceneType() != null && param.getSceneType().equals("showMpMenus")) { final List mpMenus = mpMenuService.list(new LambdaUpdateWrapper().eq(MpMenu::getPageId, list.get(0).getId())); final Map> collect = mpMenus.stream().collect(Collectors.groupingBy(MpMenu::getParentId)); final List ads = mpAdService.list(new LambdaUpdateWrapper().eq(MpAd::getPageId, list.get(0).getId())); diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsCategoryController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsCategoryController.java index 0872503..88c0811 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsCategoryController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/GoodsCategoryController.java @@ -1,18 +1,21 @@ package com.gxwebsoft.shop.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.github.yulichang.wrapper.MPJLambdaWrapper; import com.gxwebsoft.common.core.web.ApiResult; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.common.core.web.BatchParam; import com.gxwebsoft.common.core.web.PageResult; import com.gxwebsoft.common.system.entity.User; -import com.gxwebsoft.shop.entity.Goods; -import com.gxwebsoft.shop.entity.GoodsCategory; +import com.gxwebsoft.shop.entity.*; import com.gxwebsoft.shop.param.GoodsCategoryParam; +import com.gxwebsoft.shop.param.GoodsSpecParam; import com.gxwebsoft.shop.service.GoodsCategoryService; import com.gxwebsoft.shop.service.GoodsService; +import com.gxwebsoft.shop.service.GoodsSpecService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import org.springframework.util.CollectionUtils; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; @@ -36,6 +39,8 @@ public class GoodsCategoryController extends BaseController { @Resource private GoodsCategoryService goodsCategoryService; @Resource + private GoodsSpecService goodsSpecService; + @Resource private GoodsService goodsService; @ApiOperation("查询全部商品分类(树型结构)") @@ -43,11 +48,36 @@ public class GoodsCategoryController extends BaseController { public ApiResult> getTree(GoodsCategoryParam param) { final List list = goodsCategoryService.listRel(param); final Set categoryIds = list.stream().map(GoodsCategory::getCategoryId).collect(Collectors.toSet()); - final List goods = goodsService.list(new LambdaQueryWrapper().in(Goods::getCategoryId, categoryIds).eq(Goods::getStatus,0).eq(Goods::getDeleted,0)); + if (categoryIds.isEmpty()) { + return success(list); + } + + final List goods = goodsService.getGoodsSpec(); + System.out.println("goodsBySpec = " + goods); + +// final List goods = goodsService.list(new LambdaQueryWrapper().in(Goods::getCategoryId, categoryIds).eq(Goods::getStatus,0).eq(Goods::getDeleted,0)); final Map> collectGoods = goods.stream().collect(Collectors.groupingBy(Goods::getCategoryId)); + + final List specs = goodsSpecService.list(new LambdaQueryWrapper().in(GoodsSpec::getGoodsId, categoryIds)); + System.out.println("specs = " + specs); + final Map> collectGoodsSpec = specs.stream().collect(Collectors.groupingBy(GoodsSpec::getGoodsId)); + list.forEach(d -> { d.setName(d.getTitle()); - d.setChildrens(collectGoods.get(d.getCategoryId())); + final List goodsList = collectGoods.get(d.getCategoryId()); + if (!CollectionUtils.isEmpty(goodsList)) { +// goodsList.forEach(v -> { +// System.out.println("v = " + v); +// final String specValue = v.getSpecValue(); +// System.out.println("collectGoodsSpec = " + collectGoodsSpec); +// final List goodsSpecs = collectGoodsSpec.get(v.getGoodsId()); +// if (!CollectionUtils.isEmpty(goodsSpecs)) { +// final GoodsSpec spec = goodsSpecs.get(0); +// v.setGoodsSpecValue(spec.getSpecValue()); +// } +// }); + d.setChildrens(collectGoods.get(d.getCategoryId())); + } }); return success(list); } diff --git a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java index 14566d9..ed948bb 100644 --- a/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java +++ b/src/main/java/com/gxwebsoft/shop/controller/GoodsController.java @@ -2,8 +2,10 @@ package com.gxwebsoft.shop.controller; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; +import com.gxwebsoft.common.core.utils.JSONUtil; import com.gxwebsoft.common.core.web.BaseController; import com.gxwebsoft.shop.entity.GoodsSku; +import com.gxwebsoft.shop.entity.GoodsSkuVO; import com.gxwebsoft.shop.entity.GoodsSpec; import com.gxwebsoft.shop.service.GoodsService; import com.gxwebsoft.shop.entity.Goods; @@ -85,7 +87,17 @@ public class GoodsController extends BaseController { @GetMapping("/{id}") public ApiResult get(@PathVariable("id") Integer id) { // 使用关联查询 - return success(goodsService.getByIdRel(id)); + final Goods goods = goodsService.getByIdRel(id); + + // 提取specValue + final GoodsSpec spec = goodsSpecService.getOne(new LambdaQueryWrapper().eq(GoodsSpec::getGoodsId, id).last("limit 1")); + if (spec != null) { + final String specValue = spec.getSpecValue(); + final Object object = JSONUtil.parseObject(specValue, Object.class); + goods.setGoodsSpecValue(object); + } + + return success(goods); } @PreAuthorize("hasAuthority('shop:goods:save')") @@ -109,7 +121,6 @@ public class GoodsController extends BaseController { @ApiOperation("修改商品记录表") @PutMapping() public ApiResult update(@RequestBody Goods goods) { - System.out.println("getGoodsSpec = " + goods.getGoodsSpec()); if (goodsService.updateById(goods)) { // 删除旧信息 goodsSpecService.remove(new LambdaQueryWrapper().eq(GoodsSpec::getGoodsId, goods.getGoodsId())); diff --git a/src/main/java/com/gxwebsoft/shop/entity/Goods.java b/src/main/java/com/gxwebsoft/shop/entity/Goods.java index b5dd309..5569eb0 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/Goods.java +++ b/src/main/java/com/gxwebsoft/shop/entity/Goods.java @@ -129,6 +129,14 @@ public class Goods implements Serializable { @TableField(exist = false) private GoodsSpec goodsSpec; + @ApiModelProperty(value = "规格值") + @TableField(exist = false) + private String specValue; + + @ApiModelProperty(value = "商品规格值") + @TableField(exist = false) + private Object goodsSpecValue; + @ApiModelProperty(value = "商品sku列表") @TableField(exist = false) private List goodsSkus; diff --git a/src/main/java/com/gxwebsoft/shop/entity/GoodsCategory.java b/src/main/java/com/gxwebsoft/shop/entity/GoodsCategory.java index 67d8cd8..e862b63 100644 --- a/src/main/java/com/gxwebsoft/shop/entity/GoodsCategory.java +++ b/src/main/java/com/gxwebsoft/shop/entity/GoodsCategory.java @@ -39,7 +39,7 @@ public class GoodsCategory implements Serializable { @TableField(exist = false) private String name; - @ApiModelProperty(value = "类型 0列表 1单页 2外链") + @ApiModelProperty(value = "类型 0商城分类 1外卖分类") private Integer type; @ApiModelProperty(value = "分类图片") @@ -78,6 +78,9 @@ public class GoodsCategory implements Serializable { @ApiModelProperty(value = "是否显示在首页") private Integer showIndex; + @ApiModelProperty(value = "商铺ID") + private Integer merchantId; + @ApiModelProperty(value = "状态, 0正常, 1禁用") private Integer status; diff --git a/src/main/java/com/gxwebsoft/shop/mapper/GoodsMapper.java b/src/main/java/com/gxwebsoft/shop/mapper/GoodsMapper.java index 67926e1..1e89148 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/GoodsMapper.java +++ b/src/main/java/com/gxwebsoft/shop/mapper/GoodsMapper.java @@ -2,6 +2,7 @@ package com.gxwebsoft.shop.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.github.yulichang.base.MPJBaseMapper; import com.gxwebsoft.shop.entity.Goods; import com.gxwebsoft.shop.param.GoodsParam; import org.apache.ibatis.annotations.Param; @@ -14,7 +15,7 @@ import java.util.List; * @author 科技小王子 * @since 2024-07-25 19:22:01 */ -public interface GoodsMapper extends BaseMapper { +public interface GoodsMapper extends MPJBaseMapper { /** * 分页查询 diff --git a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsCategoryMapper.xml b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsCategoryMapper.xml index a1fa939..3209ea3 100644 --- a/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsCategoryMapper.xml +++ b/src/main/java/com/gxwebsoft/shop/mapper/xml/GoodsCategoryMapper.xml @@ -55,6 +55,9 @@ AND a.show_index = #{param.showIndex} + + AND a.merchant_id = #{param.merchantId} + AND a.status = #{param.status} diff --git a/src/main/java/com/gxwebsoft/shop/param/GoodsCategoryParam.java b/src/main/java/com/gxwebsoft/shop/param/GoodsCategoryParam.java index a6e383d..02d6947 100644 --- a/src/main/java/com/gxwebsoft/shop/param/GoodsCategoryParam.java +++ b/src/main/java/com/gxwebsoft/shop/param/GoodsCategoryParam.java @@ -81,6 +81,9 @@ public class GoodsCategoryParam extends BaseParam { @QueryField(type = QueryType.EQ) private Integer showIndex; + @ApiModelProperty(value = "商铺ID") + private Integer merchantId; + @ApiModelProperty(value = "状态, 0正常, 1禁用") @QueryField(type = QueryType.EQ) private Integer status; diff --git a/src/main/java/com/gxwebsoft/shop/service/GoodsService.java b/src/main/java/com/gxwebsoft/shop/service/GoodsService.java index 96bdbfa..f4cdba7 100644 --- a/src/main/java/com/gxwebsoft/shop/service/GoodsService.java +++ b/src/main/java/com/gxwebsoft/shop/service/GoodsService.java @@ -40,4 +40,13 @@ public interface GoodsService extends IService { Goods getByIdRel(Integer goodsId); void saveBatchByAsync(Goods goods); + + List getGoodsSpec(); + + // 商城商品 + List getGoodsSpecType0(); + // 外卖商品 + List getGoodsSpecType1(); + + } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java index 17d3348..cc9a2b1 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/GoodsServiceImpl.java @@ -1,13 +1,13 @@ package com.gxwebsoft.shop.service.impl; +import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; -import com.gxwebsoft.shop.entity.GoodsSku; -import com.gxwebsoft.shop.entity.GoodsSpec; -import com.gxwebsoft.shop.entity.SpecValue; +import com.github.yulichang.wrapper.MPJLambdaWrapper; +import com.gxwebsoft.common.core.utils.JSONUtil; +import com.gxwebsoft.shop.entity.*; import com.gxwebsoft.shop.mapper.GoodsMapper; import com.gxwebsoft.shop.service.GoodsService; -import com.gxwebsoft.shop.entity.Goods; import com.gxwebsoft.shop.param.GoodsParam; import com.gxwebsoft.common.core.web.PageParam; import com.gxwebsoft.common.core.web.PageResult; @@ -19,6 +19,7 @@ import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import javax.annotation.Resource; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.Set; @@ -51,7 +52,10 @@ public class GoodsServiceImpl extends ServiceImpl implements list.forEach(d -> { final List goodsSpecs = collectSpecs.get(d.getGoodsId()); if (!CollectionUtils.isEmpty(goodsSpecs)) { - d.setGoodsSpec(goodsSpecs.get(0)); + final GoodsSpec spec = goodsSpecs.get(0); + final String value = spec.getSpecValue(); + final Object object = JSONUtil.parseObject(value,Object.class); + d.setGoodsSpecValue(object); } // d.setGoodsSkus(collectSkus.get(d.getGoodsId())); }); @@ -80,18 +84,59 @@ public class GoodsServiceImpl extends ServiceImpl implements public void saveBatchByAsync(Goods goods) { // 保存商品多规格 if (goods.getSpecs().equals(1)) { - final GoodsSpec goodsSpec = goods.getGoodsSpec(); - goodsSpec.setGoodsId(goods.getGoodsId()); - goodsSpecService.save(goodsSpec); - // 保存商品sku表 - final List goodsSkus = goods.getGoodsSkus(); - if (!CollectionUtils.isEmpty(goodsSkus)) { - goodsSkus.forEach(d -> { - d.setGoodsId(goods.getGoodsId()); - }); - goodsSkuService.saveBatch(goodsSkus); + final GoodsSpec spec = goods.getGoodsSpec(); + if (spec != null) { + spec.setGoodsId(goods.getGoodsId()); + if(spec.getSpecValue() == null){ + spec.setSpecValue(JSON.toJSONString(new ArrayList<>())); + } + goodsSpecService.save(spec); + + // 保存商品sku表 + final List goodsSkus = goods.getGoodsSkus(); + if (!CollectionUtils.isEmpty(goodsSkus)) { + goodsSkus.forEach(d -> { + d.setGoodsId(goods.getGoodsId()); + }); + goodsSkuService.saveBatch(goodsSkus); + } } } } + @Override + public List getGoodsSpec() { + // 多表查询 + MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper<>(); + mpjLambdaWrapper.selectAll(Goods.class) + .select(GoodsSpec::getSpecValue) + .select(GoodsSpec::getSpecName) + .leftJoin(GoodsSpec.class,GoodsSpec::getGoodsId,GoodsSpec::getGoodsId); + return baseMapper.selectJoinList(Goods.class, mpjLambdaWrapper); + } + + @Override + public List getGoodsSpecType0() { + // 多表查询 + MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper<>(); + mpjLambdaWrapper.selectAll(Goods.class) + .select(GoodsSpec::getSpecValue) + .select(GoodsSpec::getSpecName) + .leftJoin(GoodsSpec.class,GoodsSpec::getGoodsId,GoodsSpec::getGoodsId) + .eq(Goods::getType,0); + return baseMapper.selectJoinList(Goods.class, mpjLambdaWrapper); + } + + @Override + public List getGoodsSpecType1() { + // 多表查询 + MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper<>(); + mpjLambdaWrapper.selectAll(Goods.class) + .select(GoodsSpec::getSpecValue) + .select(GoodsSpec::getSpecName) + .leftJoin(GoodsSpec.class,GoodsSpec::getGoodsId,GoodsSpec::getGoodsId) + .eq(Goods::getType,1); + return baseMapper.selectJoinList(Goods.class, mpjLambdaWrapper); + } + } diff --git a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java index a4ba879..2883a32 100644 --- a/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java +++ b/src/main/java/com/gxwebsoft/shop/service/impl/OrderServiceImpl.java @@ -147,11 +147,16 @@ public class OrderServiceImpl extends ServiceImpl implements Order order = param.getOne(baseMapper.selectListRel(param)); if (order != null) { final List list = orderInfoService.list(new LambdaQueryWrapper().eq(OrderInfo::getOrderId, orderId)); + + // 订单信息 order.setOrderInfo(list); if (!CollectionUtils.isEmpty(list)) { final OrderInfo orderInfo = list.get(0); final int i = orderInfo.getDateTime().compareTo(DateUtil.today()); } + // 订单商品 + final List orderGoods = orderGoodsService.list(new LambdaQueryWrapper().eq(OrderGoods::getOrderId, orderId)); + order.setGoodsList(orderGoods); // 生成订单核销码 // requestUtil.setTenantId(order.getTenantId().toString()); // order.setQrcode(requestUtil.getOrderQRCodeUnlimited(order.getOrderNo())); @@ -260,78 +265,48 @@ public class OrderServiceImpl extends ServiceImpl implements @Override @Transactional(rollbackFor = {Exception.class}) public Boolean payByBalance(Order order) { - final Users users = usersService.getByPhone(order.getPhone()); - if (users.getMoney().compareTo(order.getTotalPrice()) < 0) { + final User loginUser = order.getLoginUser(); + + if (loginUser.getBalance().compareTo(order.getTotalPrice()) < 0) { throw new BusinessException("余额不足"); } - // 发放积分 - usersService.addIntegral(order); - // 修改订单状态 - order.setPayStatus(1); - order.setPayTime(DateUtil.date()); - order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10)); - orderService.updateById(order); - orderInfoService.update(new LambdaUpdateWrapper().eq(OrderInfo::getOrderId, order.getOrderId()).set(OrderInfo::getPayStatus, 1)); - // 更新会员卡状态 - if (order.getType().equals(2)) { - final UserCard userCard = userCardService.getById(order.getCardId()); - userCard.setStatus(1); - userCardService.updateById(userCard); - } - - return true; - // 发起网络请求(更新余额接口) -// final RequestUtil requestUtil = new RequestUtil(); -// requestUtil.setAccessToken(order.getAccessToken()); -// requestUtil.setTenantId(order.getTenantId().toString()); -// String api = "/system/user/updateUserBalance"; // 更新余额接口 -// final BigDecimal subtract = loginUser.getMoney().subtract(order.getTotalPrice()); -// -// loginUser.setBalance(subtract); + final RequestUtil requestUtil = new RequestUtil(); + requestUtil.setAccessToken(order.getAccessToken()); + requestUtil.setTenantId(order.getTenantId().toString()); + String api = "/system/user/updateUserBalance"; // 更新余额接口 + final BigDecimal subtract = loginUser.getBalance().subtract(order.getTotalPrice()); + + loginUser.setBalance(subtract); // 累加会员积分 -// String key = "SiteInfo:" + order.getTenantId(); -// final String siteInfo = redisUtil.get(key); + String key = "SiteInfo:" + order.getTenantId(); + final String siteInfo = redisUtil.get(key); // 从缓存读取信息 -// if(StrUtil.isNotBlank(siteInfo)){ -// final Website website = JSONObject.parseObject(siteInfo, Website.class); -// final List fields = website.getFields(); -// fields.forEach(d -> { -// if(d.getName().equals("integral_enabled") && d.getValue().equals("1")){ -// loginUser.setPoints(loginUser.getPoints() + order.getPayPrice().intValue()); -// } -// }); -// } -// final ApiResult apiResult = requestUtil.updateUserBalance(api, loginUser); -// if (apiResult.getCode().equals(0)) { -// // 记录余额明细 -// final UserBalanceLog balanceLog = new UserBalanceLog(); -// balanceLog.setUserId(order.getUserId()); -// balanceLog.setScene(20); -// balanceLog.setOrderNo(order.getOrderNo()); -// balanceLog.setMoney(order.getPayPrice()); -// balanceLog.setBalance(subtract); -// balanceLog.setRemark(order.getComments()); -// balanceLog.setMerchantId(order.getMerchantId()); -// userBalanceLogService.save(balanceLog); -// // 修改订单状态 -// order.setPayStatus(1); -// order.setPayTime(DateUtil.date()); -// order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10)); -// orderService.updateById(order); -// orderInfoService.update(new LambdaUpdateWrapper().eq(OrderInfo::getOrderId,order.getOrderId()).set(OrderInfo::getPayStatus,1)); -// // 更新会员卡状态 -// if(order.getType().equals(2)){ -// final UserCard userCard = userCardService.getById(order.getCardId()); -// userCard.setPayStatus(1); -// userCardService.updateById(userCard); -// } -// // 发放积分 -// usersService.addIntegral(order); -// return true; -// } -// return true; + if (StrUtil.isNotBlank(siteInfo)) { + final Website website = JSONObject.parseObject(siteInfo, Website.class); + final List fields = website.getFields(); + if (!CollectionUtils.isEmpty(fields)) { + fields.forEach(d -> { + if (d.getName().equals("integral_enabled") && d.getValue().equals("1")) { + loginUser.setPoints(loginUser.getPoints() + order.getPayPrice().intValue()); + } + }); + } + } + final ApiResult apiResult = requestUtil.updateUserBalance(api, loginUser); + if (apiResult.getCode().equals(0)) { + // 修改订单状态 + order.setPayStatus(1); + order.setPayTime(DateUtil.date()); + order.setExpirationTime(DateUtil.offset(DateUtil.date(), DateField.YEAR, 10)); + orderService.updateById(order); + orderInfoService.update(new LambdaUpdateWrapper().eq(OrderInfo::getOrderId, order.getOrderId()).set(OrderInfo::getPayStatus, 1)); + // 发放积分 + usersService.addIntegral(order); + return true; + } + return true; } @@ -374,7 +349,7 @@ public class OrderServiceImpl extends ServiceImpl implements // userCardLog.setComments(order.getComments()); userCardLog.setType(userCard.getType()); userCardLog.setPrice(order.getPayPrice()); - userCardLog.setCreateTime(System.currentTimeMillis()/1000); + userCardLog.setCreateTime(System.currentTimeMillis() / 1000); // userCardLog.setOrderNo(order.getOrderNo()); // userCardLog.setMerchantId(order.getMerchantId()); // userCardLog.setMerchantCode(order.getMerchantCode());