ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/model/RefundPass.java
@@ -90,6 +90,8 @@ @ApiModelProperty("快递单号") @TableField("code") private String code; @ApiModelProperty("收货地址JSON") @TableField(exist = false) private String addressJson; } ruoyi-api/ruoyi-api-order/src/main/java/com/ruoyi/order/vo/OrderDetailVO.java
@@ -63,7 +63,7 @@ private BigDecimal paymentAmount; @ApiModelProperty(value = "配送方式(1=自提,2=快递)") private String distributionMode; private Integer distributionMode; @ApiModelProperty(value = "门店名称") private String shopName; @@ -83,6 +83,9 @@ @ApiModelProperty(value = "技师名称") private String technicianName; @ApiModelProperty(value = "技师id") private Integer technicianId; @ApiModelProperty(value = "预约单id") private String technicianSubscribeId; ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/Goods.java
@@ -48,7 +48,7 @@ @TableField("purchase_limit") private Integer purchaseLimit; @ApiModelProperty(value = "配送方式(1=自提,2=快递,1,2 = 自提+快递)") @ApiModelProperty(value = "配送方式(1=自提,2=快递)") @TableField("distribution_mode") private String distributionMode; ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopClientFallbackFactory.java
@@ -7,7 +7,9 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.openfeign.FallbackFactory; import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Set; @Slf4j @@ -54,6 +56,11 @@ public R<List<Shop>> getAllShop() { return R.fail("获取所有门店失败:" + cause.getMessage()); } @Override public R<Map<String, BigDecimal>> getShopStatistics() { return R.fail(); } }; } } ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopClient.java
@@ -12,7 +12,9 @@ import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import java.math.BigDecimal; import java.util.List; import java.util.Map; import java.util.Set; /** @@ -65,4 +67,8 @@ */ @PostMapping("/shop/getAllShop") R<List<Shop>> getAllShop(); @GetMapping("/shop/getShopStatistics") public R<Map<String, BigDecimal>> getShopStatistics(); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/SysUserFallbackFactory.java
@@ -65,6 +65,11 @@ } @Override public R<SysUser> queryUserByUserNameAndRoleType(String userName, Integer roleType) { return R.fail("通过账号和账号权限查询用户失败:" + cause.getMessage()); } @Override public R addSysUser(SysUser user) { return R.fail("添加用户失败:" + cause.getMessage()); } ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/feignClient/SysUserClient.java
@@ -74,6 +74,14 @@ R<SysUser> queryUserByUserName(@RequestBody String userName); /** * 通过账号和账号权限查询用户 * @param userName * @return */ @PostMapping("/user/queryUserByUserNameAndRoleType") R<SysUser> queryUserByUserNameAndRoleType(@RequestParam("roleType") String userName, @RequestParam("roleType") Integer roleType); /** * 新增加用户信息 * @param user */ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/SysUserController.java
@@ -571,6 +571,8 @@ public R<SysUser> queryUserByUserName(@RequestBody String userName){ SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) .eq(SysUser::getUserName, userName) .eq(SysUser::getDelFlag, "0") .eq(SysUser::getStatus, 0) .last("LIMIT 1")); return R.ok(user); } @@ -696,4 +698,22 @@ Set<String> rolePerms = menuService.selectMenuPermsByRoleId(roleId); return R.ok(rolePerms); } /** * 通过账号和账号权限查询用户 * @param userName * @return */ @PostMapping("/queryUserByUserNameAndRoleType") public R<SysUser> queryUserByUserNameAndRoleType(@RequestParam("roleType") String userName, @RequestParam("roleType") Integer roleType){ SysUser user = userService.getOne(Wrappers.lambdaQuery(SysUser.class) .eq(SysUser::getUserName, userName) .eq(SysUser::getDelFlag, "0") .eq(SysUser::getStatus, 0) .eq(SysUser::getRoleType, roleType) .last("LIMIT 1")); return R.ok(user); } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AgentApplicationController.java
@@ -14,7 +14,9 @@ import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.utils.bean.BeanUtils; import com.ruoyi.common.core.web.controller.BaseController; import com.ruoyi.other.api.domain.BaseSetting; import com.ruoyi.other.api.domain.VipSetting; import com.ruoyi.other.api.feignClient.BaseSettingClient; import com.ruoyi.other.api.feignClient.VipSettingClient; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @@ -37,6 +39,8 @@ private AgentApplicationService agentApplicationService; @Resource private AppUserService appUserService; @Resource private BaseSettingClient baseSettingClient; @PostMapping("/apply") @ApiOperation(value = "会员申请", tags = {"会员中心-小程序"}) @@ -95,9 +99,40 @@ //变更会员等级 byId1.setVipId(byId.getApplicationVipId()); appUserService.updateById(byId1); // 当用户为合伙人时,计算合伙人积分和培育积分 Integer vipId = byId1.getVipId(); if (vipId == 7){ // 当前用户计算合伙人积分 R<VipSetting> vipSetting = vipSettingClient.getVipSetting(vipId); setPoint(vipSetting, byId1, byId1.getShopPoint(), byId1.getSharePoint()); // 上级计算培育积分 Long inviteUserId = byId1.getInviteUserId(); AppUser byId2 = appUserService.getById(inviteUserId); if (byId2 != null){ setPoint(vipSetting, byId2, byId1.getShopPoint(), byId1.getSharePoint()); } } return R.ok(byId); } private void setPoint(R<VipSetting> vipSetting, AppUser appUser, Integer shopPoint, Integer sharePoint) { VipSetting vipSettingData = vipSetting.getData(); Integer vipLevelUpShopRole = vipSettingData.getVipLevelUpShopRole(); if (vipLevelUpShopRole == 1){ Integer vipLevelUpShop = vipSettingData.getVipLevelUpShop(); Integer vipLevelUpShare = vipSettingData.getVipLevelUpShare(); if (shopPoint >=vipLevelUpShop && sharePoint >= vipLevelUpShare) { R<BaseSetting> baseSetting = baseSettingClient.getBaseSetting(1); BaseSetting data = baseSetting.getData(); if (data != null){ appUser.setPartPoint(Integer.parseInt(data.getContent())); appUserService.updateById(appUser); } } } } } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -524,6 +524,7 @@ AppUser byId = appUserService.lambdaQuery() .eq(AppUser::getPhone, phone) .eq(AppUser::getDelFlag,0) .eq(AppUser::getStatus,1) .one(); if (byId == null) { return R.fail("搜索失败,手机号错误。"); @@ -743,108 +744,6 @@ @GetMapping("/commissionDetail") @ApiOperation(value = "分佣统计", tags = "管理后台-首页统计") public R<CommissionDetail> commissionDetail(CommissionDetail cd) { Long userid = tokenService.getLoginUser().getUserid(); SysUser sysUser = sysUserClient.getSysUser(userid).getData(); LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<AppUser>().eq(AppUser::getDelFlag, 0); if(sysUser.getRoleType() == 2){ queryWrapper.eq(AppUser::getShopId, sysUser.getObjectId()); } LocalDateTime startTime = cd.getStartTime(); LocalDateTime endTime = cd.getEndTime(); queryWrapper.ge(null != startTime, AppUser::getCreateTime, startTime); queryWrapper.le(null != endTime, AppUser::getCreateTime, endTime); queryWrapper.orderByAsc(AppUser::getCreateTime); List<AppUser> appUserList = appUserService.list(queryWrapper); if (appUserList.isEmpty()) { return R.ok(new CommissionDetail()); } BigDecimal totalCommission = BigDecimal.ZERO; BigDecimal totalServiceFee = BigDecimal.ZERO; BigDecimal totalUserCommission = BigDecimal.ZERO; Map<Integer, BigDecimal> vipCommissions = new HashMap<>(); Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new TreeMap<>(); for (AppUser appUser : appUserList) { BigDecimal distributionAmount = Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO); totalCommission = totalCommission.add(distributionAmount); Integer vipId = appUser.getVipId(); if (vipId != null && vipId >= 1 && vipId <= 7) { vipCommissions.merge(vipId, distributionAmount, BigDecimal::add); String dateKey = appUser.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>()) .merge(vipId, distributionAmount, BigDecimal::add); } } List<Shop> data = shopClient.getAllShop().getData(); if(sysUser.getRoleType() == 2){ data = Arrays.asList(shopClient.getShopById(sysUser.getObjectId()).getData()); } for (Shop shop : data) { totalServiceFee = totalServiceFee.add(shop.getServerGiveawayMoney()); totalUserCommission = totalUserCommission.add(shop.getGiveawayMoney()); } R<List<ShopBalanceStatement>> r = shopBalanceStatementClient.getShopBalanceStatementList(Arrays.asList(1, 2, 3), null); List<ShopBalanceStatement> data1 = r.getData(); if (!CollectionUtils.isEmpty(data1)){ for (ShopBalanceStatement shopBalanceStatement : data1) { String dateKey = shopBalanceStatement.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd")); Integer type = shopBalanceStatement.getType(); if (type == 1){ type = 8; }else if (type == 2){ type = 9; }else { type = 10; } dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>()) .merge(type, shopBalanceStatement.getVariableAmount(), BigDecimal::add); } } CommissionDetail commissionDetail = new CommissionDetail(); commissionDetail.setTotalCommission(totalCommission); commissionDetail.setTotalServiceFee(totalServiceFee); commissionDetail.setTotalUserCommission(totalUserCommission); commissionDetail.setTotalNormalCommission(vipCommissions.getOrDefault(1, BigDecimal.ZERO)); commissionDetail.setTotalGoldCommission(vipCommissions.getOrDefault(2, BigDecimal.ZERO)); commissionDetail.setTotalDiamondCommission(vipCommissions.getOrDefault(3, BigDecimal.ZERO)); commissionDetail.setTotalAgentCommission(vipCommissions.getOrDefault(4, BigDecimal.ZERO)); commissionDetail.setTotalSuperAgentCommission(vipCommissions.getOrDefault(5, BigDecimal.ZERO)); commissionDetail.setTotalTopAgentCommission(vipCommissions.getOrDefault(6, BigDecimal.ZERO)); commissionDetail.setTotalPartnerCommission(vipCommissions.getOrDefault(7, BigDecimal.ZERO)); List<CommissionDate> commissionDateList = dailyVipCommissions.entrySet().stream() .map(entry -> { CommissionDate commissionDate = new CommissionDate(); commissionDate.setDate(entry.getKey()); Map<Integer, BigDecimal> dailyCommissions = entry.getValue(); commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO)); commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO)); commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO)); commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO)); commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO)); commissionDate.setTopAgentCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO)); commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO)); BigDecimal add = commissionDate.getNormalCommission().add(commissionDate.getGoldCommission()).add(commissionDate.getDiamondCommission()).add(commissionDate.getAgentCommission()) .add(commissionDate.getSuperAgentCommission()).add(commissionDate.getTopAgentCommission()).add(commissionDate.getPartnerCommission()); commissionDate.setTotalCommission(add); commissionDate.setServiceChargeCommission(dailyCommissions.getOrDefault(10, BigDecimal.ZERO)); commissionDate.setAssociatedUserCommission(dailyCommissions.getOrDefault(8, BigDecimal.ZERO)); commissionDate.setBindLowerLevelStoresCommission(dailyCommissions.getOrDefault(9, BigDecimal.ZERO)); return commissionDate; }) .collect(Collectors.toList()); commissionDetail.setCommissionDateList(commissionDateList); return R.ok(commissionDetail); } public R<CommissionDetail> commissionDetail2(CommissionDetail cd) { if (cd.getStartTime() == null || cd.getEndTime() == null) { return R.fail("请选择时间"); } @@ -857,7 +756,7 @@ getDatesBetween(cd.getStartTime(), cd.getEndTime()).forEach(date -> { for (int i = 1; i < 8; i++){ List<BalanceChangeRecord> list = balanceChangeRecordService.list(new LambdaQueryWrapper<BalanceChangeRecord>() .eq(BalanceChangeRecord::getCreateTime, date) .between(BalanceChangeRecord::getCreateTime, date, date.plusDays(1)) .eq(BalanceChangeRecord::getChangeType,4) .eq(BalanceChangeRecord::getVipId, i)); BigDecimal reduce = list.stream().map(BalanceChangeRecord::getChangeAmount).reduce(BigDecimal.ZERO, BigDecimal::add); @@ -885,7 +784,99 @@ } } }); return null; BigDecimal totalCommission = BigDecimal.ZERO; BigDecimal totalNormalCommission = BigDecimal.ZERO; BigDecimal totalGoldCommission = BigDecimal.ZERO; BigDecimal totalDiamondCommission = BigDecimal.ZERO; BigDecimal totalAgentCommission = BigDecimal.ZERO; BigDecimal totalSuperAgentCommission = BigDecimal.ZERO; BigDecimal totalTopAgentCommission = BigDecimal.ZERO; BigDecimal totalPartnerCommission = BigDecimal.ZERO; List<AppUser> allAppUserList = appUserService.list(); for (AppUser appUser : allAppUserList) { BigDecimal totalDistributionAmount = appUser.getTotalDistributionAmount(); totalCommission = totalCommission.add(totalDistributionAmount); if (appUser.getVipId() == 1){ totalNormalCommission = totalNormalCommission.add(totalDistributionAmount); } if (appUser.getVipId() == 2){ totalGoldCommission = totalGoldCommission.add(totalDistributionAmount); } if (appUser.getVipId() == 3){ totalDiamondCommission = totalDiamondCommission.add(totalDistributionAmount); } if (appUser.getVipId() == 4){ totalAgentCommission = totalAgentCommission.add(totalDistributionAmount); } if (appUser.getVipId() == 5){ totalSuperAgentCommission = totalSuperAgentCommission.add(totalDistributionAmount); } if (appUser.getVipId() == 6){ totalTopAgentCommission = totalTopAgentCommission.add(totalDistributionAmount); } if (appUser.getVipId() == 7){ totalPartnerCommission = totalPartnerCommission.add(totalDistributionAmount); } } R<Map<String, BigDecimal>> shopStatistics = shopClient.getShopStatistics(); Map<String, BigDecimal> data = shopStatistics.getData(); BigDecimal totalServiceFee = BigDecimal.ZERO; BigDecimal totalUserCommission = BigDecimal.ZERO; if (data != null){ totalServiceFee = data.get("serverGiveawayMoney"); totalUserCommission = data.get("lowerLevelGiveawayMoney"); } CommissionDetail commissionDetail = new CommissionDetail(); commissionDetail.setTotalCommission(totalCommission); commissionDetail.setTotalServiceFee(totalServiceFee); commissionDetail.setTotalUserCommission(totalUserCommission); commissionDetail.setTotalNormalCommission(totalNormalCommission); commissionDetail.setTotalGoldCommission(totalGoldCommission); commissionDetail.setTotalDiamondCommission(totalDiamondCommission); commissionDetail.setTotalAgentCommission(totalAgentCommission); commissionDetail.setTotalSuperAgentCommission(totalSuperAgentCommission); commissionDetail.setTotalTopAgentCommission(totalTopAgentCommission); commissionDetail.setTotalPartnerCommission(totalPartnerCommission); List<CommissionDate> commissionDateList = dailyVipCommissions.entrySet().stream() .map(entry -> { CommissionDate commissionDate = new CommissionDate(); commissionDate.setDate(entry.getKey()); Map<Integer, BigDecimal> dailyCommissions = entry.getValue(); commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO)); commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO)); commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO)); commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO)); commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO)); commissionDate.setTopAgentCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO)); commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO)); BigDecimal add = commissionDate.getNormalCommission().add(commissionDate.getGoldCommission()).add(commissionDate.getDiamondCommission()).add(commissionDate.getAgentCommission()) .add(commissionDate.getSuperAgentCommission()).add(commissionDate.getTopAgentCommission()).add(commissionDate.getPartnerCommission()); commissionDate.setTotalCommission(add); commissionDate.setServiceChargeCommission(dailyCommissions.getOrDefault(10, BigDecimal.ZERO)); commissionDate.setAssociatedUserCommission(dailyCommissions.getOrDefault(8, BigDecimal.ZERO)); commissionDate.setBindLowerLevelStoresCommission(dailyCommissions.getOrDefault(9, BigDecimal.ZERO)); return commissionDate; }) .collect(Collectors.toList()); commissionDetail.setCommissionDateList(commissionDateList); return R.ok(commissionDetail); } ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserCouponController.java
@@ -132,26 +132,34 @@ @ApiOperation(value = "已领取列表", tags = {"管理后台-优惠劵"}) public R<Page<UserCoupon>> list1(@RequestParam Integer pageNum, @RequestParam Integer pageSize, String userName, @ApiParam("1未使用2已使用3已过期") Integer status, String phone, Integer id) { List<Long> appUserIds = null; if (!StringUtils.isEmpty(phone)){ List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>() .like(AppUser::getPhone, phone)); if (!CollectionUtils.isEmpty(appUserList)){ appUserIds = appUserList.stream().map(AppUser::getId).collect(Collectors.toList()); }else { return R.ok(Page.of(pageNum, pageSize)); } LambdaQueryWrapper<AppUser> queryWrapper = new LambdaQueryWrapper<>(); if (!StringUtils.isEmpty(phone)) { queryWrapper.like(AppUser::getPhone, phone); } if (!StringUtils.isEmpty(userName)) { queryWrapper.like(AppUser::getName, userName); } List<AppUser> appUserList = appUserService.list(queryWrapper); if (CollectionUtils.isEmpty(appUserList)) { return R.ok(Page.of(pageNum, pageSize)); } List<Long> appUserIds = appUserList.stream().map(AppUser::getId).distinct().collect(Collectors.toList()); Page<UserCoupon> page = userCouponService.lambdaQuery() .isNull(status!=null&&(status==1||status==3),UserCoupon::getUseTime) .isNotNull(status!=null&&status==2,UserCoupon::getUseTime) .eq(UserCoupon::getCouponId, id) .in(appUserIds != null,UserCoupon::getAppUserId, appUserIds) .in(!CollectionUtils.isEmpty(appUserIds),UserCoupon::getAppUserId, appUserIds) .lt(status!=null&&status==3,UserCoupon::getEndTime, LocalDateTime.now()).page(Page.of(pageNum-1, pageSize)); for (UserCoupon record : page.getRecords()) { record.setIdStr(record.getId().toString()); ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -54,14 +54,16 @@ // 过滤商城购物 List<BalanceChangeRecord> collect = balanceChangeRecordIPage.getRecords().stream().filter(e -> e.getChangeType() != 5).collect(Collectors.toList()); for (BalanceChangeRecord changeRecord : collect) { BigDecimal subtract = changeRecord.getBeforeAmount().subtract(changeRecord.getAfterAmount()); if (subtract.compareTo(BigDecimal.ZERO)>0){ // 减少 changeRecord.setChangeAmountString("-¥"+changeRecord.getChangeAmount()); }else if (subtract.compareTo(BigDecimal.ZERO)<0){ changeRecord.setChangeAmountString("+¥"+changeRecord.getChangeAmount()); }else{ changeRecord.setChangeAmountString("¥"+changeRecord.getChangeAmount()); if (changeRecord.getBeforeAmount()!=null && changeRecord.getAfterAmount()!=null){ BigDecimal subtract = changeRecord.getBeforeAmount().subtract(changeRecord.getAfterAmount()); if (subtract.compareTo(BigDecimal.ZERO)>0){ // 减少 changeRecord.setChangeAmountString("-¥"+changeRecord.getChangeAmount()); }else if (subtract.compareTo(BigDecimal.ZERO)<0){ changeRecord.setChangeAmountString("+¥"+changeRecord.getChangeAmount()); }else{ changeRecord.setChangeAmountString("¥"+changeRecord.getChangeAmount()); } } } balanceChangeRecordIPage.setRecords(collect); ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserCouponServiceImpl.java
@@ -52,7 +52,7 @@ } List<CouponInfo> couponInfoList = couponInfoClient.getCouponInfoList(couponIds).getData(); //构建返回数据 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.MM.dd HH:mm"); List<PaymentUserCouponVo> infoVoList = new ArrayList<>(); for (UserCoupon userCoupon : list) { CouponInfo couponInfo = couponInfoList.stream().filter(s -> s.getId().equals(userCoupon.getCouponId())).findFirst().get(); @@ -68,9 +68,9 @@ couponInfoVo.setDiscountAmount(couponInfo.getDiscountAmount()); couponInfoVo.setMoneyAmount(couponInfo.getMoneyAmount()); couponInfoVo.setDiscount(couponInfo.getDiscount()); if(null != couponInfo.getPeriodStartTime()){ couponInfoVo.setPeriodStartTime(couponInfo.getPeriodStartTime().atTime(0, 0, 0).format(formatter)); couponInfoVo.setPeriodEndTime(couponInfo.getPeriodEndTime().atTime(23, 59, 59).format(formatter)); if(null != userCoupon.getStartTime()){ couponInfoVo.setPeriodStartTime(userCoupon.getStartTime().format(formatter)); couponInfoVo.setPeriodEndTime(userCoupon.getEndTime().format(formatter)); } String forGoodIds = couponInfo.getForGoodIds(); String[] split = forGoodIds.split(","); ruoyi-service/ruoyi-account/src/main/resources/mapper/account/BalanceChangeRecordMapper.xml
@@ -29,7 +29,9 @@ tau.phone userPhone, tbcr.change_type, tbcr.create_time, tbcr.change_amount tbcr.change_amount, tbcr.before_amount, tbcr.after_amount FROM t_balance_change_record tbcr LEFT JOIN t_app_user tau ON tbcr.app_user_id = tau.id ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/RefundPassController.java
@@ -67,6 +67,7 @@ RefundPass one = refundPassService.getOne(new LambdaQueryWrapper<RefundPass>().eq(RefundPass::getOrderId, orderId) .eq(RefundPass::getDelFlag, 0).last(" order by create_time desc limit 0,1")); one.setIdStr(one.getId().toString()); one.setAddressJson(order.getAddressJson()); return R.ok(one); } @@ -90,9 +91,9 @@ if(Arrays.asList(2, 3).contains(refundPass.getStatus())){ return R.fail("售后取消失败"); } // refundPass.setDelFlag(1); refundPassService.removeById(id); order.setOrderStatus(4); refundPass.setDelFlag(1); refundPassService.updateById(refundPass); order.setOrderStatus(order.getOldOrderStatus()); orderService.updateById(order); return R.ok(); } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/CommissionServiceImpl.java
@@ -313,7 +313,7 @@ //添加积分明细 if(!shopAppUser.getLavePoint().equals(lavePoint)){ UserPoint userPoint = new UserPoint(); userPoint.setType(9); userPoint.setType(8); userPoint.setHistoricalPoint(lavePoint); userPoint.setVariablePoint(hxmd_point); userPoint.setBalance(shopAppUser.getLavePoint()); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -174,13 +174,7 @@ orderActivityInfo = JSONObject.parseObject(activityJson, OrderActivityInfo.class); } OrderDetailVO orderDetailVO = new OrderDetailVO(); if (CollectionUtil.isNotEmpty(orderGoods)){ String goodJson = orderGoods.get(0).getGoodJson(); Goods goods = JSONObject.parseObject(goodJson, Goods.class); orderDetailVO.setDistributionMode(goods.getDistributionMode()); } orderDetailVO.setDistributionMode(order.getDistributionMode()); Technician technician = new Technician(); if (order.getTechnicianId() != null){ R<Technician> shopdetail = technicianClient.shopdetail(order.getTechnicianId()); @@ -214,6 +208,14 @@ orderDetailVO.setLatitude(shop.getLatitude()); orderDetailVO.setShopId(shop.getId()); orderDetailVO.setTechnicianName(technician.getName()); orderDetailVO.setTechnicianId(technician.getId()); if(order.getOrderType() == 1){ List<TechnicianSubscribe> data = technicianSubscribeClient.getTechnicianSubscribeList(order.getId()).getData(); if(data.size() > 0){ Long id = data.get(0).getId(); orderDetailVO.setTechnicianSubscribeId(id.toString()); } } return orderDetailVO; } ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/RefundPassServiceImpl.java
@@ -80,7 +80,6 @@ if(null != afterSaleTime && LocalDateTime.now().isAfter(afterSaleTime)){ return R.fail("已超过售后期间"); } //构建售后申请数据 RefundPass refundPass = new RefundPass(); refundPass.setOrderId(applyRefundPass.getId()); ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -962,7 +962,7 @@ order.setGoodName(goodName.substring(0, goodName.length() - 1)); Goods goods = goodsClient.getGoodsById(goodsList.get(0).getGoodsId()).getData(); order.setOrderType(goods.getType()); order.setOrderStatus(goods.getType() == 1 ? 3 : 1); order.setOrderStatus(goods.getType() == 1 ? 3 : (shoppingCartPayment.getDistributionMode() == 2 ? 1 : 2)); SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS"); order.setOrderNumber("QJS" + getNumber(3) + sdf.format(new Date())); order.setTotalAmount(orderMoney.setScale(2, RoundingMode.HALF_EVEN)); @@ -984,7 +984,7 @@ if(null != orderActivityInfo1){ order.setActivityJson(JSON.toJSONString(orderActivityInfo1)); } if(null != shoppingCartPayment.getUserAddressId()){ if(2 == shoppingCartPayment.getDistributionMode()){ UserAddress address = userAddressClient.getUserAddressById(shoppingCartPayment.getUserAddressId()).getData(); order.setExpressAmount(expressFee); order.setAddressJson(JSON.toJSONString(address)); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
@@ -131,7 +131,7 @@ List<Long> usersNameList = new ArrayList<>(); List<Long> usersPhoneList = new ArrayList<>(); if (StringUtils.isNotEmpty(goodsEvaluate.getUserName())) { if (StringUtils.isNotEmpty(goodsEvaluate.getGoodsName())) { goodsIds = goodsService.lambdaQuery() .like(Goods::getName, goodsEvaluate.getGoodsName()) .list().stream().map(Goods::getId).collect(Collectors.toList()); @@ -152,7 +152,13 @@ return R.ok(new Page<>()); } } usersNameList.retainAll(usersPhoneList); if (StringUtils.isNotEmpty(goodsEvaluate.getPhone())&&StringUtils.isNotEmpty(goodsEvaluate.getUserName())){ // 取交集 usersNameList.retainAll(usersPhoneList); if (usersNameList.isEmpty())usersNameList.add(-1L); }else{ usersNameList.addAll(usersPhoneList); } Page<GoodsEvaluate> page = goodsEvaluateService.page(Page.of(pageNum, pageSize), new LambdaQueryWrapper<GoodsEvaluate>() .in(!goodsIds.isEmpty(), GoodsEvaluate::getGoodsId, goodsIds) .in(!usersNameList.isEmpty(), GoodsEvaluate::getAppUserId, usersNameList) ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/OrderActivityInfoController.java
@@ -200,6 +200,7 @@ .gt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 0, OrderActivityInfo::getStartTime, LocalDateTime.now()) .ge(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getEndTime, LocalDateTime.now()) .lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 1, OrderActivityInfo::getStartTime, LocalDateTime.now()) .lt(orderActivityInfo.getStatus() != null && orderActivityInfo.getStatus() == 2, OrderActivityInfo::getEndTime, LocalDateTime.now()) .eq(orderActivityInfo.getIsShelf() != null, OrderActivityInfo::getIsShelf, orderActivityInfo.getIsShelf()).orderByDesc(OrderActivityInfo::getCreateTime) .orderByDesc(OrderActivityInfo::getCreateTime)) ; ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopBalanceStatementController.java
@@ -26,6 +26,7 @@ import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.time.LocalDateTime; import java.time.LocalTime; import java.util.Collection; import java.util.List; import java.util.List; @@ -178,7 +179,7 @@ @RequestParam(value = "date") LocalDateTime date){ List<ShopBalanceStatement> list = shopBalanceStatementService.list(new LambdaQueryWrapper<ShopBalanceStatement>() .eq(ShopBalanceStatement::getType, type) .in(ShopBalanceStatement::getCreateTime, date)); .between(ShopBalanceStatement::getCreateTime, date.with(LocalTime.MIN), date.with(LocalTime.MAX))); return R.ok(list); } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/ShopController.java
@@ -134,13 +134,15 @@ throw new RuntimeException("添加失败"); } //添加门店后台账号和门店关系数据 SysUser sysUser = sysUserClient.queryUserByUserName(phone).getData(); SysUser sysUser = sysUserClient.queryUserByUserNameAndRoleType(phone, 2).getData(); if(null != sysUser){ sysUser.setAppUserId(appUser.getId()); sysUserClient.updateUser(sysUser); UserShop userShop = new UserShop(); userShop.setUserId(sysUser.getUserId()); userShop.setShopId(shopId); userShop.setRoleType(1); userShop.setNickName(sysUser.getNickName()); List<UserShop> data = userShopClient.getUserShop(userShop).getData(); if(null == data || data.size() == 0){ userShop = new UserShop(); @@ -148,6 +150,7 @@ userShop.setShopId(shopId); userShop.setRoleType(1); userShop.setRoleId(2L); userShop.setNickName(sysUser.getNickName()); userShop.setCreateTime(LocalDateTime.now()); userShopClient.saveUserShop(userShop); } @@ -173,6 +176,8 @@ userShop.setShopId(shopId); userShop.setRoleType(1); userShop.setRoleId(2L); userShop.setNickName(sysUser.getNickName()); userShop.setCreateTime(LocalDateTime.now()); userShopClient.saveUserShop(userShop); } @@ -701,5 +706,21 @@ return R.ok(list); } @GetMapping("/getShopStatistics") public R<Map<String, BigDecimal> > getShopStatistics(){ List<Shop> shopList = shopService.list(); BigDecimal serverGiveawayMoney = BigDecimal.ZERO; BigDecimal lowerLevelGiveawayMoney = BigDecimal.ZERO; for (Shop shop : shopList) { serverGiveawayMoney = serverGiveawayMoney.add(shop.getServerGiveawayMoney()); lowerLevelGiveawayMoney = lowerLevelGiveawayMoney.add(shop.getLowerLevelGiveawayMoney()); } Map<String, BigDecimal> map = new HashMap<>(); map.put("serverGiveawayMoney", serverGiveawayMoney); map.put("lowerLevelGiveawayMoney", lowerLevelGiveawayMoney); return R.ok(map); } } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianController.java
@@ -110,7 +110,9 @@ }else { Technician byId = technicianService.getById(technician.getId()); if (byId.getPhone()!=technician.getPhone()){ List<Technician> list = technicianService.lambdaQuery().eq(Technician::getPhone, technician.getPhone()).eq(Technician::getShopId, sysUser.getObjectId()).list(); List<Technician> list = technicianService.lambdaQuery() .eq(Technician::getPhone, technician.getPhone()) .ne(Technician::getId, byId.getId()).list(); if (!list.isEmpty()) { return R.fail("当前号码已经添加"); } ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/TechnicianSubscribeController.java
@@ -81,6 +81,18 @@ return R.ok(); } /** * 预约技师 */ @PostMapping("/switchingTechnician") @ApiOperation(value = "切换技师", notes = "切换技师", tags = {"小程序-个人中心-门店管理-预约列表"}) public R<Void> switchingTechnician(@RequestBody TechnicianSubscribe technicianSubscribe) { technicianSubscribeService.switchingTechnician(technicianSubscribe); return R.ok(); } /** * 取消服务 */ ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/TechnicianSubscribeService.java
@@ -34,6 +34,13 @@ /** * 切換技師 * @param technicianSubscribe */ void switchingTechnician(TechnicianSubscribe technicianSubscribe); /** * 定时修改到期状态 */ void taskEditStstus(); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsBargainPriceServiceImpl.java
@@ -80,7 +80,7 @@ SysUser sysUser = sysUserClient.getSysUser(userid).getData(); GoodsBargainPrice bargainPrice = this.getOne(new LambdaQueryWrapper<GoodsBargainPrice>().eq(GoodsBargainPrice::getShopId, sysUser.getObjectId()) .eq(GoodsBargainPrice::getGoodsId, vo.getGoodsId()).eq(GoodsBargainPrice::getDelFlag, 0).last(" order by create_time desc limit 0, 1")); if(null != bargainPrice && 1 == bargainPrice.getAuditStatus()){ if(null != bargainPrice && 0 == bargainPrice.getAuditStatus()){ return R.fail("特价申请正在审核中"); } bargainPrice = new GoodsBargainPrice(); @@ -94,6 +94,7 @@ //添加明细 List<GoodsBargainPriceDetail> list = vo.getList(); for (GoodsBargainPriceDetail goodsBargainPriceDetail : list) { goodsBargainPriceDetail.setId(null); goodsBargainPriceDetail.setGoodsBargainPriceId(bargainPrice.getId()); } goodsBargainPriceDetailService.saveBatch(list); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/ShopServiceImpl.java
@@ -93,7 +93,7 @@ } Shop shop = shopMapper.selectById(appUser.getShopId()); if(null != shop){ if(null != shop && shop.getDelFlag() == 0 && shop.getStatus() == 1){ NearbyShopVO vo = new NearbyShopVO(); vo.setId(appUser.getShopId().longValue()); vo.setName(shop.getName()); ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/TechnicianSubscribeServiceImpl.java
@@ -41,8 +41,7 @@ @Resource private RemoteOrderGoodsClient orderGoodsClient; @Resource private RedisTemplate<String, String> redisTemplate; private RedisTemplate redisTemplate; @Resource private AppUserClient appUserClient; @@ -97,6 +96,20 @@ } @Override public void switchingTechnician(TechnicianSubscribe technicianSubscribe) { List<TechnicianSubscribe> list = this.list(new LambdaQueryWrapper<TechnicianSubscribe>().eq(TechnicianSubscribe::getOrderId, technicianSubscribe.getOrderId()) .eq(TechnicianSubscribe::getDelFlag, 0).eq(TechnicianSubscribe::getStatus, 0)); for (TechnicianSubscribe subscribe : list) { if(subscribe.getTechnicianId().equals(technicianSubscribe.getTechnicianId())){ throw new RuntimeException("不能切换相同的技师"); } subscribe.setTechnicianId(technicianSubscribe.getTechnicianId()); this.updateById(subscribe); } } /** * 定时修改到期状态 */ ruoyi-service/ruoyi-other/src/main/resources/mapper/other/ShopMapper.xml
@@ -28,7 +28,7 @@ (select ROUND(AVG(score), 1) from t_shop_score where shop_id = ts.id) as score FROM t_shop ts WHERE ts.del_flag = 0 AND ts.`status` = 1 AND ts.id = #{shopId} WHERE ts.del_flag = 0 AND ts.id = #{shopId} </select> <select id="selectShopList" resultType="com.ruoyi.other.api.domain.Shop"> SELECT