From ec09e9f2c72ff37654076c327008ac89ed32a8c3 Mon Sep 17 00:00:00 2001 From: jiangqs <343695869@qq.com> Date: 星期六, 24 六月 2023 17:44:11 +0800 Subject: [PATCH] 导入导出 --- ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java | 26 ++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java | 63 ++++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java | 56 ++++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java | 19 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java | 13 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java | 13 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java | 26 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java | 44 +-- ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityRecordPageVo.java | 36 ++ ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberIntegralPageVo.java | 7 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOperLogPageVo.java | 12 ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java | 22 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java | 26 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java | 65 +++++ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java | 10 ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml | 24 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java | 18 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java | 55 ++++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityRecordPageDto.java | 34 ++ ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java | 11 ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java | 17 + ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java | 22 + ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java | 5 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java | 42 ++ ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java | 21 ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java | 14 + ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java | 15 + ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagImportDto.java | 20 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java | 12 ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java | 13 + ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java | 15 31 files changed, 707 insertions(+), 69 deletions(-) diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java index a4aded3..766a27d 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java +++ b/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, "商品列表"); + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java index 75444c4..ee21925 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java +++ b/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) { diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityRecordPageDto.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityRecordPageDto.java new file mode 100644 index 0000000..724bf89 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityRecordPageDto.java @@ -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; +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java index 723aec4..2581499 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/pojo/activity/ActivityRecord.java +++ b/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() { diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityRecordPageVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityRecordPageVo.java new file mode 100644 index 0000000..9ac1286 --- /dev/null +++ b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtActivityRecordPageVo.java @@ -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; +} diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java index 8f75f0d..5da1e81 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/vo/MgtGoodsPageVo.java +++ b/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; diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java index 02e804e..1e5d593 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/mapper/activity/ActivityMapper.java +++ b/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); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java index c781a3b..5ed8fa5 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/activity/ActivityService.java +++ b/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); } diff --git a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java b/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java index e833fd6..edadea4 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/service/impl/activity/ActivityServiceImpl.java +++ b/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; + } } diff --git a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml b/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml index bb8af23..5266435 100644 --- a/ruoyi-modules/ruoyi-goods/src/main/resources/mapper/activity/ActivityMapper.xml +++ b/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) > 0 + </if> + <if test="param.createStartTime!=null and param.createStartTime != ''"> + AND create_time >= #{param.createStartTime} + </if> + <if test="param.createEndTime!=null and param.createEndTime != ''"> + AND create_time <= #{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> diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java index dfb24b3..45f7f60 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/controller/management/MgtMemberController.java +++ b/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(); } + + } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java index 100dc57..036a9c0 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberBrowsePageVo.java +++ b/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; diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberIntegralPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberIntegralPageVo.java index 2186df6..0287b5a 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberIntegralPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java index 9af2f5c..ff21aaa 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java b/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java index 44ed756..a2c2791 100644 --- a/ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtMemberSuggestPageVo.java +++ b/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; - - - - - - - - - diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java index 497ebd4..265c159 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtMemberController.java +++ b/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) { diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java index 5f0f69c..421608b 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtOrderController.java +++ b/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 = "获取订单详情") diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java index ad3fe57..ebd4946 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtActivityOrderPageVo.java +++ b/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; diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java index 34d0e29..7bd4811 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberOrderPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java index f71b604..8a268ad 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtMemberServiceRecordPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java b/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java index e582986..3d4dd4f 100644 --- a/ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtShopOrderPageVo.java +++ b/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; diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java index 39dbab2..53b9351 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java +++ b/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) { diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java index 08da17f..d156e0d 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java b/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java index 9f0c0b3..139333f 100644 --- a/ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/vo/MgtShopSuggestPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java index 29aba74..84f82cb 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java +++ b/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) { diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java index f121387..6a32e70 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java +++ b/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) diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagImportDto.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagImportDto.java new file mode 100644 index 0000000..c93513a --- /dev/null +++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtTagImportDto.java @@ -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; + + +} diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOperLogPageVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOperLogPageVo.java index 6a65dc9..13454d3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtOperLogPageVo.java +++ b/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; - - } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java index ff5649f..3969d41 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/MgtStaffSuggestPageVo.java +++ b/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; } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java index fde3f29..ef6d68e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/config/SysTagService.java +++ b/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); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java index 9ce739b..625df59 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/config/SysTagServiceImpl.java +++ b/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(); + } } -- Gitblit v1.7.1