Эх сурвалжийг харах

兑换码记录生成人;退款记录增加最多退款商品

zoujiajian 2 жил өмнө
parent
commit
8c830c5210

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/OrderDonMapper.java

@@ -72,4 +72,6 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 	Page<CorpTagUserOrderDataView> getTagUserTimeOrderData(@Param("page") Page<Object> objectPage, @Param("tagIdStr") String tagIdStr, @Param("toDate") String toDate, @Param("startTime") String startTime, @Param("endTime") String endTime);
 
 	List<RealGoodsSourceData> getRealGoodsSourceData(@Param("isGeneral") Boolean isGeneral, @Param("startDate") String startDate, @Param("endDate") String endDate);
+
+	String selectMaxRefundGoodsName(@Param("operator") String operator, @Param("startTime") String startTime, @Param("endTime") String endTime);
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ExchangeCode.java

@@ -45,4 +45,6 @@ public class ExchangeCode extends BaseEntity{
 	 * 0平台 1抽奖
 	 */
 	private Integer type;
+
+	private String operator;
 }

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/model/request/ExchangeCodeReq.java

@@ -31,4 +31,6 @@ public class ExchangeCodeReq {
 	 * 0平台 1抽奖
 	 */
 	private Integer type;
+
+	private String operator;
 }

+ 3 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ExchangeCodeView.java

@@ -62,6 +62,9 @@ public class ExchangeCodeView {
 	@DbField("ec.user_id")
 	private Long userId;
 
+	@DbField("ec.operator")
+	private String operator;
+
 	/**
 	 * 用户昵称
 	 */

+ 7 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RefundOrderDonServiceDataView.java

@@ -1,6 +1,7 @@
 package com.cyksj.model.views;
 
 import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
@@ -27,4 +28,10 @@ public class RefundOrderDonServiceDataView {
 
 	@DbField("sum(rd.refund_fee)/100")
 	private BigDecimal refundMoney;
+
+	/**
+	 * 退款最多的产品
+	 */
+	@DbIgnore
+	private String goodsName;
 }

+ 17 - 0
netflix-dao/src/main/resources/mapper/OrderDonMapper.xml

@@ -422,4 +422,21 @@
         and o.label_source != ''
         group by o.label_source
     </select>
+
+    <select id="selectMaxRefundGoodsName" resultType="java.lang.String">
+        select (select title from goods_don where id = o.goods_id limit 1)
+        from refund_order_don rd inner join order_don o
+        on o.id = rd.order_id
+        where rd.operator = #{operator}
+        and rd.refund_method not in ('EX_CODE'
+        , 'balance')
+        <if test="startTime != null">
+            and rd.created_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            and rd.created_time &lt; #{endTime}
+        </if>
+        group by o.goods_id
+        order by count(*) desc limit 1
+    </select>
 </mapper>

+ 1 - 0
netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java

@@ -114,6 +114,7 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 			exchangeCode.setCode(sb.toString());
 			exchangeCode.setUseStatus(false);
 			exchangeCode.setType(exchangeCodeReq.getType());
+			exchangeCode.setOperator(exchangeCodeReq.getOperator());
 			exchangeCodeMapper.insert(exchangeCode);
 			ExcelExchangeCodeData excelExchangeCodeData = new ExcelExchangeCodeData();
 			BeanUtils.copyProperties(exchangeCode, excelExchangeCodeData);

+ 6 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -103,6 +103,8 @@ public class CmsOrderController {
 
 	private final UserMapper userMapper;
 
+	private final OrderDonMapper orderDonMapper;
+
 
 	@GetMapping("/get")
 	@SaCheckPermission("order:view")
@@ -766,6 +768,10 @@ public class CmsOrderController {
 			}
 		}
 		SearchResult<RefundOrderDonServiceDataView> search = beanSearcher.search(RefundOrderDonServiceDataView.class, builder.build());
+		search.getDataList().forEach(e->{
+			String goodsName = orderDonMapper.selectMaxRefundGoodsName(e.getOperator(), startTime, endTime);
+			e.setGoodsName(goodsName);
+		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 

+ 8 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/exchange/ExchangeCodeController.java

@@ -1,6 +1,7 @@
 package com.cyksj.web.controller.manage.exchange;
 
 import cn.dev33.satoken.annotation.SaCheckPermission;
+import cn.dev33.satoken.stp.StpUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.cyksj.common.annotation.Log;
@@ -8,6 +9,8 @@ import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.BusinessType;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.manage.cms.CmsUserMapper;
+import com.cyksj.model.entity.CmsUser;
 import com.cyksj.model.excel.ExcelExchangeCodeData;
 import com.cyksj.model.request.ExchangeCodeReq;
 import com.cyksj.model.views.ExchangeCodeView;
@@ -42,6 +45,8 @@ public class ExchangeCodeController {
 
 	private final ExchangeCodeService exchangeCodeService;
 
+	private final CmsUserMapper cmsUserMapper;
+
 	/**
 	 * 生成兑换码 并导出
 	 */
@@ -52,6 +57,9 @@ public class ExchangeCodeController {
 		if (ObjectUtil.hasEmpty(exchangeCodeReq.getGoodsId(), exchangeCodeReq.getSkuId(), exchangeCodeReq.getNumber())) {
 			throw BusinessRuntimeException.getInstance("必填项为空");
 		}
+		long adminId = StpUtil.getLoginIdAsLong();
+		CmsUser cmsUser = cmsUserMapper.selectById(adminId);
+		exchangeCodeReq.setOperator(cmsUser.getNickname());
 		List<ExcelExchangeCodeData> data =  exchangeCodeService.createExchangeCode(exchangeCodeReq);
 		EasyExcelUtils.createExcelStreamMutilByEasyExcel(response, ExcelExchangeCodeData.class, data, "银河兑换码","银河兑换码", ExcelTypeEnum.XLSX, null);
 	}