Browse Source

Merge branch 'login_popularize'

# Conflicts:
#	netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java
zoujiajian 3 years ago
parent
commit
19f788f4e1
27 changed files with 321 additions and 57 deletions
  1. 6 0
      netflix-common/src/main/java/com/cyksj/common/constant/Constant.java
  2. 13 0
      netflix-dao/src/main/java/com/cyksj/mapper/OrderCommentMapper.java
  3. 10 0
      netflix-dao/src/main/java/com/cyksj/model/entity/ChannelPopularize.java
  4. 38 0
      netflix-dao/src/main/java/com/cyksj/model/entity/OrderComment.java
  5. 5 0
      netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java
  6. 10 0
      netflix-dao/src/main/java/com/cyksj/model/request/OrderPayRequest.java
  7. 11 0
      netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java
  8. 7 0
      netflix-dao/src/main/java/com/cyksj/model/views/GoodsDonPopularizeView.java
  9. 49 0
      netflix-dao/src/main/java/com/cyksj/model/views/OrderCommentView.java
  10. 8 0
      netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java
  11. 12 0
      netflix-service/src/main/java/com/cyksj/config/zfb/BaseZfbConfig.java
  12. 2 2
      netflix-service/src/main/java/com/cyksj/service/exchange/impl/ExchangeCodeServiceImpl.java
  13. 2 1
      netflix-service/src/main/java/com/cyksj/service/mange/statistics/impl/StatisticsDataServiceImpl.java
  14. 1 1
      netflix-service/src/main/java/com/cyksj/service/order/OrderDonService.java
  15. 21 16
      netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java
  16. 1 1
      netflix-service/src/main/java/com/cyksj/service/relation/GroupRelationFrontService.java
  17. 12 2
      netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java
  18. 2 3
      netflix-service/src/main/java/com/cyksj/task/OrderCustomerHandleScheduler.java
  19. 3 5
      netflix-service/src/main/java/com/cyksj/task/StatisticsDataScheduler.java
  20. 11 6
      netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java
  21. 2 2
      netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java
  22. 48 4
      netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java
  23. 11 0
      netflix-web/src/main/java/com/cyksj/web/controller/manage/channel/CmsChannelPopularizeController.java
  24. 4 4
      netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java
  25. 3 3
      netflix-web/src/main/java/com/cyksj/web/controller/manage/statistics/StatisticsDataController.java
  26. 28 6
      netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java
  27. 1 1
      netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

+ 6 - 0
netflix-common/src/main/java/com/cyksj/common/constant/Constant.java

@@ -1,5 +1,7 @@
 package com.cyksj.common.constant;
 
+import java.util.List;
+
 /*
  *项目名: netflix
  *文件名: Constant
@@ -14,6 +16,10 @@ public interface Constant {
 
 	String DEFAULT_NAME = "银河用户";
 
+	List<String> noOrderStatus = List.of("close", "noPayment");
+
+	List<String> noOrderAllStatus = List.of("noPayment", "close", "refund");
+
 	/**
 	 * 默认头像
 	 */

+ 13 - 0
netflix-dao/src/main/java/com/cyksj/mapper/OrderCommentMapper.java

@@ -0,0 +1,13 @@
+package com.cyksj.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.cyksj.model.entity.OrderComment;
+
+/*
+ *项目名: netflix
+ *文件名: OrderCommentMapper
+ *创建者: JavaZou
+ *创建时间:2023/2/1 13:56
+ */
+public interface OrderCommentMapper extends BaseMapper<OrderComment> {
+}

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/ChannelPopularize.java

@@ -36,4 +36,14 @@ public class ChannelPopularize extends BaseEntity{
      */
     private String payMethod;
 
+    /**
+     * 是否展示规格弹窗
+     */
+    private Boolean isShowSku;
+
+    /**
+     * 是否隐藏平台logo
+     */
+    private Boolean isShowLogo;
+
 }

+ 38 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/OrderComment.java

@@ -0,0 +1,38 @@
+package com.cyksj.model.entity;
+
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import javax.validation.constraints.NotEmpty;
+import javax.validation.constraints.NotNull;
+
+/*
+ *项目名: netflix
+ *文件名: OrderComment
+ *创建者: JavaZou
+ *创建时间:2023/2/1 13:46
+ */
+@Getter
+@Setter
+@SearchBean(tables = "order_comment")
+public class OrderComment extends BaseEntity{
+	private Long userId;
+
+	private String headImgUrl;
+
+	@NotEmpty
+	private String nickname;
+
+	@NotNull
+	private Long goodsId;
+
+	private Long orderId;
+
+	@NotEmpty
+	private String content;
+
+	private String remark;
+
+	private Integer score;
+}

+ 5 - 0
netflix-dao/src/main/java/com/cyksj/model/entity/OrderDon.java

