huliguo
2025-04-08 02d5cf98ab127c3464ecc6fb9342b2d700e4a0de
订单代码修改
9个文件已修改
2个文件已添加
462 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java 204 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java 54 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointVO.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsEvaluateService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsEvaluateServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-account/src/main/java/com/ruoyi/account/api/model/AppUser.java
@@ -43,9 +43,7 @@
    @ApiModelProperty(value = "用户")
    @TableField("name")
    private String name;
    @ApiModelProperty("会员名称")
    @TableField(exist = false)
    private String vipName;
    @ApiModelProperty(value = "手机号")
    @TableField("phone")
@@ -87,22 +85,7 @@
    @ApiModelProperty(value = "最后一次登录时间")
    @TableField("last_login_time")
    private LocalDateTime lastLoginTime;
    @ApiModelProperty(value = "顶级推广人id")
    @TableField("top_invite_id")
    private Long topInviteId;
    @ApiModelProperty(value = "推广人id")
    @TableField("invite_user_id")
    private Long inviteUserId;
    @ApiModelProperty(value = "推广人姓名")
    @TableField(exist = false)
    private String inviteUserName;
    @ApiModelProperty(value = "指导老师")
    @TableField(exist = false)
    private String teacher;
    @TableField(exist = false)
    private String teacherPhone;
    @ApiModelProperty(value = "绑定门店id")
    @TableField("shop_id")
@@ -119,31 +102,6 @@
    @ApiModelProperty(value = "绑定门店地址")
    @TableField(exist = false)
    private String shopAddress;
    @ApiModelProperty(value = "上级人员信息")
    @TableField(exist = false)
    private AppUser topUser;
    @ApiModelProperty(value = "下级人员列表")
    @TableField(exist = false)
    private List<AppUser> bottomUsers;
    @TableField(exist = false)
    private Page<AppUser> bottomUsersPage;
    @ApiModelProperty(value = "合伙人积分数")
    @TableField("part_point")
    private Integer partPoint;
    @ApiModelProperty(value = "合伙人培育积分数")
    @TableField("part_grow_point")
    private Integer partGrowPoint;
    @ApiModelProperty(value = "消费积分数")
    @TableField("shop_point")
    private Integer shopPoint;
    @ApiModelProperty(value = "返佣积分数")
    @TableField("share_point")
    private Integer sharePoint;
    @ApiModelProperty(value = "消费总金额")
    @TableField("shop_amount")
@@ -153,109 +111,35 @@
    @TableField("last_shop_time")
    private LocalDateTime lastShopTime;
    @ApiModelProperty(value = "账户余额")
    @TableField("balance")
    private BigDecimal balance;
    @ApiModelProperty(value = "可提现金额")
    @TableField("withdrawable_amount")
    private BigDecimal withdrawableAmount;
    @ApiModelProperty(value = "已提现金额")
    @TableField("withdrawn_amount")
    private BigDecimal withdrawnAmount;
    @ApiModelProperty(value = "充值总金额")
    @TableField("total_recharge_amount")
    private BigDecimal totalRechargeAmount;
    @ApiModelProperty(value = "红包总金额")
    @TableField("total_red_packet_amount")
    private BigDecimal totalRedPacketAmount;
    @ApiModelProperty(value = "分销总金额")
    @TableField("total_distribution_amount")
    private BigDecimal totalDistributionAmount;
/*
    @ApiModelProperty(value = "冻结分佣金额")
    @TableField("freeze_commission_amount")
    private BigDecimal freezeCommissionAmount;*/
