ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtActivityController.java
@@ -16,6 +16,7 @@ import com.ruoyi.system.api.domain.dto.MgtBaseGetDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -43,7 +44,7 @@ @RequestMapping(value = "/editMgtActivity", method = RequestMethod.POST) @Log(title = "活动管理", businessType = BusinessType.UPDATE,operContent = "编辑活动") @ApiOperation(value = "平台编辑活动") public R editMgtActivity(@RequestBody MgtActivityEditDto mgtActivityEditDto) { public R editMgtActivity(@Validated @RequestBody MgtActivityEditDto mgtActivityEditDto) { Long userId = SecurityUtils.getUserId(); mgtActivityEditDto.setUserId(userId); activityService.editMgtActivity(mgtActivityEditDto); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/controller/management/MgtGoodsController.java
@@ -15,6 +15,7 @@ import com.ruoyi.system.api.domain.vo.MgtSelectGoodsPageVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -73,7 +74,7 @@ @RequestMapping(value = "/editMgtGoods", method = RequestMethod.POST) @Log(title = "商品管理", businessType = BusinessType.UPDATE,operContent = "编辑商品") @ApiOperation(value = "平台编辑商品") public R editMgtGoods(@RequestBody MgtGoodsEditDto mgtGoodsEditDto) { public R editMgtGoods(@Validated @RequestBody MgtGoodsEditDto mgtGoodsEditDto) { Long userId = SecurityUtils.getUserId(); mgtGoodsEditDto.setUserId(userId); goodsService.editMgtGoods(mgtGoodsEditDto); ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtActivityEditDto.java
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import java.util.Date; import java.util.List; @@ -22,6 +23,7 @@ private String activityId; @ApiModelProperty(value = "活动名称") @NotNull(message = "活动名称不能为空") private String activityName; @ApiModelProperty(value = "活动开始时间") ruoyi-modules/ruoyi-goods/src/main/java/com/ruoyi/goods/domain/dto/MgtGoodsEditDto.java
@@ -4,6 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; import java.math.BigDecimal; /** @@ -20,18 +21,23 @@ private String goodsId; @ApiModelProperty(value = "商品状态1上架2下架") @NotNull(message = "商品状态不能为空") private Integer goodsStatus; @ApiModelProperty(value = "商品类型1周期2服务3体验4单品") @NotNull(message = "商品类型不能为空") private Integer goodsType; @ApiModelProperty(value = "商品分类id") @NotNull(message = "商品分类id不能为空") private Long goodsClassId; @ApiModelProperty(value = "商品名称") @NotNull(message = "商品名称不能为空") private String goodsName; @ApiModelProperty(value = "商品图片") @NotNull(message = "商品图片不能为空") private String goodsPicture; @ApiModelProperty(value = "商品视频") @@ -50,9 +56,11 @@ private String goodsIntroduction; @ApiModelProperty(value = "建议售价") @NotNull(message = "建议售价不能为空") private BigDecimal salesPrice; @ApiModelProperty(value = "最低售价") @NotNull(message = "最低售价不能为空") private BigDecimal mininumPrice; @ApiModelProperty(value = "订金") ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/domain/vo/MgtTotalMemberTotalVo.java
@@ -1,7 +1,10 @@ package com.ruoyi.member.domain.vo; import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; /** * @ClassName MgtTotalMemberTotalVo @@ -46,33 +49,18 @@ @ApiModelProperty(value = "会员年龄value") private Integer[] ageValue; @ApiModelProperty(value = "会员调理key") private String[] nurseKey; @ApiModelProperty(value = "会员调理") private List<MgtMapTotalVo> nurseTotalVos; @ApiModelProperty(value = "会员调理value") private Integer[] nurseValue; @ApiModelProperty(value = "商品类型") private List<MgtMapTotalVo> goodsTypeTotalVos; @ApiModelProperty(value = "商品类型key") private String[] goodsTypeKey; @ApiModelProperty(value = "活跃度") private List<MgtMapTotalVo> activenessList; @ApiModelProperty(value = "商品类型value") private Integer[] goodsTypeValue; @ApiModelProperty(value = "来源渠道") private List<MgtMapTotalVo> customerSourceList; @ApiModelProperty(value = "活跃度key") private String[] activenessKey; @ApiModelProperty(value = "活跃度value") private Integer[] activenessValue; @ApiModelProperty(value = "消费排行key") private String[] orderRankKey; @ApiModelProperty(value = "消费排行value") private Integer[] orderRankValue; @ApiModelProperty(value = "来源排行key") private String[] customerSourceKey; @ApiModelProperty(value = "来源排行value") private Integer[] customerSourceValue; @ApiModelProperty(value = "消费排行") private List<MgtMapTotalVo> memberPayList; } ruoyi-modules/ruoyi-member/src/main/java/com/ruoyi/member/service/impl/member/MemberServiceImpl.java
@@ -981,75 +981,48 @@ // 获取不同护理类型的会员数 List<MgtMapTotalVo> nurseTotalVos = memberMapper.getTotalMemberTotalNurse(mgtBaseShopDto); if (nurseTotalVos != null && nurseTotalVos.size() > 0) { String[] nurseKey = new String[nurseTotalVos.size()]; Integer[] nurseValue = new Integer[nurseTotalVos.size()]; // 遍历不同护理类型的会员数列表,设置护理类型数组和对应的会员数数组 for (int i = 0; i < nurseTotalVos.size(); i++) { nurseKey[i] = nurseTotalVos.get(i).getMapKey(); nurseValue[i] = nurseTotalVos.get(i).getMapValue(); } mgtTotalMemberTotalVo.setNurseKey(nurseKey); mgtTotalMemberTotalVo.setNurseValue(nurseValue); nurseTotalVos = listRemoveNull(nurseTotalVos); mgtTotalMemberTotalVo.setNurseTotalVos(nurseTotalVos); } // 获取不同商品类型的会员数 List<MgtMapTotalVo> goodsTypeTotalVos = memberMapper.getTotalMemberTotalGoodsType(mgtBaseShopDto); if (goodsTypeTotalVos != null && goodsTypeTotalVos.size() > 0) { String[] goodsTypeKey = new String[goodsTypeTotalVos.size()]; Integer[] goodsTypeValue = new Integer[goodsTypeTotalVos.size()]; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 for (int i = 0; i < goodsTypeTotalVos.size(); i++) { goodsTypeKey[i] = goodsTypeTotalVos.get(i).getMapKey(); goodsTypeValue[i] = goodsTypeTotalVos.get(i).getMapValue(); } mgtTotalMemberTotalVo.setGoodsTypeKey(goodsTypeKey); mgtTotalMemberTotalVo.setGoodsTypeValue(goodsTypeValue); goodsTypeTotalVos = listRemoveNull(goodsTypeTotalVos); mgtTotalMemberTotalVo.setGoodsTypeTotalVos(goodsTypeTotalVos); } // 获取不同活跃度的会员数 List<Activeness> activenessList = remoteConfigService.listActiveness().getData(); if (activenessList != null && !activenessList.isEmpty()) { String[] activenessKey = new String[activenessList.size()]; Integer[] activenessValue = new Integer[activenessList.size()]; Activeness activeness; String actStartDate; String actEndDate; Integer count; List<MgtMapTotalVo> mgtMapTotalVoList = new ArrayList<>(); MgtMapTotalVo mgtMapTotalVo; // 遍历不同活跃度列表,设置活跃度数组和对应的会员数数组 for (int i = 0; i < activenessList.size(); i++) { activeness = activenessList.get(i); actStartDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getEndDay())); actEndDate = DateUtils.parseDateToStr("yyyy-MM-dd", DateUtils.addDays(nowDay, activeness.getStartDay())); count = memberMapper.getTotalMemberTotalActiveness(shopId, actStartDate, actEndDate); activenessKey[i] = activeness.getActivenessName(); activenessValue[i] = count; mgtMapTotalVo = new MgtMapTotalVo(); mgtMapTotalVo.setMapKey(activeness.getActivenessName()); mgtMapTotalVo.setMapValue(count); mgtMapTotalVoList.add(mgtMapTotalVo); } mgtTotalMemberTotalVo.setActivenessKey(activenessKey); mgtTotalMemberTotalVo.setActivenessValue(activenessValue); mgtTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList); } //获取会员消费排名 List<MgtMapTotalVo> memberPayList = memberMapper.getTotalMemberRankPay(mgtBaseShopDto); if (memberPayList != null && memberPayList.size() > 0) { String[] memberPayKey = new String[memberPayList.size()]; Integer[] memberPayValue = new Integer[memberPayList.size()]; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 for (int i = 0; i < memberPayList.size(); i++) { memberPayKey[i] = memberPayList.get(i).getMapKey(); memberPayValue[i] = memberPayList.get(i).getMapValue(); } mgtTotalMemberTotalVo.setOrderRankKey(memberPayKey); mgtTotalMemberTotalVo.setOrderRankValue(memberPayValue); memberPayList = listRemoveNull(memberPayList); mgtTotalMemberTotalVo.setMemberPayList(memberPayList); } //获取来源渠道排名 List<MgtMapTotalVo> customerSourceList = memberMapper.getTotalMemberRankCustomerSource(mgtBaseShopDto); if (customerSourceList != null && customerSourceList.size() > 0) { String[] customerSourceKey = new String[customerSourceList.size()]; Integer[] customerSourceValue = new Integer[customerSourceList.size()]; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 for (int i = 0; i < customerSourceList.size(); i++) { customerSourceKey[i] = customerSourceList.get(i).getMapKey(); customerSourceValue[i] = customerSourceList.get(i).getMapValue(); } mgtTotalMemberTotalVo.setCustomerSourceKey(customerSourceKey); mgtTotalMemberTotalVo.setCustomerSourceValue(customerSourceValue); customerSourceList = listRemoveNull(customerSourceList); mgtTotalMemberTotalVo.setCustomerSourceList(customerSourceList); } // 返回总会员数和不同类型会员数的统计结果 return mgtTotalMemberTotalVo; @@ -1143,6 +1116,7 @@ mgtMapTotalVo = new MgtMapTotalVo(); mgtMapTotalVo.setMapKey(activeness.getActivenessName()); mgtMapTotalVo.setMapValue(count); mgtMapTotalVoList.add(mgtMapTotalVo); } } plTotalMemberTotalVo.setActivenessList(mgtMapTotalVoList); ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/controller/management/MgtTotalController.java
@@ -98,10 +98,10 @@ @RequestMapping(value = "/getPlTotalActivityAgeRank", method = RequestMethod.POST) @ApiOperation(value = "获取平台商户活动年龄分布") public R<List<MgtMapTotalPlusVo>> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) { public R<MgtPlTotalActivityTotalVo> getPlTotalActivityAgeRank(@RequestBody MgtPlActivityAgeDto mgtPlActivityAgeDto) { Long userId = SecurityUtils.getUserId(); mgtPlActivityAgeDto.setUserId(userId); List<MgtMapTotalPlusVo> ageRankList = orderService.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); return R.ok(ageRankList); MgtPlTotalActivityTotalVo plTotalActivityTotalVo = orderService.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); return R.ok(plTotalActivityTotalVo); } } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtPlTotalActivityTotalVo.java
@@ -78,4 +78,10 @@ @ApiModelProperty(value = "活动次数排行") private List<MgtMapBigTotalVo> activitySalesRankList; @ApiModelProperty(value = "活动年龄分布key") private String[] activityAgeKey; @ApiModelProperty(value = "活动年龄分布value") private Integer[] activityAgeValue; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/domain/vo/MgtTotalActivityTotalVo.java
@@ -1,9 +1,12 @@ package com.ruoyi.order.domain.vo; import com.ruoyi.system.api.domain.vo.MgtMapBigTotalVo; import com.ruoyi.system.api.domain.vo.MgtMapTotalVo; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.math.BigDecimal; import java.util.List; /** * @ClassName MgtTotalActivityTotalVo @@ -60,13 +63,15 @@ @ApiModelProperty(value = "订单金额value") private BigDecimal[] orderMoneyValue; @ApiModelProperty(value = "商品类型数量key") private String[] goodsTypeKey; @ApiModelProperty(value = "商品类型数量") private List<MgtMapTotalVo> goodsTypeTotalList; @ApiModelProperty(value = "商品类型数量value") private Integer[] goodsTypeTotalValue; @ApiModelProperty(value = "商品类型金额") private List<MgtMapBigTotalVo> goodsTypeMoneyList; @ApiModelProperty(value = "商品类型金额value") private BigDecimal[] goodsTypeMoneyValue; @ApiModelProperty(value = "活动年龄分布key") private String[] activityAgeKey; @ApiModelProperty(value = "活动年龄分布value") private Integer[] activityAgeValue; } ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/mapper/order/OrderMapper.java
@@ -246,7 +246,7 @@ * @param mgtActivityAgeDto * @return MgtTotalActivityTotalVo */ MgtTotalActivityTotalVo getTotalActivityAgeRank(@Param("param")MgtActivityAgeDto mgtActivityAgeDto); List<MgtMapTotalVo> getTotalActivityAgeRank(@Param("param")MgtActivityAgeDto mgtActivityAgeDto); /** * @description @@ -385,7 +385,7 @@ * @param mgtActivityAgeDto * @return MgtTotalActivityTotalVo */ List<MgtMapTotalPlusVo> getPlTotalActivityAgeRank(@Param("param")MgtPlActivityAgeDto mgtActivityAgeDto); List<MgtMapTotalVo> getPlTotalActivityAgeRank(@Param("param")MgtPlActivityAgeDto mgtActivityAgeDto); /** * @description listPlTotalShopActivityRank ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/order/OrderServiceImpl.java
@@ -1072,11 +1072,11 @@ } /** * @param mgtShopOrderPageDto * @return MgtMemberOrderTotalVo * @description 获取订单统计 * @author jqs * @date 2023/6/16 12:51 * @param mgtShopOrderPageDto * @return MgtMemberOrderTotalVo */ @Override public MgtOrderTotal getMgtOrderTotal(MgtShopOrderPageDto mgtShopOrderPageDto){ @@ -1118,12 +1118,12 @@ } /** * @description 分页获取门店订单列表 * @author jqs * @date 2023/6/16 14:57 * @param page * @param mgtShopOrderPageDto * @return List<MgtShopOrderPageVo> * @description 分页获取门店订单列表 * @author jqs * @date 2023/6/16 14:57 */ @Override public List<MgtShopOrderPageVo> pageMgtShopOrder(Page page, MgtShopOrderPageDto mgtShopOrderPageDto){ @@ -1197,11 +1197,11 @@ /** * @param orderId * @return MgtOrderDetailVo * @description 获取订单详情 * @author jqs * @date 2023/6/16 16:49 * @param orderId * @return MgtOrderDetailVo */ @Override public MgtOrderDetailVo getMgtOrderDetail(String orderId){ @@ -1278,9 +1278,9 @@ } /** * @description boardOrderTotal * @param * @return MgtBulletinBoardVo * @description boardOrderTotal * @author jqs34 * @date 2023/6/18 17:20 */ @@ -1291,9 +1291,9 @@ } /** * @description getTotalOrderTotal * @param mgtBaseShopDto * @return MgtTotalOrderTotalVo * @description getTotalOrderTotal * @author jqs34 * @date 2023/6/19 22:23 */ @@ -1347,6 +1347,8 @@ mgtMapTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } goodsTypeTotalList.add(mgtMapTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); @@ -1367,11 +1369,11 @@ } /** * @param mgtMapTotalVos * @return List<MgtMapTotalVo> * @description 去除空字符串 * @author jqs * @date 2023/6/27 17:35 * @param mgtMapTotalVos * @return List<MgtMapTotalVo> */ private List<MgtMapTotalVo> listRemoveNull(List<MgtMapTotalVo> mgtMapTotalVos){ for (int i = 0; i < mgtMapTotalVos.size(); i++) { @@ -1383,11 +1385,11 @@ } /** * @param mgtMapTotalVos * @return List<MgtMapTotalVo> * @description 去除空字符串 * @author jqs * @date 2023/6/27 17:35 * @param mgtMapTotalVos * @return List<MgtMapTotalVo> */ private List<MgtMapBigTotalVo> bigListRemoveNull(List<MgtMapBigTotalVo> mgtMapTotalVos){ for (int i = 0; i < mgtMapTotalVos.size(); i++) { @@ -1399,11 +1401,11 @@ } /** * @param mgtBaseShopDto * @return MgtTotalActivityTotalVo * @description * @author jqs * @date 2023/6/20 9:27 * @param mgtBaseShopDto * @return MgtTotalActivityTotalVo */ @Override public MgtTotalActivityTotalVo getTotalActivityTotal(MgtBaseShopDto mgtBaseShopDto){ @@ -1412,35 +1414,47 @@ //获取商品分类销售数据 List<MgtMapTotalPlusVo> mgtMapTotalVoGoodsType = orderMapper.listTotalActivityTotalGoodsType(mgtBaseShopDto); if (mgtMapTotalVoGoodsType != null && mgtMapTotalVoGoodsType.size() > 0) { String[] goodsTypeKey = new String[mgtMapTotalVoGoodsType.size()]; Integer[] goodsTypeTotalValue = new Integer[mgtMapTotalVoGoodsType.size()]; BigDecimal[] goodsTypeMoneyValue = new BigDecimal[mgtMapTotalVoGoodsType.size()]; List<MgtMapTotalVo> goodsTypeTotalList = new ArrayList<>(); List<MgtMapBigTotalVo> goodsTypeMoneyList = new ArrayList<>(); totalActivityTotalVo.setCycleTotal(0); totalActivityTotalVo.setCycleMoney(BigDecimal.ZERO); totalActivityTotalVo.setServiceTotal(0); totalActivityTotalVo.setServiceMoney(BigDecimal.ZERO); totalActivityTotalVo.setExperienceTotal(0); totalActivityTotalVo.setExperienceMoney(BigDecimal.ZERO); // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 MgtMapTotalVo mgtMapTotalVo; MgtMapBigTotalVo mgtMapBigTotalVo; // 遍历不同商品类型的会员数列表,设置商品类型数组和对应的会员数数组 for (int i = 0; i < mgtMapTotalVoGoodsType.size(); i++) { goodsTypeTotalValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueFirst(); goodsTypeMoneyValue[i] = mgtMapTotalVoGoodsType.get(i).getMapValueSecond(); mgtMapTotalVo = new MgtMapTotalVo(); mgtMapBigTotalVo = new MgtMapBigTotalVo(); mgtMapTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); mgtMapBigTotalVo.setMapValue(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("1")){ goodsTypeKey[i] = "周期"; totalActivityTotalVo.setCycleTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setCycleMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); totalActivityTotalVo.setCyclePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); mgtMapTotalVo.setMapKey("周期"); mgtMapBigTotalVo.setMapKey("周期"); totalActivityTotalVo.setCycleTotal(totalActivityTotalVo.getCycleTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setCycleMoney(totalActivityTotalVo.getCycleMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("2")){ goodsTypeKey[i] = "服务"; totalActivityTotalVo.setServiceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setServiceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); totalActivityTotalVo.setServicePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); mgtMapTotalVo.setMapKey("服务"); mgtMapBigTotalVo.setMapKey("服务"); totalActivityTotalVo.setServiceTotal(totalActivityTotalVo.getServiceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setServiceMoney(totalActivityTotalVo.getServiceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("3")){ goodsTypeKey[i] = "体验"; totalActivityTotalVo.setExperienceTotal(mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setExperienceMoney(mgtMapTotalVoGoodsType.get(i).getMapValueSecond()); totalActivityTotalVo.setExperiencePerson(mgtMapTotalVoGoodsType.get(i).getMapValueThird()); mgtMapTotalVo.setMapKey("体验"); mgtMapBigTotalVo.setMapKey("体验"); totalActivityTotalVo.setExperienceTotal(totalActivityTotalVo.getExperienceTotal() + mgtMapTotalVoGoodsType.get(i).getMapValueFirst()); totalActivityTotalVo.setExperienceMoney(totalActivityTotalVo.getExperienceMoney().add(mgtMapTotalVoGoodsType.get(i).getMapValueSecond())); }else if(mgtMapTotalVoGoodsType.get(i).getMapKey().equals("4")){ goodsTypeKey[i] = "单品"; mgtMapTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } goodsTypeTotalList.add(mgtMapTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } totalActivityTotalVo.setGoodsTypeKey(goodsTypeKey); totalActivityTotalVo.setGoodsTypeTotalValue(goodsTypeTotalValue); totalActivityTotalVo.setGoodsTypeMoneyValue(goodsTypeMoneyValue); totalActivityTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); totalActivityTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); } //获取订单分布 List<MgtMapTotalPlusVo> mgtMapTotalVos = orderMapper.listTotalActivityTotal(mgtBaseShopDto); @@ -1461,11 +1475,11 @@ } /** * @param mgtActivityAgeDto * @return MgtTotalActivityTotalVo * @description * @author jqs * @date 2023/6/20 9:56 * @param mgtActivityAgeDto * @return MgtTotalActivityTotalVo */ @Override public MgtTotalActivityTotalVo getTotalActivityAgeRank(MgtActivityAgeDto mgtActivityAgeDto){ @@ -1473,16 +1487,30 @@ mgtActivityAgeDto.setUserIds(userIds); userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); mgtActivityAgeDto.setUserIds(userIds); MgtTotalActivityTotalVo totalActivityTotalVo = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); List<MgtMapTotalVo> ageRankList = orderMapper.getTotalActivityAgeRank(mgtActivityAgeDto); ageRankList = listRemoveNull(ageRankList); MgtTotalActivityTotalVo totalActivityTotalVo = new MgtTotalActivityTotalVo(); String[] activityAgeKey = new String[ageRankList.size()]; Integer[] activityAgeValue = new Integer[ageRankList.size()]; if (!ageRankList.isEmpty()) { MgtMapTotalVo mgtMapTotalVo; for (int i = 0; i < ageRankList.size(); i++) { mgtMapTotalVo = ageRankList.get(i); activityAgeKey[i] = mgtMapTotalVo.getMapKey(); activityAgeValue[i] = mgtMapTotalVo.getMapValue(); } } totalActivityTotalVo.setActivityAgeKey(activityAgeKey); totalActivityTotalVo.setActivityAgeValue(activityAgeValue); return totalActivityTotalVo; } /** * @param mgtBaseShopDto * @return MgtTotalDataTotalVo * @description * @author jqs * @date 2023/6/20 15:31 * @param mgtBaseShopDto * @return MgtTotalDataTotalVo */ @Override public MgtTotalDataTotalVo getTotalDataTotal(MgtBaseShopDto mgtBaseShopDto){ @@ -1498,11 +1526,11 @@ } /** * @param mgtBasePlatformDto * @return List<MgtMapTotalVo> * @description * @author jqs * @date 2023/6/21 15:26 * @param mgtBasePlatformDto * @return List<MgtMapTotalVo> */ @Override public List<MgtMapTotalVo> listMemberGoodsRank(MgtBasePlatformDto mgtBasePlatformDto){ @@ -1510,9 +1538,9 @@ } /** * @description 获取平台商户数据统计 * @param mgtBasePlatformDto * @return List<MgtTotalDataTotalVo> * @description 获取平台商户数据统计 * @author jqs34 * @date 2023/6/23 14:01 */ @@ -1553,9 +1581,9 @@ } /** * @description 获取平台商户订单统计 * @param mgtBasePlatformDto * @return MgtTotalOrderTotalVo * @description 获取平台商户订单统计 * @author jqs34 * @date 2023/6/19 22:23 */ @@ -1632,6 +1660,8 @@ mgtMapTotalVo.setMapKey("单品"); mgtMapBigTotalVo.setMapKey("单品"); } goodsTypeTotalList.add(mgtMapTotalVo); goodsTypeMoneyList.add(mgtMapBigTotalVo); } mgtTotalOrderTotalVo.setGoodsTypeTotalList(goodsTypeTotalList); mgtTotalOrderTotalVo.setGoodsTypeMoneyList(goodsTypeMoneyList); @@ -1652,11 +1682,11 @@ } /** * @param mgtBasePlatformDto * @return MgtTotalActivityTotalVo * @description * @author jqs * @date 2023/6/20 9:27 * @param mgtBasePlatformDto * @return MgtTotalActivityTotalVo */ @Override public MgtPlTotalActivityTotalVo getPlTotalActivityTotal(MgtBasePlatformDto mgtBasePlatformDto){ @@ -1772,30 +1802,44 @@ } /** * @param mgtPlActivityAgeDto * @return MgtTotalActivityTotalVo * @description * @author jqs * @date 2023/6/20 9:56 * @param mgtPlActivityAgeDto * @return MgtTotalActivityTotalVo */ @Override public List<MgtMapTotalPlusVo> getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto){ public MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPlActivityAgeDto) { List<Long> userIds = orderMapper.getPlUserIdAgeRank(mgtPlActivityAgeDto); MgtActivityAgeDto mgtActivityAgeDto = new MgtActivityAgeDto(); mgtActivityAgeDto.setUserIds(userIds); mgtActivityAgeDto.setAgeType(mgtPlActivityAgeDto.getAgeType()); userIds = remoteMemberService.listUserIdByAge(mgtActivityAgeDto).getData(); mgtPlActivityAgeDto.setUserIds(userIds); List<MgtMapTotalPlusVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); return ageRankList; List<MgtMapTotalVo> ageRankList = orderMapper.getPlTotalActivityAgeRank(mgtPlActivityAgeDto); ageRankList = listRemoveNull(ageRankList); MgtPlTotalActivityTotalVo plTotalActivityTotalVo = new MgtPlTotalActivityTotalVo(); String[] activityAgeKey = new String[ageRankList.size()]; Integer[] activityAgeValue = new Integer[ageRankList.size()]; if (!ageRankList.isEmpty()) { MgtMapTotalVo mgtMapTotalVo; for (int i = 0; i < ageRankList.size(); i++) { mgtMapTotalVo = ageRankList.get(i); activityAgeKey[i] = mgtMapTotalVo.getMapKey(); activityAgeValue[i] = mgtMapTotalVo.getMapValue(); } } plTotalActivityTotalVo.setActivityAgeKey(activityAgeKey); plTotalActivityTotalVo.setActivityAgeValue(activityAgeValue); return plTotalActivityTotalVo; } /** * @param verifyCode * @return MerVerifyCouponVo * @description 获取优惠券核销信息 * @author jqs * @date 2023/6/27 11:10 * @param verifyCode * @return MerVerifyCouponVo */ @Override public MerVerifyCouponVo verifyCoupon(String verifyCode){ ruoyi-modules/ruoyi-order/src/main/java/com/ruoyi/order/service/order/OrderService.java
@@ -267,7 +267,7 @@ * @param mgtPLActivityAgeDto * @return MgtTotalActivityTotalVo */ List<MgtMapTotalPlusVo> getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto); MgtPlTotalActivityTotalVo getPlTotalActivityAgeRank(MgtPlActivityAgeDto mgtPLActivityAgeDto); /** * @description 获取优惠券核销信息 ruoyi-modules/ruoyi-order/src/main/resources/mapper/order/OrderMapper.xml
@@ -803,10 +803,10 @@ </if> </select> <select id="getTotalActivityAgeRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo"> <select id="getTotalActivityAgeRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, COUNT(DISTINCT user_id) AS mapValueFirst COUNT(DISTINCT user_id) AS mapValue FROM t_order WHERE @@ -1143,10 +1143,10 @@ </if> </select> <select id="getPlTotalActivityAgeRank" resultType="com.ruoyi.order.domain.vo.MgtMapTotalPlusVo"> <select id="getPlTotalActivityAgeRank" resultType="com.ruoyi.system.api.domain.vo.MgtMapTotalVo"> SELECT DATE_FORMAT(create_time, '%Y-%m-%d') AS mapKey, COUNT(DISTINCT user_id) AS mapValueFirst COUNT(DISTINCT user_id) AS mapValue FROM t_order WHERE del_flag = 0 AND order_from = 2 AND create_time >= DATE_SUB(CURDATE(), INTERVAL 6 DAY) ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/controller/management/MgtShopController.java
@@ -13,6 +13,7 @@ import com.ruoyi.system.api.domain.vo.MgtSimpleShopVo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -80,7 +81,7 @@ @RequestMapping(value = "/createMgtShop", method = RequestMethod.POST) @Log(title = "商户管理", businessType = BusinessType.UPDATE,operContent = "编辑商户") @ApiOperation(value = "平台编辑商户") public R createMgtShop(@RequestBody MgtEditShopDto mgtEditShopDto) { public R createMgtShop(@Validated @RequestBody MgtEditShopDto mgtEditShopDto) { Long userId = SecurityUtils.getUserId(); mgtEditShopDto.setUserId(userId); shopService.createShop(mgtEditShopDto); ruoyi-modules/ruoyi-shop/src/main/java/com/ruoyi/shop/domain/dto/MgtEditShopDto.java
@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; /** * @author jqs34 * @ClassName ManageCreateShopDto @@ -20,9 +22,11 @@ private Long shopId; @ApiModelProperty("商户名称") @NotNull(message = "商户名称不能为空") private String shopName; @ApiModelProperty("商户类型1.经销商2.代理商") @NotNull(message = "商户类型不能为空") private Integer shopType; @ApiModelProperty("营业开始时间") ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtConfigController.java
@@ -15,6 +15,7 @@ import com.ruoyi.system.service.config.*; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -249,7 +250,7 @@ @RequestMapping(value = "/editOtherConfig", method = RequestMethod.POST) @Log(title = "其它设置管理", businessType = BusinessType.UPDATE,operContent = "修改其它设置") @ApiOperation(value = "修改其它设置") public R editOtherConfig(@RequestBody MgtOtherConfigEditDto mgtOtherConfigEditDto) { public R editOtherConfig(@Validated @RequestBody MgtOtherConfigEditDto mgtOtherConfigEditDto) { customConfigService.editOtherConfig(mgtOtherConfigEditDto); return R.ok(); } @@ -257,7 +258,7 @@ @RequestMapping(value = "/editShopConfig", method = RequestMethod.POST) @Log(title = "其它设置管理", businessType = BusinessType.UPDATE,operContent = "修改合作商配置") @ApiOperation(value = "修改合作商配置") public R editShopConfig(@RequestBody MgtShopConfigEditDto mgtShopConfigEditDto) { public R editShopConfig(@Validated @RequestBody MgtShopConfigEditDto mgtShopConfigEditDto) { customConfigService.editShopConfig(mgtShopConfigEditDto); return R.ok(); } @@ -265,7 +266,7 @@ @RequestMapping(value = "/editMemberConfig", method = RequestMethod.POST) @Log(title = "其它设置管理", businessType = BusinessType.UPDATE,operContent = "修改会员配置") @ApiOperation(value = "修改会员配置") public R editMemberConfig(@RequestBody MgtMemberConfigEditDto mgtMemberConfigEditDto) { public R editMemberConfig(@Validated @RequestBody MgtMemberConfigEditDto mgtMemberConfigEditDto) { customConfigService.editMemberConfig(mgtMemberConfigEditDto); return R.ok(); } @@ -273,7 +274,7 @@ @RequestMapping(value = "/editAdvert", method = RequestMethod.POST) @Log(title = "其它设置管理", businessType = BusinessType.UPDATE,operContent = "修改广告配置") @ApiOperation(value = "修改广告配置") public R editAdvert(@RequestBody MgtAdvertEditDto mgtAdvertEditDto) { public R editAdvert(@Validated @RequestBody MgtAdvertEditDto mgtAdvertEditDto) { mgtAdvertEditDto.setUserId(SecurityUtils.getUserId()); advertService.editMgtAdvert(mgtAdvertEditDto); return R.ok(); ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/controller/management/MgtStaffController.java
@@ -16,6 +16,7 @@ import com.ruoyi.system.service.staff.SysStaffService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; @@ -128,7 +129,7 @@ @RequestMapping(value = "/mgtEditStaff", method = RequestMethod.POST) @Log(title = "员工管理", businessType = BusinessType.UPDATE,operContent = "编辑员工") @ApiOperation(value = "平台编辑员工") public R mgtEditStaff(@RequestBody MgtStaffEditDto mgtStaffEditDto) { public R mgtEditStaff(@Validated @RequestBody MgtStaffEditDto mgtStaffEditDto) { Long userId = SecurityUtils.getUserId(); mgtStaffEditDto.setUserId(userId); sysStaffService.mgtStaffEdit(mgtStaffEditDto); ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/domain/dto/MgtStaffEditDto.java
@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import javax.validation.constraints.NotNull; /** * @author jqs34 * @version 1.0 @@ -16,6 +18,7 @@ @ApiModelProperty(value = "部门id") @NotNull(message = "部门id不能为空") private Long deptId; /** * 用户id @@ -26,11 +29,13 @@ * 员工姓名 */ @ApiModelProperty(value = "员工姓名") @NotNull(message = "员工姓名不能为空") private String staffName; /** * 员工电话 */ @ApiModelProperty(value = "员工电话") @NotNull(message = "员工电话不能为空") private String staffMobile; /** * 员工邮箱 @@ -51,6 +56,7 @@ * 负责人标记 */ @ApiModelProperty(value = "负责人标记") @NotNull(message = "负责人标记不能为空") private String headFlag; } ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/staff/SysStaffServiceImpl.java
@@ -4,6 +4,7 @@ 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.common.core.utils.uuid.IdUtils; import com.ruoyi.common.security.utils.SecurityUtils; import com.ruoyi.system.api.constant.AppErrorConstant; @@ -104,6 +105,9 @@ queryWrapper.eq(SysStaff::getDelFlag,0); queryWrapper.eq(SysStaff::getStaffMobile,mgtStaffEditDto.getStaffMobile()); SysStaff sysStaffSame = this.getOne(queryWrapper, false); if(StringUtils.isBlank(mgtStaffEditDto.getStaffAvatar())){ mgtStaffEditDto.setStaffAvatar("https://hongruitang.oss-cn-beijing.aliyuncs.com/default.png"); } if(mgtStaffEditDto.getSysUserId()!=null){ if(sysStaffSame!=null&&!sysStaffSame.getUserId().equals(mgtStaffEditDto.getSysUserId())){ throw new ServiceException(AppErrorConstant.STAFF_MOBILE_DOUBLE);