jiangqs
2023-07-05 32bd52ec49d25021b6a35d8ee5f32c70df788165
bug 用户端
48个文件已修改
5个文件已添加
805 ■■■■■ 已修改文件
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtBulletinBoardVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppActivityPageVo.java 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java 16 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtBirthdayController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberGetVo.java 3 ●●●●● 补丁 | 查看 | 原始文档 | 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 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopAllOrderPageDto.java 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopAllOrderPageVo.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml 77 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopTaskRecordPageVo.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskRecordMapper.xml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysUserServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysUserService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/dto/AppActivityGoodsPageDto.java
New file
@@ -0,0 +1,21 @@
package com.ruoyi.system.api.domain.dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName AppActivityGoodsPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/5 19:28
 * @Version 1.0
 */
@Data
public class AppActivityGoodsPageDto extends AppPageDto{
    @ApiModelProperty(value = "活动id")
    private String activityId;
    @ApiModelProperty(value = "商户id",hidden = true)
    private Long shopId;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/domain/vo/MgtBulletinBoardVo.java
@@ -54,4 +54,7 @@
    @ApiModelProperty(value = "经销商数")
    private Integer dealerTotal;
    @ApiModelProperty(value = "待回复建议数")
    private Integer UnReplaySuggestTotal;
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteConfigFallbackFactory.java
@@ -52,6 +52,8 @@
                return R.fail("获取活跃度失败:" + throwable.getMessage());
            }
            @Override
            public R<List<SysTag>> listSysTag(Integer tagType) {
                return R.fail("获取标签失败:" + throwable.getMessage());
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteMemberFallbackFactory.java
@@ -117,6 +117,11 @@
                return R.fail("获取年龄段userId失败:" + throwable.getMessage());
            }
            @Override
            public R<Integer> getUnReplaySuggestVo() {
                return null;
            }
        };
    }
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteShopFallbackFactory.java
@@ -92,6 +92,11 @@
            public R<List<Long>> listShopIdByShopId(Long shopId) {
                return R.fail("获取商户列表失败:" + throwable.getMessage());
            }
            @Override
            public R<Integer> getUnReplaySuggestVo() {
                return null;
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/factory/RemoteUserFallbackFactory.java
@@ -66,6 +66,10 @@
                return R.fail("更新用户信息失败:" + throwable.getMessage());
            }
            @Override
            public R frozenUser(Long userId) {
                return R.fail("冻结用户失败:" + throwable.getMessage());
            }
        };
    }
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteConfigService.java
@@ -89,4 +89,6 @@
     */
    @PostMapping("/config/getActivenessByName")
    public R<Activeness> getActivenessByName(@RequestBody String name);
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteMemberService.java
@@ -171,4 +171,14 @@
     */
    @PostMapping("/listOrderAgeUser")
    public R<List<MerOrderAgeUserVo>> listOrderAgeUser(@RequestBody MerTotalDto merTotalDto);
    /**
     * @description  获取未回复数量
     * @author  jqs
     * @date    2023/7/5 12:49
     * @param
     * @return  R<Integer>
     */
    @PostMapping("/getUnReplaySuggestVo")
    public R<Integer> getUnReplaySuggestVo();
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteShopService.java
@@ -118,4 +118,14 @@
     */
    @PostMapping("/listShopIdByShopId")
    public R<List<Long>> listShopIdByShopId(@RequestBody Long shopId);
    /**
     * @description  获取未回复数量
     * @author  jqs
     * @date    2023/7/5 12:49
     * @param
     * @return  R<Integer>
     */
    @PostMapping("/getUnReplaySuggestVo")
    public R<Integer> getUnReplaySuggestVo();
}
ruoyi-api/ruoyi-api-system/src/main/java/com/ruoyi/system/api/service/RemoteUserService.java
@@ -88,5 +88,13 @@
    @PostMapping("/user/editUserInfo")
    public R editUserInfo(@RequestBody AppEditUserDto appEditUserDto);
    /**
     * @description  冻结用户
     * @author  jqs
     * @date    2023/6/29 17:20
     * @param userId
     * @return  R<Activeness>
     */
    @PostMapping("/config/frozenUser")
    public R frozenUser(@RequestBody Long userId);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java
@@ -34,7 +34,7 @@
 * @Date 2023/6/14 10:17
 * @Version 1.0
 */