/*
    @ApiModelProperty(value = "冻结分佣积分")
    @TableField("freeze_commission_point")
    private Integer freezeCommissionPoint;*/
    @ApiModelProperty(value = "拉新人积分总数")
    @TableField("total_invite_point")
    private Integer totalInvitePoint;
    @ApiModelProperty(value = "注册积分总数")
    @TableField("total_register_point")
    private Integer totalRegisterPoint;
    @ApiModelProperty(value = "绑定下级门店分佣积分")
    @TableField("lower_level_share_point")
    private Integer lowerLevelSharePoint;
    @ApiModelProperty(value = "门店返佣积分")
    @TableField("shop_share_point")
    private Integer shopSharePoint;
    @ApiModelProperty(value = "门店业绩积分")
    @TableField("shop_achievement_point")
    private Integer shopAchievementPoint;
    @ApiModelProperty(value = "门店服务费(门店核销获得)")
    @TableField("shop_service_fee")
    private BigDecimal shopServiceFee;
    @ApiModelProperty(value = "门店返佣金额(绑定用户消费后返佣)")
    @TableField("shop_commission")
    private BigDecimal shopCommission;
//    @ApiModelProperty(value = "做工积分总数")
//    @TableField("total_work_point")
//    private Integer totalWorkPoint;
    @ApiModelProperty(value = "每日分享积分")
    @TableField("total_share_point")
    private Integer totalSharePoint;
    @ApiModelProperty(value = "每日签到积分")
    @TableField("total_sign_point")
    private Integer totalSignPoint;
    @ApiModelProperty(value = "使用时长积分")
    @TableField("total_hour_point")
    private Integer totalHourPoint;
    @ApiModelProperty(value = "技师业绩积分总数")
    @TableField("total_performance_point")
    private Integer totalPerformancePoint;
    @ApiModelProperty(value = "总积分")
    @TableField("total_point")
    private Integer totalPoint;
    @ApiModelProperty(value = "剩余积分")
    @TableField("lave_point")
    private Integer lavePoint;
    @ApiModelProperty(value = "可用积分")
    @TableField("available_point")
    private Integer availablePoint;
    @ApiModelProperty(value = "可用总积分数")
    @TableField("total_available_point")
    private Integer totalAvailablePoint;
    @ApiModelProperty(value = "可转增积分")
    @TableField("transferable_point")
    private Integer transferablePoint;
    @ApiModelProperty(value = "是否可更换推广人(0=否,1=是)")
    @TableField("change_promoter")
    private Integer changePromoter;
    @ApiModelProperty(value = "充值积分")
    @TableField("recharge_point")
    private BigDecimal rechargePoint;
    @ApiModelProperty(value = "取消订单积分")
    @TableField("cancel_point")
    private Integer cancelPoint;
    @ApiModelProperty(value = "兑换商品消费积分")
    @TableField("exchange_point")
    private Integer exchangePoint;
    @ApiModelProperty(value = "转赠(转入)积分")
    @TableField("transferable_in_point")
    private Integer transferableInPoint;
    @ApiModelProperty(value = "转赠(转出)积分")
    @TableField("transferable_out_point")
    private Integer transferableOutPoint;
    
    @ApiModelProperty(value = "经度")
    @TableField("longitude")
@@ -292,45 +176,14 @@
    @TableField("qr_code")
    private String qrCode;
    @ApiModelProperty("等级1会员数")
    @TableField(exist = false)
    private Long count1;
    @ApiModelProperty("等级2会员数")
    @TableField(exist = false)
    private Long count2;
    @ApiModelProperty("等级3会员数")
    @TableField(exist = false)
    private Long count3;
    @ApiModelProperty("等级4会员数")
    @TableField(exist = false)
    private Long count4;
    @ApiModelProperty("等级5会员数")
    @TableField(exist = false)
    private Long count5;
    @ApiModelProperty("等级6会员数")
    @TableField(exist = false)
    private Long count6;
    @ApiModelProperty("等级7会员数")
    @TableField(exist = false)
    private Long count7;
    @ApiModelProperty("是否签到1是0否")
    @TableField(exist = false)
    private Integer isSign;
    @ApiModelProperty("绑定门店id列表")
    @TableField(exist = false)
    private Set<Integer> shopIds;
    @ApiModelProperty(value = "降级预警(0=否,1=是)")
    @TableField("is_danger")
    private Integer isDanger;
    @ApiModelProperty(value = "最后下单时间")
    @TableField(exist = false)
