bug
jiangqs
2023-08-06 c9551ed9098d91ddc477d4ccd9f98cf89900a463
bug
36个文件已修改
1个文件已添加
377 ■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppShoppingCartVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppSimpleActivityGoodsVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppSimpleGoodsVo.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerGoodsPageVo.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGoodsListVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsTotalVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerCloseOrderDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerNewOrderDto.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyOrderDto.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberOrderVo.java 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyOrderVo.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 42 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskPageVo.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskMapper.xml 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/constant/AppErrorConstant.java
@@ -84,6 +84,8 @@
    String ACTIVITY_END = "活动已经结束";
    String ACTIVITY_SE_ERROR = "开始时间不能大于结束时间";
    String ACTIVITY_GOODS_NULL = "商品已被抢完";
    String ACTIVITY_GOODS_BEYOND = "超出商品购买限制";
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteGoodsFallbackFactory.java
@@ -2,6 +2,7 @@
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto;
import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
import com.ruoyi.system.api.domain.poji.goods.ShopGoods;
@@ -68,6 +69,11 @@
            public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(String goodsIds) {
                return R.fail("获取商品列表失败:" + throwable.getMessage());
            }
            @Override
            public R changeGoodsTotal(List<GoodsTotalChangeDto> goodsTotalChangeDtoList) {
                return R.fail("改变商品统计失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteGoodsService.java
@@ -3,6 +3,7 @@
import com.ruoyi.common.core.constant.ServiceNameConstants;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.system.api.domain.dto.AppShopGoodsGetDto;
import com.ruoyi.system.api.domain.dto.GoodsTotalChangeDto;
import com.ruoyi.system.api.domain.poji.goods.Goods;
import com.ruoyi.system.api.domain.poji.goods.GoodsFile;
import com.ruoyi.system.api.domain.poji.goods.ShopGoods;
@@ -59,6 +60,10 @@
     * @param goodsIds
     * @return  R<List<MerGoodsPriceListVo>>
     */
    @PostMapping("/listGoodsPriceByGoodsId")
    @PostMapping("/goods/listGoodsPriceByGoodsId")
    public R<List<MerGoodsPriceListVo>> listGoodsPriceByGoodsId(@RequestBody String goodsIds);
    @PostMapping("/goods/changeGoodsTotal")
    public R changeGoodsTotal(@RequestBody List<GoodsTotalChangeDto> goodsTotalChangeDtoList);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppGoodsInfoVo.java
@@ -1,6 +1,8 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -50,6 +52,7 @@
    private Integer serviceNum;
    @ApiModelProperty(value = "商品售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;
    @ApiModelProperty(value = "商品详情")
@@ -74,6 +77,7 @@
    private Integer availableBuyNum;
    @ApiModelProperty(value = "商品活动价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal activityPrice;
    @ApiModelProperty(value = "售罄标记0否1是")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppShoppingCartVo.java
@@ -1,5 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -40,6 +42,7 @@
    private String goodsNurses;
    @ApiModelProperty(value = "商品售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;
    @ApiModelProperty(value = "购买数量")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppSimpleActivityGoodsVo.java
@@ -1,5 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -38,9 +40,11 @@
    private String goodsNurses;
    @ApiModelProperty(value = "商品售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;
    @ApiModelProperty(value = "商品活动价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal activityPrice;
    @ApiModelProperty(value = "活动销售数量")
@@ -50,6 +54,7 @@
    private Integer salesNumber;
    @ApiModelProperty(value = "已售比例")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPercent;
    @ApiModelProperty(value = "结束时间戳")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppSimpleGoodsVo.java
@@ -1,5 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -37,9 +39,11 @@
    private String goodsNurses;
    @ApiModelProperty(value = "商品售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;
    @ApiModelProperty(value = "活动售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal activityPrice;
    @ApiModelProperty(value = "活动id")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MerGoodsPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -38,9 +39,11 @@
    private String goodsNurses;
    @ApiModelProperty(value = "商品建议售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal suggestSalesPrice;;
    @ApiModelProperty(value = "商品售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;;
    @ApiModelProperty(value="周期次数标记0否1是")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityGoodsListVo.java
@@ -1,5 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -28,12 +30,15 @@
    private String goodsType;
    @ApiModelProperty(value = "商品售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;;
    @ApiModelProperty(value = "秒杀活动价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal activityPrice;
    @ApiModelProperty(value = "秒杀活动订金")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal activitySubscription;
    @ApiModelProperty(value = "秒杀活动库存")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsEditInfoVo.java
@@ -1,5 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -49,12 +51,15 @@
    private String goodsIntroduction;
    @ApiModelProperty(value = "建议售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal salesPrice;
    @ApiModelProperty(value = "最低售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal mininumPrice;
    @ApiModelProperty(value = "订金")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal subscription;
    @ApiModelProperty(value = "商品详情")
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java
@@ -1,6 +1,8 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -48,10 +50,12 @@
    @Excel(name = "商品建议售价", width = 30)
    @ApiModelProperty(value = "商品建议售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal suggestSalesPrice;;
    @Excel(name = "最低售价", width = 30)
    @ApiModelProperty(value = "最低售价")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal mininumPrice;;
    @Excel(name = "销量", width = 30)
@@ -60,6 +64,7 @@
    @Excel(name = "销售额", width = 30)
    @ApiModelProperty(value = "销售额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal buyMoneyTotal;
    @Excel(name = "是否推荐", width = 30)
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsTotalVo.java
@@ -1,5 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -22,6 +24,7 @@
    private Integer buyNumCount;
    @ApiModelProperty(value = "销售额")
    @JsonSerialize(using = ToStringSerializer.class)
    private BigDecimal buyMoneyTotal;
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -101,6 +101,9 @@
        Activity activity;
        // 获取当前时间
        Date nowTime = new Date();
        if(mgtActivityEditDto.getActivityStartTime().compareTo(mgtActivityEditDto.getActivityEndTime())>0){
            throw new ServiceException(AppErrorConstant.ACTIVITY_SE_ERROR);
        }
        // 如果活动ID不为空,则表示修改活动信息
        if (StringUtils.isNotBlank(mgtActivityEditDto.getActivityId())) {
            // 获取活动信息
@@ -587,9 +590,10 @@
        try {
            lock.lock(30, TimeUnit.SECONDS);
            if(agStockChangeDto.getChangeType()==1){
                //减少销量增加库存
                activityMapper.addActivityGoodsStock(agStockChangeDto);
            }else{
                //更新库存
                //增加销量减少库存
                activityMapper.subActivityGoodsStock(agStockChangeDto);
            }
        } finally {
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -36,10 +36,10 @@
            AND FIND_IN_SET(#{param.shopId}, ta.applicable_shop) &gt; 0
        </if>
        <if test="param.activityStartTime!=null and param.activityStartTime != ''">
            AND ta.activity_start_time &gt;= #{param.activityStartTime}
            AND Date(ta.activity_start_time) &gt;= #{param.activityStartTime}
        </if>
        <if test="param.activityEndTime!=null and param.activityEndTime != ''">
            AND ta.activity_start_time &lt;= #{param.activityEndTime}
            AND Date(ta.activity_start_time) &lt;= #{param.activityEndTime}
        </if>
        <if test="param.activityStatus!=null">
            AND ta.activity_status = #{param.activityStatus}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -299,7 +299,7 @@
     * @return  R
     */
    @PostMapping("/changeIntegral")
    public R signShare(@RequestBody IntegralChangeDto integralChangeDto) {
    public R changeIntegral(@RequestBody IntegralChangeDto integralChangeDto) {
        memberService.changeIntegral(integralChangeDto);
        return R.ok();
    }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/mapper/member/MemberCouponMapper.java
@@ -76,5 +76,5 @@
     * @param
     * @return  List<MerMemberCouponVo>
     */
    List<MerMemberCouponVo> listMerShopGoodsMemberCoupon(MerGoodsCouponListDto merGoodsCouponListDto);
    List<MerMemberCouponVo> listMerShopGoodsMemberCoupon(@Param("param") MerGoodsCouponListDto merGoodsCouponListDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -223,7 +223,7 @@
            if(StringUtils.isNotBlank(relGoodsIds)){
                //获取指定商品列表
                List<MerGoodsPriceListVo> goodsList = remoteGoodsService.listGoodsPriceByGoodsId(relGoodsIds).getData();
                if(!goodsList.isEmpty()){
                if(goodsList!=null&&!goodsList.isEmpty()){
                    merCouponGetVo.setRelGoodsList(goodsList);
                }
            }
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -976,13 +976,14 @@
            String memberUserIds = mgtMemberRelDelDto.getMemberUserIds();
            String[] memberUserIdArr = memberUserIds.split(",");
            for (String str : memberUserIdArr) {
                Member member = this.getByUserId(Long.valueOf(str));
                member.setBindingFlag(0);
                member.setRelationShopId(null);
                member.setRelationShopName(null);
                member.setUpdateTime(new Date());
                member.setUpdateUserId(mgtMemberRelDelDto.getUserId());
                memberMapper.update(member,null);
                LambdaUpdateWrapper<Member> updateWrapper = Wrappers.lambdaUpdate();
                updateWrapper.eq(Member::getUserId, str)
                        .set(Member::getBindingFlag, 0)
                        .set(Member::getRelationShopId,null)
                        .set(Member::getRelationShopName,null)
                        .set(Member::getUpdateUserId,mgtMemberRelDelDto.getUserId())
                        .set(Member::getUpdateTime,new Date());
                this.update(updateWrapper);
            }
        }
    }
@@ -1516,7 +1517,7 @@
                memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() - memberTotalChangeDto.getServiceCount());
                memberTotal.setUsedServiceCount(memberTotal.getUsedServiceCount() + memberTotalChangeDto.getServiceCount());
            } else {
                memberTotal.setUseableIntegral(memberTotal.getUseableIntegral() + memberTotalChangeDto.getServiceCount());
                memberTotal.setUseableServiceCount(memberTotal.getUseableServiceCount() + memberTotalChangeDto.getServiceCount());
                memberTotal.setTotalServiceCount(memberTotal.getTotalServiceCount() + memberTotalChangeDto.getServiceCount());
            }
        }
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberCouponMapper.xml
@@ -216,7 +216,7 @@
            tuc.valid_start_time validStartTime,
            tuc.deadline_time deadlineTime
        FROM t_member_coupon tuc
        WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{param.userId} AND tuc.coupon_type IN (1,2,3)
        WHERE tuc.del_flag = 0 AND tuc.coupon_status = 1 AND tuc.user_id = #{param.memberUserId} AND tuc.coupon_type IN (1,2,3)
            AND (tuc.coupon_from = 1 OR (tuc.coupon_from = 2 AND tuc.shop_id = #{param.shopId}))
          <if test="param.goodsId!=null and param.goodsId!=''">
              AND (tuc.use_scope = 1 OR (tuc.use_scope = 2 AND FIND_IN_SET(#{param.goodsId}, rel_goods_ids) &gt; 0))
ruoyi-modules/ruoyi-member/src/main/resources/mapper/member/MemberMapper.xml
@@ -213,7 +213,7 @@
    <select id="pageMerCashMember" resultType="com.ruoyi.member.domain.vo.MerCashMemberPageVo">
        SELECT
        tm.user_id userId,
        tm.nick_name nickName,
        tm.real_name nickName,
        tm.mobile mobile
        FROM t_member tm
        WHERE tm.relation_shop_id = #{param.shopId}
@@ -327,7 +327,7 @@
        <if test="sendType != null and sendType == 4">
            AND tm.binding_flag = 0
        </if>
        <if test="shopId != null and shopId != ''">
        <if test="shopId != null and shopId != '' and sendType != null and sendType != 4">
            AND tm.relation_shop_id = #{shopId}
        </if>
    </select>
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/business/MerOrderController.java
@@ -18,8 +18,6 @@
import javax.annotation.Resource;
import java.util.List;
import static org.reflections.Reflections.log;
/**
 * @author jqs34
 * @ClassName MerOrderController
@@ -154,10 +152,20 @@
        Page<MerMemberNoClearOrderVo> page = new Page<>();
        page.setSize(merMemberNoClearOrderDto.getPageSize());
        page.setCurrent(merMemberNoClearOrderDto.getPageNum());
        log.info("merMemberNoClearOrderDto----"+merMemberNoClearOrderDto.toString());
        List<MerMemberNoClearOrderVo> merMemberNoClearOrderVoList = orderService.pageMerMemberOrder(page,merMemberNoClearOrderDto);
        return R.ok(page.setRecords(merMemberNoClearOrderVoList));
    }
    @RequestMapping(value = "/pageMerMemberPayOrder", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户端用户消费记录")
    public R<Page<MerOrderPageVo>> pageMerMemberPayOrder(@RequestBody MerMemberNoClearOrderDto merOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        merOrderPageDto.setUserId(userId);
        Page<MerOrderPageVo> page = new Page<>();
        page.setSize(merOrderPageDto.getPageSize());
        page.setCurrent(merOrderPageDto.getPageNum());
        List<MerOrderPageVo> merOrderPageVoList = orderService.pageMerMemberPayOrder(page,merOrderPageDto);
        return R.ok(page.setRecords(merOrderPageVoList));
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -161,10 +161,10 @@
    @RequestMapping(value = "/getMgtShopAllOrderTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取商户订单统计")
    public R<MgtShopAllOrderTotal> getMgtShopAllOrderTotal(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) {
    public R<MgtShopAllOrderTotal> getMgtShopAllOrderTotal(@RequestBody MgtShopAllOrderPageDto mgtShopAllOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        MgtShopAllOrderTotal shopAllOrderTotal = orderService.getMgtShopAllOrderTotal(mgtShopOrderPageDto);
        mgtShopAllOrderPageDto.setUserId(userId);
        MgtShopAllOrderTotal shopAllOrderTotal = orderService.getMgtShopAllOrderTotal(mgtShopAllOrderPageDto);
        return R.ok(shopAllOrderTotal);
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerCloseOrderDto.java
@@ -24,4 +24,7 @@
    @ApiModelProperty(value = "支付备注")
    private String payRemark;
    @ApiModelProperty(value = "支付方式1微信2现金3支付宝")
    private Integer payType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerNewOrderDto.java
@@ -35,7 +35,7 @@
    @ApiModelProperty(value = "改变金额")
    private BigDecimal changeMoney;
    @ApiModelProperty(value = "支付方式")
    @ApiModelProperty(value = "支付方式1微信2现金3支付宝")
    private Integer payType;
    @ApiModelProperty(value = "订单备注")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MerVerifyOrderDto.java
@@ -24,4 +24,7 @@
    @ApiModelProperty(value = "实付金额")
    private BigDecimal relPayMoney;
    @ApiModelProperty(value = "支付方式1微信2现金3支付宝")
    private Integer payType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerMemberOrderVo.java
New file
@@ -0,0 +1,59 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
/**
 * @ClassName MerMemberOrderVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/8/5 16:08
 * @Version 1.0
 */
@Data
public class MerMemberOrderVo {
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @ApiModelProperty(value="订单编号")
    private String orderNo;
    @ApiModelProperty(value="订单状态")
    private Integer orderStatus;
    @ApiModelProperty(value = "商品总价")
    private BigDecimal orderGoodsMoney;
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal couponDiscount;
    @ApiModelProperty(value="应付金额")
    private BigDecimal receivableMoney;
    @ApiModelProperty(value="应收订金")
    private BigDecimal receivableDeposit;
    @ApiModelProperty(value="实收金额")
    private BigDecimal receiveMoney;
    @ApiModelProperty(value="已收金额")
    private BigDecimal payMoney;
    @ApiModelProperty(value="未收金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty(value="收款时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date receiveMoneyTime;
    @ApiModelProperty(value="收款金额")
    private BigDecimal thisReceiveMoney;
    @ApiModelProperty(value="收款方式")
    private String thisReceiveType;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerOrderPageVo.java
@@ -76,6 +76,9 @@
    @ApiModelProperty(value="订单来源")
    private String orderFromDesc;
    @ApiModelProperty(value="活动名字")
    private String activityName;
    @ApiModelProperty(value="订单商品列表")
    private List<MerOrderGoodsPageVo> merOrderGoodsVoList;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MerVerifyOrderVo.java
@@ -69,6 +69,18 @@
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
    @ApiModelProperty(value="实收金额")
    private BigDecimal realReceiveMoney;
    @ApiModelProperty(value="已收金额")
    private BigDecimal receiveMoney;
    @ApiModelProperty(value="未收金额")
    private BigDecimal unReceiveMoney;
    @ApiModelProperty(value="支付方式1.全款2订金")
    private Integer payType;
    @ApiModelProperty(value="结清标记0否1是")
    private Integer closeFlag;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -615,8 +615,16 @@
     * @description  获取商户订单统计
     * @author  jqs
     * @date    2023/8/4 10:25
     * @param mgtShopOrderPageDto
     * @param mgtShopAllOrderPageDto
     * @return  MgtShopAllOrderTotal
     */
    MgtShopAllOrderTotal getMgtShopAllOrderTotal(@Param("param")MgtShopOrderPageDto mgtShopOrderPageDto);
    MgtShopAllOrderTotal getMgtShopAllOrderTotal(@Param("param")MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
    /**
     * 分页获取消费记录
     * @param merOrderPageDto
     * @return
     */
    List<MerOrderPageVo> pageMerMemberPayOrder(Page page,@Param("param") MerMemberNoClearOrderDto merOrderPageDto);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1226,6 +1226,18 @@
        merVerifyOrderVo.setPayTime(order.getPayTime());
        merVerifyOrderVo.setUseTime(order.getUseTime());
        merVerifyOrderVo.setAppUserOrderGoodsPageVoList(appUserOrderGoodsPageVoList);
        merVerifyOrderVo.setPayType(order.getPayType());
        merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney());
        if(order.getPayType()==1){
            merVerifyOrderVo.setReceiveMoney(order.getPayMoney());
        }else{
            if(order.getOfflinePayMoney()!=null){
                merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney());
            }else{
                merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO);
            }
        }
        merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney()));
        // 根据订单用户ID获取用户信息
        Member member = remoteMemberService.getMember(order.getUserId()).getData();
        merVerifyOrderVo.setUserName(member.getRealName());
@@ -1357,6 +1369,18 @@
        merVerifyOrderVo.setCreateTime(order.getCreateTime());
        merVerifyOrderVo.setPayTime(order.getPayTime());
        merVerifyOrderVo.setUseTime(order.getUseTime());
        merVerifyOrderVo.setPayType(order.getPayType());
        merVerifyOrderVo.setRealReceiveMoney(order.getChangeReceivableMoney());
        if(order.getPayType()==1){
            merVerifyOrderVo.setReceiveMoney(order.getPayMoney());
        }else{
            if(order.getOfflinePayMoney()!=null){
                merVerifyOrderVo.setReceiveMoney(order.getOfflinePayMoney());
            }else{
                merVerifyOrderVo.setReceiveMoney(BigDecimal.ZERO);
            }
        }
        merVerifyOrderVo.setUnReceiveMoney(merVerifyOrderVo.getRealReceiveMoney().subtract(order.getReceivableMoney()));
        Member member = remoteMemberService.getMember(order.getUserId()).getData();
        merVerifyOrderVo.setUserName(member.getRealName());
        merVerifyOrderVo.setUserMobile(member.getMobile());
@@ -1373,7 +1397,7 @@
        payRecord.setOrderId(order.getOrderId());
        payRecord.setPayMoney(merVerifyOrderDto.getRelPayMoney());
        payRecord.setPayTime(new Date());
        payRecord.setPayType(2);
        payRecord.setPayType(merVerifyOrderDto.getPayType());
        payRecordService.save(payRecord);
        return merVerifyOrderVo;
@@ -1613,7 +1637,7 @@
        payRecord.setOrderId(order.getOrderId());
        payRecord.setPayMoney(merCloseOrderDto.getPayMoney());
        payRecord.setPayTime(new Date());
        payRecord.setPayType(2);
        payRecord.setPayType(merCloseOrderDto.getPayType());
        payRecordService.save(payRecord);
    }
@@ -1955,6 +1979,9 @@
                if (orderFrom != null) {
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    } else if(orderFrom == 2){
                        orderFromDesc = "店铺砍价活动("+merOrderPageVo.getActivityName()+")";
                    } else {
                        orderFromDesc = "线下创建";
                    }
@@ -4038,12 +4065,64 @@
     * @description  获取商户订单统计
     * @author  jqs
     * @date    2023/8/4 10:25
     * @param mgtShopOrderPageDto
     * @param mgtShopAllOrderPageDto
     * @return  MgtShopAllOrderTotal
     */
    @Override
    public MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){
        MgtShopAllOrderTotal shopAllOrderTotal = orderMapper.getMgtShopAllOrderTotal(mgtShopOrderPageDto);
    public MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopAllOrderPageDto mgtShopAllOrderPageDto){
        MgtShopAllOrderTotal shopAllOrderTotal = orderMapper.getMgtShopAllOrderTotal(mgtShopAllOrderPageDto);
        return shopAllOrderTotal;
    }
    /**
     * 分页获取会员消费记录
     * @param merOrderPageDto
     * @return
     */
    @Override
    public List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto){
        List<MerOrderPageVo> merOrderPageVoList = orderMapper.pageMerMemberPayOrder(page, merOrderPageDto);
        if (merOrderPageVoList != null && !merOrderPageVoList.isEmpty()) {
            Long userId;
            Member member;
            Integer orderFrom;
            String orderFromDesc;
            BigDecimal zeroBig = new BigDecimal("0.00");
            StringJoiner userIdSj = new StringJoiner(",");
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                userId = merOrderPageVo.getUserId();
                userIdSj.add(userId.toString());
                orderFrom = merOrderPageVo.getOrderFrom();
                if (orderFrom != null) {
                    if (orderFrom == 1) {
                        orderFromDesc = "商城订单";
                    } else {
                        orderFromDesc = "线下创建";
                    }
                } else {
                    orderFromDesc = "商城订单";
                }
                merOrderPageVo.setOrderFromDesc(orderFromDesc);
                merOrderPageVo.setUnPaidMoney(merOrderPageVo.getPayMoney().subtract(merOrderPageVo.getReceiveMoney()));
                if (merOrderPageVo.getUnPaidMoney() == null) {
                    merOrderPageVo.setUnPaidMoney(zeroBig);
                }
            }
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(userIdSj.toString());
            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            for (MerOrderPageVo merOrderPageVo : merOrderPageVoList) {
                if(merOrderPageVo.getUserId()!=null&&userMap.get(merOrderPageVo.getUserId())!=null){
                    merOrderPageVo.setUserName(userMap.get(merOrderPageVo.getUserId()).getRealName());
                    merOrderPageVo.setNickName(userMap.get(merOrderPageVo.getUserId()).getNickName());
                    merOrderPageVo.setUserMobile(userMap.get(merOrderPageVo.getUserId()).getUserMobile());
                }else{
                    log.debug("订单merOrderPageVo"+merOrderPageVo.getOrderId()+"缺少用户");
                }
            }
        }
        return merOrderPageVoList;
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -494,8 +494,16 @@
     * @description  获取商户订单统计
     * @author  jqs
     * @date    2023/8/4 10:25
     * @param mgtShopOrderPageDto
     * @param mgtShopAllOrderPageDto
     * @return  MgtShopAllOrderTotal
     */
    MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto);
    MgtShopAllOrderTotal getMgtShopAllOrderTotal(MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
    /**
     * 分页获取会员消费记录
     * @param merOrderPageDto
     * @return
     */
    List<MerOrderPageVo> pageMerMemberPayOrder(Page page,MerMemberNoClearOrderDto merOrderPageDto);
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -323,7 +323,8 @@
        tog.goods_type goodsType,
        tog.buy_num buyNum,
        toc.create_time createTime,
        toc.order_from orderFrom
        toc.order_from orderFrom,
        toc.activity_name activityName
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND toc.shop_id = #{param.shopId}
@@ -367,10 +368,16 @@
        toc.order_status orderStatus,
        toc.order_money orderGoodsMoney,
        toc.coupon_money couponDiscount,
        toc.receivable_money receivableMoney,
        toc.receivable_money-toc.online_pay_money receivableMoney,
        toc.receivable_deposit receivableDeposit,
        toc.pay_money payMoney
        FROM t_order toc
        toc.change_receivable_money payMoney,
        IFNULL(toc.offline_pay_money,0) receiveMoney,
        IFNULL(toc.receivable_money-IFNULL(CASE toc.pay_type WHEN 1 THEN toc.online_pay_money WHEN 2 THEN IFNULL(toc.offline_pay_money,0) END,0),0) unpaidMoney,
        tpr.pay_time receiveMoneyTime,
        tpr.pay_money thisReceiveMoney,
        CASE tpr.pay_type WHEN 1 THEN "微信" WHEN 2 THEN "现金" WHEN 3 THEN "支付宝" END thisReceiveType
        FROM t_pay_record tpr
        INNER JOIN t_order toc ON tpr.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND toc.user_id = #{userId} AND (toc.order_status = 2 OR toc.order_status = 3)
        ORDER BY toc.create_time DESC
    </select>
@@ -444,7 +451,7 @@
            AND Date(toc.create_time) &lt;= #{param.endOrderDate}
        </if>
        <if test="param.keyword != null and param.keyword != ''">
            AND toc.order_no LIKE CONCAT('%',#{param.keyword},'%')
            AND (toc.order_no LIKE CONCAT('%',#{param.keyword},'%') OR tog.goods_name LIKE CONCAT('%',#{param.keyword},'%'))
        </if>
        ORDER BY toc.create_time DESC
    </select>
@@ -1699,4 +1706,29 @@
        </if>
        ORDER BY toc.create_time DESC
    </select>
    <select id="pageMerMemberPayOrder" resultMap="merOrderResultMap">
        SELECT
        toc.user_id userId,
        toc.order_id orderId,
        toc.order_no orderNo,
        toc.pay_type payType,
        toc.order_status orderStatus,
        toc.order_money orderGoodsMoney,
        toc.coupon_money couponDiscount,
        toc.receivable_money-toc.online_pay_money receivableMoney,
        toc.receivable_deposit receivableDeposit,
        toc.change_receivable_money payMoney,
        IFNULL(toc.offline_pay_money,0) receiveMoney,
        toc.order_remark orderRemark,
        tog.goods_name goodsName,
        tog.goods_type goodsType,
        tog.buy_num buyNum,
        toc.create_time createTime,
        toc.order_from orderFrom
        FROM t_order toc
        INNER JOIN t_order_goods tog ON tog.order_id = toc.order_id
        WHERE toc.del_flag = 0 AND (toc.order_status = 2 OR toc.order_status = 3) AND toc.shop_id = #{param.shopId} AND toc.user_id = #{param.memberUserId}
        ORDER BY toc.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MerAgencyTaskPageVo.java
@@ -28,5 +28,6 @@
    @ApiModelProperty(value="紧急情况")
    private String emergencyState;;
    @ApiModelProperty(value = "跟进时间")
    private String followTime;
}
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/shop/ShopMapper.xml
@@ -429,14 +429,13 @@
    </select>
    <select id="getNearbyShop"  resultType="com.ruoyi.shop.domain.vo.AppNearShopVo">
        SELECT ts.shop_id shopId, ACOS(
        COS(RADIANS(#{param.longitude})) *
        COS(RADIANS(ts.shop_latitude)) *
        COS(RADIANS(ts.shop_longitude) - RADIANS(#{param.latitude})) +
        SIN(RADIANS(#{param.longitude})) *
        SIN(RADIANS(ts.shop_latitude))
        ) * 6378 as distance
        FROM t_shop ts WHERE ts.del_flag = 0 AND ts.shop_status = 1
        SELECT ts.shop_id shopId,
               6378.138 * 2 * ASIN(SQRT(POW(SIN((
               #{param.latitude} * PI() / 180 - ts.shop_latitude * PI() / 180) / 2), 2)
                + COS(#{param.latitude} * PI() / 180) * COS(ts.shop_latitude * PI() / 180) * POW(
               SIN((#{param.longitude} * PI() / 180 - ts.shop_longitude * PI() / 180) / 2), 2
               ))) AS distance
        FROM t_shop ts
        ORDER BY distance ASC LIMIT 1
    </select>
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/AgencyTaskMapper.xml
@@ -19,7 +19,8 @@
        tat.task_date taskDate,
        tat.task_content taskContent,
        tmtr.follow_content dealContent,
        tat.emergency_state emergencyState
        tat.emergency_state emergencyState,
        tmtr.create_time followTime
        FROM t_agency_task tat
        LEFT JOIN t_agency_task_record tmtr ON tat.task_id = tmtr.task_id
        WHERE tat.del_flag = 0 AND tat.shop_id = #{param.shopId} AND tat.agency_id = #{param.agencyId}
@@ -29,7 +30,7 @@
        ORDER BY tat.task_date DESC
    </select>
    <select id="pageMerAgencyTask" resultType="com.ruoyi.shop.domain.vo.MerAgencySimpleTaskRecordPageVo">
    <select id="pageMerAgencySimpleTaskRecord" resultType="com.ruoyi.shop.domain.vo.MerAgencySimpleTaskRecordPageVo">
        SELECT
        tmtr.create_time createTime,
        CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType,
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskMapper.xml
@@ -86,7 +86,7 @@
        tmt.task_content taskContent,
        tmtr.follow_content dealContent,
        tmt.emergency_state emergencyState,
        CASE WHEN task_date = CURRENT_DATE() THEN 1 ELSE 0 END todayFlag
        CASE tmt.task_status WHEN 1 THEN 1 WHEN 3 THEN 1 ELSE 0 END todayFlag
        FROM t_member_task tmt
        LEFT JOIN t_member_task_record tmtr ON tmt.task_id = tmtr.task_id
        WHERE tmt.del_flag = 0 AND tmt.shop_id = #{param.shopId} AND tmt.user_id = #{param.memberUserId}
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/ShopTaskRecordMapper.xml
@@ -8,7 +8,7 @@
        tmtr.id followId,
        tmtr.task_id taskId,
        tmtr.create_time createTime,
        tmt.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType,
        CASE tmtr.follow_type WHEN 1 THEN "电话跟进" WHEN 2 THEN "手动跟进" END followType,
        tmtr.custome_follow_type customeFollowType,
        tmtr.follow_content followContent,
        tmtr.call_time callTime,