Jelajahi Sumber

cps后台推广链接列表优化

zoujiajian 10 bulan lalu
induk
melakukan
e32bff9099

+ 2 - 0
netflix-dao/src/main/java/com/cyksj/mapper/manage/cps/UserDistributePopularizeMapper.java

@@ -15,4 +15,6 @@ public interface UserDistributePopularizeMapper extends BaseMapper<UserDistribut
 	UserDistributePopularizeView getDefaultPopularizeDetail(@Param("cpsUserId") long cpsUserId, @Param("start") String start, @Param("end") String end);
 
 	UserDistributePopularizeView getVipPopularizeDetail(@Param("cpsPopularizeId") Long cpsPopularizeId, @Param("start") String start, @Param("end") String end);
+
+	UserDistributePopularizeView getPopularizeUrlData(@Param("cpsUserId") long cpsUserId, @Param("cpsPopularizeId") Long cpsPopularizeId, @Param("start") String start, @Param("end") String end);
 }

+ 6 - 8
netflix-dao/src/main/java/com/cyksj/model/views/UserDistributePopularizeView.java

@@ -18,10 +18,8 @@ import java.util.Date;
  */
 @Getter
 @Setter
-@SearchBean(tables = "(select id,name,remark,code,created_time,goods_id,sku_id,other_url from user_distribute_popularize where deleted is true :userId:) dp left join order_don od on od.cps_popularize_id = dp.id" +
-		" and od.status not in ('close','noPayment') and od.relation_id != 0 and is_fixed_distribute is true :time:" +
-		" left join distribute_waiting_send_points dsp on dsp.order_id = od.id and dsp.send_status in ('success','waiting')",
-		groupBy = "dp.id,dp.name,dp.code,dp.remark,dp.created_time,dp.goods_id")
+@SearchBean(tables = "user_distribute_popularize dp",
+		where = "dp.deleted")
 public class UserDistributePopularizeView {
 	@DbField("dp.id")
 	private Long id;
@@ -72,16 +70,16 @@ public class UserDistributePopularizeView {
 	@DbIgnore
 	private String urlCode;
 
-	@DbField("count(if(dsp.id is NULL,NULL,1))")
+	@DbIgnore
 	private Integer orders;
 
-	@DbField("ifnull(cast(sum(if(dsp.id is NULL,0,money))/100 as decimal(11,2)),0)")
+	@DbIgnore
 	private BigDecimal ordersMoney;
 
-	@DbField("ifnull(cast(sum(if(dsp.send_status='waiting',dsp.points,0))/1000 as decimal(11,2)),0)")
+	@DbIgnore
 	private BigDecimal wMoney;
 
-	@DbField("ifnull(cast(sum(if(dsp.send_status='success',dsp.points,0))/1000 as decimal(11,2)),0)")
+	@DbIgnore
 	private BigDecimal gotMoney;
 
 	@DbField("dp.remark")

+ 21 - 0
netflix-dao/src/main/resources/mapper/UserDistributePopularizeMapper.xml

@@ -40,4 +40,25 @@
             and dp.created_time &lt; #{end}
         </if>
     </select>
+
+    <select id="getPopularizeUrlData" resultType="com.cyksj.model.views.UserDistributePopularizeView">
+        select count(od.id)                                        orders,
+        ifnull(cast(sum(money) / 100 as decimal(11, 2)), 0) ordersMoney,
+        ifnull(cast(sum(if(dp.send_status = 'waiting', dp.points, 0)) / 1000 as decimal(11, 2)), 0)
+        as                                              wMoney,
+        ifnull(cast(sum(if(dp.send_status = 'success', dp.points, 0)) / 1000 as decimal(11, 2)), 0)
+        as                                              gotMoney
+        from (select user_id from user_distribute_shared where shared_id = #{cpsUserId}) us
+        inner join order_don od
+        on od.user_id = us.user_id and od.status not in ('close', 'noPayment') and
+        od.is_fixed_distribute is true and od.cps_popularize_id = #{cpsPopularizeId}
+        inner join distribute_waiting_send_points dp on dp.order_id = od.id
+        and dp.send_status in ('success', 'waiting')
+        <if test="start != null">
+            and dp.created_time >= #{start}
+        </if>
+        <if test="end != null">
+            and dp.created_time &lt; #{end}
+        </if>
+    </select>
 </mapper>

+ 2 - 0
netflix-service/src/main/java/com/cyksj/service/cps/CpsPopularizeService.java

@@ -21,4 +21,6 @@ public interface CpsPopularizeService {
 	String getServiceCodeUrl(long cpsUserId);
 
 	UserDistributePopularizeView getVipPopularizeDetail(Long cpsPopularizeId, String startTime, String endTime);
+
+	UserDistributePopularizeView getPopularizeUrlData(long userId, Long cpsPopularizeId, String startTime, String endTime);
 }

+ 5 - 0
netflix-service/src/main/java/com/cyksj/service/cps/impl/CpsPopularizeServiceImpl.java

@@ -121,4 +121,9 @@ public class CpsPopularizeServiceImpl implements CpsPopularizeService {
 		return popularizeMapper.getVipPopularizeDetail(cpsPopularizeId, startTime, endTime);
 
 	}
+
+	@Override
+	public UserDistributePopularizeView getPopularizeUrlData(long userId, Long cpsPopularizeId, String startTime, String endTime) {
+		return popularizeMapper.getPopularizeUrlData(userId, cpsPopularizeId, startTime, endTime);
+	}
 }

+ 23 - 12
netflix-web/src/main/java/com/cyksj/web/controller/cps/CpsPopularizeController.java

@@ -182,10 +182,7 @@ public class CpsPopularizeController {
 					}
 				}
 			});
