jiangqs
2023-06-24 ec09e9f2c72ff37654076c327008ac89ed32a8c3
导入导出
28个文件已修改
3个文件已添加
776 ■■■■■ 已修改文件
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityRecordPageDto.java 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityRecordPageVo.java 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java 56 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberIntegralPageVo.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java 44 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java 26 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagImportDto.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOperLogPageVo.java 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java
@@ -2,11 +2,14 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.goods.domain.dto.MgtActivityEditDto;
import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.vo.MgtActivityGetVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import com.ruoyi.goods.service.activity.ActivityService;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import io.swagger.annotations.Api;
@@ -17,6 +20,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -49,7 +53,6 @@
        Page<MgtActivityPageVo> page = new Page<>();
        page.setSize(mgtActivityPageDto.getPageSize());
        page.setCurrent(mgtActivityPageDto.getPageNum());
        page.setOptimizeCountSql(false);
        List<MgtActivityPageVo> mgtActivityPageVoList = activityService.pageMgtActivity(page,mgtActivityPageDto);
        return R.ok(page.setRecords(mgtActivityPageVoList));
    }
@@ -71,4 +74,25 @@
        activityService.deleteMgtActivity(mgtBaseGetDto.getId());
        return R.ok();
    }
    @RequestMapping(value = "/pageMgtActivityRecord", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取活动参与记录列表")
    public R<Page<MgtActivityRecordPageVo>> pageMgtActivityRecord(@RequestBody MgtActivityRecordPageDto mgtActivityRecordPageDto) {
        Page<MgtActivityRecordPageVo> page = new Page<>();
        page.setSize(mgtActivityRecordPageDto.getPageSize());
        page.setCurrent(mgtActivityRecordPageDto.getPageNum());
        List<MgtActivityRecordPageVo> mgtActivityPageVoList = activityService.pageMgtActivityRecord(page,mgtActivityRecordPageDto);
        return R.ok(page.setRecords(mgtActivityPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtActivityRecord", method = RequestMethod.POST)
    @ApiOperation(value = "导出活动参与记录列表")
    public void exportPageMgtActivityRecord(@RequestBody MgtActivityRecordPageDto mgtActivityRecordPageDto, HttpServletResponse response) {
        Page<MgtActivityRecordPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtActivityRecordPageVo> activityRecordPageVoList = activityService.pageMgtActivityRecord(page,mgtActivityRecordPageDto);
        ExcelUtil<MgtActivityRecordPageVo> util = new ExcelUtil<MgtActivityRecordPageVo>(MgtActivityRecordPageVo.class);
        util.exportExcel(response, activityRecordPageVoList, "商品列表");
    }
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.goods.domain.dto.*;
import com.ruoyi.goods.domain.vo.MgtGoodsPageVo;
@@ -18,6 +19,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -46,6 +48,17 @@
        return R.ok(page.setRecords(mgtGoodsPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtGoods", method = RequestMethod.POST)
    @ApiOperation(value = "导出商品列表")
    public void exportPageMgtGoods(@RequestBody MgtGoodsPageDto mgtGoodsPageDto, HttpServletResponse response) {
        Page<MgtGoodsPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtGoodsPageVo> mgtGoodsPageVoList = goodsService.pageMgtGoods(page,mgtGoodsPageDto);
        ExcelUtil<MgtGoodsPageVo> util = new ExcelUtil<MgtGoodsPageVo>(MgtGoodsPageVo.class);
        util.exportExcel(response, mgtGoodsPageVoList, "商品列表");
    }
    @RequestMapping(value = "/getMgtGoodsTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取商品统计")
    public R<MgtGoodsTotalVo> getMgtGoodsTotal(@RequestBody MgtBaseDto mgtBaseDto) {
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityRecordPageDto.java
New file
@@ -0,0 +1,34 @@
package com.ruoyi.goods.domain.dto;
import com.ruoyi.system.api.domain.dto.MgtPageDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
 * @author jqs34
 * @version 1.0
 * @classname MgtActivityRecordPageDto
 * @description: TODO
 * @date 2023 2023/6/24 16:52
 */
@Data
public class MgtActivityRecordPageDto extends MgtPageDto {
    @ApiModelProperty(value = "活动id")
    private String activityId;
    @ApiModelProperty(value = "搜索关键词")
    private String keyword;
    @ApiModelProperty(value = "创建开始时间")
    private String createStartTime;
    @ApiModelProperty(value = "创建结束时间")
    private String createEndTime;
    @ApiModelProperty(value = "是否下单")
    private Integer orderFlag;
    @ApiModelProperty(value = "用户ids",hidden = true)
    private String userIds;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java
@@ -1,16 +1,16 @@
package com.ruoyi.goods.domain.pojo.activity;
import com.baomidou.mybatisplus.annotation.IdType;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;
import java.io.Serializable;
import java.math.BigDecimal;
/**
 * <p>
@@ -64,6 +64,9 @@
    @TableField("order_id")
    private String orderId;
    @TableField("create_time")
    private String createTime;
    @Override
    protected Serializable pkVal() {
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityRecordPageVo.java
New file
@@ -0,0 +1,36 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.Date;
/**
 * @author jqs34
 * @version 1.0
 * @classname MgtActivityRecordPageVo
 * @description: TODO
 * @date 2023 2023/6/24 16:50
 */
@Data
public class MgtActivityRecordPageVo {
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @Excel(name = "用户名称", width = 30)
    @ApiModelProperty(value = "用户名称")
    private String nickName;
    @Excel(name = "用户电话", width = 30)
    @ApiModelProperty(value = "用户电话")
    private String mobile;
    @Excel(name = "浏览时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "浏览时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "是否下单", width = 30)
    @ApiModelProperty(value = "是否下单")
    private String orderFlag;
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.goods.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,42 +22,55 @@
    @ApiModelProperty(value = "商品id")
    private String goodsId;
    @Excel(name = "商品名称", width = 30)
    @ApiModelProperty(value = "商品名称")
    private String goodsName;
    @Excel(name = "商品简介", width = 30)
    @ApiModelProperty(value = "商品简介")
    private String goodsIntroduction;
    @Excel(name = "商品分类", width = 30)
    @ApiModelProperty(value = "商品分类")
    private String goodsClass;
    @Excel(name = "商品标签", width = 30)
    @ApiModelProperty(value = "商品标签")
    private String goodsTags;
    @Excel(name = "商品图片", width = 30)
    @ApiModelProperty(value = "商品图片")
    private String goodsPicture;
    @Excel(name = "商品类型", width = 30)
    @ApiModelProperty(value = "商品类型1周期2服务3体验4单品")
    private String goodsType;
    @Excel(name = "商品建议售价", width = 30)
    @ApiModelProperty(value = "商品建议售价")
    private BigDecimal suggestSalesPrice;;
    @Excel(name = "最低售价", width = 30)
    @ApiModelProperty(value = "最低售价")
    private BigDecimal mininumPrice;;
    @Excel(name = "销量", width = 30)
    @ApiModelProperty(value = "销量")
    private Integer buyNumCount;
    @Excel(name = "销售额", width = 30)
    @ApiModelProperty(value = "销售额")
    private BigDecimal buyMoneyTotal;
    @Excel(name = "是否推荐", width = 30)
    @ApiModelProperty(value = "是否推荐")
    private String recommendFlag;
    @Excel(name = "商品状态", width = 30)
    @ApiModelProperty(value = "商品状态")
    private String goodsStatus;
    @Excel(name = "创建时间", width = 30, dateFormat  = "yyyy-MM-dd HH:mm:ss")
    @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
@@ -2,9 +2,11 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
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.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@@ -27,4 +29,14 @@
     * @return  List<MgtActivityPageVo>
     */
    List<MgtActivityPageVo> pageMgtActivity(Page page, @Param("param") MgtActivityPageDto mgtActivityPageDto);
    /**
     * @description 分页获取活动参与记录列表
     * @param mgtActivityRecordPageDto
     * @return MgtActivityRecordPageVo
     * @author jqs34
     * @date 2023/6/24 16:58
     */
    List<MgtActivityRecordPageVo> pageMgtActivityRecord(Page page, @Param("param")MgtActivityRecordPageDto mgtActivityRecordPageDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java
@@ -4,9 +4,11 @@
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.goods.domain.dto.MgtActivityEditDto;
import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.pojo.activity.Activity;
import com.ruoyi.goods.domain.vo.MgtActivityGetVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import java.util.List;
@@ -55,4 +57,13 @@
     * @return  void
     */
    void deleteMgtActivity(String activityId);
    /**
    * @description 分页获取活动参与记录列表
    * @param mgtActivityRecordPageDto
    * @return MgtActivityRecordPageVo
    * @author jqs34
    * @date 2023/6/24 16:58
    */
    List<MgtActivityRecordPageVo> pageMgtActivityRecord(Page page,MgtActivityRecordPageDto mgtActivityRecordPageDto);
}
ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java
@@ -8,11 +8,13 @@
import com.ruoyi.goods.domain.dto.MgtActivityEditDto;
import com.ruoyi.goods.domain.dto.MgtActivityGoodsEditDto;
import com.ruoyi.goods.domain.dto.MgtActivityPageDto;
import com.ruoyi.goods.domain.dto.MgtActivityRecordPageDto;
import com.ruoyi.goods.domain.pojo.activity.Activity;
import com.ruoyi.goods.domain.pojo.activity.ActivityTotal;
import com.ruoyi.goods.domain.vo.MgtActivityGetVo;
import com.ruoyi.goods.domain.vo.MgtActivityGoodsListVo;
import com.ruoyi.goods.domain.vo.MgtActivityPageVo;
import com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo;
import com.ruoyi.goods.mapper.activity.ActivityMapper;
import com.ruoyi.goods.service.activity.ActivityGoodsService;
import com.ruoyi.goods.service.activity.ActivityService;
@@ -20,15 +22,22 @@
import com.ruoyi.goods.service.activity.ActivityTotalService;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.dto.MgtBaseBathDto;
import com.ruoyi.system.api.domain.dto.MgtUserIdByKeywordDto;
import com.ruoyi.system.api.domain.poji.activity.ActivityGoods;
import com.ruoyi.system.api.domain.vo.MgtSimpleMemberVo;
import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo;
import com.ruoyi.system.api.domain.vo.MgtUserIdByKeywordVo;
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.service.RemoteShopService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.function.Function;
import java.util.stream.Collectors;
/**
@@ -53,6 +62,10 @@
    @Resource
    private RemoteShopService remoteShopService;
    @Resource
    private RemoteMemberService remoteMemberService;
    /**
     * @param mgtActivityEditDto
     * @return void
@@ -199,4 +212,46 @@
        activity.setActivityStatus(-1);
        this.saveOrUpdate(activity);
    }
    /**
     * @description 分页获取活动参与记录列表
     * @param mgtActivityRecordPageDto
     * @return MgtActivityRecordPageVo
     * @author jqs34
     * @date 2023/6/24 16:58
     */
    @Override
    public List<MgtActivityRecordPageVo> pageMgtActivityRecord(Page page, MgtActivityRecordPageDto mgtActivityRecordPageDto){
        if(StringUtils.isNotBlank(mgtActivityRecordPageDto.getKeyword())){
            MgtUserIdByKeywordDto mgtUserIdByKeywordDto = new MgtUserIdByKeywordDto();
            mgtUserIdByKeywordDto.setKeyword(mgtActivityRecordPageDto.getKeyword());
            MgtUserIdByKeywordVo mgtUserIdByKeywordVo = remoteMemberService.getUserIdByKeyword(mgtUserIdByKeywordDto).getData();
            if(StringUtils.isNotBlank(mgtUserIdByKeywordVo.getUserIds())){
                mgtActivityRecordPageDto.setUserIds(mgtUserIdByKeywordVo.getUserIds());
            }
        }
        List<MgtActivityRecordPageVo> activityRecordPageVoList = activityMapper.pageMgtActivityRecord(page, mgtActivityRecordPageDto);
        if(!activityRecordPageVoList.isEmpty()){
            // 定义变量
            HashSet<Long> userIdSet = new HashSet<>();
            // 遍历列表,用户 ID
            for (MgtActivityRecordPageVo mgtActivityRecordPageVo : activityRecordPageVoList) {
                userIdSet.add(mgtActivityRecordPageVo.getUserId());
            }
            // 将店铺 ID 和用户 ID 转换为逗号分隔的字符串
            String userJoinedString = String.join(",", userIdSet.stream().map(Object::toString).collect(Collectors.toList()));
            // 从远程服务获取店铺和用户信息
            MgtBaseBathDto mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto = new MgtBaseBathDto();
            mgtBaseBathDto.setIds(userJoinedString);
            List<MgtSimpleMemberVo> simpleMemberVoList = remoteMemberService.listSimpleVoByIds(mgtBaseBathDto).getData();
            Map<Long, MgtSimpleMemberVo> userMap = simpleMemberVoList.stream()
                    .collect(Collectors.toMap(MgtSimpleMemberVo::getUserId, Function.identity()));
            for (MgtActivityRecordPageVo mgtActivityRecordPageVo : activityRecordPageVoList) {
                mgtActivityRecordPageVo.setNickName(userMap.get(mgtActivityRecordPageVo.getUserId()).getNickName()+"/"+(userMap.get(mgtActivityRecordPageVo.getUserId()).getRealName()));
                mgtActivityRecordPageVo.setMobile(userMap.get(mgtActivityRecordPageVo.getUserId()).getUserMobile());
            }
        }
        return activityRecordPageVoList;
    }
}
ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml
@@ -50,4 +50,28 @@
        </if>
    </select>
    <select id="pageMgtActivityRecord" resultType="com.ruoyi.goods.domain.vo.MgtActivityRecordPageVo">
        SELECT
        user_id userId,
        create_time createTime,
        CASE WHEN order_id IS NOT NULL THEN '是' ELSE '否' END orderFlag
        FROM t_activity_record
        WHERE del_flag = 0 AND activity_id = #{param.activityId}
        <if test="param.userIds!=null and param.userIds != ''">
            AND FIND_IN_SET(#{param.userIds}, user_id) &gt; 0
        </if>
        <if test="param.createStartTime!=null and param.createStartTime != ''">
            AND create_time &gt;= #{param.createStartTime}
        </if>
        <if test="param.createEndTime!=null and param.createEndTime != ''">
            AND create_time &lt;= #{createEndTime}
        </if>
        <if test="param.orderFlag!=null and param.orderFlag == 1">
            AND order_id IS NOT NULL
        </if>
        <if test="param.orderFlag!=null and param.orderFlag == 0">
            AND order_id IS NULL
        </if>
    </select>
</mapper>
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.member.domain.dto.*;
import com.ruoyi.member.domain.vo.*;
@@ -15,6 +16,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -54,6 +56,17 @@
        page.setCurrent(mgtMemberPageDto.getPageNum());
        List<MgtMemberPageVo> mgtShopPageVoList = memberService.pageMgtMember(page,mgtMemberPageDto);
        return R.ok(page.setRecords(mgtShopPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtMember", method = RequestMethod.POST)
    @ApiOperation(value = "导出会员列表")
    public void exportPageMgtMember(@RequestBody MgtMemberPageDto mgtMemberPageDto, HttpServletResponse response) {
        Page<MgtMemberPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtMemberPageVo> mgtShopPageVoList = memberService.pageMgtMember(page,mgtMemberPageDto);
        ExcelUtil<MgtMemberPageVo> util = new ExcelUtil<MgtMemberPageVo>(MgtMemberPageVo.class);
        util.exportExcel(response, mgtShopPageVoList, "用户管理");
    }
    @RequestMapping(value = "/editMemberRelationShop", method = RequestMethod.POST)
@@ -100,10 +113,23 @@
        Long userId = SecurityUtils.getUserId();
        mgtMemberIntegralPageDto.setUserId(userId);
        Page<MgtMemberIntegralPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtMemberIntegralPageVo> mgtMemberIntegralPageVoList = integralRecordService.pageMgtMemberIntegral(page,mgtMemberIntegralPageDto);
        return R.ok(page.setRecords(mgtMemberIntegralPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtMemberIntegral", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户积分列表")
    public void exportPageMgtMemberIntegral(@RequestBody MgtMemberIntegralPageDto mgtMemberIntegralPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberIntegralPageDto.setUserId(userId);
        Page<MgtMemberIntegralPageVo> page = new Page<>();
        page.setSize(mgtMemberIntegralPageDto.getPageSize());
        page.setCurrent(mgtMemberIntegralPageDto.getPageNum());
        List<MgtMemberIntegralPageVo> mgtMemberIntegralPageVoList = integralRecordService.pageMgtMemberIntegral(page,mgtMemberIntegralPageDto);
        return R.ok(page.setRecords(mgtMemberIntegralPageVoList));
        ExcelUtil<MgtMemberIntegralPageVo> util = new ExcelUtil<MgtMemberIntegralPageVo>(MgtMemberIntegralPageVo.class);
        util.exportExcel(response, mgtMemberIntegralPageVoList, "用户积分列表");
    }
    @RequestMapping(value = "/pageMgtMemberBrowse", method = RequestMethod.POST)
@@ -116,6 +142,19 @@
        page.setCurrent(mgtMemberBrowsePageDto.getPageNum());
        List<MgtMemberBrowsePageVo> mgtMemberBrowsePageVoList = browseRecordService.pageMgtMemberBrowse(page,mgtMemberBrowsePageDto);
        return R.ok(page.setRecords(mgtMemberBrowsePageVoList));
    }
    @RequestMapping(value = "/exportPageMgtMemberBrowse", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户浏览记录")
    public void exportPageMgtMemberBrowse(@RequestBody MgtMemberBrowsePageDto mgtMemberBrowsePageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberBrowsePageDto.setUserId(userId);
        Page<MgtMemberBrowsePageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtMemberBrowsePageVo> mgtMemberBrowsePageVoList = browseRecordService.pageMgtMemberBrowse(page,mgtMemberBrowsePageDto);
        ExcelUtil<MgtMemberBrowsePageVo> util = new ExcelUtil<MgtMemberBrowsePageVo>(MgtMemberBrowsePageVo.class);
        util.exportExcel(response, mgtMemberBrowsePageVoList, "用户浏览记录");
    }
    @RequestMapping(value = "/editMemberArchiveFields", method = RequestMethod.POST)
@@ -138,6 +177,19 @@
        page.setCurrent(memberSuggestPageDto.getPageNum());
        List<MgtMemberSuggestPageVo> mgtMemberSuggestPageVoList = memberSuggestService.pageMgtMemberSuggest(page,memberSuggestPageDto);
        return R.ok(page.setRecords(mgtMemberSuggestPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtMemberSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户建议列表")
    public void exportPageMgtMemberSuggest(@RequestBody MgtMemberSuggestPageDto memberSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        memberSuggestPageDto.setUserId(userId);
        Page<MgtMemberSuggestPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtMemberSuggestPageVo> mgtMemberSuggestPageVoList = memberSuggestService.pageMgtMemberSuggest(page,memberSuggestPageDto);
        ExcelUtil<MgtMemberSuggestPageVo> util = new ExcelUtil<MgtMemberSuggestPageVo>(MgtMemberSuggestPageVo.class);
        util.exportExcel(response, mgtMemberSuggestPageVoList, "用户建议列表");
    }
    @RequestMapping(value = "/mgtReplayMemberSuggest", method = RequestMethod.POST)
@@ -165,4 +217,6 @@
        memberSuggestService.mgtEditMemberSuggestTag(mgtTagMemberSuggestDto);
        return R.ok();
    }
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,15 +17,19 @@
@Data
public class MgtMemberBrowsePageVo {
    @Excel(name = "浏览类型", width = 30)
    @ApiModelProperty(value = "浏览类型1鸿瑞学堂2营销活动3商城商品4关于鸿瑞堂5申请加盟")
    private String browseType;
    @Excel(name = "浏览名称", width = 30)
    @ApiModelProperty(value = "浏览名称")
    private String browseName;
    @Excel(name = "浏览时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "浏览时间")
    private String browseTime;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberIntegralPageVo.java
@@ -1,7 +1,7 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.system.api.domain.dto.MgtPageDto;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,19 +17,24 @@
@Data
public class MgtMemberIntegralPageVo {
    @Excel(name = "记录id", width = 30)
    @ApiModelProperty(value = "记录id")
    private Long recordId;
    @Excel(name = "变动时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "变动时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "变动积分", width = 30)
    @ApiModelProperty(value = "变动积分")
    private Integer changeIntegral;
    @Excel(name = "剩余积分", width = 30)
    @ApiModelProperty(value = "剩余积分")
    private Integer surpIntegral;
    @Excel(name = "变动理由", width = 30)
    @ApiModelProperty(value = "变动理由")
    private String changeReason;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,67 +19,88 @@
public class MgtMemberPageVo {
    @ApiModelProperty(value = "会员id")
    @Excel(name = "会员id", width = 30)
    private String memberId;
    @ApiModelProperty(value = "用户id")
    @Excel(name = "用户id", width = 30)
    private Long userId;
    @ApiModelProperty(value = "会员编号")
    @Excel(name = "会员编号", width = 30)
    private String memberNo;
    @ApiModelProperty(value = "用户姓名")
    @Excel(name = "用户姓名", width = 30)
    private String realName;
    @ApiModelProperty(value = "用户昵称")
    @Excel(name = "用户昵称", width = 30)
    private String nickName;
    @ApiModelProperty(value = "用户手机")
    @Excel(name = "用户手机", width = 30)
    private String mobile;
    @ApiModelProperty(value = "用户性别")
    @Excel(name = "用户性别", width = 30)
    private String gender;
    @ApiModelProperty(value = "用户年龄")
    @Excel(name = "用户年龄", width = 30)
    private Integer age;
    @ApiModelProperty(value = "活跃度")
    @Excel(name = "活跃度", width = 30)
    private String activeness;
    @ApiModelProperty(value = "用户标签 多个,隔开")
    @Excel(name = "用户标签", width = 30)
    private String memberTags;
    @ApiModelProperty(value = "所属地区")
    @Excel(name = "所属地区", width = 30)
    private String belongDistrict;
    @ApiModelProperty(value = "是否成为会员")
    @Excel(name = "是否成为会员", width = 30)
    private String memberFlag;
    @ApiModelProperty(value = "注册时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "注册时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty(value = "最近消费时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "最近消费时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date lastPayTime;
    @ApiModelProperty(value = "客户类型")
    @Excel(name = "客户类型", width = 30)
    private String goodsType;
    @ApiModelProperty(value = "关联商户名称")
    @Excel(name = "关联商户名称", width = 30)
    private String relationShopName;
    @ApiModelProperty(value = "积分")
    @Excel(name = "积分", width = 30)
    private Integer integral;
    @ApiModelProperty(value = "推荐人")
    @Excel(name = "推荐人", width = 30)
    private String referrer;
    @ApiModelProperty(value = "会员来源")
    @Excel(name = "会员来源", width = 30)
    private String memberFrom;
    @ApiModelProperty(value = "消费总金额")
    @Excel(name = "消费总金额", width = 30)
    private BigDecimal totalPayMoney;
    @ApiModelProperty(value = "活动参与次数")
    @Excel(name = "活动参与次数", width = 30)
    private Integer activityTotal;
}
ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.member.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -19,69 +20,60 @@
    @ApiModelProperty(value = "建议id")
    private Long suggestId;
    @Excel(name = "用户姓名", width = 30)
    @ApiModelProperty(value = "用户姓名")
    private String userRealName;
    @Excel(name = "用户昵称", width = 30)
    @ApiModelProperty(value = "用户昵称")
    private String userNickName;
    @Excel(name = "用户性别", width = 30)
    @ApiModelProperty(value = "用户性别")
    private String gender;
    @Excel(name = "用户手机", width = 30)
    @ApiModelProperty(value = "用户手机")
    private String userMobile;
    @Excel(name = "建议类型", width = 30)
    @ApiModelProperty(value = "建议类型1.平台2.门店")
    private String suggestType;
    @Excel(name = "建议内容", width = 30)
    @ApiModelProperty(value = "建议内容")
    private String suggestContent;
    @Excel(name = "平台回复内容", width = 30)
    @ApiModelProperty(value = "平台回复内容")
    private String replayContent;
    @Excel(name = "商户回复内容", width = 30)
    @ApiModelProperty(value = "商户回复内容")
    private String shopReplayContent;
    @Excel(name = "建议状态", width = 30)
    @ApiModelProperty(value = "建议状态")
    private String suggestStatus;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "回复人姓名", width = 30)
    @ApiModelProperty(value = "回复人姓名")
    private String replayUserName;
    @Excel(name = "回复时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "回复时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date replayTime;
    @Excel(name = "平台响应时间", width = 30)
    @ApiModelProperty(value = "平台响应时间")
    private String responseTime;
    @Excel(name = "商户回复人姓名", width = 30)
    @ApiModelProperty(value = "商户回复人姓名")
    private String shopReplayUserName;
    @Excel(name = "商户回复时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "商户回复时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date shopReplayTime;
    @Excel(name = "商户响应时间", width = 30)
    @ApiModelProperty(value = "商户响应时间")
    private String shopResponseTime;
    @Excel(name = "建议标签", width = 30)
    @ApiModelProperty(value = "建议标签")
    private String suggestTags;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.MgtMemberServiceRecordPageDto;
import com.ruoyi.order.domain.vo.MgtMemberServiceRecordPageVo;
@@ -16,6 +17,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -45,6 +47,19 @@
        return R.ok(page.setRecords(list));
    }
    @RequestMapping(value = "/exportPageMgtMemberServiceRecord", method = RequestMethod.POST)
    @ApiOperation(value = "导出用户服务记录列表")
    public void exportPageMgtMemberServiceRecord(@RequestBody MgtMemberServiceRecordPageDto mgtMemberServiceRecordPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberServiceRecordPageDto.setUserId(userId);
        Page<MgtMemberServiceRecordPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtMemberServiceRecordPageVo> list = userServiceRecordService.pageMgtMemberServiceRecord(page,mgtMemberServiceRecordPageDto);
        ExcelUtil<MgtMemberServiceRecordPageVo> util = new ExcelUtil<MgtMemberServiceRecordPageVo>(MgtMemberServiceRecordPageVo.class);
        util.exportExcel(response, list, "用户浏览记录");
    }
    @RequestMapping(value = "/getMgtMemberServiceTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取会员服务统计")
    public R<MgtMemberServiceTotalVo> getMgtMemberServiceTotal(@RequestBody MgtBaseGetDto mgtBaseGetDto) {
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.order.domain.dto.MgtMemberOrderPageDto;
import com.ruoyi.order.domain.dto.MgtMemberOrderTotalDto;
@@ -17,7 +18,9 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.stream.Collectors;
/**
 * @author jqs34
@@ -55,6 +58,30 @@
        return R.ok(page.setRecords(mgtMemberOrderPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtMemberOrder", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取用户订单列表")
    public void exportPageMgtMemberOrder(@RequestBody MgtMemberOrderPageDto mgtMemberOrderPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtMemberOrderPageDto.setUserId(userId);
        Page<MgtMemberOrderPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtMemberOrderPageVo> mgtMemberOrderPageVoList = orderService.pageMgtMemberOrder(page,mgtMemberOrderPageDto);
        if(!mgtMemberOrderPageVoList.isEmpty()){
            List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList;
            String goodsString;
            for(MgtMemberOrderPageVo entity : mgtMemberOrderPageVoList){
                mgtOrderGoodsVoList = entity.getMgtOrderGoodsVoList();
                goodsString = mgtOrderGoodsVoList.stream()
                        .map(goods -> goods.getGoodsName() + "*" + goods.getBuyNum())
                        .collect(Collectors.joining(";"));
                entity.setGoodsInfo(goodsString);
            }
        }
        ExcelUtil<MgtMemberOrderPageVo> util = new ExcelUtil<MgtMemberOrderPageVo>(MgtMemberOrderPageVo.class);
        util.exportExcel(response, mgtMemberOrderPageVoList, "用户订单列表");
    }
    @RequestMapping(value = "/getMgtOrderTotal", method = RequestMethod.POST)
    @ApiOperation(value = "获取订单统计")
    public R<MgtOrderTotal> getMgtOrderTotal(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) {
@@ -76,6 +103,19 @@
        return R.ok(page.setRecords(mgtActivityOrderPageVos));
    }
    @RequestMapping(value = "/exportPageMgtActivityOrder", method = RequestMethod.POST)
    @ApiOperation(value = "导出秒杀订单列表")
    public void exportPageMgtActivityOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopOrderPageDto.setUserId(userId);
        Page<MgtActivityOrderPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtActivityOrderPageVo> mgtActivityOrderPageVos = orderService.pageMgtActivityOrder(page,mgtShopOrderPageDto);
        ExcelUtil<MgtActivityOrderPageVo> util = new ExcelUtil<MgtActivityOrderPageVo>(MgtActivityOrderPageVo.class);
        util.exportExcel(response, mgtActivityOrderPageVos, "秒杀订单列表");
    }
    @RequestMapping(value = "/pageMgtShopOrder", method = RequestMethod.POST)
    @ApiOperation(value = "平台获取门店订单列表")
    public R<Page<MgtShopOrderPageVo>> pageMgtShopOrder(@RequestBody MgtShopOrderPageDto mgtShopOrderPageDto) {
@@ -88,6 +128,29 @@
        return R.ok(page.setRecords(shopOrderPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtShopOrder", method = RequestMethod.POST)
    @ApiOperation(value = "导出门店订单列表")
    public void exportPageMgtShopOrder(@RequestBody 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, "门店订单列表");
    }
    @RequestMapping(value = "/getMgtOrderDetail", method = RequestMethod.POST)
    @ApiOperation(value = "获取订单详情")
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,58 +18,71 @@
@Data
public class MgtActivityOrderPageVo {
    @ApiModelProperty("订单id")
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    private String orderNo;
    @Excel(name = "秒杀活动", width = 30)
    @ApiModelProperty("秒杀活动")
    private String activityName;
    @ApiModelProperty(value = "用户id")
    private Long userId;
    @Excel(name = "用户昵称", width = 30)
    @ApiModelProperty(value = "用户昵称")
    private String nickName;
    @Excel(name = "用户姓名", width = 30)
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @Excel(name = "用户电话", width = 30)
    @ApiModelProperty(value = "用户电话")
    private String userMobile;
    @Excel(name = "商品名称", width = 30)
    @ApiModelProperty("商品名称")
    private String goodsName;
    @Excel(name = "秒杀价格", width = 30)
    @ApiModelProperty(value = "秒杀价格")
    private BigDecimal activityPrice;
    @Excel(name = "购买数量", width = 30)
    @ApiModelProperty("购买数量")
    private Integer buyNum;
    @Excel(name = "订单金额", width = 30)
    @ApiModelProperty("订单金额")
    private BigDecimal orderMoney;
    @Excel(name = "应付金额", width = 30)
    @ApiModelProperty("应付金额")
    private BigDecimal receivableMoney;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "订单未支付金额", width = 30)
    @ApiModelProperty("订单未支付金额")
    private BigDecimal unPaidMoney;
    @ApiModelProperty("核销店铺id")
    private Long shopId;
    @Excel(name = "核销店铺", width = 30)
    @ApiModelProperty("核销店铺")
    private String shopName;
    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,40 +22,53 @@
    @ApiModelProperty(value = "订单id")
    private String orderId;
    @Excel(name = "订单编号", width = 30)
    @ApiModelProperty("订单编号")
    private String orderNo;
    @ApiModelProperty("核销门店id")
    private Long shopId;
    @Excel(name = "核销门店", width = 30)
    @ApiModelProperty("核销门店")
    private String shopName;
    @Excel(name = "商品信息", width = 30)
    @ApiModelProperty("商品信息")
    private String goodsInfo;
    @Excel(name = "订单状态", width = 30)
    @ApiModelProperty(value = "订单状态0.已取消1.待支付2.待核销3.已完成")
    private String orderStatus;
    @Excel(name = "订单总价", width = 30)
    @ApiModelProperty(value = "订单总价")
    private BigDecimal orderMoney;
    @Excel(name = "优惠券抵扣", width = 30)
    @ApiModelProperty(value = "优惠券抵扣")
    private BigDecimal discountMoney;
    @Excel(name = "应收金额", width = 30)
    @ApiModelProperty("应收金额")
    private BigDecimal receivableMoney;
    @Excel(name = "订单实际支付金额", width = 30)
    @ApiModelProperty("订单实际支付金额")
    private BigDecimal payMoney;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @ApiModelProperty("订单来源")
    private Integer orderFrom;
    @Excel(name = "订单来源", width = 30)
    @ApiModelProperty("订单来源")
    private String orderFromDesc;
    @ApiModelProperty("核销门店id")
    private Long shopId;
    @ApiModelProperty("订单来源")
    private Integer orderFrom;
    @ApiModelProperty("订单商品列表")
    private List<MgtOrderGoodsPageVo> mgtOrderGoodsVoList;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -17,27 +18,32 @@
public class MgtMemberServiceRecordPageVo {
    @Excel(name = "服务类型", width = 30)
    @ApiModelProperty("服务类型1.周期2.服务3.体验")
    private Integer serviceType;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "服务商户id", width = 30)
    @ApiModelProperty("服务商户id")
    private Long shopId;
    @Excel(name = "服务商户", width = 30)
    @ApiModelProperty("服务商户")
    private String shopName;
    @Excel(name = "服务商品名称", width = 30)
    @ApiModelProperty("服务商品名称")
    private String consumerGoodsName;
    @Excel(name = "服务次数", width = 30)
    @ApiModelProperty("服务次数")
    private Integer serviceNum;
    @Excel(name = "剩余次数", width = 30)
    @ApiModelProperty("剩余次数")
    private Integer surpNum;
}
ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.order.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -21,49 +22,65 @@
    @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 nickName;
    @Excel(name = "用户姓名", width = 30)
    @ApiModelProperty(value = "用户姓名")
    private String userName;
    @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, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @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 BigDecimal unPaidMoney;
    @Excel(name = "订单来源", width = 30)
    @ApiModelProperty("订单来源")
    private String orderFrom;
    @ApiModelProperty("核销店铺id")
    private Long shopId;
    @Excel(name = "核销店铺", width = 30)
    @ApiModelProperty("核销店铺")
    private String shopName;
    @Excel(name = "核销时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty("核销时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date verifyTime;
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.shop.domain.dto.*;
import com.ruoyi.shop.domain.vo.*;
@@ -16,6 +17,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -60,6 +62,17 @@
        page.setCurrent(mgtShopPageDto.getPageNum());
        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
        return R.ok(page.setRecords(mgtShopPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtShop", method = RequestMethod.POST)
    @ApiOperation(value = "导出商户列表")
    public void exportPageMgtShop(@RequestBody MgtShopPageDto mgtShopPageDto, HttpServletResponse response) {
        Page<MgtShopPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtShopPageVo> mgtShopPageVoList = shopService.pageMgtShop(page,mgtShopPageDto);
        ExcelUtil<MgtShopPageVo> util = new ExcelUtil<MgtShopPageVo>(MgtShopPageVo.class);
        util.exportExcel(response, mgtShopPageVoList, "用户订单列表");
    }
    @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST)
@@ -140,6 +153,19 @@
        return R.ok(page.setRecords(mgtShopSuggestPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtShopSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出商户建议列表")
    public void exportPageMgtShopSuggest(@RequestBody MgtShopSuggestPageDto mgtShopSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtShopSuggestPageDto.setUserId(userId);
        Page<MgtShopSuggestPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtShopSuggestPageVo> mgtShopSuggestPageVoList = shopSuggestService.pageMgtShopSuggest(page,mgtShopSuggestPageDto);
        ExcelUtil<MgtShopSuggestPageVo> util = new ExcelUtil<MgtShopSuggestPageVo>(MgtShopSuggestPageVo.class);
        util.exportExcel(response, mgtShopSuggestPageVoList, "商户建议列表");
    }
    @RequestMapping(value = "/mgtReplayShopSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "平台回复建议")
    public R mgtReplayShopSuggest(@RequestBody MgtReplayShopSuggestDto mgtReplayShopSuggestDto) {
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java
@@ -1,5 +1,6 @@
package com.ruoyi.shop.domain.vo;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,54 +19,71 @@
    @ApiModelProperty(value = "商户id")
    private Long shopId;
    @Excel(name = "签约时间", width = 30)
    @ApiModelProperty("签约时间")
    private String signTime;
    @Excel(name = "商户名称", width = 30)
    @ApiModelProperty("商户名称")
    private String shopName;
    @Excel(name = "商户编号", width = 30)
    @ApiModelProperty("商户编号")
    private String shopNumber;
    @Excel(name = "商户标签", width = 30)
    @ApiModelProperty("商户标签")
    private String shopTags;
    @Excel(name = "签约人", width = 30)
    @ApiModelProperty("签约人")
    private String signUser;
    @Excel(name = "首提金额", width = 30)
    @ApiModelProperty("首提金额")
    private BigDecimal firstWithdraw;
    @Excel(name = "关联员工", width = 30)
    @ApiModelProperty("关联员工")
    private BigDecimal belongUser;
    private String belongUser;
    @Excel(name = "关联部门", width = 30)
    @ApiModelProperty("关联部门")
    private BigDecimal belongDept;
    private String belongDept;
    @Excel(name = "来源渠道", width = 30)
    @ApiModelProperty("来源渠道")
    private String shopSource;
    @Excel(name = "签约区域", width = 30)
    @ApiModelProperty("签约区域")
    private String signAreaName;
    @Excel(name = "合作期限", width = 30)
    @ApiModelProperty("合作期限")
    private String cooperationTime;
    @Excel(name = "店铺地址", width = 30)
    @ApiModelProperty("店铺地址")
    private String shopAddress;
    @Excel(name = "店主姓名", width = 30)
    @ApiModelProperty("店主姓名")
    private String shopownerName;
    @Excel(name = "店主联系方式", width = 30)
    @ApiModelProperty("店主联系方式")
    private String shopownerPhone;
    @Excel(name = "商户状态", width = 30)
    @ApiModelProperty("商户状态-1删除0冻结1正常2终止合作")
    private String shopStatus;
    @Excel(name = "商户活动次数", width = 30)
    @ApiModelProperty("商户活动次数")
    private Integer shopActivityCount;
    @Excel(name = "店铺设置状态", width = 30)
    @ApiModelProperty("店铺设置状态")
    private String shopCustomStatus;
}
ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.shop.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -19,41 +20,53 @@
    @ApiModelProperty(value = "建议id")
    private Long suggestId;
    @Excel(name = "店铺名称", width = 30)
    @ApiModelProperty(value = "店铺名称")
    private String shopName;
    @Excel(name = "商户类型", width = 30)
    @ApiModelProperty(value = "商户类型1.经销商2.代理商")
    private String shopType;
    @Excel(name = "店主姓名", width = 30)
    @ApiModelProperty("店主姓名")
    private String shopownerName;
    @Excel(name = "店主联系方式", width = 30)
    @ApiModelProperty("店主联系方式")
    private String shopownerPhone;
    @Excel(name = "建议内容", width = 30)
    @ApiModelProperty(value = "建议内容")
    private String suggestContent;
    @Excel(name = "回复内容", width = 30)
    @ApiModelProperty(value = "回复内容")
    private String replayContent;
    @Excel(name = "建议状态", width = 30)
    @ApiModelProperty(value = "建议状态")
    private String suggestStatus;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "回复人姓名", width = 30)
    @ApiModelProperty(value = "回复人姓名")
    private String replayUserName;
    @Excel(name = "回复时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "回复时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date replayTime;
    @Excel(name = "平台响应时间", width = 30)
    @ApiModelProperty(value = "平台响应时间")
    private String responseTime;
    @Excel(name = "建议标签", width = 30)
    @ApiModelProperty(value = "建议标签")
    private String suggestTags;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
@@ -2,6 +2,8 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.core.web.domain.AjaxResult;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import com.ruoyi.system.api.domain.dto.MgtPageDto;
@@ -11,13 +13,15 @@
import com.ruoyi.system.service.config.*;
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 org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.List;
import static com.ruoyi.common.core.web.domain.AjaxResult.success;
/**
 * @ClassName MgtConfigController
@@ -316,6 +320,19 @@
        return R.ok(page.setRecords(mgtOperLogPageVoList));
    }
    @RequestMapping(value = "/exportPageOperLog", method = RequestMethod.POST)
    @ApiOperation(value = "导出操作日志")
    public void exportPageOperLog(@RequestBody MgtOperLogPageDto mgtOperLogPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtOperLogPageDto.setUserId(userId);
        Page<MgtOperLogPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtOperLogPageVo> mgtOperLogPageVoList = customConfigService.pageOperLog(page, mgtOperLogPageDto);
        ExcelUtil<MgtOperLogPageVo> util = new ExcelUtil<MgtOperLogPageVo>(MgtOperLogPageVo.class);
        util.exportExcel(response, mgtOperLogPageVoList, "操作日志");
    }
    @RequestMapping(value = "/pageTag", method = RequestMethod.POST)
    @ApiOperation(value = "分页获取标签列表")
    public R<Page<MgtTagPageVo>> pageTag(@RequestBody MgtTagPageDto mgtTagPageDto) {
@@ -328,6 +345,23 @@
        return R.ok(page.setRecords(mgtTagPageVoList));
    }
    @PostMapping("/importData")
    public AjaxResult importData(MultipartFile file, Integer tagType) throws Exception
    {
        ExcelUtil<MgtTagImportDto> util = new ExcelUtil<MgtTagImportDto>(MgtTagImportDto.class);
        List<MgtTagImportDto> tagList = util.importExcel(file.getInputStream());
        String operName = SecurityUtils.getUsername();
        String message = sysTagService.importTag(tagList, tagType, operName);
        return success(message);
    }
    @PostMapping("/importTemplate")
    public void importTemplate(HttpServletResponse response) throws IOException
    {
        ExcelUtil<MgtTagImportDto> util = new ExcelUtil<MgtTagImportDto>(MgtTagImportDto.class);
        util.importTemplateExcel(response, "标签导入模板");
    }
    @RequestMapping(value = "/editTag", method = RequestMethod.POST)
    @ApiOperation(value = "修改标签")
    public R editTag(@RequestBody MgtTagEditDto mgtTagEditDto) {
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
@@ -2,6 +2,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.R;
import com.ruoyi.common.core.utils.poi.ExcelUtil;
import com.ruoyi.common.security.utils.SecurityUtils;
import com.ruoyi.system.api.domain.dto.MgtBaseGetDto;
import com.ruoyi.system.domain.dto.MgtReplayStaffSuggestDto;
@@ -21,6 +22,7 @@
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
@@ -67,8 +69,21 @@
        Page<MgtStaffSuggestPageVo> page = new Page<>();
        page.setSize(mgtStaffSuggestPageDto.getPageSize());
        page.setCurrent(mgtStaffSuggestPageDto.getPageNum());
        List<MgtStaffSuggestPageVo> mgtShopSuggestPageVoList = staffSuggestService.pageMgtStaffSuggest(page,mgtStaffSuggestPageDto);
        return R.ok(page.setRecords(mgtShopSuggestPageVoList));
        List<MgtStaffSuggestPageVo> staffSuggestPageVoList = staffSuggestService.pageMgtStaffSuggest(page,mgtStaffSuggestPageDto);
        return R.ok(page.setRecords(staffSuggestPageVoList));
    }
    @RequestMapping(value = "/exportPageMgtStaffSuggest", method = RequestMethod.POST)
    @ApiOperation(value = "导出员工建议列表")
    public void exportPageMgtStaffSuggest(@RequestBody MgtStaffSuggestPageDto mgtStaffSuggestPageDto, HttpServletResponse response) {
        Long userId = SecurityUtils.getUserId();
        mgtStaffSuggestPageDto.setUserId(userId);
        Page<MgtStaffSuggestPageVo> page = new Page<>();
        page.setSize(2000);
        page.setCurrent(1);
        List<MgtStaffSuggestPageVo> staffSuggestPageVoList = staffSuggestService.pageMgtStaffSuggest(page,mgtStaffSuggestPageDto);
        ExcelUtil<MgtStaffSuggestPageVo> util = new ExcelUtil<MgtStaffSuggestPageVo>(MgtStaffSuggestPageVo.class);
        util.exportExcel(response, staffSuggestPageVoList, "员工建议列表");
    }
    @RequestMapping(value = "/mgtReplayStaffSuggest", method = RequestMethod.POST)
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagImportDto.java
New file
@@ -0,0 +1,20 @@
package com.ruoyi.system.domain.dto;
import com.ruoyi.common.core.annotation.Excel;
import lombok.Data;
/**
 * @author jqs34
 * @version 1.0
 * @classname TagImportDto
 * @description: TODO
 * @date 2023 2023/6/24 17:29
 */
@Data
public class MgtTagImportDto {
    @Excel(name = "标签名称")
    private String tagName;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOperLogPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -16,22 +17,21 @@
@Data
public class MgtOperLogPageVo {
    @Excel(name = "操作内容", width = 30)
    @ApiModelProperty(value = "操作内容")
    private String operContent;
    @Excel(name = "操作类型", width = 30)
    @ApiModelProperty(value = "操作类型")
    private String operTitle;
    @Excel(name = "操作IP", width = 30)
    @ApiModelProperty(value = "操作IP")
    private String operIp;
    @Excel(name = "操作人员", width = 30)
    @ApiModelProperty(value = "操作人员")
    private String operName;
    @Excel(name = "操作时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "操作时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date operTime;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java
@@ -1,6 +1,7 @@
package com.ruoyi.system.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.core.annotation.Excel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@@ -18,36 +19,36 @@
    @ApiModelProperty(value = "建议id")
    private Long suggestId;
    @Excel(name = "员工姓名", width = 30)
    @ApiModelProperty(value = "员工姓名")
    private String staffName;
    @Excel(name = "部门名称", width = 30)
    @ApiModelProperty(value = "部门名称")
    private String deptName;
    @Excel(name = "手机号", width = 30)
    @ApiModelProperty("手机号")
    private String mobile;
    @Excel(name = "建议内容", width = 30)
    @ApiModelProperty(value = "建议内容")
    private String suggestContent;
    @Excel(name = "回复内容", width = 30)
    @ApiModelProperty(value = "回复内容")
    private String replayContent;
    @Excel(name = "建议状态", width = 30)
    @ApiModelProperty(value = "建议状态")
    private String suggestStatus;
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    @Excel(name = "回复人姓名", width = 30)
    @ApiModelProperty(value = "回复人姓名")
    private String replayUserName;
    @Excel(name = "回复时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "回复时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date replayTime;
    @Excel(name = "平台响应时间", width = 30)
    @ApiModelProperty(value = "平台响应时间")
    private String responseTime;
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java
@@ -3,7 +3,9 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.domain.poji.sys.SysUser;
import com.ruoyi.system.domain.dto.MgtTagEditDto;
import com.ruoyi.system.domain.dto.MgtTagImportDto;
import com.ruoyi.system.domain.dto.MgtTagPageDto;
import com.ruoyi.system.domain.vo.MgtTagPageVo;
@@ -61,4 +63,15 @@
     * @return  void
     */
    void deleteTag(Long tagId);
    /**
    * @description importTag
    * @param tagList
    * @param tagType
    * @param operName
    * @return String
    * @author jqs34
    * @date 2023/6/24 17:32
    */
    public String importTag(List<MgtTagImportDto> tagList, Integer tagType, String operName);
}
ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java
@@ -5,12 +5,14 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.exception.ServiceException;
import com.ruoyi.common.core.utils.StringUtils;
import com.ruoyi.system.api.constant.AppErrorConstant;
import com.ruoyi.system.api.domain.poji.config.SysTag;
import com.ruoyi.system.api.service.RemoteGoodsService;
import com.ruoyi.system.api.service.RemoteMemberService;
import com.ruoyi.system.api.service.RemoteShopService;
import com.ruoyi.system.domain.dto.MgtTagEditDto;
import com.ruoyi.system.domain.dto.MgtTagImportDto;
import com.ruoyi.system.domain.dto.MgtTagPageDto;
import com.ruoyi.system.domain.vo.MgtTagPageVo;
import com.ruoyi.system.mapper.config.SysTagMapper;
@@ -166,4 +168,67 @@
                break;
        }
    }
    /**
     * @description importTag
     * @param tagList
     * @param tagType
     * @param operName
     * @return String
     * @author jqs34
     * @date 2023/6/24 17:32
     */
    public String importTag(List<MgtTagImportDto> tagList, Integer tagType, String operName) {
        if (StringUtils.isNull(tagList) || tagList.size() == 0) {
            throw new ServiceException("导入标签数据不能为空!");
        }
        int successNum = 0;
        int failureNum = 0;
        StringBuilder successMsg = new StringBuilder();
        StringBuilder failureMsg = new StringBuilder();
        String tagName;
        LambdaQueryWrapper<SysTag> queryWrapper;
        SysTag sysTagSame;
        SysTag sysTagNew;
        Date nowTime = new Date();
        for (MgtTagImportDto entity : tagList) {
            try {
                tagName = entity.getTagName();
                sysTagSame = null;
                // 验证是否存在这个用户
                queryWrapper = new LambdaQueryWrapper<>();
                queryWrapper.eq(SysTag::getDelFlag, 0) // 查询条件:delFlag=0
                        .eq(SysTag::getTagType, tagType) // 查询条件:tagType=mgtTagEditDto的tagType属性
                        .eq(SysTag::getTagName, tagName); // 查询条件:tagName=mgtTagEditDto的tagName属性
                // 执行查询,获取与查询条件匹配的SysTag对象
                sysTagSame = this.getOne(queryWrapper);
                if (sysTagSame == null) {
                    sysTagNew = new SysTag();
                    sysTagNew.setDelFlag(0);
                    sysTagNew.setTagType(tagType);
                    sysTagNew.setTagName(tagName);
                    sysTagNew.setCreateTime(nowTime);
                    sysTagNew.setSynFlag(0);
                    this.save(sysTagNew);
                    successNum++;
                    successMsg.append("<br/>" + successNum + "、标签 " + sysTagNew.getTagName() + " 导入成功");
                } else {
                    failureNum++;
                    failureMsg.append("<br/>" + failureNum + "、标签 " + sysTagSame.getTagName() + " 已存在");
                }
            } catch (Exception e) {
                failureNum++;
                String msg = "<br/>" + failureNum + "、标签 " + entity.getTagName() + " 导入失败:";
                failureMsg.append(msg + e.getMessage());
                log.error(msg, e);
            }
        }
        if (failureNum > 0) {
            failureMsg.insert(0, "很抱歉,导入失败!共 " + failureNum + " 条数据格式不正确,错误如下:");
            throw new ServiceException(failureMsg.toString());
        } else {
            successMsg.insert(0, "恭喜您,数据已全部导入成功!共 " + successNum + " 条,数据如下:");
        }
        return successMsg.toString();
    }
}