@@ -352,16 +205,7 @@
        if (totalPoint == null){
            totalPoint = 0;
        }
        if (lowerLevelSharePoint == null){
            lowerLevelSharePoint = 0;
        }
        if (shopSharePoint == null){
            shopSharePoint = 0;
        }
        if (shopAchievementPoint == null){
            shopAchievementPoint = 0;
        }
        return totalPoint - lowerLevelSharePoint - shopSharePoint - shopAchievementPoint;
        return totalPoint ;
    }
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/domain/ShopBalanceStatement.java
@@ -50,9 +50,9 @@
    @TableField(exist = false)
    @Excel(name = "联系电话")
    private String phone;
    @ApiModelProperty(value = "变动类型(1=服务商分佣,2=高级服务商分佣,3=核销门店服务费,4=提现)")
    @ApiModelProperty(value = "变动类型(1=服务商分佣,2=高级服务商分佣,3=核销门店服务费,4=提现,5=订单收入)")
    @TableField("type")
    @Excel(name = "变更类型",readConverterExp = "1=服务商分佣,2=高级服务商分佣,3=核销门店服务费")
    @Excel(name = "变更类型",readConverterExp = "1=服务商分佣,2=高级服务商分佣,3=核销门店服务费,5=订单收入")
    private Integer type;
    @ApiModelProperty(value = "历史余额")
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/factory/ShopBalanceStatementClientFallbackFactory.java
New file
@@ -0,0 +1,53 @@
package com.ruoyi.other.api.factory;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.ShopBalanceStatement;
import com.ruoyi.other.api.feignClient.ShopBalanceStatementClient;
import org.springframework.cloud.openfeign.FallbackFactory;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
/**
 * @author zhibing.pu
 * @Date 2024/12/26 15:41
 */
public class ShopBalanceStatementClientFallbackFactory implements FallbackFactory<ShopBalanceStatementClient> {
    @Override
    public ShopBalanceStatementClient create(Throwable cause) {
        return new ShopBalanceStatementClient(){
            @Override
            public void saveShopBalanceStatement(ShopBalanceStatement shopBalanceStatement) {
                R.fail("保存门店余额流水失败:" + cause.getMessage());
            }
            /*@Override
            public void saveShopBalanceStatementCopy(ShopBalanceStatementCopy shopBalanceStatement) {
                R.fail("保存门店余额流水失败:" + cause.getMessage());
            }*/
            @Override
            public R<Boolean> deleteShopBalanceStatementCopy(Long orderId, List<Integer> type) {
                return R.fail("删除门店余额流水失败:" + cause.getMessage());
            }
        /*    @Override
            public R<List<ShopBalanceStatementCopy>> getShopBalanceStatementCopy(Long orderId, List<Integer> type) {
                return R.fail("查询门店余额流水失败:" + cause.getMessage());
            }*/
            @Override
            public R<List<ShopBalanceStatement>> getShopBalanceStatementList(Collection<Integer> types, Long objectId) {
                return R.fail("获取门店余额流水失败:" + cause.getMessage());
            }
            @Override
            public R<List<ShopBalanceStatement>> getShopBalanceStatementList2(Integer type, Integer shopId, LocalDateTime date) {
                return R.fail();
            }
        };
    }
}
ruoyi-api/ruoyi-api-other/src/main/java/com/ruoyi/other/api/feignClient/ShopBalanceStatementClient.java
New file
@@ -0,0 +1,54 @@
package com.ruoyi.other.api.feignClient;
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.other.api.domain.ShopBalanceStatement;
import com.ruoyi.other.api.factory.ShopBalanceStatementClientFallbackFactory;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import java.time.LocalDateTime;
import java.util.Collection;
import java.util.List;
/**
 * @author zhibing.pu
 * @Date 2024/12/26 15:40
 */