@Api(value = "平台端活动相关接口", tags = "平台端活动相关接口", description = "平台端活动相关接口")
@Api(value = "管理后台活动相关接口", tags = "管理后台活动相关接口", description = "管理后台活动相关接口")
@RestController
@RequestMapping("/mgt/activity")
public class MgtActivityController {
@@ -93,7 +93,7 @@
    @RequestMapping(value = "/exportPageMgtActivityRecord", method = RequestMethod.POST)
    @ApiOperation(value = "导出活动参与记录列表")
    public void exportPageMgtActivityRecord(@RequestBody MgtActivityRecordPageDto mgtActivityRecordPageDto, HttpServletResponse response) {
    public void exportPageMgtActivityRecord( MgtActivityRecordPageDto mgtActivityRecordPageDto, HttpServletResponse response) {
        Page<MgtActivityRecordPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -10,7 +10,6 @@
import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
import com.ruoyi.goods.domain.vo.MgtGoodsTotalVo;
import com.ruoyi.goods.service.goods.GoodsService;
import com.ruoyi.system.api.domain.dto.MgtBaseDto;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo;
import io.swagger.annotations.Api;
@@ -32,7 +31,7 @@
 * @date 2023年06月01日
 * @version: 1.0
 */
@Api(value = "平台端商品相关接口", tags = "平台端商品相关接口", description = "平台端商品相关接口")
@Api(value = "管理后台商品相关接口", tags = "管理后台商品相关接口", description = "管理后台商品相关接口")
@RestController
@RequestMapping("/mgt/goods")
public class MgtGoodsController {
@@ -53,7 +52,7 @@
    @RequestMapping(value = "/exportPageMgtGoods", method = RequestMethod.POST)
    @ApiOperation(value = "导出商品列表")
    public void exportPageMgtGoods(@RequestBody MgtGoodsPageDto mgtGoodsPageDto, HttpServletResponse response) {
    public void exportPageMgtGoods( MgtGoodsPageDto mgtGoodsPageDto, HttpServletResponse response) {
        Page<MgtGoodsPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
@@ -64,9 +63,7 @@
    @RequestMapping(value = "/getMgtGoodsTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取商品统计")
    public R<MgtGoodsTotalVo> getMgtGoodsTotal(@RequestBody MgtBaseDto mgtBaseDto) {
        Long userId = SecurityUtils.getUserId();
        mgtBaseDto.setUserId(userId);
    public R<MgtGoodsTotalVo> getMgtGoodsTotal() {
        MgtGoodsTotalVo mgtGoodsTotalVo = goodsService.getMgtGoodsTotal();
        return R.ok(mgtGoodsTotalVo);
    }
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/miniapp/AppActivityController.java
New file
@@ -0,0 +1,86 @@
package com.ruoyi.goods.controller.miniapp;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.goods.domain.vo.AppActivityPageVo;
import com.ruoyi.goods.service.activity.ActivityService;
import com.ruoyi.goods.service.goods.GoodsService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.AppPageDto;
import com.ruoyi.system.api.domain.poji.member.Member;
import com.ruoyi.system.api.service.RemoteMemberService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
/**
 * @ClassName AppActivityController
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/5 18:02
 * @Version 1.0
 */
@Api(value = "小程序首页相关接口", tags = "小程序首页相关接口", description = "小程序首页相关接口")
@RestController
@RequestMapping("/app/activity")
public class AppActivityController {
    @Resource
    private RemoteMemberService memberService;
    @Resource
    private ActivityService activityService;
    @Resource
    private GoodsService goodsService;
    @RequestMapping(value = "/pageAppActivity", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取秒杀活动")
    public R<Page<AppActivityPageVo>> pageAppActivity(@RequestBody AppPageDto appPageDto) {
        Long userId = SecurityUtils.getUserId();
        Long shopId = null;
        if(userId!=null){
            Member member = memberService.getMember(userId).getData();
            if(member!=null&&member.getRelationShopId()!=null){
                shopId = member.getRelationShopId();
            }
        }
        if(shopId==null){
            throw new ServiceException(AppErrorConstant.NO_POSITION);
        }
        Page<AppActivityPageVo> page = new Page<>();
        page.setSize(appPageDto.getPageSize());
        page.setCurrent(appPageDto.getPageNum());
        List<AppActivityPageVo> activityPageVoList = activityService.pageAppActivity(page,shopId);
        return R.ok(page.setRecords(activityPageVoList));
    }
    /*@RequestMapping(value = "/pageAppActivityGoods", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取活动商品")
    public R<Page<AppSimpleActivityGoodsVo>> pageAppActivityGoods(@RequestBody AppActivityGoodsPageDto appActivityGoodsPageDto) {
        Long userId = SecurityUtils.getUserId();
        if(userId!=null){
            Member member = memberService.getMember(userId).getData();
            if(member!=null&&member.getRelationShopId()!=null){
                appActivityGoodsPageDto.setShopId(member.getRelationShopId());
            }
        }
        if(appActivityGoodsPageDto.getShopId()==null){
            throw new ServiceException(AppErrorConstant.NO_POSITION);
        }
        Page<AppSimpleActivityGoodsVo> page = new Page<>();
        page.setSize(appActivityGoodsPageDto.getPageSize());
        page.setCurrent(appActivityGoodsPageDto.getPageNum());
        List<AppSimpleActivityGoodsVo> appSimpleGoodsVoList = goodsService.pageAppActivityGoods(page,appActivityGoodsPageDto);
        return R.ok(page.setRecords(appSimpleGoodsVoList));
    }*/
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/AppActivityPageVo.java
New file
@@ -0,0 +1,40 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @ClassName AppActivityPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/5 18:35
 * @Version 1.0
 */
@Data
public class AppActivityPageVo {
    @ApiModelProperty(value = "活动id")
    private String activityId;
    @ApiModelProperty(value = "活动名称")
    private String activityName;
    @ApiModelProperty(value = "活动开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date activityStartTime;
    @ApiModelProperty(value = "活动结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date activityEndTime;
    @ApiModelProperty(value = "活动状态")
    private String activityStatus;
    @ApiModelProperty(value = "宣传海报")
    private String propagandaPoster;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityPageVo.java
@@ -23,16 +23,18 @@
    private String activityName;
    @ApiModelProperty(value = "活动开始时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date activityStartTime;
    @ApiModelProperty(value = "活动结束时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date activityEndTime;
    @ApiModelProperty(value = "付款订单数")
    private Integer orderTotal;
    @ApiModelProperty(value = "付款人数")
    private Date personTotal;
    private Integer personTotal;
    @ApiModelProperty(value = "适用店铺")
    private String shopFlag;
@@ -43,7 +45,7 @@
    @ApiModelProperty(value = "推荐标记")
    private String recommendFlag;
    @ApiModelProperty(value = "创建开始时间")
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java
@@ -5,10 +5,7 @@
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.pojo.activity.Activity;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.goods.domain.vo.MerActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityListVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import com.ruoyi.goods.domain.vo.*;
import com.ruoyi.system.api.domain.dto.MerPageDto;
import org.apache.ibatis.annotations.Param;
@@ -79,4 +76,15 @@
     * @return  List<Long>
     */
    List<String> listActivityIdByShopId(@Param("shopId")Long shopId);
    /**
     * @description  分页获取活动列表
     * @author  jqs
     * @date    2023/7/5 18:45
     * @param page
     * @param shopId
     * @return  List<AppActivityPageVo>
     */
    List<AppActivityPageVo> pageAppActivity(Page page, @Param("shopId")Long shopId);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java
@@ -102,4 +102,14 @@
     * @return  List<String>
     */
    List<String> listActivityIdByShopId(Long shopId);
    /**
     * @description  分页获取活动列表
     * @author  jqs
     * @date    2023/7/5 18:45
     * @param page
     * @param shopId
     * @return  List<AppActivityPageVo>
     */
    List<AppActivityPageVo> pageAppActivity(Page page, Long shopId);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -302,4 +302,17 @@
    public List<String> listActivityIdByShopId(Long shopId){
        return activityMapper.listActivityIdByShopId(shopId);
    }
    /**
     * @description  分页获取活动列表
     * @author  jqs
     * @date    2023/7/5 18:45
     * @param page
     * @param shopId
     * @return  List<AppActivityPageVo>
     */
    @Override
    public List<AppActivityPageVo> pageAppActivity(Page page, Long shopId){
        return activityMapper.pageAppActivity(page, shopId);
    }
}
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -106,7 +106,7 @@
    <select id="getRecommendActivity" resultType="com.ruoyi.goods.domain.pojo.activity.Activity">
        SELECT * FROM t_activity
        WHERE del_flag = 0 AND recommend_flag = 1 AND NOW() BETWEEN activity_start_time AND activity_end_time
        AND activity_status = 1 AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, ta.applicable_shop) &gt; 0)
        AND activity_status = 1 AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, applicable_shop) &gt; 0)
        ORDER BY activity_end_time - NOW()
        LIMIT 1;
    </select>
@@ -115,6 +115,24 @@
    <select id="listActivityIdByShopId" resultType="java.lang.String">
        SELECT activity_id FROM t_activity
        WHERE del_flag = 0 AND activity_status = 1 AND NOW() BETWEEN activity_start_time AND activity_end_time
        AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, ta.applicable_shop) &gt; 0)
        AND shop_flag = 1 OR (shop_flag = 2 AND FIND_IN_SET(#{shopId}, applicable_shop) &gt; 0)
    </select>
    <select id="pageAppActivity" resultType="com.ruoyi.goods.domain.vo.AppActivityPageVo">
        SELECT
            ta.activity_id activityId,
            ta.activity_name activityName,
            ta.activity_start_time activityStartTime,
            ta.activity_end_time activityEndTime,
            CASE ta.activity_status
                WHEN 0 THEN '未开始'
                WHEN 1 THEN '进行中'
                WHEN 2 THEN '已结束'
                END activityStatus,
            ta.propaganda_poster propagandaPoster,
        FROM t_activity ta
        WHERE ta.del_flag = 0 AND FIND_IN_SET(#{shopId}, ta.applicable_shop) &gt; 0
        group by ta.activity_id
        ORDER BY ta.activity_status ASC,ta.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/console/MemberController.java
@@ -264,4 +264,19 @@
        List<MerOrderAgeUserVo> orderAgeUserVoList = memberService.listOrderAgeUser(merTotalDto);
        return R.ok(orderAgeUserVoList);
    }
    /**
     * @description  获取未回复数量
     * @author  jqs
     * @date    2023/7/5 12:49
     * @param
     * @return  R<Integer>
     */
    @PostMapping("/getUnReplaySuggestVo")
    public R<Integer> getUnReplaySuggestVo()
    {
        Integer count = memberSuggestService.getUnReplaySuggestVo();
        return R.ok(count);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtBirthdayController.java
@@ -24,7 +24,7 @@
 * @Date 2023/6/15 11:52
 * @Version 1.0
 */
@Api(value = "平台端生日卡相关接口", tags = "平台端生日卡相关接口", description = "平台端生日卡相关接口")
@Api(value = "管理后台生日卡相关接口", tags = "管理后台生日卡相关接口", description = "管理后台生日卡相关接口")
@RestController
@RequestMapping("/mgt/birthday")
public class MgtBirthdayController {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtCouponController.java
@@ -26,7 +26,7 @@
 * @Date 2023/6/13 9:15
 * @Version 1.0
 */
@Api(value = "平台端优惠券相关接口", tags = "平台端优惠券相关接口", description = "平台端优惠券相关接口")
@Api(value = "管理后台优惠券相关接口", tags = "管理后台优惠券相关接口", description = "管理后台优惠券相关接口")
@RestController
@RequestMapping("/mgt/coupon")
public class MgtCouponController {
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
@@ -62,7 +62,7 @@
    @RequestMapping(value = "/exportPageMgtMember", method = RequestMethod.POST)
    @ApiOperation(value = "导出会员列表")
    public void exportPageMgtMember(@RequestBody MgtMemberPageDto mgtMemberPageDto, HttpServletResponse response) {
    public void exportPageMgtMember(MgtMemberPageDto mgtMemberPageDto, HttpServletResponse response) {
        Page<MgtMemberPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
@@ -131,7 +131,7 @@
    @RequestMapping(value = "/exportPageMgtMemberIntegral", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户积分列表")
    public void exportPageMgtMemberIntegral(@RequestBody MgtMemberIntegralPageDto mgtMemberIntegralPageDto, HttpServletResponse response) {
    public void exportPageMgtMemberIntegral( MgtMemberIntegralPageDto mgtMemberIntegralPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberIntegralPageDto.setUserId(userId);
        Page<MgtMemberIntegralPageVo> page = new Page<>();
@@ -156,7 +156,7 @@
    @RequestMapping(value = "/exportPageMgtMemberBrowse", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户浏览记录")
    public void exportPageMgtMemberBrowse(@RequestBody MgtMemberBrowsePageDto mgtMemberBrowsePageDto, HttpServletResponse response) {
    public void exportPageMgtMemberBrowse( MgtMemberBrowsePageDto mgtMemberBrowsePageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberBrowsePageDto.setUserId(userId);
        Page<MgtMemberBrowsePageVo> page = new Page<>();
@@ -202,7 +202,7 @@
    @RequestMapping(value = "/exportPageMgtMemberSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户建议列表")
    public void exportPageMgtMemberSuggest(@RequestBody MgtMemberSuggestPageDto memberSuggestPageDto, HttpServletResponse response) {
    public void exportPageMgtMemberSuggest( MgtMemberSuggestPageDto memberSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        memberSuggestPageDto.setUserId(userId);
        Page<MgtMemberSuggestPageVo> page = new Page<>();
@@ -241,5 +241,13 @@
        return R.ok();
    }
    @RequestMapping(value = "/mgtFrozenMember", method = RequestMethod.POST)
    @Log(title = "会员建议管理", businessType = BusinessType.UPDATE,operContent = "冻结会员")
    @ApiOperation(value = "冻结会员")
    public R mgtReplayMemberSuggest(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
        Long userId = SecurityUtils.getUserId();
        mgtBaseGetDto.setUserId(userId);
        memberService.mgtFrozenMember(mgtBaseGetDto);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberGetVo.java
@@ -30,6 +30,9 @@
    @ApiModelProperty(value = "用户姓名")
    private String realName;
    @ApiModelProperty(value = "用户姓名")
    private String avatar;
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/coupon/CouponServiceImpl.java
@@ -445,7 +445,7 @@
        queryWrapper.eq(Coupon::getCouponStatus,1);
        queryWrapper.eq(Coupon::getSendTimeType,2);
        queryWrapper.eq(Coupon::getAuditStatus,2);
        queryWrapper.eq(Coupon::getSendTime,new Date());
        queryWrapper.eq(Coupon::getSendTime,DateUtils.getNowDate());
        List<Coupon> couponList = couponMapper.selectList(queryWrapper);
        if(couponList!=null&&!couponList.isEmpty()){
            List<CouponRelUser> couponRelUserList;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -964,6 +964,7 @@
        mgtMemberGetVo.setMemberNo(member.getMemberNo());
        mgtMemberGetVo.setRealName(member.getRealName());
        mgtMemberGetVo.setNickName(member.getNickName());
        mgtMemberGetVo.setAvatar(member.getAvatar());
        mgtMemberGetVo.setMobile(member.getMobile());
        mgtMemberGetVo.setGender(member.getGender() == 0 ? "男" : member.getGender() == 1 ? "女" : null);
        mgtMemberGetVo.setBirthday(member.getBirthday());
@@ -1544,4 +1545,16 @@
        orderAgeUserVoList.add(merOrderAgeUserVo);
        return orderAgeUserVoList;
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/7/5 21:18
     * @param mgtBaseGetDto
     * @return  void
     */
    @Override
    public void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto){
        sysUserService.frozenUser(Long.valueOf(mgtBaseGetDto.getId()));
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberSuggestServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.member.service.impl.member;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.utils.DateUtils;
@@ -205,4 +206,19 @@
        memberSuggest.setSuggestTags(mgtTagMemberSuggestDto.getSuggestTags());
        this.saveOrUpdate(memberSuggest);
    }
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    @Override
    public Integer getUnReplaySuggestVo(){
        LambdaQueryWrapper<MemberSuggest> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(MemberSuggest::getDelFlag,0);
        queryWrapper.eq(MemberSuggest::getReplayFlag,0);
        return this.count(queryWrapper);
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberService.java
@@ -321,4 +321,13 @@
     * @return  MerOrderAgeUserVo
     */
    List<MerOrderAgeUserVo> listOrderAgeUser(MerTotalDto merTotalDto);
    /**
     * @description
     * @author  jqs
     * @date    2023/7/5 21:18
     * @param mgtBaseGetDto
     * @return  void
     */
    void mgtFrozenMember(MgtBaseGetDto mgtBaseGetDto);
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/member/MemberSuggestService.java
@@ -84,4 +84,13 @@
    * @date 2023/6/11 16:28
    */
    void mgtEditMemberSuggestTag(MgtTagMemberSuggestDto mgtTagMemberSuggestDto);
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    Integer getUnReplaySuggestVo();
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/concole/OrderController.java
@@ -58,8 +58,8 @@
        MgtBulletinBoardVo mgtBulletinBoardVo = new MgtBulletinBoardVo();
        MgtBulletinBoardVo mgtBulletinBoardVoOrder = orderService.boardOrderTotal();
        mgtBulletinBoardVo.setSalesTotal(mgtBulletinBoardVoOrder.getSalesTotal());
        mgtBulletinBoardVo.setUnUseOrderTotal(mgtBulletinBoardVo.getUnUseOrderTotal());
        mgtBulletinBoardVo.setActivityOrderTotal(mgtBulletinBoardVo.getActivityOrderTotal());
        mgtBulletinBoardVo.setUnUseOrderTotal(mgtBulletinBoardVoOrder.getUnUseOrderTotal());
        mgtBulletinBoardVo.setActivityOrderTotal(mgtBulletinBoardVoOrder.getActivityOrderTotal());
        return R.ok(mgtBulletinBoardVo);
    }
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java
@@ -49,7 +49,7 @@
    @RequestMapping(value = "/exportPageMgtMemberServiceRecord", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户服务记录列表")
    public void exportPageMgtMemberServiceRecord(@RequestBody MgtMemberServiceRecordPageDto mgtMemberServiceRecordPageDto, HttpServletResponse response) {
    public void exportPageMgtMemberServiceRecord( MgtMemberServiceRecordPageDto mgtMemberServiceRecordPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberServiceRecordPageDto.setUserId(userId);
        Page<MgtMemberServiceRecordPageVo> page = new Page<>();
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto;
import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto;
import com.ruoyi.order.domain.dto.MgtShopAllOrderPageDto;
import com.ruoyi.order.domain.dto.MgtShopOrderPageDto;
import com.ruoyi.order.domain.vo.*;
import com.ruoyi.order.service.order.OrderService;
@@ -59,8 +60,8 @@
    }
    @RequestMapping(value = "/exportPageMgtMemberOrder", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取用户订单列表")
    public void exportPageMgtMemberOrder(@RequestBody MgtMemberOrderPageDto mgtMemberOrderPageDto, HttpServletResponse response) {
    @ApiOperation(value = "导出获取用户订单列表")
    public void exportPageMgtMemberOrder(MgtMemberOrderPageDto mgtMemberOrderPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberOrderPageDto.setUserId(userId);
        Page<MgtMemberOrderPageVo> page = new Page<>();
@@ -105,7 +106,7 @@
    @RequestMapping(value = "/exportPageMgtActivityOrder", method = RequestMethod.POST)
    @ApiOperation(value = "导出秒杀订单列表")
    public void exportPageMgtActivityOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto, HttpServletResponse response) {
    public void exportPageMgtActivityOrder( MgtShopOrderPageDto mgtShopOrderPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        Page<MgtActivityOrderPageVo> page = new Page<>();
@@ -130,24 +131,13 @@
    @RequestMapping(value = "/exportPageMgtShopOrder", method = RequestMethod.POST)
    @ApiOperation(value = "导出门店订单列表")
    public void exportPageMgtShopOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto, HttpServletResponse response) {
    public void exportPageMgtShopOrder( MgtShopOrderPageDto mgtShopOrderPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        Page<MgtShopOrderPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtShopOrderPageVo> shopOrderPageVoList = orderService.pageMgtShopOrder(page,mgtShopOrderPageDto);
        if(!shopOrderPageVoList.isEmpty()){
            List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList;
            String goodsString;
            for(MgtShopOrderPageVo entity : shopOrderPageVoList){
                mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList();
                goodsString = mgtOrderGoodsVoList.stream()
                        .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum())
                        .collect(Collectors.joining(";"));
                entity.setGoodsInfo(goodsString);
            }
        }
        ExcelUtil<MgtShopOrderPageVo> util = new ExcelUtil<MgtShopOrderPageVo>(MgtShopOrderPageVo.class);
        util.exportExcel(response, shopOrderPageVoList, "门店订单列表");
    }
@@ -161,4 +151,28 @@
        return R.ok(mgtOrderDetail);
    }
    @RequestMapping(value = "/pageMgtShopAllOrder", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取商户订单记录")
    public R<Page<MgtShopAllOrderPageVo>> pageMgtShopAllOrder(@RequestBody MgtShopAllOrderPageDto mgtShopAllOrderPageDto) {
        Long userId = SecurityUtils.getUserId();
        mgtShopAllOrderPageDto.setUserId(userId);
        Page<MgtShopAllOrderPageVo> page = new Page<>();
        page.setSize(mgtShopAllOrderPageDto.getPageSize());
        page.setCurrent(mgtShopAllOrderPageDto.getPageNum());
        List<MgtShopAllOrderPageVo> shopAllOrderPageVoList = orderService.pageMgtShopAllOrder(page,mgtShopAllOrderPageDto);
        return R.ok(page.setRecords(shopAllOrderPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtShopAllOrder", method = RequestMethod.POST)
    @ApiOperation(value = "导出平台获取商户订单记录")
    public void pageMgtShopAllOrder(MgtShopAllOrderPageDto mgtShopAllOrderPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopAllOrderPageDto.setUserId(userId);
        Page<MgtShopAllOrderPageVo> page = new Page<>();
        page.setSize(mgtShopAllOrderPageDto.getPageSize());
        page.setCurrent(mgtShopAllOrderPageDto.getPageNum());
        List<MgtShopAllOrderPageVo> shopAllOrderPageVoList = orderService.pageMgtShopAllOrder(page,mgtShopAllOrderPageDto);
        ExcelUtil<MgtShopAllOrderPageVo> util = new ExcelUtil<MgtShopAllOrderPageVo>(MgtShopAllOrderPageVo.class);
        util.exportExcel(response, shopAllOrderPageVoList, "商户订单记录");
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/dto/MgtShopAllOrderPageDto.java
New file
@@ -0,0 +1,35 @@
package com.ruoyi.order.domain.dto;
import com.ruoyi.system.api.domain.dto.MgtPageDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @ClassName MgtShopAllOrderPageDto
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/5 20:14
 * @Version 1.0
 */
@Data
public class MgtShopAllOrderPageDto extends MgtPageDto {
    @ApiModelProperty(value = "订单号")
    private String orderNo;
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private Integer orderStatus;
    @ApiModelProperty(value = "订单开始日期")
    private String startOrderDate;
    @ApiModelProperty(value = "订单结束日期")
    private String endOrderDate;
    @ApiModelProperty(value = "订单来源1.店铺商品2.平台秒杀活动3.线下创建")
    private Integer orderFrom;
    @ApiModelProperty(value = "商户id")
    private Long shopId;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopAllOrderPageVo.java
New file
@@ -0,0 +1,61 @@
package com.ruoyi.order.domain.vo;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
/**
 * @ClassName MgtShopAllOrderPageVo
 * @Description TODO
 * @Author jqs
 * @Date 2023/7/5 20:10
 * @Version 1.0
 */
@Data
public class MgtShopAllOrderPageVo {
    @ApiModelProperty("订单id")
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @Excel(name = "客户信息", width = 30)
    @ApiModelProperty(value = "客户信息")
    private String userInfo;
    @ApiModelProperty("订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsPageVoList;
    @Excel(name = "商品信息", width = 30)
    @ApiModelProperty("商品信息")
    private String goodsInfo;
    @Excel(name = "订单金额", width = 30)
    @ApiModelProperty("订单金额")
    private BigDecimal orderMoney;
    @Excel(name = "优惠金额", width = 30)
    @ApiModelProperty("优惠金额")
    private BigDecimal discountMoney;
    @Excel(name = "应付金额", width = 30)
    @ApiModelProperty("应付金额")
    private BigDecimal receivableMoney;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "订单来源", width = 30)
    @ApiModelProperty("订单来源")
    private String orderFrom;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -494,4 +494,15 @@
     * @return  MerTotalOrderVo
     */
    MerTotalOrderVo totalMerOrder(@Param("shopId")Long shopId);
    /**
     * @description  平台获取商户订单记录
     * @author  jqs
     * @date    2023/7/5 20:17
     * @param page
     * @param mgtShopAllOrderPageDto
     * @return  List<MgtShopAllOrderPageVo>
     */
    List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, @Param("param")MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1358,6 +1358,16 @@
                BigDecimal unPaidMoney = mgtShopOrderPageVo.getReceivableMoney().subtract(mgtShopOrderPageVo.getPayMoney());
                mgtShopOrderPageVo.setUnPaidMoney(unPaidMoney == null ? zeroBig : unPaidMoney);
            }
            //处理商品信息
            List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList;
            String goodsString;
            for(MgtShopOrderPageVo entity : shopOrderPageVoList){
                mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList();
                goodsString = mgtOrderGoodsVoList.stream()
                        .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum())
                        .collect(Collectors.joining(";"));
                entity.setGoodsInfo(goodsString);
            }
        }
        return shopOrderPageVoList;
    }
@@ -2265,4 +2275,55 @@
    public MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto){
        return orderMapper.totalMerOrder(merBaseDto.getShopId());
    }
    /**
     * @description  平台获取商户订单记录
     * @author  jqs
     * @date    2023/7/5 20:17
     * @param page
     * @param mgtShopAllOrderPageDto
     * @return  List<MgtShopAllOrderPageVo>
     */
    @Override
    public List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto){
        List<MgtShopAllOrderPageVo> shopAllOrderPageVoList = orderMapper.pageMgtShopAllOrder(page, mgtShopAllOrderPageDto);
        if(!shopAllOrderPageVoList.isEmpty()){
            // 定义变量
            HashSet<Long> userIdSet = new HashSet<>();
            BigDecimal zeroBig = new BigDecimal("0.00");
            // 遍历列表,获取店铺 ID 和用户 ID
            for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) {
                userIdSet.add(mgtShopOrderPageVo.getUserId());
            }
            // 从远程服务获取店铺和用户信息
            Map<Long, MgtSimpleMemberVo> userMap = null;
            if (userIdSet != null && !userIdSet.isEmpty()) {
                String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
                MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
                mgtBaseBathDto.setIds(userJoinedString);
                List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
                userMap = simpleMemberVoList.stream()
                        .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            }
            // 遍历列表,设置店铺名称、用户名称和未支付金额
            for (MgtShopAllOrderPageVo mgtShopOrderPageVo : shopAllOrderPageVoList) {
                if (userMap != null && !userMap.isEmpty()) {
                    if (userMap.get(mgtShopOrderPageVo.getUserId()) != null) {
                        mgtShopOrderPageVo.setUserInfo(userMap.get(mgtShopOrderPageVo.getUserId()).getNickName()+"("+userMap.get(mgtShopOrderPageVo.getUserId()).getUserMobile()+")");
                    }
                }
            }
            //处理商品信息
            List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList;
            String goodsString;
            for(MgtShopAllOrderPageVo entity : shopAllOrderPageVoList){
                mgtOrderGoodsVoList = entity.getMgtOrderGoodsPageVoList();
                goodsString = mgtOrderGoodsVoList.stream()
                        .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum())
                        .collect(Collectors.joining(";"));
                entity.setGoodsInfo(goodsString);
            }
        }
        return shopAllOrderPageVoList;
    }
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -350,4 +350,14 @@
     * @return  MerTotalOrderVo
     */
    MerTotalOrderVo totalMerOrder(MerBaseDto merBaseDto);
    /**
     * @description  平台获取商户订单记录
     * @author  jqs
     * @date    2023/7/5 20:17
     * @param page
     * @param mgtShopAllOrderPageDto
     * @return  List<MgtShopAllOrderPageVo>
     */
    List<MgtShopAllOrderPageVo> pageMgtShopAllOrder(Page page, MgtShopAllOrderPageDto mgtShopAllOrderPageDto);
}
ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -80,7 +80,7 @@
        <result column="payMoney" property="payMoney"/>
        <result column="orderFrom" property="orderFrom" />
        <result column="createTime" property="createTime" />
        <collection property="mgtOrderGoodsVoList" ofType="com.ruoyi.order.domain.vo.MerOrderGoodsPageVo">
        <collection property="mgtOrderGoodsVoList" ofType="com.ruoyi.order.domain.vo.MgtOrderGoodsPageVo">
            <result column="goodsName" property="goodsName"/>
            <result column="buyNum" property="buyNum"/>
        </collection>
@@ -94,11 +94,26 @@
        <result column="orderMoney" property="orderMoney"/>
        <result column="createTime" property="createTime"/>
        <result column="receivableMoney" property="receivableMoney"/>
        <result column="discountMoney" property="discountMoney"/>
        <result column="payMoney" property="payMoney"/>
        <result column="unPaidMoney" property="unPaidMoney"/>
        <result column="orderFrom" property="orderFrom"/>
        <result column="shopId" property="shopId"/>
        <result column="verifyTime" property="verifyTime"/>
        <collection property="mgtOrderGoodsPageVoList" ofType="com.ruoyi.order.domain.vo.MgtOrderGoodsPageVo">
            <result column="goodsName" property="goodsName"/>
            <result column="buyNum" property="buyNum"/>
        </collection>
    </resultMap>
    <resultMap id="mgtShopAllOrderResultMap" type="com.ruoyi.order.domain.vo.MgtShopAllOrderPageVo">
        <result column="orderId" property="orderId"/>
        <result column="orderNo" property="orderNo"/>
        <result column="userId" property="userId"/>
        <result column="orderMoney" property="orderMoney"/>
        <result column="receivableMoney" property="receivableMoney"/>
        <result column="discountMoney" property="discountMoney"/>
        <result column="payMoney" property="payMoney"/>
        <result column="orderFrom" property="orderFrom"/>
        <collection property="mgtOrderGoodsPageVoList" ofType="com.ruoyi.order.domain.vo.MgtOrderGoodsPageVo">
            <result column="goodsName" property="goodsName"/>
            <result column="buyNum" property="buyNum"/>
@@ -579,7 +594,7 @@
        toc.pay_money payMoney,
        toc.shop_id shopId,
        toc.use_time verifyTime,
        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 3 THEN '线下创建' END orderFrom
        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 2 THEN '秒杀活动' WHEN 3 THEN '线下创建' END 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_from = 1 OR toc.order_from = 3)
@@ -610,9 +625,9 @@
    <select id="boardOrderTotal" resultType="com.ruoyi.system.api.domain.vo.MgtBulletinBoardVo">
        SELECT
            SUM(CASE WHEN order_status = 3 THEN pay_money ELSE 0 END) salesTotal,
            SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END) UnUseOrderTotal,
            SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END) activityOrderTotal
            IFNULL(SUM(CASE WHEN order_status = 3 THEN pay_money ELSE 0 END),0) salesTotal,
            IFNULL(SUM(CASE WHEN order_status = 2 THEN 1 ELSE 0 END),0) UnUseOrderTotal,
            IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityOrderTotal
        FROM t_order
        WHERE del_flag = 0
    </select>
@@ -620,13 +635,13 @@
    <select id="getTotalOrderTotalOrderFrom" resultType="com.ruoyi.order.domain.vo.MgtTotalOrderTotalVo">
        SELECT
        COUNT(order_id) orderTotal,
        SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END) onlineTotal,
        SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END) offlineTotal,
        SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END) activityTotal,
        IFNULL(SUM(CASE WHEN order_from = 1 THEN 1 ELSE 0 END),0) onlineTotal,
        IFNULL(SUM(CASE WHEN order_from = 3 THEN 1 ELSE 0 END),0) offlineTotal,
        IFNULL(SUM(CASE WHEN order_from = 2 THEN 1 ELSE 0 END),0) activityTotal,
        IFNULL(SUM(order_money),0) orderMoney,
        SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END) onlineMoney,
        SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END) offlineMoney,
        SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END) activityMoney
        IFNULL(SUM(CASE WHEN order_from = 1 THEN order_money ELSE 0 END),0) onlineMoney,
        IFNULL(SUM(CASE WHEN order_from = 3 THEN order_money ELSE 0 END),0) offlineMoney,
        IFNULL(SUM(CASE WHEN order_from = 2 THEN order_money ELSE 0 END),0) activityMoney
        FROM t_order WHERE del_flag = 0
        <if test="param.shopId != null and param.shopId != ''">
            AND shop_id = #{param.shopId}
@@ -862,7 +877,7 @@
    <select id="shopSalesTotal" resultType="java.math.BigDecimal">
        SELECT IFNULL(SUM(pay_money),0)
        FROM t_order
        WHERE o.del_flag = 0
        WHERE del_flag = 0
        <if test="param.shopId != null and param.shopId != ''">
            AND shop_id = #{param.shopId}
        </if>
@@ -1363,4 +1378,40 @@
        FROM t_order
        WHERE del_flag = 0 AND shop_id = #{shopId}
    </select>
    <select id="pageMgtShopAllOrder" resultMap="mgtShopAllOrderResultMap">
        SELECT
        toc.order_id orderId,
        toc.order_no orderNo,
        toc.user_id userId,
        tog.goods_name goodsName,
        tog.buy_num buyNum,
        toc.order_money orderMoney,
        toc.discount_money discountMoney,
        toc.receivable_money receivableMoney,
        toc.pay_money payMoney,
        CASE toc.order_from WHEN 1 THEN '小程序' WHEN 2 THEN CONCAT('秒杀活动(',toc.activity_name,')') WHEN 3 THEN '线下创建' END 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_from = 1 OR toc.order_from = 3)
        <if test="param.orderFrom != null">
            AND toc.order_from = #{param.orderFrom}
        </if>
        <if test="param.orderStatus != null">
            AND toc.order_status = #{param.orderStatus}
        </if>
        <if test="param.orderNo != null and param.orderNo !=''">
            AND toc.order_no LIKE CONCAT('%',#{param.orderNo},'%')
        </if>
        <if test="param.shopId != null and param.shopId != ''">
            AND toc.shop_id = #{param.shopId}
        </if>
        <if test="param.startOrderDate != null and param.startOrderDate != '' ">
            AND toc.create_time &gt;= #{param.startOrderDate}
        </if>
        <if test="param.endOrderDate != null and param.endOrderDate != '' ">
            AND toc.create_time &lt;= #{param.endOrderDate}
        </if>
        ORDER BY toc.create_time DESC
    </select>
</mapper>
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/console/ShopController.java
@@ -233,5 +233,17 @@
        return R.ok(shopIdList);
    }
    /**
     * @description  获取未回复数量
     * @author  jqs
     * @date    2023/7/5 12:49
     * @param
     * @return  R<Integer>
     */
    @PostMapping("/getUnReplaySuggestVo")
    public R<Integer> getUnReplaySuggestVo()
    {
        Integer count = shopSuggestService.getUnReplaySuggestVo();
        return R.ok(count);
    }
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -69,7 +69,7 @@
    @RequestMapping(value = "/exportPageMgtShop", method = RequestMethod.POST)
    @ApiOperation(value = "导出商户列表")
    public void exportPageMgtShop(@RequestBody MgtShopPageDto mgtShopPageDto, HttpServletResponse response) {
    public void exportPageMgtShop(MgtShopPageDto mgtShopPageDto, HttpServletResponse response) {
        Page<MgtShopPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
@@ -171,7 +171,7 @@
    @RequestMapping(value = "/exportPageMgtShopSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出商户建议列表")
    public void exportPageMgtShopSuggest(@RequestBody MgtShopSuggestPageDto mgtShopSuggestPageDto, HttpServletResponse response) {
    public void exportPageMgtShopSuggest(MgtShopSuggestPageDto mgtShopSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopSuggestPageDto.setUserId(userId);
        Page<MgtShopSuggestPageVo> page = new Page<>();
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopTaskRecordPageVo.java
@@ -37,7 +37,7 @@
    private Date createTime;
    @ApiModelProperty("跟踪类型1电话2手动")
    private Integer followType;
    private String followType;
    @ApiModelProperty("电话时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/impl/shop/ShopSuggestServiceImpl.java
@@ -1,6 +1,7 @@
package com.ruoyi.shop.service.impl.shop;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.utils.DateUtils;
@@ -188,4 +189,19 @@
        shopSuggest.setSuggestTags(mgtTagShopSuggestDto.getSuggestTags());
        this.saveOrUpdate(shopSuggest);
    }
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    @Override
    public Integer getUnReplaySuggestVo(){
        LambdaQueryWrapper<ShopSuggest> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(ShopSuggest::getDelFlag,0);
        queryWrapper.eq(ShopSuggest::getReplayFlag,0);
        return this.count(queryWrapper);
    }
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/service/shop/ShopSuggestService.java
@@ -83,4 +83,14 @@
    * @date 2023/6/11 17:34
    */
    void mgtEditShopSuggestTag(MgtTagShopSuggestDto mgtTagShopSuggestDto);
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    Integer getUnReplaySuggestVo();
}
ruoyi-modules/ruoyi-shop/src/main/resources/mapper/task/MemberTaskRecordMapper.xml
@@ -108,7 +108,7 @@
        INNER JOIN t_member_task_record tmtr ON tmtr.task_id = tmt.task_id
        INNER JOIN t_shop ts ON ts.shop_id = tmt.shop_id
        INNER JOIN t_shop_file tsf ON tsf.shop_id = ts.shop_id AND tsf.del_flag = 0 AND tsf.file_type = 1
        WHERE tmt.del_flag = 0 AND tmt.user_id = #{param.memberUserId} AND tmr.task_date =  #{param.taskDate}
        WHERE tmt.del_flag = 0 AND tmt.user_id = #{param.memberUserId} AND tmt.task_date =  #{param.taskDate}
        ORDER BY tmt.task_date DESC
    </select>
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/conslole/ConfigController.java
@@ -143,4 +143,6 @@
        Activeness activeness = activenessService.getActivenessByName(name);
        return R.ok(activeness);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
@@ -33,7 +33,7 @@
 * @Date 2023/6/6 9:14
 * @Version 1.0
 */
@Api(value = "平台端配置相关接口", tags = "平台端配置相关接口", description = "平台端配置相关接口")
@Api(value = "管理后台配置相关接口", tags = "管理后台配置相关接口", description = "管理后台配置相关接口")
@RestController
@RequestMapping("/mgt/config")
public class MgtConfigController {
@@ -481,4 +481,6 @@
        MgtBulletinBoardVo bulletinBoard = customConfigService.getBulletinBoard();
        return R.ok(bulletinBoard);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
@@ -33,7 +33,7 @@
 * @description: TODO
 * @date 2023 2023/6/11 18:36
 */
@Api(value = "平台端员工相关接口", tags = "平台端员工相关接口", description = "平台端员工相关接口")
@Api(value = "管理后台员工相关接口", tags = "管理后台员工相关接口", description = "管理后台员工相关接口")
@RestController
@RequestMapping("/mgt/staff")
public class MgtStaffController {
@@ -76,7 +76,7 @@
    @RequestMapping(value = "/exportPageMgtStaffSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出员工建议列表")
    public void exportPageMgtStaffSuggest(@RequestBody MgtStaffSuggestPageDto mgtStaffSuggestPageDto, HttpServletResponse response) {
    public void exportPageMgtStaffSuggest(MgtStaffSuggestPageDto mgtStaffSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtStaffSuggestPageDto.setUserId(userId);
        Page<MgtStaffSuggestPageVo> page = new Page<>();
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/sys/SysUserController.java
@@ -382,4 +382,18 @@
        userService.editUserMenu(userMenuEditDto);
        return R.ok();
    }
    /**
     * @description  冻结用户
     * @author  jqs
     * @date    2023/6/29 17:20
     * @param userId
     * @return  R<Activeness>
     */
    @PostMapping("/frozenUser")
    public R frozenUser(@RequestBody Long userId)
    {
        userService.frozenUser(userId);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/StaffSuggestService.java
@@ -66,4 +66,13 @@
    * @date 2023/6/11 18:49
    */
    void mgtEditStaffSuggestTag(MgtTagStaffSuggestDto mgtTagStaffSuggestDto);
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    Integer getUnReplaySuggestVo();
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/CustomConfigServiceImpl.java
@@ -18,10 +18,7 @@
import com.ruoyi.system.domain.vo.MgtAllCustomConfigVo;
import com.ruoyi.system.domain.vo.MgtOperLogPageVo;
import com.ruoyi.system.mapper.config.CustomConfigMapper;
import com.ruoyi.system.service.config.ActivenessService;
import com.ruoyi.system.service.config.AdvertService;
import com.ruoyi.system.service.config.CustomConfigService;
import com.ruoyi.system.service.config.RecommendCooperationService;
import com.ruoyi.system.service.config.*;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -63,6 +60,9 @@
    @Resource
    private RemoteActivityService remoteActivityService;
    @Resource
    private StaffSuggestService staffSuggestService;
    /**
     * @param key
@@ -528,6 +528,11 @@
        // 获取活动信息
        MgtBulletinBoardVo mgtBulletinBoardVoActivity = remoteActivityService.boardActivityTotal().getData();
        mgtBulletinBoardVo.setActivityUserTotal(mgtBulletinBoardVoActivity.getActivityUserTotal());
        //待回复建议数量
        Integer countA = remoteMemberService.getUnReplaySuggestVo().getData();
        Integer countB = remoteShopService.getUnReplaySuggestVo().getData();
        Integer countC = staffSuggestService.getUnReplaySuggestVo();
        mgtBulletinBoardVo.setUnReplaySuggestTotal(countA+countB+countC);
        // 返回 MgtBulletinBoardVo 对象
        return mgtBulletinBoardVo;
    }
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/StaffSuggestServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.system.service.impl.config;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.utils.DateUtils;
import com.ruoyi.common.core.utils.StringUtils;
@@ -157,4 +158,19 @@
        staffSuggest.setSuggestTags(mgtTagStaffSuggestDto.getSuggestTags());
        this.saveOrUpdate(staffSuggest);
    }
    /**
     * @description  获取会员未回复建议数量
     * @author  jqs
     * @date    2023/7/5 12:46
     * @param
     * @return  Integer
     */
    @Override
    public Integer getUnReplaySuggestVo(){
        LambdaQueryWrapper<StaffSuggest> queryWrapper = new LambdaQueryWrapper<>();
        queryWrapper.eq(StaffSuggest::getDelFlag,0);
        queryWrapper.eq(StaffSuggest::getReplayFlag,0);
        return this.count(queryWrapper);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/sys/SysUserServiceImpl.java
@@ -705,4 +705,18 @@
    public void updateOnlyUser(SysUser sysUser){
        userMapper.updateUser(sysUser);
    }
    /**
     * @description
     * @author  jqs
     * @date    2023/7/5 21:24
     * @param userId
     * @return  void
     */
    @Override
    public void frozenUser(Long userId){
        SysUser sysUser = this.selectUserById(userId);
        sysUser.setStatus("1");
        userMapper.updateUser(sysUser);
    }
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/sys/ISysUserService.java
@@ -274,4 +274,13 @@
     * @return  void
     */
    void updateOnlyUser(SysUser sysUser);
    /**
     * @description  冻结用户
     * @author  jqs
     * @date    2023/7/5 21:24
     * @param userId
     * @return  void
     */
    void frozenUser(Long userId);
}