-			data.setClickNum(distributePopularizeClickRecordMapper.selectCount(Wrappers.lambdaQuery(DistributePopularizeClickRecord.class)
-					.eq(DistributePopularizeClickRecord::getPopularizeId, data.getId())
-					.ge(startTime != null, DistributePopularizeClickRecord::getCreatedTime, startTime)
-					.lt(endTime != null, DistributePopularizeClickRecord::getCreatedTime, endTime)));
+
 			String link = data.getPopularizeLink();
 			if (data.getGoodsId() != null && data.getGoodsId() > 0) {
 				if (!envCommonService.isPrdEnv()) {
@@ -198,18 +195,32 @@ public class CpsPopularizeController {
 				link += "&skuId=" + data.getSkuId();
 			}
 			data.setUrlCode(QrCodeUtil.generateAsBase64(link, QrConfig.create(), "png"));
-			//会员订单数据
-			if (data.getGoodsId() != null && data.getGoodsId() == Constant.VIP_RELATE_GOODS_ID) {
-				UserDistributePopularizeView vipOrderView =cpsPopularizeService.getVipPopularizeDetail(data.getId(), startTime, endTime);
-				data.setOrders(data.getOrders() + vipOrderView.getOrders());
-				data.setOrdersMoney(data.getOrdersMoney().add(vipOrderView.getOrdersMoney()));
-				data.setWMoney(data.getWMoney().add(vipOrderView.getWMoney()));
-				data.setGotMoney(data.getGotMoney().add(vipOrderView.getGotMoney()));
-			}
 		});
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
 
+
+	@GetMapping("/get/popularizeUrl/data/{id}")
+	public Result<UserDistributePopularizeView> getPopularizeUrlData(@PathVariable Long id, String startTime, String endTime) {
+		long cpsUserId = StpCpsManageUser.getLoginIdAsLong();
+		UserDistributePopularizeView data = cpsPopularizeService.getPopularizeUrlData(cpsUserId, id, startTime, endTime);
+		data.setRate(null);
+		//点击数
+		data.setClickNum(distributePopularizeClickRecordMapper.selectCount(Wrappers.lambdaQuery(DistributePopularizeClickRecord.class)
+				.eq(DistributePopularizeClickRecord::getPopularizeId, id)
+				.ge(startTime != null, DistributePopularizeClickRecord::getCreatedTime, startTime)
+				.lt(endTime != null, DistributePopularizeClickRecord::getCreatedTime, endTime)));
+		//会员订单数据
+		if (data.getGoodsId() != null && data.getGoodsId() == Constant.VIP_RELATE_GOODS_ID) {
+			UserDistributePopularizeView vipOrderView =cpsPopularizeService.getVipPopularizeDetail(data.getId(), startTime, endTime);
+			data.setOrders(data.getOrders() + vipOrderView.getOrders());
+			data.setOrdersMoney(data.getOrdersMoney().add(vipOrderView.getOrdersMoney()));
+			data.setWMoney(data.getWMoney().add(vipOrderView.getWMoney()));
+			data.setGotMoney(data.getGotMoney().add(vipOrderView.getGotMoney()));
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult(data);
+	}
+
 	/**
 	 * 默认链接详情
 	 */