Преглед на файлове

fix 活码订单详情头部信息

zoujiajian преди 2 години
родител
ревизия
629e76f4a9

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

@@ -56,4 +56,6 @@ public interface OrderDonMapper extends BaseMapper<OrderDon> {
 	Map<String, Object> selectYhShopDistributeOrderDetail(@Param("startDate") Date startDate, @Param("endDate") Date endDate);
 
 	Integer selectCountActiveCodeOrderByAcId(Long acId);
+
+	Map<String, Object> selectActiveCodeOrderDetail(@Param("acId") Long acId, @Param("startTime") String startTime, @Param("endTime") String endTime);
 }

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

@@ -7,6 +7,7 @@ import com.ejlchina.searcher.bean.SearchBean;
 import lombok.Getter;
 import lombok.Setter;
 
+import java.math.BigDecimal;
 import java.util.Date;
 import java.util.List;
 
@@ -95,6 +96,12 @@ public class CorpFollowActiveCodeView {
 	@DbIgnore
 	private Integer orderNum;
 
+	@DbIgnore
+	private Integer clickNum;
+
+	@DbIgnore
+	private BigDecimal orderMoney = BigDecimal.ZERO;
+
 	@DbField("cfa.created_time")
 	private Date createdTime;
 }

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

@@ -240,4 +240,19 @@
                            on o.user_id = s.user_Id
         where o.status not in ('close', 'noPayment', 'refund')
     </select>
+
+    <select id="selectActiveCodeOrderDetail" resultType="java.util.Map">
+        select count(distinct if(o.status != 'refund', o.id, null)) as orderNum,
+               sum(money) - sum(ifnull(refund_money, 0))            as orderMoney
+        from (select user_id from corp_user where ac_id = #{acId} and user_id != 0) s
+                 left join order_don o
+                           on o.user_id = s.user_Id
+        where o.status not in ('close', 'noPayment')
+        <if test="startTime != null">
+            and o.created_time >= #{startTime}
+        </if>
+        <if test="endTime != null">
+            and o.created_time &lt; #{endTime}
+        </if>
+    </select>
 </mapper>

+ 29 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/corp/CmsCorpFollowActiveCodeController.java

@@ -10,6 +10,7 @@ import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.corp.CorpUserMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
 import com.cyksj.model.entity.CorpFollowActiveCode;
+import com.cyksj.model.entity.CorpFollowActiveCodeClickRecord;
 import com.cyksj.model.entity.CorpFollowServiceRelate;
 import com.cyksj.model.entity.CorpUser;
 import com.cyksj.model.request.corp.Attachments;
@@ -21,6 +22,7 @@ import com.cyksj.service.corp.CorpFollowDynamicConfigService;
 import com.cyksj.service.corp.CorpFollowService;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
+import com.ejlchina.searcher.param.Operator;
 import com.ejlchina.searcher.util.MapBuilder;
 import com.ejlchina.searcher.util.MapUtils;
 import lombok.RequiredArgsConstructor;
@@ -28,7 +30,9 @@ import org.apache.commons.lang3.StringUtils;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletRequest;
+import java.math.BigDecimal;
 import java.util.List;
+import java.util.Map;
 import java.util.Optional;
 
 /** admin/企业微信/客服活码
@@ -177,4 +181,29 @@ public class CmsCorpFollowActiveCodeController {
 		SearchResult<CorpActiveCodeGoodsOrderView> search = beanSearcher.search(CorpActiveCodeGoodsOrderView.class, mapBuilder.build());
 		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
 	}
+
+	/**
+	 * 活码订单详情头部信息
+	 */
+	@GetMapping("/get/active/code/order/headData")
+	public Result<CorpFollowActiveCodeView> getActiveCodeOrderHeadDataView(Long id, String startTime, String endTime) {
+		CorpFollowActiveCodeView view = new CorpFollowActiveCodeView();
+		view.setId(id);
+		MapBuilder builder = MapUtils.builder();
+		if (startTime != null && endTime != null) {
+			builder.field(CorpFollowActiveCodeClickRecord::getCreatedTime, startTime, endTime).op(Operator.Between);
+		}
+		Number clickNumber = beanSearcher.searchCount(CorpFollowActiveCodeClickRecord.class, builder.build());
+		Map<String, Object> map = orderDonMapper.selectActiveCodeOrderDetail(view.getId(), startTime, endTime);
+		Object orderNum = map.get("orderNum");
+		Object orderMoney = map.get("orderMoney");
+		view.setClickNum(clickNumber.intValue());
+		if (orderNum != null) {
+			view.setOrderNum(Integer.parseInt(orderNum.toString()));
+		}
+		if (orderMoney != null) {
+			view.setOrderMoney(BigDecimal.valueOf(Long.valueOf(orderMoney.toString())));
+		}
+		return GatewayResponse.SUCCESS.newBuilder().toResult(view);
+	}
 }