@@ -116,6 +116,11 @@ public class OrderDon extends BaseEntity implements Serializable {
      */
     private Boolean isNoLogin;
 
+    /**
+     * 是否是网页端支付 默认0移动端支付
+     */
+    private Boolean isWebPay;
+
     /**
      * 关联兑换码
      */

+ 10 - 0
netflix-dao/src/main/java/com/cyksj/model/request/OrderPayRequest.java

@@ -73,4 +73,14 @@ public class OrderPayRequest {
     private Long popularizeId;
 
     private Boolean isNoLogin;
+
+    /**
+     * 登录推广 不需要校验未支付订单订单
+     */
+    private Boolean isLoginPopularize;
+
+    /**
+     * 是否是网页端支付 默认0移动端支付
+     */
+    private Boolean isWebPay;
 }

+ 11 - 0
netflix-dao/src/main/java/com/cyksj/model/views/ChannelPopularizeView.java

@@ -64,6 +64,12 @@ public class ChannelPopularizeView {
     @DbField("cp.pay_method")
     private String payMethod;
 
+    @DbField("cp.is_show_sku")
+    private Boolean isShowSku;
+
+    @DbField("cp.is_show_logo")
+    private Boolean isShowLogo;
+
     /**
      * 浏览数
      */
@@ -82,6 +88,11 @@ public class ChannelPopularizeView {
     @DbIgnore
     private Integer phoneCount;
 
+    /**
+     * 网页端支付订单数
+     */
+    private Integer numOfOrderWebPay;
+
     /**
      * 订单数
      */

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

@@ -2,6 +2,7 @@ package com.cyksj.model.views;
 
 import com.cyksj.model.entity.GoodsDonSku;
 import com.cyksj.model.entity.GoodsDonSpec;
+import com.cyksj.model.entity.OrderComment;
 import com.ejlchina.searcher.bean.DbField;
 import com.ejlchina.searcher.bean.DbIgnore;
 import com.ejlchina.searcher.bean.SearchBean;
@@ -92,4 +93,10 @@ public class GoodsDonPopularizeView {
 
 	@DbIgnore
 	private GoodsDonSpec specs;
+
+	/**
+	 * 评论列表
+	 */
+	@DbIgnore
+	private List<OrderComment> orderComments;
 }

+ 49 - 0
netflix-dao/src/main/java/com/cyksj/model/views/OrderCommentView.java

@@ -0,0 +1,49 @@
+package com.cyksj.model.views;
+
+import com.ejlchina.searcher.bean.DbField;
+import com.ejlchina.searcher.bean.SearchBean;
+import lombok.Getter;
+import lombok.Setter;
+
+import java.util.Date;
+
+/*
+ *项目名: netflix
+ *文件名: OrderCommentView
+ *创建者: JavaZou
+ *创建时间:2023/2/1 14:00
+ */
+@Getter
+@Setter
+@SearchBean(tables = "order_comment oc left join goods_don g on g.id = oc.goods_id")
+public class OrderCommentView {
+	@DbField("oc.user_id")
+	private Long userId;
+
+	@DbField("oc.head_img_url")
+	private String headImgUrl;
+
+	@DbField("oc.nickname")
+	private String nickname;
+
+	@DbField("oc.goods_id")
+	private Long goodsId;
+
+	@DbField("oc.order_id")
+	private Long orderId;
+
+	@DbField("oc.content")
+	private String content;
+
+	@DbField("oc.score")
+	private Integer score;
+
+	@DbField("g.title")
+	private String title;
+
+	@DbField("oc.remark")
+	private String remark;
+
+	@DbField("oc.created_time")
+	private Date createdTime;
+}

+ 8 - 0
netflix-dao/src/main/java/com/cyksj/model/views/RenewalView.java

@@ -1,10 +1,12 @@
 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;
 
+import java.math.BigDecimal;
 import java.util.Date;
 
 /**
@@ -25,6 +27,9 @@ public class RenewalView {
     @DbField("sku.id")
     private Long skuId;
 
+    @DbField("sku.price")
+    private BigDecimal price;
+
     @DbField("gr.id")
     private Long relationId;
 
@@ -64,4 +69,7 @@ public class RenewalView {
 
     @DbField("a.password")
     private String password;
+
+    @DbIgnore
+    private GoodsDonViews goodsDonViews;
 }

+ 12 - 0
netflix-service/src/main/java/com/cyksj/config/zfb/BaseZfbConfig.java

@@ -34,5 +34,17 @@ public class BaseZfbConfig {
 
 	public static String returnUrl = "yinhe/web/ticket";
 
+	public static String loginReturnUrl = "yinhe/web/loginTicket";
+
 	public static String notifyUrl = "applets/order/prepay/zfb/notify";
+
+	/**
+	 * qr_pay_mode PC扫码支付的方式。 跳转模式
+	 */
+	public static String qrPayMode_redirect = "2";
+
+	/**
+	 * qr_pay_mode PC扫码支付的方式。订单码 默认4嵌入
+	 */
+	public static String qrPayMode_orderCode = "4";
 }

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

@@ -7,6 +7,7 @@ import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.annotation.NoSubmit;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
 import com.cyksj.common.task.GlobalThreadPoolTaskExecutor;
@@ -24,7 +25,6 @@ import com.cyksj.model.request.ExchangeCodeTicket;
 import com.cyksj.redis.RedisService;
 import com.cyksj.service.exchange.ExchangeCodeService;
 import com.cyksj.service.template.TemplateCommonService;
-import com.cyksj.task.StatisticsDataScheduler;
 import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
@@ -143,7 +143,7 @@ public class ExchangeCodeServiceImpl extends ServiceImpl<ExchangeCodeMapper, Exc
 		OrderDon orderDon = orderDonMapper.selectOne(Wrappers.lambdaQuery(OrderDon.class)
 				.eq(OrderDon::getIsNoLogin, true)
 				.eq(OrderDon::getExCode, exchangeCode.getCode())
-				.notIn(OrderDon::getStatus, StatisticsDataScheduler.noOrderStatus)
+				.notIn(OrderDon::getStatus, Constant.noOrderStatus)
 				.last("limit 1"));
 		if (orderDon != null && orderDon.getStatus() == OrderDon.Status.refund) {
 			throw BusinessRuntimeException.getInstance("您的订单已退款,无法使用该兑换码");

+ 2 - 1
netflix-service/src/main/java/com/cyksj/service/mange/statistics/impl/StatisticsDataServiceImpl.java

@@ -5,6 +5,7 @@ import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.ObjectUtil;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.GoodsDonMapper;
@@ -232,7 +233,7 @@ public class StatisticsDataServiceImpl implements StatisticsDataService {
 
 	private void headerData(BackgroundDataView backgroundDataView, Date startDate, Date endDate) {
 		//总订单数
-		List<OrderDon> orderDons = Optional.ofNullable(orderDonService.list(Wrappers.lambdaQuery(OrderDon.class).notIn(OrderDon::getStatus, StatisticsDataScheduler.noOrderStatus).ge(ObjectUtil.isNotNull(startDate), OrderDon::getCreatedTime, startDate).lt(ObjectUtil.isNotNull(endDate), OrderDon::getCreatedTime, endDate))).orElse(new ArrayList<>());
+		List<OrderDon> orderDons = Optional.ofNullable(orderDonService.list(Wrappers.lambdaQuery(OrderDon.class).notIn(OrderDon::getStatus, Constant.noOrderStatus).ge(ObjectUtil.isNotNull(startDate), OrderDon::getCreatedTime, startDate).lt(ObjectUtil.isNotNull(endDate), OrderDon::getCreatedTime, endDate))).orElse(new ArrayList<>());
 		backgroundDataView.setTotalNumOfOrder(orderDons.size());
 		//总下单用户数
 		backgroundDataView.setTotalNumOfUser(orderDons.stream().map(OrderDon::getUserId).collect(Collectors.toSet()).size());

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/order/OrderDonService.java

@@ -51,7 +51,7 @@ public interface OrderDonService extends IService<OrderDon> {
     /**
      * 支付宝预支付
      */
-    AliPayParams aliPay(Long orderId, String productCode) throws Exception;
+    AliPayParams aliPay(Long orderId, String productCode, String qrPayMode) throws Exception;
 
     /**
      * 支付宝回调

+ 21 - 16
netflix-service/src/main/java/com/cyksj/service/order/impl/OrderDonServiceImpl.java

@@ -19,6 +19,7 @@ import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.cyksj.common.AliPayCommon;
 import com.cyksj.common.EnvCommonService;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.constant.TaskTypeEnum;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.snowflake.Sequence;
@@ -229,7 +230,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 				}
 
 				//锁定座位
-				setRelation(relation.getId(), user.getId(), goodsDon.getId());
+				setRelation(relation.getId(), user.getId(), goodsDon.getId(), payRequest.getIsLoginPopularize());
 				relation.setUserId(user.getId());
 				relation.setStatus(GroupsRelation.Status.locking);
 				groupsRelationMapper.updateById(relation);
@@ -281,6 +282,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		orderDon.setStatus(OrderDon.Status.noPayment);
 		orderDon.setUserId(user.getId());
 		orderDon.setType(OrderDon.Type.getType(payRequest.getType()));
+		orderDon.setIsWebPay(payRequest.getIsWebPay());
 		if (isNoLogin == null || !isNoLogin) {
 			//虚拟商品订单,是否是分销订单
 			if (goodsDon.getType() == 1) {
@@ -655,7 +657,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	}
 
 	@Override
-	public AliPayParams aliPay(Long orderId, String productCode) throws Exception {
+	public AliPayParams aliPay(Long orderId, String productCode,String qrPayMode) throws Exception {
 		OrderDon orderDon = getById(orderId);
 		String appId = ShopConfig.ZFB_DEFAULT_APP_ID;
 
@@ -668,7 +670,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		orderDon.setType(OrderDon.Type.ALI_PAY);
 		orderDon.setShopId(appId);
 		this.updateById(orderDon);
-		return commonAliPay(orderId, productCode, appId);
+		return commonAliPay(orderId, productCode, appId, qrPayMode);
 	}
 
 	@Override
@@ -894,7 +896,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 						.eq(OrderDon::getRelationId, relationId)
 						.eq(OrderDon::getUserId, orderDon.getUserId())
 						.ne(OrderDon::getId, orderDon.getId())
-						.notIn(OrderDon::getStatus, OrderCustomerHandleScheduler.noOrderStatus)
+						.notIn(OrderDon::getStatus, Constant.noOrderAllStatus)
 						.orderByDesc(OrderDon::getId)
 						.last("limit 1"));
 				if (otherOrder != null) {
@@ -962,7 +964,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 						.eq(OrderDon::getRelationId, orderDon.getRelationId())
 						.eq(OrderDon::getUserId, orderDon.getUserId())
 						.ne(OrderDon::getId, orderDon.getId())
-						.notIn(OrderDon::getStatus, OrderCustomerHandleScheduler.noOrderStatus)
+						.notIn(OrderDon::getStatus,  Constant.noOrderAllStatus)
 						.eq(OrderDon::getOrderType, 2)
 						.orderByDesc(OrderDon::getId)
 						.last("limit 1"));
@@ -1055,10 +1057,12 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		log.info("微信退款: 退款单号[{}] 退款成功.", outRefundNo);
 	}
 
-	public void setRelation(Long relationId, Long userId, Long goodsId) {
-		int noPayCount = count(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getGoodsId, goodsId).eq(OrderDon::getStatus, OrderDon.Status.noPayment.toString()));
-		if (noPayCount > 0) {
-			throw new BusinessRuntimeException("您有未支付订单.");
+	public void setRelation(Long relationId, Long userId, Long goodsId, Boolean isLoginPopularize) {
+		if (isLoginPopularize == null || !isLoginPopularize) {
+			int noPayCount = count(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getUserId, userId).eq(OrderDon::getGoodsId, goodsId).eq(OrderDon::getStatus, OrderDon.Status.noPayment.toString()));
+			if (noPayCount > 0) {
+				throw new BusinessRuntimeException("您有未支付订单.");
+			}
 		}
 
 		if (redisService.get(RedisKey.GROUPS_RELATION_NUM_KEY + relationId) != null) {
@@ -1104,22 +1108,23 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 		orderDonTransportMapper.insert(transport);
 	}
 
-	public AliPayParams commonAliPay(Long orderId, String productCode, String appId) throws Exception {
+	public AliPayParams commonAliPay(Long orderId, String productCode, String appId, String qrPayMode) throws Exception {
 		ShopConfig shopConfig = shopConfigMapper.getByAppId(Optional.ofNullable(appId).orElse(ShopConfig.ZFB_DEFAULT_APP_ID));
 
 		AlipayClient alipayClient = AliPayCommon.getAlipayClient(shopConfig);
 		// 创建API对应的request
-		AlipayRequest alipayRequest = getAliAayRequest(orderId, productCode);
+		AlipayRequest alipayRequest = getAliAayRequest(orderId, productCode, qrPayMode);
 		if (alipayRequest == null) {
 			throw BusinessRuntimeException.getInstance("支付宝不支持该支付方式:{0}", productCode);
 		}
 		//回调地址
 		String host = envCommonService.getHost();
 		String notifyUrl = String.format("%s%s", host, BaseZfbConfig.notifyUrl);
-		//去除返回地址
-//		String returnUrl = String.format("https://%s/%s", host, BaseZfbConfig.returnUrl);
+		if (BaseZfbConfig.qrPayMode_redirect.equals(qrPayMode)) {
+			String returnUrl = String.format("%s%s", envCommonService.getDomain(), BaseZfbConfig.loginReturnUrl);
+			alipayRequest.setReturnUrl(returnUrl);
+		}
 		alipayRequest.setNotifyUrl(notifyUrl);
-//		alipayRequest.setReturnUrl(returnUrl);
 		String form = null;
 		try {
 			//调用SDK生成表单
@@ -1137,7 +1142,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 	 * @param productCode 销售产品码,与支付宝签约的产品码名称
 	 * @return
 	 */
-	private AlipayRequest getAliAayRequest(Long orderId, String productCode) throws Exception {
+	private AlipayRequest getAliAayRequest(Long orderId, String productCode, String qrPayMode) throws Exception {
 		OrderAttach attach = new OrderAttach();
 		attach.setO(orderId);
 		String body = Codec.DoBase64.custom()
@@ -1175,7 +1180,7 @@ public class OrderDonServiceImpl extends ServiceImpl<OrderDonMapper, OrderDon> i
 			alipayTradePagePayModel.setProductCode(productCode);
 			//5分钟订单失效时间
 			alipayTradePagePayModel.setTimeExpire(DateUtil.offsetMinute(orderDon.getCreatedTime(), 5).toString());
-			alipayTradePagePayModel.setQrPayMode("4");
+			alipayTradePagePayModel.setQrPayMode(qrPayMode);
 			alipayTradePagePayRequest.setBizModel(alipayTradePagePayModel);
 			return alipayTradePagePayRequest;
 		}

+ 1 - 1
netflix-service/src/main/java/com/cyksj/service/relation/GroupRelationFrontService.java

@@ -11,5 +11,5 @@ import java.util.List;
  *创建时间:2022/12/29 15:42
  */
 public interface GroupRelationFrontService {
-	List<RenewalView> getMyTicket(long userId);
+	List<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize);
 }

+ 12 - 2
netflix-service/src/main/java/com/cyksj/service/relation/impl/GroupRelationFrontServiceImpl.java

@@ -6,8 +6,11 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.mapper.market.task.UserBindPhoneMapper;
+import com.cyksj.model.entity.GoodsDonSku;
+import com.cyksj.model.entity.GoodsDonSpec;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.entity.UserBindPhone;
+import com.cyksj.model.views.GoodsDonViews;
 import com.cyksj.model.views.RenewalView;
 import com.cyksj.service.relation.GroupRelationFrontService;
 import com.ejlchina.searcher.BeanSearcher;
@@ -37,7 +40,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 	private final BeanSearcher beanSearcher;
 
 	@Override
-	public List<RenewalView> getMyTicket(long userId) {
+	public List<RenewalView> getMyTicket(long userId, Boolean isLoginPopularize) {
 		User u = userMapper.selectById(userId);
 		Boolean isPcUser = false;
 		if (StrUtil.isNotBlank(u.getLoginPhone())) {
@@ -55,7 +58,7 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 		if (userBindPhone != null) {
 			if (isPcUser) {
 				otherUserId = userBindPhone.getUserId();
-			}else {
+			} else {
 				User user = userMapper.selectOne(Wrappers.lambdaQuery(User.class)
 						.eq(User::getLoginPhone, userBindPhone.getPhone()).last("limit 1"));
 				if (user != null) {
@@ -78,6 +81,13 @@ public class GroupRelationFrontServiceImpl implements GroupRelationFrontService
 				ticket.setAccount(null);
 				ticket.setPassword(null);
 			}
+			if (isLoginPopularize != null && isLoginPopularize) {
+				GoodsDonViews views = beanSearcher.searchFirst(GoodsDonViews.class, MapUtils.builder().field(GoodsDonViews::getId, ticket.getGoodsId()).build());
+				views.setSpecs(beanSearcher.searchFirst(GoodsDonSpec.class, MapUtils.builder().field(GoodsDonSpec::getGoodsId, views.getId()).build()));
+				views.setSkuList(beanSearcher.searchAll(GoodsDonSku.class, MapUtils.builder().field(GoodsDonSku::getGoodsId, views.getId()).field(GoodsDonSku::getStatus, true).build()));
+
+				ticket.setGoodsDonViews(views);
+			}
 			return true;
 		}).collect(Collectors.toList());
 		return collect;

+ 2 - 3
netflix-service/src/main/java/com/cyksj/task/OrderCustomerHandleScheduler.java

@@ -3,6 +3,7 @@ package com.cyksj.task;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.StrUtil;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.mapper.manage.CustomerServiceEveryMonthDetailMapper;
 import com.cyksj.mapper.manage.StatisticsCustomerServiceEveryMonthMapper;
 import com.cyksj.model.entity.CustomerServiceEveryMonthDetail;
@@ -39,8 +40,6 @@ public class OrderCustomerHandleScheduler {
 
 	private final BeanSearcher beanSearcher;
 
-	public static List<String> noOrderStatus = List.of("noPayment", "close", "refund");
-
 	/**
 	 * 客服业绩数据统计
 	 */
@@ -50,7 +49,7 @@ public class OrderCustomerHandleScheduler {
 		DateTime begin = DateUtil.beginOfMonth(now);
 		String statisticsDate = DateUtil.format(now, "yyyy-MM");
 		List<RealGoodsOrderHandle> realGoodsOrderHandles = beanSearcher.searchAll(RealGoodsOrderHandle.class, MapUtils.builder()
-				.field(RealGoodsOrderHandle::getStatus, noOrderStatus).op(Operator.NotIn)
+				.field(RealGoodsOrderHandle::getStatus, Constant.noOrderAllStatus).op(Operator.NotIn)
 				.field(RealGoodsOrderHandle::getCreatedTime, begin, now).op(Operator.Between)
 				.build());
 		Map<String, List<RealGoodsOrderHandle>> before = realGoodsOrderHandles.stream().collect(Collectors.groupingBy(RealGoodsOrderHandle::getBeforeServiceName));

+ 3 - 5
netflix-service/src/main/java/com/cyksj/task/StatisticsDataScheduler.java

@@ -55,8 +55,6 @@ public class StatisticsDataScheduler {
 
 	private final static String APPLE_ONE = "Apple One";
 
-	public static List<String> noOrderStatus = List.of("close", "noPayment");
-
 	public static List<String> payType = List.of("月", "季", "年");
 
 	private final static List<String> registerAccount = List.of("apple", "spotify", "google");
@@ -172,7 +170,7 @@ public class StatisticsDataScheduler {
 			//通过skuIds找到对应的appleOne统计数据
 			List<Long> skuIds = skus.stream().map(GoodsDonSku::getId).collect(Collectors.toList());
 			List<Long> goodsId = skus.stream().map(GoodsDonSku::getGoodsId).distinct().collect(Collectors.toList());
-			List<OrderDon> orderDons = Optional.ofNullable(orderDonService.getAppleOneOrderDons(APPLE_ONE, skuIds, goodsId, noOrderStatus, yesZeroDate, thisZeroDate)).orElse(new ArrayList<>());
+			List<OrderDon> orderDons = Optional.ofNullable(orderDonService.getAppleOneOrderDons(APPLE_ONE, skuIds, goodsId, Constant.noOrderStatus, yesZeroDate, thisZeroDate)).orElse(new ArrayList<>());
 			appleOneDataStatistics(orderDons, appleOne, appleOneSave);
 		});
 
@@ -256,7 +254,7 @@ public class StatisticsDataScheduler {
 						realGoodsData.setSkuId(sku.getId());
 						realGoodsData.setSpecVal(sku.getSpecVal());
 						//订单
-						List<OrderDon> orderDon = Optional.ofNullable(orderDonService.list(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getSkuId, sku.getId()).between(OrderDon::getCreatedTime, yesZeroDate, thisZeroDate).notIn(OrderDon::getStatus, noOrderStatus).select(OrderDon::getUserId, OrderDon::getMoney, OrderDon::getId))).orElse(new ArrayList<>());
+						List<OrderDon> orderDon = Optional.ofNullable(orderDonService.list(Wrappers.lambdaQuery(OrderDon.class).eq(OrderDon::getSkuId, sku.getId()).between(OrderDon::getCreatedTime, yesZeroDate, thisZeroDate).notIn(OrderDon::getStatus, Constant.noOrderStatus).select(OrderDon::getUserId, OrderDon::getMoney, OrderDon::getId))).orElse(new ArrayList<>());
 						Set<Long> userList = Optional.ofNullable(orderDon.stream().map(OrderDon::getUserId).collect(Collectors.toSet())).orElse(new HashSet<>());
 						//用户数
 						realGoodsData.setNumOfUser(userList.size());
@@ -294,7 +292,7 @@ public class StatisticsDataScheduler {
 		List<GoodsDonSku> list = Optional.ofNullable(goodsDonSkuService.list(Wrappers.lambdaQuery(GoodsDonSku.class).eq(GoodsDonSku::getGoodsId, goodsId).select(GoodsDonSku::getId))).orElse(new ArrayList<>());
 		List<Long> skuIds = list.stream().map(GoodsDonSku::getId).collect(Collectors.toList());
 		if (CollUtil.isNotEmpty(skuIds)) {
-			List<OrderDon> orderDons = Optional.ofNullable(accountService.getNoAppleOneOrderDon(skuIds, yesZeroDate, thisZeroDate, noOrderStatus)).orElse(new ArrayList<>());
+			List<OrderDon> orderDons = Optional.ofNullable(accountService.getNoAppleOneOrderDon(skuIds, yesZeroDate, thisZeroDate, Constant.noOrderStatus)).orElse(new ArrayList<>());
 			//用户数
 			streamingAccountData.setNumOfUser(orderDons.stream().map(OrderDon::getUserId).collect(Collectors.toSet()).size());
 			getNumOfOrderByPayType(orderDons, streamingAccountData);

+ 11 - 6
netflix-web/src/main/java/com/cyksj/web/controller/goods/GoodsDonController.java

@@ -5,17 +5,14 @@ import cn.hutool.core.date.DateUnit;
 import cn.hutool.core.date.DateUtil;
 import cn.hutool.core.util.RandomUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
 import com.cyksj.mapper.OrderDonMapper;
-import com.cyksj.model.entity.GoodsDon;
-import com.cyksj.model.entity.GoodsDonSku;
-import com.cyksj.model.entity.GoodsDonSpec;
-import com.cyksj.model.entity.OrderDon;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.views.GoodsDonPopularizeView;
 import com.cyksj.model.views.GoodsDonSkuView;
 import com.cyksj.model.views.GoodsDonViews;
-import com.cyksj.task.StatisticsDataScheduler;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.util.MapBuilder;
@@ -79,9 +76,17 @@ public class GoodsDonController {
             data.setSpecs(beanSearcher.searchFirst(GoodsDonSpec.class, MapUtils.builder().field(GoodsDonSpec::getGoodsId, data.getId()).build()));
             data.setSkuList(beanSearcher.searchAll(GoodsDonSku.class, MapUtils.builder().field(GoodsDonSku::getGoodsId, data.getId()).field(GoodsDonSku::getStatus, true).build()));
             data.setSold(data.getSold() + randomNum);
+            SearchResult<OrderComment> orderComments = beanSearcher.search(OrderComment.class,
+                    MapUtils.builder().field(OrderComment::getGoodsId, data.getId())
+                            .orderBy(OrderComment::getId).desc()
+                            .build());
+            if (orderComments != null) {
+                List<OrderComment> comments = orderComments.getDataList();
+                data.setOrderComments(comments);
+            }
             OrderDon orderDon = orderDonMapper.selectOne(Wrappers.lambdaQuery(OrderDon.class)
                     .eq(OrderDon::getGoodsId, data.getId())
-                    .notIn(OrderDon::getStatus, StatisticsDataScheduler.noOrderStatus).select(OrderDon::getCreatedTime, OrderDon::getPayTime, OrderDon::getId)
+                    .notIn(OrderDon::getStatus, Constant.noOrderStatus).select(OrderDon::getCreatedTime, OrderDon::getPayTime, OrderDon::getId)
                     .orderByDesc(OrderDon::getId)
                     .last("limit 1"));
             StringBuilder notifyMsg = new StringBuilder();

+ 2 - 2
netflix-web/src/main/java/com/cyksj/web/controller/group/GroupRelationController.java

@@ -38,9 +38,9 @@ public class GroupRelationController {
     private final GroupRelationFrontService groupRelationFrontService;
 
     @RequestMapping("/get/renewal")
-    public Result<List<RenewalView>> get() {
+    public Result<List<RenewalView>> get(Boolean isLoginPopularize) {
         long userId = StpUserUtil.getLoginIdAsLong();
-        List<RenewalView> list = groupRelationFrontService.getMyTicket(userId);
+        List<RenewalView> list = groupRelationFrontService.getMyTicket(userId, isLoginPopularize);
         return GatewayResponse.SUCCESS.newBuilder().toResult(list);
     }
 

+ 48 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/CmsOrderController.java

@@ -1,18 +1,19 @@
 package com.cyksj.web.controller.manage;
 
+import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.cyksj.common.annotation.NoSubmit;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
+import com.cyksj.common.util.StringUtil;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.OrderCommentMapper;
 import com.cyksj.mapper.RealGoodsInterestUserMapper;
 import com.cyksj.mapper.manage.RealGoodsOrderHandleMapper;
 import com.cyksj.mapper.manage.coupon.CouponMapper;
-import com.cyksj.model.entity.OrderDon;
-import com.cyksj.model.entity.OrderDonWaybill;
-import com.cyksj.model.entity.RealGoodsInterestUser;
-import com.cyksj.model.entity.RealGoodsOrderHandle;
+import com.cyksj.model.entity.*;
 import com.cyksj.model.excel.ExcelOrderDonData;
 import com.cyksj.model.excel.ExcelRealGoodsUserInterestData;
 import com.cyksj.model.excel.ExcelRealGoodsUserInterestHasPaymentData;
@@ -20,6 +21,7 @@ import com.cyksj.model.manage.request.ReqSetLogisticsPost;
 import com.cyksj.model.manage.views.OrderDonView;
 import com.cyksj.model.request.RealGoodsServiceReq;
 import com.cyksj.model.request.UserRealGoodsInterestReq;
+import com.cyksj.model.views.OrderCommentView;
 import com.cyksj.model.views.OrderDonTransportView;
 import com.cyksj.model.views.RealGoodsInterestUserHasPaymentView;
 import com.cyksj.model.views.RealGoodsInterestUserView;
@@ -68,6 +70,8 @@ public class CmsOrderController {
 
     private final CouponMapper couponMapper;
 
+	private final OrderCommentMapper orderCommentMapper;
+
 
     @GetMapping("/get")
     public Result<SearchResult<OrderDonView>> get() {
@@ -269,4 +273,44 @@ public class CmsOrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult("操作成功");
     }
 
+	/**
+	 * 新增平台评论
+	 */
+	@PostMapping("/post/orderComment")
+	public Result<String> insertOrderComment(@RequestBody @Validated OrderComment orderComment) {
+		if (StrUtil.isEmpty(orderComment.getHeadImgUrl())) {
+			orderComment.setHeadImgUrl(Constant.DEFAULT_HEAD_IMG);
+		}
+		orderComment.setNickname(StringUtil.anonymity(orderComment.getNickname().toCharArray()));
+		orderCommentMapper.insert(orderComment);
+		return GatewayResponse.SUCCESS.newBuilder().toResult("新增成功");
+	}
+
+	/**
+	 * 编辑平台评论
+	 */
+	@PutMapping("/put/orderComment")
+	public Result<String> updateOrderComment(@RequestBody @Validated OrderComment orderComment) {
+		orderCommentMapper.updateById(orderComment);
+		return GatewayResponse.SUCCESS.newBuilder().toResult("编辑成功");
+	}
+
+	/**
+	 * 删除平台评论
+	 */
+	@DeleteMapping("/delete/orderComment/{id}")
+	public Result<String> deleteOrderCommentById(@PathVariable Long id) {
+		orderCommentMapper.deleteById(id);
+		return GatewayResponse.SUCCESS.newBuilder().toResult("删除成功");
+	}
+
+	/**
+	 * 平台评论列表
+	 */
+	@GetMapping("/get/orderComment")
+	public Result<SearchResult<OrderCommentView>> getOrderCommentView() {
+		SearchResult<OrderCommentView> search = beanSearcher.search(OrderCommentView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+		return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+	}
+
 }

+ 11 - 0
netflix-web/src/main/java/com/cyksj/web/controller/manage/channel/CmsChannelPopularizeController.java

@@ -2,10 +2,13 @@ package com.cyksj.web.controller.manage.channel;
 
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
+import com.cyksj.mapper.OrderDonMapper;
 import com.cyksj.mapper.UserMapper;
 import com.cyksj.model.entity.ChannelPopularize;
+import com.cyksj.model.entity.OrderDon;
 import com.cyksj.model.entity.User;
 import com.cyksj.model.views.ChannelPopularizeDetailView;
 import com.cyksj.model.views.ChannelPopularizeView;
@@ -39,6 +42,8 @@ public class CmsChannelPopularizeController {
 
     private final UserMapper userMapper;
 
+    private final OrderDonMapper orderDonMapper;
+
     @GetMapping
     public Result<SearchResult<ChannelPopularizeView>> get(String startTime, String endTime){
         String timeSql = StringUtils.EMPTY;
@@ -61,6 +66,12 @@ public class CmsChannelPopularizeController {
             Integer phoneCount = userMapper.selectCount(wrapper
                     .ne(User::getLoginPhone, ""));
             data.setPhoneCount(phoneCount);
+
+            Integer numOfOrderWebPay = orderDonMapper.selectCount(Wrappers.lambdaQuery(OrderDon.class)
+                    .eq(OrderDon::getPopularizeId, data.getId())
+                    .eq(OrderDon::getIsWebPay, true)
+                    .notIn(OrderDon::getStatus, Constant.noOrderStatus));
+            data.setNumOfOrderWebPay(numOfOrderWebPay);
         });
         return GatewayResponse.SUCCESS.newBuilder().toResult(searchResult);
     }

+ 4 - 4
netflix-web/src/main/java/com/cyksj/web/controller/manage/distribute/DistributeController.java

@@ -2,6 +2,7 @@ package com.cyksj.web.controller.manage.distribute;
 
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
@@ -17,7 +18,6 @@ import com.cyksj.model.request.DistributeApplyMoneyReq;
 import com.cyksj.model.request.UserDistributeReq;
 import com.cyksj.model.views.*;
 import com.cyksj.service.distribute.DistributeService;
-import com.cyksj.task.OrderCustomerHandleScheduler;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
 import com.ejlchina.searcher.param.Operator;
@@ -120,8 +120,8 @@ public class DistributeController {
 			view.setGotMoney(money.isPresent() ? money.get() : BigDecimal.ZERO);
 			Integer orders = userDistributeMapper.count(view.getUserId());
 			view.setOrders(orders);
-			BigDecimal hasPayMoney = userDistributeMapper.getHasPayOrdersBySharedId(view.getUserId(), OrderCustomerHandleScheduler.noOrderStatus);
-			BigDecimal hasPayCount = userDistributeMapper.countHasPayBySharedId(view.getUserId(), OrderCustomerHandleScheduler.noOrderStatus);
+			BigDecimal hasPayMoney = userDistributeMapper.getHasPayOrdersBySharedId(view.getUserId(), Constant.noOrderAllStatus);
+			BigDecimal hasPayCount = userDistributeMapper.countHasPayBySharedId(view.getUserId(), Constant.noOrderAllStatus);
 			view.setDistributeOrdersMoney(hasPayMoney);
 			view.setDistributeUserNum(userDistributeMapper.countUserNum(view.getUserId()));
 			view.setDistributeConsumerRate(orders == 0 ? BigDecimal.ZERO : hasPayCount.divide(BigDecimal.valueOf(view.getDistributeUserNum()), 2, RoundingMode.HALF_DOWN));
@@ -156,7 +156,7 @@ public class DistributeController {
 			List<RegisterDistributeOrdersDetailView> ordersDetailViewList = beanSearcher.searchAll(RegisterDistributeOrdersDetailView.class, MapUtils.builder().field(RegisterDistributeOrdersDetailView::getUserId, data.getUserId()).op(Operator.Equal).build());
 			data.setOrderNums(ordersDetailViewList.size());
 			Optional<BigDecimal> money = ordersDetailViewList.stream().filter(order -> {
-				if (!OrderCustomerHandleScheduler.noOrderStatus.contains(order.getStatus().name())) {
+				if (!Constant.noOrderAllStatus.contains(order.getStatus().name())) {
 					return true;
 				}
 				return false;

+ 3 - 3
netflix-web/src/main/java/com/cyksj/web/controller/manage/statistics/StatisticsDataController.java

@@ -6,6 +6,7 @@ import cn.hutool.core.util.StrUtil;
 import com.alibaba.excel.support.ExcelTypeEnum;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import com.cyksj.common.constant.Constant;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
@@ -23,7 +24,6 @@ import com.cyksj.model.request.BatchServiceReq;
 import com.cyksj.model.request.RenewTimeUpReq;
 import com.cyksj.model.views.*;
 import com.cyksj.service.mange.statistics.StatisticsDataService;
-import com.cyksj.task.OrderCustomerHandleScheduler;
 import com.cyksj.web.util.EasyExcelUtils;
 import com.ejlchina.searcher.BeanSearcher;
 import com.ejlchina.searcher.SearchResult;
@@ -206,7 +206,7 @@ public class StatisticsDataController {
 		if (type == 3) {
 			toMonthDetail = customerServiceRenewOrderRecordMapper.selectCustomerToMonthData(now, begin, type);
 		} else {
-			toMonthDetail = realGoodsOrderHandleMapper.selectCustomerToMonthData(now, begin, OrderCustomerHandleScheduler.noOrderStatus, type);
+			toMonthDetail = realGoodsOrderHandleMapper.selectCustomerToMonthData(now, begin, Constant.noOrderAllStatus, type);
 		}
 		if (!toMonthDetail.isEmpty()) {
 			toMonth.setDetails(toMonthDetail);
@@ -242,7 +242,7 @@ public class StatisticsDataController {
 			} else if (type == 2) {
 				builder.field(ServiceOrdersDetailView::getAfterServiceName, customerService).op(Operator.Equal);
 			}
-			builder.field(ServiceOrdersDetailView::getStatus, OrderCustomerHandleScheduler.noOrderStatus).op(Operator.NotIn);
+			builder.field(ServiceOrdersDetailView::getStatus, Constant.noOrderAllStatus).op(Operator.NotIn);
 			SearchResult<ServiceOrdersDetailView> search = beanSearcher.search(ServiceOrdersDetailView.class, builder.build());
 			Number AppleTV = beanSearcher.searchCount(ServiceOrdersDetailView.class, builder.field(ServiceOrdersDetailView::getSpecVal, "Apple TV").op(Operator.Contain).build());
 			Number Chromecast = beanSearcher.searchCount(ServiceOrdersDetailView.class, builder.field(ServiceOrdersDetailView::getSpecVal, "Chromecast").op(Operator.Contain).build());

+ 28 - 6
netflix-web/src/main/java/com/cyksj/web/controller/payment/OrderController.java

@@ -7,6 +7,7 @@ import com.cyksj.common.EnvCommonService;
 import com.cyksj.common.exception.BusinessRuntimeException;
 import com.cyksj.common.util.IoKit;
 import com.cyksj.common.util.Xmls;
+import com.cyksj.config.zfb.BaseZfbConfig;
 import com.cyksj.config.zfb.ZfbProductCode;
 import com.cyksj.dto.Result;
 import com.cyksj.enums.GatewayResponse;
@@ -19,6 +20,7 @@ import com.cyksj.model.request.OrderPayRequest;
 import com.cyksj.model.request.WxOrderRefundReq;
 import com.cyksj.model.request.ZfbOrderRefundReq;
 import com.cyksj.model.response.AliPayTradeStatus;
+import com.cyksj.model.views.OrderCommentView;
 import com.cyksj.service.order.OrderDonService;
 import com.cyksj.web.util.StpUserUtil;
 import com.ejlchina.searcher.BeanSearcher;
@@ -224,7 +226,7 @@ public class OrderController {
 	@PostMapping("/post/pay/zfb/{orderId}")
     @Deprecated
 	public Result<String> aliPay(@PathVariable Long orderId,HttpServletResponse response) throws Exception {
-        AliPayParams aliPayParams = orderDonService.aliPay(orderId, ZfbProductCode.MOBILE_WEB.getProductCode());
+        AliPayParams aliPayParams = orderDonService.aliPay(orderId, ZfbProductCode.MOBILE_WEB.getProductCode(), null);
 //        response.setContentType("text/html;charset=" + BaseZfbConfig.charset);
         //直接将完整的表单html输出到页面
 //        response.getWriter().write(aliPayParams.getBody());
@@ -235,19 +237,30 @@ public class OrderController {
 
     /**
      * 支付宝web支付
-     * pc网页二维码
+     * pc网页内嵌二维码
      */
     @PostMapping("/get/zfb/orderQrCode/{orderId}")
-    public Result<String> zfbWebQrCode(@PathVariable Long orderId, HttpServletResponse response) throws Exception {
-        AliPayParams aliPayParams = orderDonService.aliPay(orderId, ZfbProductCode.PC_WEB.getProductCode());
-//        response.setContentType("text/html;charset=" + BaseZfbConfig.charset);
-//        //直接将完整的表单html输出到页面
+    public Result<String> zfbWebQrCode(@PathVariable Long orderId,HttpServletResponse response) throws Exception {
+        AliPayParams aliPayParams = orderDonService.aliPay(orderId, ZfbProductCode.PC_WEB.getProductCode(), BaseZfbConfig.qrPayMode_orderCode);
+        response.setContentType("text/html;charset=" + BaseZfbConfig.charset);
+        //直接将完整的表单html输出到页面
 //        response.getWriter().write(aliPayParams.getBody());
 //        response.getWriter().flush();
 //        response.getWriter().close();
         return GatewayResponse.SUCCESS.newBuilder().toResult(aliPayParams.getBody());
     }
 
+    /**
+     * 支付宝web支付
+     * pc网页跳转二维码
+     */
+    @PostMapping("/get/zfb/orderRedirect/{orderId}")
+    public Result<String> zfbWebRedirectQrCode(@PathVariable Long orderId, HttpServletResponse response) throws Exception {
+        AliPayParams aliPayParams = orderDonService.aliPay(orderId, ZfbProductCode.PC_WEB.getProductCode(), BaseZfbConfig.qrPayMode_redirect);
+        response.setContentType("text/html;charset=" + BaseZfbConfig.charset);
+        return GatewayResponse.SUCCESS.newBuilder().toResult(aliPayParams.getBody());
+    }
+
     /**
      * 支付宝退款
      */
@@ -331,6 +344,15 @@ public class OrderController {
         return GatewayResponse.SUCCESS.newBuilder().toResult(orderDonViews);
     }
 
+    /**
+     * 平台评论列表
+     */
+    @GetMapping("/get/orderComment")
+    public Result<SearchResult<OrderCommentView>> getOrderCommentView() {
+        SearchResult<OrderCommentView> search = beanSearcher.search(OrderCommentView.class, MapUtils.flatBuilder(request.getParameterMap()).build());
+        return GatewayResponse.SUCCESS.newBuilder().toResult(search);
+    }
+
     /**
      * 获取支付宝回调参数
      */

+ 1 - 1
netflix-web/src/main/java/com/cyksj/web/controller/user/UserController.java

@@ -69,7 +69,7 @@ public class UserController {
     @GetMapping("/personal")
     public Result<UserPersonalView> getPersonalView() {
         long userId = StpUserUtil.getLoginIdAsLong();
-        List<RenewalView> ticket = groupRelationFrontService.getMyTicket(userId);
+        List<RenewalView> ticket = groupRelationFrontService.getMyTicket(userId, false);
         UserPersonalView personalView = new UserPersonalView();
         DateTime now = DateTime.now();
         //车票