@FeignClient(contextId = "ShopBalanceStatementClient", value = ServiceNameConstants.OTHER_SERVICE, fallbackFactory = ShopBalanceStatementClientFallbackFactory.class)
public interface ShopBalanceStatementClient {
    /**
     * 保存门店余额流水
     * @param shopBalanceStatement
     */
    @PostMapping("/shop-balance-statement/saveShopBalanceStatement")
    void saveShopBalanceStatement(@RequestBody ShopBalanceStatement shopBalanceStatement);
    /*@PostMapping("/shop-balance-statement/saveShopBalanceStatementCopy")
    void saveShopBalanceStatementCopy(@RequestBody ShopBalanceStatementCopy shopBalanceStatement);*/
    @DeleteMapping("/shop-balance-statement/deleteShopBalanceStatementCopy")
    R<Boolean> deleteShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
    /*@PostMapping("/shop-balance-statement/getShopBalanceStatementCopy")
    R<List<ShopBalanceStatementCopy>> getShopBalanceStatementCopy(@RequestParam("orderId") Long orderId, @RequestParam("type") List<Integer> type);
*/
    /**
     * 获取门店余额流水
     * @param types
     * @return
     */
    @PostMapping("/shop-balance-statement/getShopBalanceStatementList")
    R<List<ShopBalanceStatement>> getShopBalanceStatementList(@RequestParam("types") Collection<Integer> types, @RequestParam(value = "objectId",required = false) Long objectId);
    @PostMapping("/shop-balance-statement/getShopBalanceStatementList2")
    R<List<ShopBalanceStatement>> getShopBalanceStatementList2(@RequestParam("type") Integer type, @RequestParam(value = "shopId") Integer shopId,
                                                               @RequestParam(value = "date") LocalDateTime date);
}
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/UserPointController.java
@@ -65,8 +65,8 @@
    @ApiOperation("获取变更明细")
    public R<PageInfo<UserPointDetailVO>> getUserPointDetail(@ApiParam("指定日期") @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate date,
                                          @ApiParam("变动类型(1=消费积分,2=返佣积分,3=拉新人积分,4=兑换商品 " +
                                                                       "5 = 门店业绩积分 6 =门店返佣积分7=技师业绩积分8 =转赠积分 9 =做工积分 " +
                                                                       "10 =注册积分)") Integer type, Integer pageCurr, Integer pageSize) {
                                                  "5 = 门店业绩积分 6 =门店返佣积分7=技师业绩积分8 =转赠积分 9 =做工积分 " +
                                                  "10 =注册积分 )") Integer type, Integer pageCurr, Integer pageSize) {
        LocalDateTime startTime = null;
        LocalDateTime endTime = null;
        if (date != null) {
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/vo/UserPointVO.java
@@ -17,18 +17,18 @@
    @ApiModelProperty(value = "消费积分数")
    private Integer shopPoint;
    @ApiModelProperty(value = "返佣积分数")
    @ApiModelProperty(value = "取消订单积分")
    private Integer sharePoint;
    @ApiModelProperty(value = "拉新积分")
    @ApiModelProperty(value = "充值积分")
    private Integer pullNewPoint;
    @ApiModelProperty(value = "门店业绩积分")
    @ApiModelProperty(value = "兑换商品")
    private Integer shopAchievementPoint;
    @ApiModelProperty(value = "门店返佣积分")
    @ApiModelProperty(value = "转增(转入)")
    private Integer shopSharePoint;
    @ApiModelProperty(value = "是否可转赠积分")
    @ApiModelProperty(value = "转增(转出)")
    private Integer giftPoint;
}
ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/OrderServiceImpl.java
@@ -107,7 +107,7 @@
    private RedisTemplate redisTemplate;
    @Resource
    private  ShopBalanceStatment shopBalanceStatment;
    private  ShopBalanceStatementClient shopBalanceStatementClient;
    @Resource
    private SystemConfigClient systemConfigClient;
@@ -401,9 +401,9 @@
        }
        if (0 != order.getPoint()) {//使用的积分是否为0
            Integer lavePoint = appUser.getLavePoint();
            Integer lavePoint = appUser.getAvailablePoint();
            //积分退款
            appUser.setLavePoint(appUser.getLavePoint() + order.getPoint());
            appUser.setAvailablePoint(appUser.getAvailablePoint() + order.getPoint());
            appUser.setAvailablePoint(appUser.getAvailablePoint() + order.getPoint());
            UserPoint userPoint1 = new UserPoint();
            userPoint1.setType(11);
@@ -414,7 +414,6 @@
                UserPoint userPoint = data.get(0);
                transferablePoint = Integer.valueOf(userPoint.getExtention());
            }
            appUser.setTransferablePoint(appUser.getTransferablePoint() + transferablePoint);
            //构建积分流水明细
            if (order.getPoint() > 0) {
@@ -422,7 +421,7 @@
                userPoint.setType(11);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(order.getPoint());
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setBalance(appUser.getAvailablePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(order.getAppUserId());
                userPoint.setObjectId(order.getId());
@@ -665,7 +664,7 @@
    /**
     * 订单支付
     *
     * todo 用户积分流水情况
     */
    @Override
    public R orderPayment(OrderPayment orderPayment) {
@@ -742,6 +741,7 @@
        }else{
            //积分支付
            orderPoint=goods.getIntegral();
            orderMoney = goods.getSellingPrice();
            Integer availablePoint = appUser.getAvailablePoint();//用户可用积分
            if(availablePoint.compareTo(orderPoint) < 0){
                return R.fail("账户可用积分不足");
@@ -793,30 +793,21 @@
        //判断积分是否为零,积分支付
        if (0 != order.getPoint()){
            //积分支付
            Integer lavePoint = appUser.getLavePoint();
            Integer lavePoint = appUser.getAvailablePoint();
            //扣减订单支付积分
            appUser.setLavePoint(appUser.getLavePoint() - orderPoint);
            appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);
            //可转赠积分
            Integer transferablePoint = appUser.getTransferablePoint();
            Integer tra = 0;
            if(transferablePoint > 0){
                tra = transferablePoint - orderPoint;
                appUser.setTransferablePoint(tra >= 0 ? tra : 0);
            }else{
                appUser.setTransferablePoint(appUser.getTransferablePoint() - orderPoint);
            }
            appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);//剩余积分
            appUser.setAvailablePoint(appUser.getAvailablePoint() - orderPoint);//可用积分
            //构建积分流水记录
            if(orderPoint > 0){
                UserPoint userPoint = new UserPoint();
                userPoint.setType(11);
                userPoint.setHistoricalPoint(lavePoint);
                userPoint.setVariablePoint(orderPoint);
                userPoint.setBalance(appUser.getLavePoint());
                userPoint.setBalance(appUser.getAvailablePoint());
                userPoint.setCreateTime(LocalDateTime.now());
                userPoint.setAppUserId(appUser.getId());
                userPoint.setObjectId(order.getId());
                userPoint.setExtention((tra >= 0 ? orderPoint : transferablePoint) + "");
                userPointClient.saveUserPoint(userPoint);
            }
@@ -845,14 +836,34 @@
        }
        //不需要微信支付,直接修改订支付状态
        //积分支付,不需要微信支付,直接修改订支付状态
        order.setPayStatus(2);
        orderMapper.updateById(order);
        //商品销量增加
        goodsClient.editGoodsNum(orderGood.getGoodsId(), 1);
        //todo 门店增加冻结资金
        //门店增加冻结资金 即增加金额, 冻结资金=余额-可用资金
        Shop shop = shopClient.getShopById(order.getShopId()).getData();
        BigDecimal historicalBalance=shop.getBalance();//历史余额
        BigDecimal balance=shop.getBalance().add(goods.getSellingPrice());//变动后余额
        shop.setBalance(balance);
        shop.setOrderNumber(shop.getOrderNumber()+1);
        shopClient.updateShop(shop);
        //门店余额流水记录
        ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
        shopBalanceStatement.setShopId(shop.getId());
        shopBalanceStatement.setShopName(shop.getName());
        shopBalanceStatement.setShopManagerName(shop.getShopManager());
        shopBalanceStatement.setPhone(shop.getPhone());
        shopBalanceStatement.setType(5);//变更类型,订单收入
        shopBalanceStatement.setHistoricalBalance(historicalBalance);
        shopBalanceStatement.setVariableAmount(goods.getSellingPrice());
        shopBalanceStatement.setCreateTime(LocalDateTime.now());
        shopBalanceStatement.setBalance(balance);
        shopBalanceStatement.setCreateUserId(appUser.getId());
        shopBalanceStatement.setObjectId(order.getId());
        shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
        return R.ok(order.getId().toString());
    }
@@ -881,20 +892,39 @@
        order.setSerialNumber(r7TrxNo);
        orderMapper.updateById(order);
        //商店余额改变,增加冻结余额
        Shop shop = shopClient.getShopById(order.getShopId()).getData();
        //商品销量增加
        OrderGood orderGood = orderGoodService.getOne(new LambdaQueryWrapper<OrderGood>().eq(OrderGood::getOrderId, order.getId()));
        //商品销量增加
        goodsClient.editGoodsNum(orderGood.getGoodsId(), 1);
        //门店增加冻结资金 即增加金额, 冻结资金=余额-可用资金
        Shop shop = shopClient.getShopById(order.getShopId()).getData();
        BigDecimal historicalBalance=shop.getBalance();//历史余额
        BigDecimal balance=shop.getBalance().add(order.getTotalAmount());//变动后余额
        shop.setBalance(balance);
        shop.setOrderNumber(shop.getOrderNumber()+1);
        shopClient.updateShop(shop);
        //门店金额变动记录
        ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
        shopBalanceStatement.setShopId(shop.getId());
        shopBalanceStatement.setShopName(shop.getName());
        shopBalanceStatement.setShopManagerName(shop.getShopManager());
        shopBalanceStatement.setPhone(shop.getPhone());
        shopBalanceStatement.setType(5);//变更类型,订单收入
        shopBalanceStatement.setHistoricalBalance(historicalBalance);
        shopBalanceStatement.setVariableAmount(order.getTotalAmount());
        shopBalanceStatement.setCreateTime(LocalDateTime.now());
        shopBalanceStatement.setBalance(balance);
        shopBalanceStatement.setCreateUserId(appUser.getId());
        shopBalanceStatement.setObjectId(order.getId());
        shopBalanceStatementClient.saveShopBalanceStatement(shopBalanceStatement);
        return R.ok();
    }
    /**
     * 定时任务关闭订单
     * todo 关闭订单前,检查是否先支付过积分抵扣了,是的话要返回订单已抵扣的积分,以及用户积分流水,门店余额流水的删除
     */
    @Override
    public void closeOrder() {
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/GoodsEvaluateController.java
@@ -77,34 +77,31 @@
     */
    @PostMapping("/addGoodsEvaluate")
    @ApiOperation(value = "发布商品评价", tags = {"小程序-个人中心-我的订单"})
    public R<Void> addGoodsEvaluate(@RequestBody GoodsEvaluateVO goodsEvaluateVO){
        goodsEvaluateService.addGoodsEvaluate(goodsEvaluateVO);
    public R<Void> addGoodsEvaluate(@RequestBody GoodsEvaluate goodsEvaluate){
        goodsEvaluateService.addGoodsEvaluate(goodsEvaluate);
        return R.ok();
    }
    /**
     * 评论详情
     * 商品评价详情
     */
    @GetMapping("/detail/{orderId}")
    @ApiOperation(value = "评论详情", tags = {"小程序-评论详情"})
    public R<List<GoodsEvaluate>> detail(@PathVariable("orderId") Long orderId){
        LoginUser loginUserApplet = tokenService.getLoginUserApplet();
        List<GoodsEvaluate> list = goodsEvaluateService.list(new LambdaQueryWrapper<GoodsEvaluate>()
    @ApiOperation(value = "评价详情", tags = {"小程序-查看自己的评价"})
    public R<GoodsEvaluate> detail(@PathVariable("orderId") Long orderId){
        GoodsEvaluate evaluate = goodsEvaluateService.getOne(new LambdaQueryWrapper<GoodsEvaluate>()
                .eq(GoodsEvaluate::getStatus, 2)
                .eq(GoodsEvaluate::getAppUserId,loginUserApplet.getUserid())
                .eq(GoodsEvaluate::getDelFlag, 0)
                .eq(GoodsEvaluate::getOrderId, orderId));
        for (GoodsEvaluate goodsEvaluate : list) {
            Goods goods = goodsService.getById(goodsEvaluate.getGoodsId());
            goodsEvaluate.setGoodsName(goods.getName());
            goodsEvaluate.setGoodsImg(goods.getHomePagePicture());
        }
        return R.ok(list);
        Goods goods = goodsService.getById(evaluate.getGoodsId());
        evaluate.setGoodsName(goods.getName());
        evaluate.setGoodsImg(goods.getHomePagePicture());
        return R.ok(evaluate);
    }
    /**
     * 删除评论
     * 删除评价
     */
    @DeleteMapping("/delete/{id}")
    @ApiOperation(value = "删除评论", tags = {"管理后台-商品管理-评价管理"})
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/GoodsEvaluateService.java
@@ -14,5 +14,5 @@
 * @since 2024-11-20
 */
public interface GoodsEvaluateService extends IService<GoodsEvaluate> {
    void addGoodsEvaluate(@RequestBody GoodsEvaluateVO goodsEvaluateVO);
    void addGoodsEvaluate(@RequestBody GoodsEvaluate GoodsEvaluate);
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/ShopBalanceStatementService.java
@@ -3,7 +3,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.other.api.domain.ShopBalanceStatement;
import com.ruoyi.other.vo.ShopCommissionStatisticsVO;
/**
 * <p>
@@ -14,5 +14,5 @@
 * @since 2024-11-20
 */
public interface ShopBalanceStatementService extends IService<ShopBalanceStatement> {
    ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement);
//    ShopCommissionStatisticsVO shopCommissionStatistics(IPage<ShopBalanceStatement> page, ShopBalanceStatement shopBalanceStatement);
}
ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/service/impl/GoodsEvaluateServiceImpl.java
@@ -41,9 +41,9 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addGoodsEvaluate(GoodsEvaluateVO goodsEvaluateVO) {
        List<GoodsEvaluate> evaluates = goodsEvaluateVO.getEvaluates();
        for (GoodsEvaluate goodsEvaluate : evaluates) {
    public void addGoodsEvaluate(GoodsEvaluate goodsEvaluate) {
            goodsEvaluate.setStatus(2);
            if (StringUtils.isNotEmpty(goodsEvaluate.getIdStr())){
                goodsEvaluate.setId(Long.valueOf(goodsEvaluate.getIdStr()));
@@ -54,9 +54,9 @@
                goodsEvaluate.setCreateTime(LocalDateTime.now());
                save(goodsEvaluate);
            }
        }
        if (CollectionUtil.isNotEmpty(evaluates)){
            Long orderId = goodsEvaluateVO.getEvaluates().get(0).getOrderId();
            Long orderId = goodsEvaluate.getOrderId();
            Order data = orderClient.getOrderById(orderId).getData();
            Order order = new Order();
            order.setId(data.getId());
@@ -66,7 +66,7 @@
            if (R.isError(r)){
                throw new RuntimeException("修改订单状态失败");
            }
        }
    }
}