From e4eaabefaaa2ca95f809c47a11712c3bee56e1b5 Mon Sep 17 00:00:00 2001 From: luofl <1442745593@qq.com> Date: 星期四, 20 二月 2025 15:07:09 +0800 Subject: [PATCH] 修改物流信息导入模板 --- ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java | 3 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java | 2 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java | 10 + ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java | 4 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java | 36 ++ ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java | 6 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java | 267 +++++++++++++------------ ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml | 4 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java | 9 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java | 2 ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java | 5 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java | 23 + ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderSaleNum.java | 11 + ruoyi-service/ruoyi-other/Dockerfile | 24 ++ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java | 3 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java | 4 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java | 18 + ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java | 4 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java | 14 + ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java | 15 + ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java | 4 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java | 2 ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java | 9 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 32 ++ ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java | 6 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java | 31 +- ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml | 2 ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml | 2 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java | 13 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml | 13 + 31 files changed, 399 insertions(+), 181 deletions(-) diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java index cda96a6..8c7d5f2 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/feignClient/AppUserClient.java @@ -81,6 +81,11 @@ @PostMapping("/app-user/getAppUserByPhone") R<List<AppUser>> getAppUserByPhone(@RequestParam("phone") String phone); + /** + * 根据用户电话模糊搜索用户列表(包含被删除的用户) + * @param phone + * @return + */ @GetMapping("/app-user/getAppUserByPhoneNoFilter") public R<List<AppUser>> getAppUserByPhoneNoFilter(@RequestParam("phone") String phone); diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java index 58efd03..0d638f2 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/UserCoupon.java @@ -66,6 +66,15 @@ @ApiModelProperty(value = "优惠劵id") @TableField("coupon_id") private Integer couponId; + + + /** + * 优惠券快照 + */ + @TableField("coupon_info") + private String couponInfo; + + @ApiModelProperty(value = "优惠劵信息") @TableField(exist = false) private CouponInfoVo couponInfoVo; diff --git a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java index 0a360ff..1ccb517 100644 --- a/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java +++ b/ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/vo/CouponInfoVo.java @@ -120,5 +120,8 @@ @TableField(exist = false) private List<String> goodNames; + @ApiModelProperty(value = "其他商品名称") + private String goodsNameJson; + } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java index 45c3ff9..5f643be 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/factory/OrderClientFallbackFactory.java @@ -3,6 +3,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.order.feignClient.OrderClient; import com.ruoyi.order.model.Order; +import com.ruoyi.order.vo.OrderSaleNum; import org.springframework.cloud.openfeign.FallbackFactory; import java.util.List; @@ -29,6 +30,11 @@ } @Override + public R<Integer> getShopSaleNumByShopIds(OrderSaleNum orderSaleNum) { + return R.fail("获取门店销售订单数量失败:" + cause.getMessage()); + } + + @Override public R<Set<Long>> getAppUserByShoppingShop(Integer shopId) { return R.fail("获取所有在指定门店消费的用户id失败:" + cause.getMessage()); } diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java index aad932d..b6bcfa4 100644 --- a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/feignClient/OrderClient.java @@ -5,6 +5,7 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.order.factory.OrderClientFallbackFactory; import com.ruoyi.order.model.Order; +import com.ruoyi.order.vo.OrderSaleNum; import org.springframework.cloud.openfeign.FeignClient; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; @@ -40,6 +41,9 @@ @PostMapping("/order/getShopSaleNum") R<Integer> getShopSaleNum(@RequestParam("shopId") Integer shopId, @RequestParam("type") Integer type); + @PostMapping("/order/getShopSaleNumByShopIds") + R<Integer> getShopSaleNumByShopIds(@RequestBody OrderSaleNum orderSaleNum); + /** * 获取所有在指定门店消费的用户id diff --git a/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderSaleNum.java b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderSaleNum.java new file mode 100644 index 0000000..7bdce48 --- /dev/null +++ b/ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderSaleNum.java @@ -0,0 +1,11 @@ +package com.ruoyi.order.vo; + +import lombok.Data; + +import java.util.List; + +@Data +public class OrderSaleNum { + private List<Integer> shopIds; + private Integer type; +} diff --git a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java index a5735e6..d8e5eba 100644 --- a/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java +++ b/ruoyi-common/ruoyi-common-security/src/main/java/com/ruoyi/common/security/service/TokenService.java @@ -91,6 +91,7 @@ public LoginUser getLoginUserApplet() { LoginUser loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest()); if (loginUserAppletToken == null) { + System.out.println("loginUserAppletToken: "+loginUserAppletToken); throw new NotPermissionException("令牌已过期,请重新登录!"); } return loginUserAppletToken; @@ -101,6 +102,14 @@ String token = SecurityUtils.getToken(request); return getLoginUserApplet(token); } + + /** + * 判断用户是否登录 + */ + public boolean isLoginApplet() { + LoginUser loginUserAppletToken = getLoginUserAppletToken(ServletUtils.getRequest()); + return loginUserAppletToken != null; + } /** * 小程序 获取用户身份信息 diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index b4a58f0..7f61832 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java @@ -131,6 +131,7 @@ @PostMapping("/getAppUserById") public AppUser getAppUserById(@RequestParam("id") Long id) { + System.out.println("根据id获取用户:"+id); return appUserService.getById(id); } @@ -399,23 +400,42 @@ @GetMapping("/change") @ApiOperation(value = "推广中心", tags = {"小程序-推广中心"}) public R<AppUser> change(@ApiParam("换绑用户手机号") String phone) { + Long userId1 = tokenService.getLoginUserApplet().getUserid(); AppUser byId = appUserService.getById(userId1); - List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>() - .eq(AppUser::getInviteUserId, userId1) - .eq(AppUser::getPhone, phone)); - if (!CollectionUtils.isEmpty(appUserList)){ - return R.fail("绑定关系已存在!"); - } + + + +// List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>() +// .eq(AppUser::getInviteUserId, userId1) +// .eq(AppUser::getPhone, phone)); +// if (!CollectionUtils.isEmpty(appUserList)){ +// return R.fail("绑定关系已存在!"); +// } //获取绑定门店 AppUser user = appUserService.lambdaQuery() .eq(AppUser::getPhone, phone) .eq(AppUser::getDelFlag, 0) .eq(AppUser::getStatus, 1) .one(); + + + // 获取当前用户的所有下级 + List<AppUser> allSubordinates = getAllSubordinates(byId.getId()); + long count = allSubordinates.stream().filter(appUser -> appUser.getId().equals(user.getId())).count(); + if (count > 0) { + return R.fail("绑定关系已存在!"); + } + if (user == null) { return R.fail("当前手机号未注册"); } + + Long userId = user.getId(); + if (userId.equals(byId.getId())) { + return R.fail("不能选择自己为绑定人。"); + } + byId.setInviteUserId(user.getId()); appUserService.updateById(byId); return R.ok(); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java index 49f11fc..e5ee3d1 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/BalanceChangeRecordController.java @@ -2,11 +2,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.ruoyi.account.api.model.AppUser; import com.ruoyi.account.api.model.BalanceChangeRecord; import com.ruoyi.account.dto.BalanceQuery; import com.ruoyi.account.service.BalanceChangeRecordService; -import com.ruoyi.account.vo.CommissionDetail; import com.ruoyi.account.vo.CommissionStatistics; import com.ruoyi.account.vo.WalletStatistics; import com.ruoyi.account.vo.WalletStatisticsDetail; @@ -18,6 +16,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; +import java.math.BigDecimal; import java.util.List; /** @@ -48,7 +47,17 @@ @ApiOperation(value = "余额变更明细", tags = {"后台"}) public R<IPage<BalanceChangeRecord>> page(@RequestBody BalanceQuery agentQuery) { - return R.ok(balanceChangeRecordService.pageList(agentQuery)); + IPage<BalanceChangeRecord> page = balanceChangeRecordService.pageList(agentQuery); + for (BalanceChangeRecord record : page.getRecords()) { + BigDecimal beforeAmount = record.getBeforeAmount(); + BigDecimal afterAmount = record.getAfterAmount(); + if (beforeAmount.compareTo(afterAmount) > 0){ + record.setFlag(2); + }else { + record.setFlag(1); + } + } + return R.ok(page); } /** diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java index 6dfc084..2323b6d 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java @@ -88,9 +88,9 @@ Page<UserCoupon> page = chainWrapper.page(Page.of(pageNum-1, pageSize)); for (UserCoupon record : page.getRecords()) { record.setIdStr(record.getId().toString()); - CouponInfo data = couponClient.detail(record.getCouponId()).getData(); - CouponInfoVo vo = new CouponInfoVo(); - BeanUtils.copyProperties(data,vo); + String couponInfo = record.getCouponInfo(); + CouponInfoVo vo = JSON.parseObject(couponInfo, CouponInfoVo.class); +// BeanUtils.copyProperties(data,vo); //如果是商品券,将商品名称返回 if (vo.getCouponType()==4){ List<String> goodNames = new ArrayList<>(); @@ -98,8 +98,8 @@ List<Goods> data1 = goodsClient.getAllGoods().getData(); List<String> collect = data1.stream().map(Goods::getName).collect(Collectors.toList()); goodNames.addAll(collect); - }else if(StringUtils.isEmpty(data.getForGoodIds())){ - goodNames.addAll(JSON.parseArray(data.getGoodsNameJson(), String.class)); + }else if(StringUtils.isEmpty(vo.getForGoodIds())){ + goodNames.addAll(JSON.parseArray(vo.getGoodsNameJson(), String.class)); }else { String[] split = vo.getForGoodIds().split(","); R<List<Goods>> goodsById = goodsClient.getGoodsById(split); @@ -255,9 +255,12 @@ userPointService.save(userPoint); } } + + //增加优惠券记录,根据时间类型设置开始结束时间 UserCoupon userCoupon = new UserCoupon(); userCoupon.setAppUserId(userid); + userCoupon.setCouponInfo(JSON.toJSONString(data)); if (data.getPeriodType()==1) { userCoupon.setStartTime(data.getPeriodStartTime().atTime(0, 0, 0)); userCoupon.setEndTime(data.getPeriodEndTime().atTime(23, 59, 59)); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java index 1be9a3f..2320d8a 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/VipCenterController.java @@ -12,6 +12,7 @@ import com.ruoyi.account.vo.vip.VipLevel; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.utils.StringUtils; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.security.service.TokenService; import com.ruoyi.other.api.domain.*; @@ -87,29 +88,27 @@ VipLevel vipLevel = new VipLevel(); List<Level> levelList = new ArrayList<>(); - // 批量获取 goodsVip 和 vipGoods - List<Integer> vipIds = vipSettingList.stream().map(VipSetting::getId).collect(Collectors.toList()); - Map<Integer, R<List<VipGood>>> vipGoodsMap = getVipGoods(vipIds); - vipSettingList.forEach(vipSetting -> { Level level = new Level(); level.setName(vipSetting.getVipName()); BeanUtils.copyBeanProp(level, vipSetting); level.setVipDesc(baseSetting.getContent()); - R<List<VipGood>> vipGoodR = vipGoodsMap.get(vipSetting.getId()); - if (R.isError(vipGoodR)) { - throw new ServiceException("会员商品获取失败"); + + List<String> goodsNames = new ArrayList<>(); + if (StringUtils.isNotEmpty(vipSetting.getGoodIds())){ + String[] goodsIds = vipSetting.getGoodIds().split(","); + List<Goods> goodsList = goodsClient.getGoodsById(goodsIds).getData(); + if (goodsList != null) { + for (Goods goods : goodsList) { + if (goods.getDelFlag().equals(0)){ + goodsNames.add(goods.getName()); + } + } + } } - List<VipGood> vipGoodList = vipGoodR.getData(); - if (vipGoodList != null && !vipGoodList.isEmpty()) { - List<String> goodsNames = new ArrayList<>(); - vipGoodList.forEach(vipGood -> { - Goods goods = JSON.parseObject(vipGood.getGood_json(), Goods.class); - goodsNames.add(goods.getName()); - }); - level.setGoodsNames(goodsNames); - } + + level.setGoodsNames(goodsNames); levelList.add(level); }); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java index c792884..2472e5f 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/WithdrawalRequestsController.java @@ -19,6 +19,8 @@ import com.ruoyi.account.vo.WithdrawalAuth; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.web.domain.AjaxResult; +import com.ruoyi.common.security.service.TokenService; +import com.ruoyi.system.api.model.LoginUser; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -49,6 +51,8 @@ @Resource private BalanceChangeRecordService balanceChangeRecordService; + @Resource + private TokenService tokenService; /** * 提现申请 @@ -112,6 +116,20 @@ singlePay.setCallbackUrl("/account/withdrawal-requests/withdrawalCallback"); SinglePayResult singlePayResult = TransferUtil.singlePay(singlePay); if(null == singlePayResult){ + LoginUser loginUserApplet = tokenService.getLoginUserApplet(); + AppUser appUser = appUserService.getById(loginUserApplet.getUserid()); + BigDecimal balance = appUser.getBalance(); + BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); + balanceChangeRecord.setAppUserId(appUser.getId()); + balanceChangeRecord.setVipId(appUser.getVipId()); +// balanceChangeRecord.setOrderId(withdrawalRequests.getId()); + balanceChangeRecord.setChangeType(2); + balanceChangeRecord.setBeforeAmount(balance); + balanceChangeRecord.setChangeAmount(withdrawalAmount); + balanceChangeRecord.setAfterAmount(appUser.getBalance()); + balanceChangeRecord.setDelFlag(0); + balanceChangeRecord.setCreateTime(LocalDateTime.now()); + balanceChangeRecordService.save(balanceChangeRecord); return R.fail("转账失败"); } withdrawal.setStatus(1); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java index 8b2d736..d96f746 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/AppUserServiceImpl.java @@ -492,8 +492,8 @@ loginVo.setFailureTime(Long.valueOf(tokenApplet.get("expires_in").toString())); return R.ok(loginVo); } - - + + /** * 会员等级变化 */ diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java index 930fd41..733c3ef 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java @@ -78,9 +78,22 @@ List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList1(balanceChangeRecord); List<WalletStatisticsDetail> walletStatisticsDetailList = new ArrayList<>(); + BigDecimal totalWithdraw = BigDecimal.ZERO; for (BalanceChangeRecord changeRecord : balanceChangeRecordList) { + WalletStatisticsDetail walletStatisticsDetail = new WalletStatisticsDetail(); BeanUtils.copyBeanProp(walletStatisticsDetail, changeRecord); + + BigDecimal beforeAmount = changeRecord.getBeforeAmount(); + BigDecimal afterAmount = changeRecord.getAfterAmount(); + + if (beforeAmount.compareTo(afterAmount) < 0 && changeRecord.getChangeType().equals(2)){ + BigDecimal changeAmount = changeRecord.getChangeAmount(); + totalWithdraw = totalWithdraw.add(changeAmount); + walletStatisticsDetail.setFlag(2); + }else { + walletStatisticsDetail.setFlag(1); + } walletStatisticsDetailList.add(walletStatisticsDetail); } // 按时间排序(倒序) @@ -113,15 +126,15 @@ )); BigDecimal totalRecharge = shopCommissionMap.get(1); - BigDecimal totalWithdraw = shopCommissionMap.get(2); BigDecimal totalShopWithdraw = shopCommissionMap.get(7); List<WalletStatisticsDetail> walletStatisticsDetailList2 = walletStatisticsDetailList.subList(fromIndex, toIndex); for (WalletStatisticsDetail changeRecord : walletStatisticsDetailList2) { - if (changeRecord.getChangeType().equals(1) || changeRecord.getChangeType().equals(3) || changeRecord.getChangeType().equals(4) || changeRecord.getChangeType().equals(6)) { - changeRecord.setChangeAmountString("+¥" + changeRecord.getChangeAmount()); - } else { - changeRecord.setChangeAmountString("-¥" + changeRecord.getChangeAmount()); + Integer flag = changeRecord.getFlag(); + if (flag.equals(1)){ + changeRecord.setChangeAmountString("+¥"+changeRecord.getChangeAmount()); + }else { + changeRecord.setChangeAmountString("-¥"+changeRecord.getChangeAmount()); } walletStatisticsDetailPage.setCurrent(current); walletStatisticsDetailPage.setSize(size); diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java index 5a9932c..d6c7592 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/WalletStatisticsDetail.java @@ -1,5 +1,6 @@ package com.ruoyi.account.vo; +import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import com.ruoyi.common.core.annotation.Excel; import io.swagger.annotations.ApiModelProperty; @@ -50,4 +51,7 @@ @ApiModelProperty(value = "变更数量--带金额符号") @Excel(name = "变更数量") private String changeAmountString; + + @ApiModelProperty(value = "增或减标识: 1-增 2-减") + private Integer flag; } diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml index 2b6442c..2de786e 100644 --- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/AppUserMapper.xml @@ -144,7 +144,7 @@ </select> <select id="getUserStatisticsDetail" resultType="com.ruoyi.account.vo.UserStatisticsDetail"> SELECT - SUM(tau.total_point) totalScore, + SUM(tau.shop_point+tau.share_point+tau.total_invite_point+tau.total_register_point+tau.total_share_point+tau.total_sign_point+tau.total_hour_point+total_performance_point) totalScore, SUM(tau.shop_point) consumeScore, SUM(tau.share_point) rebateScore, SUM(tau.total_invite_point) inviteScore, diff --git a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml index 2b746ac..b8a8044 100644 --- a/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml +++ b/ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml @@ -70,7 +70,7 @@ tbcr.after_amount FROM t_balance_change_record tbcr - LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id + LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id and tau.del_flag = 0 <where> <if test="changeRecord.userName != null and changeRecord.userName != ''"> and tau.name like concat('%',#{changeRecord.userName},'%') diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java index 5725964..3cdd650 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/OrderController.java @@ -461,6 +461,12 @@ return R.ok(shopSaleNum); } + @PostMapping("/getShopSaleNumByShopIds") + public R<Integer> getShopSaleNumByShopIds(@RequestBody OrderSaleNum orderSaleNum){ + Integer shopSaleNum = orderService.getShopSaleNumByShopIds(orderSaleNum.getShopIds(), orderSaleNum.getType()); + return R.ok(shopSaleNum); + } + /** * 获取所有在指定门店消费的用户id diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java index 903558a..7ba40ee 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/OrderMapper.java @@ -55,4 +55,6 @@ * @return */ Integer getShopSaleNum(@Param("shopId") Integer shopId, @Param("type") Integer type); + + Integer getShopSaleNumByShopIds(@Param("shopIds") List<Integer> shopIds, @Param("type") Integer type); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java index 7654f37..1eb3a91 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/OrderService.java @@ -117,4 +117,6 @@ * 导入物流信息 */ void importExpress(String url); + + Integer getShopSaleNumByShopIds(List<Integer> shopIds, Integer type); } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java index 4d2ecd1..df1753c 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java @@ -69,7 +69,7 @@ .eq(OrderGood::getOrderId, order.getId())); AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); if(null == appUser){ - return; + continue; } //直推上级分佣金额 BigDecimal ztsj_price = BigDecimal.ZERO; diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java index b1ad99e..51203ac 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java @@ -66,7 +66,7 @@ /** * <p> - * 服务实现类 + * 服务实现类 * </p> * * @author luodangjia @@ -90,22 +90,22 @@ private CommissionService commissionService; @Resource private BaseSettingClient baseSettingClient; - + @Resource private SysUserClient sysUserClient; - + @Resource private BalanceChangeRecordClient balanceChangeRecordClient; - + @Resource private UserPointClient userPointClient; - + @Resource private OrderBalancePaymentService orderBalancePaymentService; - + @Resource private VipSettingClient vipSettingClient; - + @Resource private GoodsClient goodsClient; @@ -115,22 +115,21 @@ private TechnicianSubscribeClient technicianSubscribeClient; @Resource private ShopBalanceStatementClient shopBalanceStatementClient; - + @Resource private RedisTemplate redisTemplate; - + @Resource private SystemConfigClient systemConfigClient; @Resource private UserCouponClient userCouponClient; - + @Resource private UserChangeLogClient userChangeLogClient; @Resource private RegionClient regionClient; - @Override @@ -139,16 +138,14 @@ } - - @Override public OrderDetailVO getOrderDetail(Long orderId) { Order order = orderMapper.selectById(orderId); - if (order == null){ + if (order == null) { throw new ServiceException("订单不存在"); } R<Shop> shopR = shopClient.getShopById(order.getShopId()); - if (!R.isSuccess(shopR)){ + if (!R.isSuccess(shopR)) { throw new ServiceException("获取门店信息失败"); } @@ -174,20 +171,20 @@ // 收货地址 String addressJson = order.getAddressJson(); UserAddress userAddress = new UserAddress(); - if (2 == order.getDistributionMode()){ + if (2 == order.getDistributionMode()) { userAddress = JSONObject.parseObject(addressJson, UserAddress.class); } // 优惠券 String couponJson = order.getCouponJson(); CouponInfo couponInfo = new CouponInfo(); - if (StringUtils.isNotEmpty(couponJson)){ + if (StringUtils.isNotEmpty(couponJson)) { couponInfo = JSONObject.parseObject(couponJson, CouponInfo.class); } // 参与活动 String activityJson = order.getActivityJson(); OrderActivityInfo orderActivityInfo = new OrderActivityInfo(); - if (StringUtils.isNotEmpty(activityJson)){ + if (StringUtils.isNotEmpty(activityJson)) { orderActivityInfo = JSONObject.parseObject(activityJson, OrderActivityInfo.class); } OrderDetailVO orderDetailVO = new OrderDetailVO(); @@ -216,15 +213,15 @@ orderDetailVO.setLongitude(shop.getLongitude()); orderDetailVO.setLatitude(shop.getLatitude()); orderDetailVO.setShopId(shop.getId()); - if(StringUtils.isNotEmpty(order.getExpressResult())){ + if (StringUtils.isNotEmpty(order.getExpressResult())) { MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(order.getExpressResult(), MapTrackKD100Vo.class); List<QueryKD100ListVo> data = mapTrackKD100Vo.getData(); orderDetailVO.setExpress(null != data && data.size() > 0 ? data.get(0).getContext() : ""); } - - if(order.getOrderType() == 1){ + + if (order.getOrderType() == 1) { List<TechnicianSubscribe> data = technicianSubscribeClient.getTechnicianSubscribeList(order.getId()).getData(); - if(data.size() > 0){ + if (data.size() > 0) { Long id = data.get(0).getId(); orderDetailVO.setTechnicianSubscribeId(id.toString()); Technician technician = technicianClient.shopdetail(order.getTechnicianId()).getData(); @@ -246,11 +243,11 @@ @Override public boolean check(Order order, Integer shopId, Long userId) { R<List<AppUserShop>> r = appUserClient.getAppUserShop(userId); - if (r.getCode() != R.SUCCESS){ + if (r.getCode() != R.SUCCESS) { throw new ServiceException("获取用户门店信息失败"); } List<AppUserShop> appUserShopList = r.getData(); - if (appUserShopList == null || appUserShopList.isEmpty()){ + if (appUserShopList == null || appUserShopList.isEmpty()) { return false; } @@ -258,12 +255,12 @@ List<AppUserShop> userShopList = appUserShopList.stream() .filter(appUserShop -> appUserShop.getShopId().equals(shopId)) .collect(Collectors.toList()); - if (userShopList.isEmpty()){ + if (userShopList.isEmpty()) { return false; } // 判断订单是否属于该门店 - if (order == null){ + if (order == null) { throw new ServiceException("订单不存在"); } @@ -276,7 +273,7 @@ LoginUser loginUserApplet = tokenService.getLoginUserApplet(); Order order = orderMapper.selectById(id); boolean check = check(order, shopId, loginUserApplet.getUserid()); - if (!check){ + if (!check) { throw new ServiceException("该订单与当前扫码门店不一致"); } @@ -297,16 +294,17 @@ order.setAfterSaleTime(LocalDateTime.now().plusDays(days)); order.setEndTime(LocalDateTime.now()); order.setCancellerAppUserId(loginUserApplet.getUserid()); - if(StringUtils.isNotEmpty(technicianId) && !"null".equals(technicianId)){ + if (StringUtils.isNotEmpty(technicianId) && !"null".equals(technicianId)) { order.setTechnicianId(Integer.valueOf(technicianId)); } // TODO orderMapper.updateById(order); } - - + + /** * 管理后台获取订单列表数据 + * * @param orderPageList * @return */ @@ -314,47 +312,46 @@ public PageInfo<OrderPageListVo> getOrderPageList(OrderPageList orderPageList) { Long userid = tokenService.getLoginUser().getUserid(); SysUser sysUser = sysUserClient.getSysUser(userid).getData(); - if(2 == sysUser.getRoleType()){ + if (2 == sysUser.getRoleType()) { orderPageList.setShopId(sysUser.getObjectId()); } //搜索条件,用户姓名 - if(StringUtils.isNotEmpty(orderPageList.getUserName())){ + if (StringUtils.isNotEmpty(orderPageList.getUserName())) { List<AppUser> data = appUserClient.getAppUserByNameNoFilter(orderPageList.getUserName()).getData(); List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(collect)){ + if (CollectionUtils.isEmpty(collect)) { return new PageInfo<>(); } - if(null != orderPageList.getAppUserIds()){ + if (null != orderPageList.getAppUserIds()) { List<Long> appUserIds = orderPageList.getAppUserIds(); appUserIds.addAll(collect); orderPageList.setAppUserIds(appUserIds); - }else{ + } else { orderPageList.setAppUserIds(collect); } } //搜索条件,用户电话 - if(StringUtils.isNotEmpty(orderPageList.getPhone())){ + if (StringUtils.isNotEmpty(orderPageList.getPhone())) { List<AppUser> data = appUserClient.getAppUserByPhoneNoFilter(orderPageList.getPhone()).getData(); List<Long> collect = data.stream().map(AppUser::getId).collect(Collectors.toList()); - if (CollectionUtils.isEmpty(collect)){ + if (CollectionUtils.isEmpty(collect)) { return new PageInfo<>(); } - if(null != orderPageList.getAppUserIds()){ + if (null != orderPageList.getAppUserIds()) { List<Long> appUserIds = orderPageList.getAppUserIds(); - if (!containsAny(appUserIds,collect)) { + if (!containsAny(appUserIds, collect)) { return new PageInfo<>(); } appUserIds.addAll(collect); orderPageList.setAppUserIds(appUserIds); - }else{ + } else { orderPageList.setAppUserIds(collect); } } - if (null != orderPageList.getAppUserIds()){ + if (null != orderPageList.getAppUserIds()) { orderPageList.setAppUserIds(orderPageList.getAppUserIds().stream().distinct().collect(Collectors.toList())); } - PageInfo<OrderPageListVo> pageInfo = new PageInfo<>(orderPageList.getPageCurr(), orderPageList.getPageSize()); @@ -363,7 +360,7 @@ for (OrderPageListVo orderPageListVo : list) { Long appUserId = orderPageListVo.getAppUserId(); AppUser appUser = appUserClient.getAppUserById(appUserId); - if(null != appUser){ + if (null != appUser) { orderPageListVo.setUserName(appUser.getName()); orderPageListVo.setPhone(appUser.getPhone()); } @@ -376,7 +373,7 @@ orderPageListVo.setGetCommission(reduce); String expressJson = orderPageListVo.getExpressJson(); - if (StringUtils.isNotEmpty(expressJson) && !expressJson.equals("NULL")){ + if (StringUtils.isNotEmpty(expressJson) && !expressJson.equals("NULL")) { JSONObject jsonObject = null; try { jsonObject = JSONObject.parseObject(expressJson); @@ -415,32 +412,31 @@ } - - /** * 小程序取消订单 + * * @param orderId * @return */ @Override public R cancel(Long orderId) { Order order = this.getById(orderId); - if(null == order){ + if (null == order) { return R.fail("取消失败"); } Long userid = tokenService.getLoginUserApplet().getUserid(); - if(!order.getAppUserId().equals(userid)){ + if (!order.getAppUserId().equals(userid)) { return R.fail("取消失败"); } - if(!Arrays.asList(1, 2, 3).contains(order.getOrderStatus())){ + if (!Arrays.asList(1, 2, 3).contains(order.getOrderStatus())) { return R.fail("订单取消失败"); } - if(null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())){ + if (null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())) { return R.fail("订单取消失败"); } order.setOrderStatus(5); R r = refundPayMoney(order); - if(200 == r.getCode()){ + if (200 == r.getCode()) { this.updateById(order); } return r; @@ -448,18 +444,19 @@ /** * 确认发货操作 + * * @return */ @Override public R confirmDelivery(ConfirmDelivery confirmDelivery) { Order order = this.getById(confirmDelivery.getOrderId()); - if(1 == order.getPayStatus()){ + if (1 == order.getPayStatus()) { return R.fail("订单还未完成支付"); } - if(1 == order.getOrderType() || null == order.getAddressJson()){ + if (1 == order.getOrderType() || null == order.getAddressJson()) { return R.fail("该订单不支付快递配送"); } - if(1 != order.getOrderStatus()){ + if (1 != order.getOrderStatus()) { return R.fail("无效的操作"); } //添加快递号和修改订单状态 @@ -490,54 +487,55 @@ } - /** * 取消订单操作 + * * @param orderId * @return */ @Override public R cancelOrder(Long orderId) { Order order = this.getById(orderId); - if(Arrays.asList(5, 6, 7).contains(order.getOrderStatus())){ + if (Arrays.asList(5, 6, 7).contains(order.getOrderStatus())) { return R.fail("无效的操作"); } - if(null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())){ + if (null != order.getAfterSaleTime() && LocalDateTime.now().isAfter(order.getAfterSaleTime())) { return R.fail("订单取消失败"); } order.setOrderStatus(5); R r = refundPayMoney(order); - if(200 == r.getCode()){ + if (200 == r.getCode()) { this.updateById(order); } return r; } - - + + /** * 返回订单支付金额和回退积分和会员等级 + * * @param order */ - public R refundPayMoney(Order order){ + public R refundPayMoney(Order order) { //开始退款 Integer payMethod = order.getPayMethod(); BigDecimal paymentAmount = order.getPaymentAmount(); AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); - if(1 == payMethod){ + if (1 == payMethod) { //微信退款 RefundResult refund = PaymentUtil.refund(order.getOrderNumber(), "R" + order.getOrderNumber(), paymentAmount.doubleValue(), "/order/order/refundPayMoneyCallback"); - if("100".equals(refund.getRa_Status())){ + if ("100".equals(refund.getRa_Status())) { order.setRefundStatus(1); return R.ok(); - }else{ + } else { return R.fail(refund.getRc_CodeMsg()); } } - if(2 == payMethod){ + if (2 == payMethod) { //余额退款 OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, order.getId())); BigDecimal balance = appUser.getBalance(); - if(null != orderBalancePayment){ + if (null != orderBalancePayment) { appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); // appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); } @@ -546,12 +544,12 @@ //查询最后一次的消费订单 Order order1 = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getAppUserId, order.getAppUserId()).eq(Order::getPayStatus, 2) .eq(Order::getDelFlag, 0).in(Order::getOrderStatus, Arrays.asList(1, 2, 3, 4, 8)).ne(Order::getId, order.getId()).last(" order by create_time desc limit 0, 1")); - if(null != order1){ + if (null != order1) { appUser.setLastShopTime(order1.getCreateTime()); - }else{ + } else { appUser.setLastShopTime(null); } - + //构建账户余额流水明细 BalanceChangeRecord balanceChangeRecord = new BalanceChangeRecord(); balanceChangeRecord.setOrderId(order.getId()); @@ -582,13 +580,13 @@ appUser.setLavePoint(appUser.getLavePoint() - shopPoint); appUser.setAvailablePoint(appUser.getAvailablePoint() - availablePoint); appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - availablePoint); - if(null != transferablePoint){ + if (null != transferablePoint) { appUser.setTransferablePoint(appUser.getTransferablePoint() - transferablePoint); } appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint); //构建积分流水明细 - if(shopPoint > 0){ + if (shopPoint > 0) { UserPoint userPoint = new UserPoint(); userPoint.setType(1); userPoint.setHistoricalPoint(lavePoint); @@ -600,37 +598,37 @@ userPointClient.saveUserPoint(userPoint); } appUserClient.editAppUserById(appUser); - + //降级检测 - if(1 < appUser.getVipId() && appUser.getVipId() < 4){ + if (1 < appUser.getVipId() && appUser.getVipId() < 4) { appUserClient.vipDemotion(appUser.getId()); } //回退优惠券状态 - if(null != order.getUserCouponId()){ + if (null != order.getUserCouponId()) { UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData(); userCoupon.setUseTime(null); userCouponClient.editReturnUse(userCoupon); } } - if(3 == payMethod){ + if (3 == payMethod) { //开始运费退款,积分支付,运费是单独进行支付的,所以需要单独退款 - if(null != order.getExpressAmount() && BigDecimal.ZERO.compareTo(order.getExpressAmount()) < 0){ + if (null != order.getExpressAmount() && BigDecimal.ZERO.compareTo(order.getExpressAmount()) < 0) { BigDecimal expressAmount = order.getExpressAmount(); - if(1 == order.getExpressPayMethod()){ + if (1 == order.getExpressPayMethod()) { //微信退款 RefundResult refund = PaymentUtil.refund(order.getOrderNumber(), "R" + order.getOrderNumber(), expressAmount.doubleValue(), "/order/order/refundExpressPayMoneyCallback"); - if("100".equals(refund.getRa_Status())){ + if ("100".equals(refund.getRa_Status())) { order.setRefundStatus(1); return R.ok(); - }else{ + } else { return R.fail(refund.getRc_CodeMsg()); } } - if(2 == order.getExpressPayMethod()){ + if (2 == order.getExpressPayMethod()) { //余额退款 OrderBalancePayment orderBalancePayment = orderBalancePaymentService.getOne(new LambdaQueryWrapper<OrderBalancePayment>().eq(OrderBalancePayment::getOrderId, order.getId())); BigDecimal balance = appUser.getBalance(); - if(null != orderBalancePayment){ + if (null != orderBalancePayment) { appUser.setTotalRedPacketAmount(appUser.getTotalRedPacketAmount().add(orderBalancePayment.getRedPacketAmount()).setScale(2, RoundingMode.HALF_EVEN)); // appUser.setTotalDistributionAmount(appUser.getTotalDistributionAmount().add(orderBalancePayment.getDistributionAmount()).setScale(2, RoundingMode.HALF_EVEN)); } @@ -659,14 +657,14 @@ userPoint1.setObjectId(order.getId()); List<UserPoint> data = userPointClient.getUserPointList(userPoint1).getData(); Integer transferablePoint = order.getPoint(); - if(data.size() > 0){ + if (data.size() > 0) { UserPoint userPoint = data.get(0); transferablePoint = Integer.valueOf(userPoint.getExtention()); } appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint); //构建积分流水明细 - if(order.getPoint() > 0){ + if (order.getPoint() > 0) { UserPoint userPoint = new UserPoint(); userPoint.setType(11); userPoint.setHistoricalPoint(lavePoint); @@ -688,13 +686,14 @@ /** * 取消订单后回调处理 + * * @return */ @Override public R refundPayMoneyCallback(RefundCallbackResult refundCallbackResult) { String code = refundCallbackResult.getR3_RefundOrderNo().substring(1); Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNumber, code)); - if(null == order || order.getPayStatus() == 1 || order.getOrderStatus() == 6){ + if (null == order || order.getPayStatus() == 1 || order.getOrderStatus() == 6) { return R.ok(); } order.setRefundCode(refundCallbackResult.getR5_RefundTrxNo()); @@ -718,13 +717,13 @@ appUser.setLavePoint(appUser.getLavePoint() - shopPoint); appUser.setAvailablePoint(appUser.getAvailablePoint() - availablePoint); appUser.setTotalAvailablePoint(appUser.getTotalAvailablePoint() - availablePoint); - if(null != transferablePoint){ + if (null != transferablePoint) { appUser.setTransferablePoint(appUser.getTransferablePoint() - transferablePoint); } appUser.setTotalPoint(appUser.getTotalPoint() - shopPoint); //构建积分流水明细 - if(shopPoint > 0){ + if (shopPoint > 0) { UserPoint userPoint = new UserPoint(); userPoint.setType(1); userPoint.setHistoricalPoint(lavePoint); @@ -736,14 +735,14 @@ userPointClient.saveUserPoint(userPoint); } appUserClient.editAppUserById(appUser); - + //降级检测 - if(1 < appUser.getVipId() && appUser.getVipId() < 4){ + if (1 < appUser.getVipId() && appUser.getVipId() < 4) { appUserClient.vipDemotion(appUser.getId()); } //回退优惠券状态 - if(null != order.getUserCouponId()){ + if (null != order.getUserCouponId()) { UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData(); userCoupon.setUseTime(null); userCouponClient.editReturnUse(userCoupon); @@ -754,13 +753,14 @@ /** * 取消订单快递费回退 + * * @return */ @Override public R refundExpressPayMoneyCallback(RefundCallbackResult refundCallbackResult) { String code = refundCallbackResult.getR3_RefundOrderNo().substring(1); Order order = this.getOne(new LambdaQueryWrapper<Order>().eq(Order::getOrderNumber, code)); - if(null == order || order.getPayStatus() == 1 || order.getOrderStatus() == 6){ + if (null == order || order.getPayStatus() == 1 || order.getOrderStatus() == 6) { return R.ok(); } order.setRefundCode(refundCallbackResult.getR5_RefundTrxNo()); @@ -778,14 +778,14 @@ userPoint1.setObjectId(order.getId()); List<UserPoint> data = userPointClient.getUserPointList(userPoint1).getData(); Integer transferablePoint = order.getPoint(); - if(data.size() > 0){ + if (data.size() > 0) { UserPoint userPoint = data.get(0); transferablePoint = Integer.valueOf(userPoint.getExtention()); } appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint); //构建积分流水明细 - if(order.getPoint() > 0){ + if (order.getPoint() > 0) { UserPoint userPoint = new UserPoint(); userPoint.setType(11); userPoint.setHistoricalPoint(lavePoint); @@ -799,18 +799,17 @@ return R.ok(); } - - - + /** * 收货操作 + * * @param orderId * @return */ @Override public R receivingOperation(Long orderId) { Order order = this.getById(orderId); - if(order.getOrderStatus() != 2){ + if (order.getOrderStatus() != 2) { return R.fail("无效的操作"); } order.setOrderStatus(4); @@ -829,10 +828,11 @@ this.updateById(order); return R.ok(); } - - + + /** * 获取订单详情 + * * @param orderId * @return */ @@ -845,18 +845,18 @@ orderInfo.setOrderStatus(order.getOrderStatus()); orderInfo.setCreateTime(order.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); AppUser appUser = appUserClient.getAppUserById(order.getAppUserId()); - if(null != appUser){ + if (null != appUser) { orderInfo.setUserName(appUser.getName()); orderInfo.setPhone(appUser.getPhone()); } orderInfo.setOrderType(order.getOrderType() == 1 ? "服务" : (StringUtils.isNotEmpty(order.getAddressJson()) ? "单品-快递配送" : "单品-上门自提")); Shop shop = shopClient.getShopById(order.getShopId()).getData(); - if(null != shop){ + if (null != shop) { orderInfo.setShopName(shop.getName()); } orderInfo.setPaymentMethod(order.getPayMethod()); orderInfo.setTotalAmount(order.getTotalAmount()); - if(StringUtils.isNotEmpty(order.getCouponJson())){ + if (StringUtils.isNotEmpty(order.getCouponJson())) { CouponInfo couponInfo = JSON.parseObject(order.getCouponJson(), CouponInfo.class); orderInfo.setCouponName(couponInfo.getCouponName()); } @@ -864,7 +864,7 @@ orderInfo.setExpressAmount(order.getExpressAmount()); orderInfo.setPaymentAmount(order.getPaymentAmount()); orderInfo.setGetPoint(order.getGetPoint()); - if(2 == order.getDistributionMode()){ + if (2 == order.getDistributionMode()) { UserAddress userAddress = JSON.parseObject(order.getAddressJson(), UserAddress.class); orderInfo.setRecipient(userAddress.getRecieveName() + "-" + userAddress.getRecievePhone()); userAddress.setRecieveAddress(userAddress.getProvince() + userAddress.getCity() + userAddress.getDistrict() + userAddress.getRecieveAddress()); @@ -872,9 +872,14 @@ MapTrackKD100Vo mapTrackKD100Vo = JSON.parseObject(order.getExpressResult(), MapTrackKD100Vo.class); orderInfo.setExpress(mapTrackKD100Vo); } + if (StringUtils.isNotEmpty(order.getExpressJson()) && !order.getExpressJson().equals("NULL")){ + JSONObject jsonObject = JSON.parseObject(order.getExpressJson()); + orderInfo.setExpressCompany(jsonObject.getString("com")); + orderInfo.setExpressNumber(jsonObject.getString("num")); + } + List<OrderGood> orderGoods = orderGoodMapper.selectList(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, orderId).eq(OrderGood::getDelFlag, 0)); int sum = orderGoods.stream().mapToInt(OrderGood::getNum).sum(); - System.out.println("111111111111222"); orderInfo.setGoodsNum(sum); List<Object> goodsJson = new ArrayList<>(); for (OrderGood orderGood : orderGoods) { @@ -887,21 +892,21 @@ } orderInfo.setGoodsJson(JSON.toJSONString(goodsJson)); orderInfo.setPoint(order.getPoint()); - if(null != order.getAfterSaleTime()){ + if (null != order.getAfterSaleTime()) { orderInfo.setAfterSaleTime(order.getAfterSaleTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } - if(StringUtils.isNotEmpty(order.getActivityJson())){ + if (StringUtils.isNotEmpty(order.getActivityJson())) { OrderActivityInfo activityInfo = JSON.parseObject(order.getActivityJson(), OrderActivityInfo.class); orderInfo.setActivityName(activityInfo.getActivityName()); } - if(null != order.getEndTime()){ + if (null != order.getEndTime()) { AppUser user = appUserClient.getAppUserById(order.getCancellerAppUserId()); orderInfo.setCanceller(user.getName()); orderInfo.setWriteOffTime(order.getEndTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"))); } - if(order.getOrderType() == 1){ + if (order.getOrderType() == 1) { List<TechnicianSubscribe> technicianSubscribes = technicianSubscribeClient.getTechnicianSubscribeList(order.getId()).getData(); - if(technicianSubscribes.size() > 0){ + if (technicianSubscribes.size() > 0) { Set<Integer> collect = technicianSubscribes.stream().map(TechnicianSubscribe::getTechnicianId).collect(Collectors.toSet()); List<Technician> data = technicianClient.getTechnicianByIds(collect).getData(); orderInfo.setTechnicianName(data.stream().map(Technician::getName).collect(Collectors.joining(","))); @@ -916,6 +921,7 @@ /** * 获取商品销售数量 + * * @param goodsId * @return */ @@ -927,6 +933,7 @@ /** * 获取店铺订单数量 + * * @param shopId * @param type * @return @@ -935,23 +942,23 @@ public Integer getShopSaleNum(Integer shopId, Integer type) { return this.baseMapper.getShopSaleNum(shopId, type); } - - + + /** * 定时查询快递信息 */ @Override public void taskExpress() { Set<Long> order_express = redisTemplate.opsForZSet().rangeByScore("order_express", 0, LocalDateTime.now().toEpochSecond(ZoneOffset.UTC)); - if(order_express.size() > 0){ + if (order_express.size() > 0) { for (Long id : order_express) { Order order = this.getById(id); - if(order.getOrderStatus() != 2){ + if (order.getOrderStatus() != 2) { redisTemplate.opsForZSet().remove("order_express", id); continue; } String expressJson = order.getExpressJson(); - if(StringUtils.isEmpty(expressJson)){ + if (StringUtils.isEmpty(expressJson)) { redisTemplate.opsForZSet().remove("order_express", id); continue; } @@ -978,7 +985,7 @@ @Transactional(rollbackFor = Exception.class) public void importExpress(String url) { URL url1 = new URL(url); - try (InputStream fileInputStream = url1.openStream()) { + try (InputStream fileInputStream = url1.openStream()) { Workbook workbook = new XSSFWorkbook(fileInputStream); Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet int lastRowNum = sheet.getLastRowNum(); @@ -1002,39 +1009,39 @@ Order order = this.getOne(new LambdaQueryWrapper<Order>() .eq(Order::getOrderNumber, orderNum) ); - if (order == null){ - throw new ServiceException("订单不存在:"+orderNum, 500); + if (order == null) { + throw new ServiceException("订单不存在:" + orderNum, 500); } Integer orderType = order.getOrderType(); - if (orderType != 2){ - throw new ServiceException("该订单:"+orderNum+"类型不为单品订单", 500); + if (orderType != 2) { + throw new ServiceException("该订单:" + orderNum + "类型不为单品订单", 500); } - if (order.getDistributionMode() != 2){ - throw new ServiceException("该订单:"+orderNum+"配送方式不为快递", 500); + if (order.getDistributionMode() != 2) { + throw new ServiceException("该订单:" + orderNum + "配送方式不为快递", 500); } Integer orderStatus = order.getOrderStatus(); - if (orderStatus != 1){ - throw new ServiceException("该订单:"+orderNum+"状态不为待发货", 500); + if (orderStatus != 1) { + throw new ServiceException("该订单:" + orderNum + "状态不为待发货", 500); } String companyNameByCode = ExpressCompanyMap.getCodeByCompanyName(expressName); - if(StringUtils.isEmpty(companyNameByCode)){ - throw new ServiceException("快递公司名称错误:"+expressName, 500); + if (StringUtils.isEmpty(companyNameByCode)) { + throw new ServiceException("快递公司名称错误:" + expressName, 500); } R<Region> regionBiCode = regionClient.getRegionBiCode(provinceCode); if (regionBiCode.getData() == null) { - throw new ServiceException("省份编码错误:"+provinceCode, 500); + throw new ServiceException("省份编码错误:" + provinceCode, 500); } R<Region> regionBiCode1 = regionClient.getRegionBiCode(cityCode); if (regionBiCode1.getData() == null) { - throw new ServiceException("城市编码错误:"+cityCode, 500); + throw new ServiceException("城市编码错误:" + cityCode, 500); } JSONObject jsonObject = new JSONObject(); jsonObject.put("com", companyNameByCode); jsonObject.put("num", expressNum); - ConfirmDelivery confirmDelivery =new ConfirmDelivery(); + ConfirmDelivery confirmDelivery = new ConfirmDelivery(); confirmDelivery.setOrderId(order.getId()); confirmDelivery.setCode(jsonObject.toJSONString()); confirmDelivery.setDeliverProvince(regionBiCode.getData().getName()); @@ -1056,7 +1063,7 @@ public static void importExpress2(String filePath) throws MalformedURLException { // 从网络地址读取 URL url = new URL(filePath); - try (InputStream fileInputStream = url.openStream()) { + try (InputStream fileInputStream = url.openStream()) { Workbook workbook = new XSSFWorkbook(fileInputStream); Sheet sheet = workbook.getSheetAt(0); // 获取第一个Sheet @@ -1080,4 +1087,8 @@ } } + @Override + public Integer getShopSaleNumByShopIds(List<Integer> shopIds, Integer type) { + return this.baseMapper.getShopSaleNumByShopIds(shopIds, type); + } } diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java index 88aa5b8..71aee58 100644 --- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java +++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/vo/OrderInfoVo.java @@ -73,5 +73,9 @@ private String activityName; @ApiModelProperty("核销码BASE64") private String writeOffCode; + @ApiModelProperty("快递公司") + private String expressCompany; + @ApiModelProperty("快递单号") + private String expressNumber; } diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml index 4611723..37f4d66 100644 --- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml +++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml @@ -143,4 +143,17 @@ and order_type = #{type} </if> </select> + <select id="getShopSaleNumByShopIds" resultType="java.lang.Integer"> + select + ifnull(count(1), 0) + from t_order a + where del_flag = 0 and pay_status = 2 and order_status in (1, 2, 3, 4, 7, 8) + and shop_id in + <foreach collection="shopIds" item="shopId" separator="," open="(" close=")" index="index"> + #{shopId} + </foreach> + <if test="null != type"> + and order_type = #{type} + </if> + </select> </mapper> diff --git a/ruoyi-service/ruoyi-other/Dockerfile b/ruoyi-service/ruoyi-other/Dockerfile new file mode 100644 index 0000000..9e6dc80 --- /dev/null +++ b/ruoyi-service/ruoyi-other/Dockerfile @@ -0,0 +1,24 @@ +# 使用官方的 OpenJDK 8 JRE 镜像作为基础镜像 +FROM docker.m.daocloud.io/library/openjdk:8-jre-alpine + +# 设置维护者信息 +LABEL maintainer="luofl,mit" + +# 创建必要的目录 +RUN mkdir -p /xss/server/logs \ + && mkdir -p /xss/server/temp + +# 设置工作目录 +WORKDIR /xss/server + +# 设置默认环境变量(可被运行时覆盖) +ENV SERVER_PORT=9600 + +# 声明容器暴露的端口(静态值更可靠) +EXPOSE 9600 + +# 将本地构建的 JAR 文件复制到镜像中 +ADD ./target/ruoyi-modules-other.jar ./app.jar + +# 定义容器启动时运行的命令 +ENTRYPOINT ["java", "-Djava.security.egd=file:/dev/./urandom", "-Dserver.port=${SERVER_PORT}", "-jar", "app.jar"] \ No newline at end of file diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java index 81f745a..bafefaa 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/CouponInfoController.java @@ -80,6 +80,9 @@ @ApiOperation(value = "优惠劵管理-详情", tags = {"管理后台-活动管理"}) public R<CouponInfo> detail(@RequestParam("id") Integer id) { CouponInfo byId = couponInfoService.getById(id); + if (byId == null){ + return R.fail("优惠劵不存在"); + } String forGoodIds = byId.getForGoodIds(); if (!"-1".equals(forGoodIds) && StringUtils.isNotEmpty(forGoodIds)){ List<Goods> goods = goodsService.listByIds(Arrays.asList(forGoodIds.split(","))); diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java index 1f198da..159b064 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java @@ -150,7 +150,7 @@ } if (StringUtils.isNotEmpty(goodsEvaluate.getPhone())) { - usersPhoneList = appUserClient.getAppUserByPhone(goodsEvaluate.getPhone()).getData().stream().map(AppUser::getId).collect(Collectors.toList()); + usersPhoneList = appUserClient.getAppUserByPhoneNoFilter(goodsEvaluate.getPhone()).getData().stream().map(AppUser::getId).collect(Collectors.toList()); if (usersPhoneList.isEmpty()) { return R.ok(new Page<>()); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java index 4f944f3..1d124c7 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShareController.java @@ -255,6 +255,16 @@ userIds.addAll(userList.stream().map(AppUser::getId).collect(Collectors.toList())); } + List<Share> list = shareService.list(); + if (CollectionUtils.isEmpty(list)){ + return R.ok(Page.of(pageNum, pageSize)); + } + List<Long> objectIds = list.stream().map(Share::getObjectId).distinct().collect(Collectors.toList()); + List<AppUser> appUsers = appUserClient.listByIds(objectIds); + List<Long> appUserIds = appUsers.stream().filter(item -> !item.getDelFlag()).map(AppUser::getId).collect(Collectors.toList()); + if (CollectionUtils.isEmpty(userIds)){ + userIds = appUserIds; + } Page<Share> page = shareService.lambdaQuery() diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java index 0a46602..d4e3f19 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java @@ -15,6 +15,7 @@ import com.ruoyi.common.security.utils.MD5Generator; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.order.feignClient.OrderClient; +import com.ruoyi.order.vo.OrderSaleNum; import com.ruoyi.order.vo.VerifiableShopVo; import com.ruoyi.other.api.domain.*; import com.ruoyi.other.mapper.ShopMapper; @@ -688,14 +689,35 @@ @ApiOperation(value = "门店统计", tags = {"管理后台-首页统计"}) public R<ShopStatistics> shopStatistics(@ApiParam("门店id") Integer shopId) { ShopStatistics shopStatistics = shopMapper.getShopStatistics(shopId); - if(null == shopId){ - shopId = 0; + List<Integer> shopIds; + + shopIds = shopService.list(new LambdaQueryWrapper<Shop>() + .eq(Shop::getDelFlag, 0) + .eq(shopId !=null,Shop::getId, shopId)) + .stream() + .map(Shop::getId) + .collect(Collectors.toList()); + + + if (CollectionUtils.isEmpty(shopIds)){ + shopStatistics.setTotalOrder(0); + shopStatistics.setServiceOrder(0); + shopStatistics.setGoodsOrder(0); + }else { + OrderSaleNum serviceOrderSaleNum = new OrderSaleNum(); + serviceOrderSaleNum.setShopIds(shopIds); + serviceOrderSaleNum.setType(1); + Integer serviceOrder = orderClient.getShopSaleNumByShopIds(serviceOrderSaleNum).getData(); + + OrderSaleNum goodsOrderSaleNum = new OrderSaleNum(); + goodsOrderSaleNum.setShopIds(shopIds); + goodsOrderSaleNum.setType(2); + Integer goodsOrder = orderClient.getShopSaleNumByShopIds(goodsOrderSaleNum).getData(); + + shopStatistics.setTotalOrder(serviceOrder + goodsOrder); + shopStatistics.setServiceOrder(serviceOrder); + shopStatistics.setGoodsOrder(goodsOrder); } - Integer serviceOrder = orderClient.getShopSaleNum(shopId, 1).getData(); - Integer goodsOrder = orderClient.getShopSaleNum(shopId, 2).getData(); - shopStatistics.setTotalOrder(serviceOrder + goodsOrder); - shopStatistics.setServiceOrder(serviceOrder); - shopStatistics.setGoodsOrder(goodsOrder); return R.ok(shopStatistics); } diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java index 68b621e..6a48227 100644 --- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java +++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java @@ -1,5 +1,6 @@ package com.ruoyi.other.service.impl; +import cn.afterturn.easypoi.cache.manager.IFileLoader; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -8,6 +9,7 @@ import com.ruoyi.account.api.model.AppUser; import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.exception.ServiceException; +import com.ruoyi.common.core.exception.auth.NotPermissionException; import com.ruoyi.common.core.utils.GeodesyUtil; import com.ruoyi.common.core.utils.ServletUtils; import com.ruoyi.common.core.utils.StringUtils; @@ -137,14 +139,20 @@ @Override public ShopDetailVO getShopDetail(Integer shopId, BigDecimal longitude, BigDecimal latitude) { - Long userid = tokenService.getLoginUserApplet().getUserid(); + Long userid = null; + if (tokenService.isLoginApplet()){ + userid = tokenService.getLoginUserApplet().getUserid(); + } // 查询店铺详情 ShopDetailVO shopDetailVO = shopMapper.selectShopDetail(shopId); if (shopDetailVO == null) { throw new ServiceException("查询店铺不存在"); } - ShopScore one = shopScoreService.getOne(new LambdaQueryWrapper<ShopScore>().eq(ShopScore::getAppUserId, userid).eq(ShopScore::getShopId, shopId).last(" order by create_time desc limit 0, 1")); - shopDetailVO.setMyScore(null == one ? BigDecimal.ZERO : one.getScore()); + if (userid != null){ + ShopScore one = shopScoreService.getOne(new LambdaQueryWrapper<ShopScore>().eq(ShopScore::getAppUserId, userid).eq(ShopScore::getShopId, shopId).last(" order by create_time desc limit 0, 1")); + shopDetailVO.setMyScore(null == one ? BigDecimal.ZERO : one.getScore()); + } + // 计算距离 if (shopDetailVO.getLongitude() != null && shopDetailVO.getLatitude() != null){ String shopLocation = String.format("%s,%s", shopDetailVO.getLongitude(), shopDetailVO.getLatitude()); diff --git a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml index dede2fd..49bf7d6 100644 --- a/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml +++ b/ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml @@ -68,9 +68,9 @@ SUM(ts.can_withdraw_money) canWithdrawMoney, SUM(ts.withdraw_money) alreadyWithdrawMoney FROM - t_shop ts + t_shop ts where ts.del_flag = 0 <if test="null != shopId"> - where ts.id = #{shopId} + and ts.id = #{shopId} </if> </select> </mapper> \ No newline at end of file -- Gitblit v1.7.1