Browse Source

管理后台增加确认收款、付款申请、财务结算等接口

yujia 7 years ago
parent
commit
f623f776f6
21 changed files with 519 additions and 31 deletions
  1. 2 9
      src/main/java/com/uas/platform/b2c/common/message/controller/InternalMessageController.java
  2. 1 1
      src/main/java/com/uas/platform/b2c/common/message/model/MessageModel.java
  3. 14 0
      src/main/java/com/uas/platform/b2c/common/message/type/ConsumerApp.java
  4. 24 0
      src/main/java/com/uas/platform/b2c/common/message/type/ConsumerType.java
  5. 14 0
      src/main/java/com/uas/platform/b2c/common/message/type/ProducerApp.java
  6. 26 0
      src/main/java/com/uas/platform/b2c/common/message/type/SMSType.java
  7. 14 0
      src/main/java/com/uas/platform/b2c/common/psmessage/service/MessageService.java
  8. 73 7
      src/main/java/com/uas/platform/b2c/common/psmessage/service/impl/MessageServiceImpl.java
  9. 1 0
      src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankTransferServiceImpl.java
  10. 11 2
      src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java
  11. 15 0
      src/main/java/com/uas/platform/b2c/trade/order/StringConstant/StringFormat.java
  12. 28 0
      src/main/java/com/uas/platform/b2c/trade/order/dao/MessageNotifyPersonalManagementDao.java
  13. 118 0
      src/main/java/com/uas/platform/b2c/trade/order/model/MessageNotifyPersonalManagement.java
  14. 20 0
      src/main/java/com/uas/platform/b2c/trade/order/service/MessageNotifyPersonalManagementService.java
  15. 7 0
      src/main/java/com/uas/platform/b2c/trade/order/service/OrderService.java
  16. 43 0
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/MessageNotifyPersonalManagementServiceImpl.java
  17. 4 6
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderDetailServiceImpl.java
  18. 57 0
      src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java
  19. 30 0
      src/main/java/com/uas/platform/b2c/trade/order/type/MessageType.java
  20. 1 1
      src/main/resources/spring/context.xml
  21. 16 5
      src/test/java/com/uas/platform/b2c/hulh/simple/StringTest.java

+ 2 - 9
src/main/java/com/uas/platform/b2c/common/message/controller/InternalMessageController.java

@@ -1,25 +1,18 @@
 package com.uas.platform.b2c.common.message.controller;
 
 import com.alibaba.fastjson.JSONObject;
-import com.alibaba.fastjson.TypeReference;
-import com.alibaba.fastjson.parser.Feature;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.message.service.InternalMessageService;
 import com.uas.platform.b2c.core.config.MessageConf;
 import com.uas.platform.b2c.core.support.SystemSession;
-import com.uas.platform.b2c.fa.payment.utils.StringUtils;
+import com.uas.platform.b2c.core.utils.ContextUtils;
 import com.uas.platform.core.model.PageParams;
 import com.uas.platform.core.model.Status;
-import com.uas.platform.core.util.HttpUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.domain.Page;
 import org.springframework.http.HttpStatus;
 import org.springframework.ui.ModelMap;
 import org.springframework.web.bind.annotation.*;
-import com.uas.platform.b2c.common.message.model.MessageModel;
-import java.util.HashMap;
-import com.uas.platform.b2c.core.utils.ContextUtils;
 
 /**
  * 站内信接口
@@ -105,7 +98,7 @@ public class InternalMessageController {
     @ResponseStatus(value = HttpStatus.OK)
     public ModelMap getMessages(Short isRead) {
         try {
-            return new ModelMap("toRead", internalMessageService.getMessageNum(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(),isRead));
+            return new ModelMap("toRead", internalMessageService.getMessageNum(SystemSession.getUser().getEnterprise().getUu(), SystemSession.getUser().getUserUU(), isRead));
         } catch (Exception e) {
             e.printStackTrace();
             return null;

+ 1 - 1
src/main/java/com/uas/platform/b2c/common/message/model/MessageModel.java

@@ -5,7 +5,7 @@ import java.util.Date;
 /**
  * 消息公共服务接收实体
  */
-public class MessageModel{
+public class MessageModel {
 
     /**
      * 消息id

+ 14 - 0
src/main/java/com/uas/platform/b2c/common/message/type/ConsumerApp.java

@@ -0,0 +1,14 @@
+package com.uas.platform.b2c.common.message.type;
+
+/**
+ * 来源应用
+ *
+ * @author yuj 2018-07-11 10:51
+ */
+public class ConsumerApp {
+
+    /**
+     * 来源应用
+     */
+    public static final String MALL = "MALL";
+}

+ 24 - 0
src/main/java/com/uas/platform/b2c/common/message/type/ConsumerType.java

@@ -0,0 +1,24 @@
+package com.uas.platform.b2c.common.message.type;
+
+/**
+ * 消费类型
+ *
+ * @author yuj 2018-07-11 10:51
+ */
+public class ConsumerType {
+
+    /**
+     * 消费类型
+     */
+    public static final String MULTI = "MULTI";
+
+    /**
+     * 消费类型
+     */
+    public static final String SINGLE = "SINGLE";
+
+    /**
+     * 消费类型
+     */
+    public static final String PUBLIC = "PUBLIC";
+}

+ 14 - 0
src/main/java/com/uas/platform/b2c/common/message/type/ProducerApp.java

@@ -0,0 +1,14 @@
+package com.uas.platform.b2c.common.message.type;
+
+/**
+ * 来源应用
+ *
+ * @author yuj 2018-07-11 10:51
+ */
+public class ProducerApp {
+
+    /**
+     * 来源应用
+     */
+    public static final String MALL = "MALL";
+}

+ 26 - 0
src/main/java/com/uas/platform/b2c/common/message/type/SMSType.java

@@ -0,0 +1,26 @@
+package com.uas.platform.b2c.common.message.type;
+
+/**
+ * Created by wangyc on 2018/1/16.
+ * 消息推送类型
+ * @version 2018/1/16 14:02 wangyc
+ */
+public class SMSType {
+
+    // 邮件、短信、IM
+    public static final String MAIL_AND_SM_AND_IM = "MAIL_AND_SM_AND_IM";
+    // 邮件、短信
+    public static final String MAIL_AND_SM = "MAIL_AND_SM";
+    // 邮件、IM
+    public static final String MAIL_AND_IM = "MAIL_AND_IM";
+    // 短信、IM
+    public static final String SM_AND_IM = "SM_AND_IM";
+    // 邮件
+    public static final String MAIL = "MAIL";
+    // 短信
+    public static final String SM = "SM";
+    // IM
+    public static final String IM = "IM";
+    // 不发送
+    public static final String DONT_SEND = "DONT_SEND";
+}

+ 14 - 0
src/main/java/com/uas/platform/b2c/common/psmessage/service/MessageService.java

@@ -17,4 +17,18 @@ public interface MessageService {
      * @return
      */
     String sendMessage(List<MessageModel> messageModel);
+
+
+    /**
+     * 根据所给字段生成消息
+     * @param content 消息内容
+     * @param type 消息类型
+     * @param receiverUu 接收人
+     * @param receiverEnuu 接收企业
+     * @param consumerType 消费类型
+     * @param consumerApp 消费应用
+     * @param smsType
+     * @return
+     */
+    MessageModel initMessage(String content, String type, Long receiverUu, Long receiverEnuu, String consumerType,String consumerApp, String smsType, Long... args);
 }

+ 73 - 7
src/main/java/com/uas/platform/b2c/common/psmessage/service/impl/MessageServiceImpl.java

@@ -1,13 +1,22 @@
 package com.uas.platform.b2c.common.psmessage.service.impl;
 
+import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.message.model.MessageModel;
+import com.uas.platform.b2c.common.message.type.ProducerApp;
 import com.uas.platform.b2c.common.psmessage.service.MessageService;
 import com.uas.platform.b2c.core.config.SysConf;
+import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
+import com.uas.platform.b2c.trade.util.BoundedExecutor;
 import com.uas.platform.core.util.HttpUtil;
-import java.util.List;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.Date;
+import java.util.List;
+import java.util.concurrent.ExecutorService;
+import java.util.concurrent.Executors;
 
 /**
  * Created by wangyc on 2018/6/29.
@@ -20,14 +29,71 @@ public class MessageServiceImpl implements MessageService {
     @Autowired
     private SysConf sysConf;
 
+    private final BoundedExecutor executor;
+
+    public MessageServiceImpl() {
+        ExecutorService executorService = Executors.newCachedThreadPool();
+        executor = new BoundedExecutor(executorService, 1600);
+    }
+
     @Override
-    public String sendMessage(List<MessageModel> models) {
-        String result = "";
+    public String sendMessage(final List<MessageModel> models) {
+        final Runnable sendMessage = new Runnable() {
+            @Override
+            public void run() {
+                try {
+                    HttpUtil.doPost(sysConf.getMessageServiceUrl() + "messages", FastjsonUtils.toJson(models));
+                } catch (Exception e) {
+                    e.printStackTrace();
+                }
+            }
+        };
         try {
-            return HttpUtil.doPost(sysConf.getMessageServiceUrl() + "messages", FastjsonUtils.toJson(models));
-        } catch (Exception e) {
-            result = "false";
+            executor.submitTask(sendMessage);
+        } catch (InterruptedException e) {
+            e.printStackTrace();
+            return "false";
+        }
+        return "true";
+    }
+
+    /**
+     * 根据所给字段生成消息
+     *
+     * @param content
+     * @param type
+     * @param receiverUu
+     * @param receiverEnuu
+     * @param consumerType
+     * @param consumerApp
+     * @return
+     */
+    @Override
+    public MessageModel initMessage(String content, String type, Long receiverUu, Long receiverEnuu, String consumerType, String consumerApp, String smsType, Long... args) {
+        if (StringUtils.isEmpty(content) || StringUtils.isEmpty(type) || receiverUu == null || receiverEnuu == null || StringUtils.isEmpty(consumerType) || StringUtils.isEmpty(consumerApp)) {
+            return null;
+        } else {
+            MessageModel model = new MessageModel();
+            model.setConsumerApp(consumerApp);
+            model.setConsumerType(consumerType);
+            model.setSmsType(smsType);
+            model.setContent(content);
+            model.setType(type);
+            model.setCreateTime(new Date());
+            model.setReceiverEnuu(receiverEnuu);
+            model.setReceiverUu(receiverUu);
+            if (args.length == 0) {
+                User user = SystemSession.getUser();
+                model.setSenderUu(user.getUserUU());
+                if (user.getEnterprise() != null) {
+                    model.setSenderEnuu(user.getEnterprise().getUu());
+                }
+            } else {
+                model.setSenderUu(args[0]);
+                model.setSenderEnuu(args[1]);
+            }
+            model.setProducerApp(ProducerApp.MALL);
+            return model;
         }
-        return result;
     }
 }

+ 1 - 0
src/main/java/com/uas/platform/b2c/fa/payment/service/impl/BankTransferServiceImpl.java

@@ -405,6 +405,7 @@ public class BankTransferServiceImpl implements BankTransferService {
 				}
 				purchaseDao.save(purchases);
 				orderDao.save(orderN);
+				orderService.sendConfirmPaidMessage(orderN);
 			}
 		}
 

+ 11 - 2
src/main/java/com/uas/platform/b2c/prod/commodity/service/impl/GoodsServiceImpl.java

@@ -3264,7 +3264,10 @@ public class GoodsServiceImpl implements GoodsService {
                         productPrivate.setB2cEnabled(IntegerConstant.YES_INT);
                     }
                     Integer count = productPrivate.getBatchCount();
-                    productPrivate.setBatchCount(--count);
+                    count = count == null ? 0 : count;
+                    count = --count;
+                    count = count < 1 ? 0 : count;
+                    productPrivate.setBatchCount(count);
                     productPrivateDao.save(productPrivate);
                 }
             }
@@ -3558,7 +3561,10 @@ public class GoodsServiceImpl implements GoodsService {
                     productPrivate.setB2cEnabled(IntegerConstant.YES_INT);
                 }
                 Integer count = productPrivate.getBatchCount();
-                productPrivate.setBatchCount(--count);
+                count = count == null ? 0 : count;
+                count = --count;
+                count = count < 1 ? 0 : count;
+                productPrivate.setBatchCount(count);
                 productPrivateDao.save(productPrivate);
             }
         }
@@ -3646,6 +3652,9 @@ public class GoodsServiceImpl implements GoodsService {
                         productPrivate.setBatchCount(0);
                     }else {
                         productPrivate.setBatchCount(--count);
+                        if (productPrivate.getBatchCount() < 1) {
+                            productPrivate.setBatchCount(0);
+                        }
                     }
                     productPrivateDao.save(productPrivate);
                     products.add(product);

+ 15 - 0
src/main/java/com/uas/platform/b2c/trade/order/StringConstant/StringFormat.java

@@ -0,0 +1,15 @@
+package com.uas.platform.b2c.trade.order.StringConstant;
+
+/**
+ * 描述的常量
+ *
+ * @author yuj 2018-07-11 11:26
+ */
+public class StringFormat {
+
+    public static final String CONFIRMPAID = "订单/admin#/trade/order/%s  买家已付款成功,请确认是否收款";
+
+    public static final String APPLYPAID = "订单/admin#/trade/order/%s 买家已确认收货,请尽快申请付款";
+
+    public static final String FINANCIAL_SETTLEMENT = "订单/admin#/trade/order/%s 买家已确认收货,请尽快申请付款";
+}

+ 28 - 0
src/main/java/com/uas/platform/b2c/trade/order/dao/MessageNotifyPersonalManagementDao.java

@@ -0,0 +1,28 @@
+package com.uas.platform.b2c.trade.order.dao;
+
+import com.uas.platform.b2c.trade.order.model.MessageNotifyPersonalManagement;
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
+import org.springframework.data.jpa.repository.Query;
+import org.springframework.data.repository.query.Param;
+import org.springframework.stereotype.Repository;
+
+import java.util.List;
+
+/**
+ * 消息设置管理
+ *
+ * @author yuj 2018-07-11 12:14
+ */
+@Repository
+public interface MessageNotifyPersonalManagementDao extends JpaRepository<MessageNotifyPersonalManagement, Long>, JpaSpecificationExecutor<MessageNotifyPersonalManagement> {
+
+    /**
+     * 根据企业的enuu和类型,获取信息
+     * @param enuu 企业enuu
+     * @param type 消息类型
+     * @return MessageNotifyPersonalManagement
+     */
+    @Query(value = "select m from MessageNotifyPersonalManagement m where m.notifyPersonalEnuu = :enuu and m.type= :type")
+    List<MessageNotifyPersonalManagement> findNotifyPersonalEnuuAndType(@Param("enuu") Long enuu, @Param("type") String type);
+}

+ 118 - 0
src/main/java/com/uas/platform/b2c/trade/order/model/MessageNotifyPersonalManagement.java

@@ -0,0 +1,118 @@
+package com.uas.platform.b2c.trade.order.model;
+
+import javax.persistence.*;
+import java.io.Serializable;
+
+/**
+ * 消息通知人员信息管理
+ *
+ * @author yuj 2018-07-11 12:03
+ */
+@Entity
+@Table(name = "message$npm")
+public class MessageNotifyPersonalManagement implements Serializable {
+
+    @Id
+    @Column(name = "mnpm_id")
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
+    private Long id;
+
+    /**
+     * 通知人员uu号管理,如果是多人,用中划线隔开
+     */
+    @Column(name = "mnpm_notify_personal_useruu", length = 2000)
+    private String notifyPersonalUseruu;
+
+    /**
+     * 通知人员名称管理
+     */
+    @Column(name = "mnpm_notify_personal_username", length = 2000)
+    private String notifyPersonalUserName;
+
+    /**
+     * 通知人所属企业ENUU
+     */
+    @Column(name = "mnpm_notify_personal_enuu")
+    private Long notifyPersonalEnuu;
+
+    /**
+     * 通知人所属企业名称
+     */
+    @Column(name = "mnpm_notify_personal_enterprisename")
+    private String notifyPersonalEnterpriseName;
+
+    /**
+     * 消息类型
+     */
+    @Column(name = "mnpm_type")
+    private String type;
+
+    /**
+     * 消息备注
+     */
+    @Column(name = "mnpm_remark")
+    private String remark;
+
+    public Long getId() {
+        return id;
+    }
+
+    public MessageNotifyPersonalManagement setId(Long id) {
+        this.id = id;
+        return this;
+    }
+
+    public String getNotifyPersonalUseruu() {
+        return notifyPersonalUseruu;
+    }
+
+    public MessageNotifyPersonalManagement setNotifyPersonalUseruu(String notifyPersonalUseruu) {
+        this.notifyPersonalUseruu = notifyPersonalUseruu;
+        return this;
+    }
+
+    public String getNotifyPersonalUserName() {
+        return notifyPersonalUserName;
+    }
+
+    public MessageNotifyPersonalManagement setNotifyPersonalUserName(String notifyPersonalUserName) {
+        this.notifyPersonalUserName = notifyPersonalUserName;
+        return this;
+    }
+
+    public Long getNotifyPersonalEnuu() {
+        return notifyPersonalEnuu;
+    }
+
+    public MessageNotifyPersonalManagement setNotifyPersonalEnuu(Long notifyPersonalEnuu) {
+        this.notifyPersonalEnuu = notifyPersonalEnuu;
+        return this;
+    }
+
+    public String getNotifyPersonalEnterpriseName() {
+        return notifyPersonalEnterpriseName;
+    }
+
+    public MessageNotifyPersonalManagement setNotifyPersonalEnterpriseName(String notifyPersonalEnterpriseName) {
+        this.notifyPersonalEnterpriseName = notifyPersonalEnterpriseName;
+        return this;
+    }
+
+    public String getType() {
+        return type;
+    }
+
+    public MessageNotifyPersonalManagement setType(String type) {
+        this.type = type;
+        return this;
+    }
+
+    public String getRemark() {
+        return remark;
+    }
+
+    public MessageNotifyPersonalManagement setRemark(String remark) {
+        this.remark = remark;
+        return this;
+    }
+}

+ 20 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/MessageNotifyPersonalManagementService.java

@@ -0,0 +1,20 @@
+package com.uas.platform.b2c.trade.order.service;
+
+import com.uas.platform.b2c.trade.order.model.MessageNotifyPersonalManagement;
+
+import java.util.List;
+
+/**
+ * 消息通知服务的管理
+ * Created by yujia on 2018/7/11.
+ */
+public interface MessageNotifyPersonalManagementService {
+
+    /**
+     * 根据enuu和类型获取消息类型
+     * @param enuu 企业enuu
+     * @param type 类型
+     * @return List<MessageNotifyPersonalManagement>
+     */
+    List<MessageNotifyPersonalManagement> findNotifyPersonalEnuuAndType(Long enuu, String type);
+}

+ 7 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/OrderService.java

@@ -664,4 +664,11 @@ public interface OrderService {
 	 * @return
 	 */
 	ResultMap checkConsignment(List<String> uuidArray);
+
+	/**
+	 * 用户确认付款,通知管理后台确认收矿
+	 * @param order 确认付款的订单
+	 * @return
+	 */
+	void sendConfirmPaidMessage(Order order);
 }

+ 43 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/MessageNotifyPersonalManagementServiceImpl.java

@@ -0,0 +1,43 @@
+package com.uas.platform.b2c.trade.order.service.impl;
+
+import com.uas.platform.b2c.trade.order.dao.MessageNotifyPersonalManagementDao;
+import com.uas.platform.b2c.trade.order.model.MessageNotifyPersonalManagement;
+import com.uas.platform.b2c.trade.order.service.MessageNotifyPersonalManagementService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.StringUtils;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * description
+ *
+ * @author yuj 2018-07-11 14:29
+ */
+@Service
+public class MessageNotifyPersonalManagementServiceImpl implements MessageNotifyPersonalManagementService {
+
+    private final MessageNotifyPersonalManagementDao messageNotifyPersonalManagementDao;
+
+    @Autowired
+    public MessageNotifyPersonalManagementServiceImpl(MessageNotifyPersonalManagementDao messageNotifyPersonalManagementDao) {
+        this.messageNotifyPersonalManagementDao = messageNotifyPersonalManagementDao;
+    }
+
+    /**
+     * 根据enuu和类型获取消息类型
+     *
+     * @param enuu 企业enuu
+     * @param type 类型
+     * @return List<MessageNotifyPersonalManagement>
+     */
+    @Override
+    public List<MessageNotifyPersonalManagement> findNotifyPersonalEnuuAndType(Long enuu, String type) {
+        if (enuu == null || StringUtils.isEmpty(type)) {
+            return Collections.emptyList();
+        } else {
+            return messageNotifyPersonalManagementDao.findNotifyPersonalEnuuAndType(enuu, type);
+        }
+    }
+}

+ 4 - 6
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderDetailServiceImpl.java

@@ -18,10 +18,7 @@ import com.uas.platform.b2c.trade.order.StringConstant.Currency;
 import com.uas.platform.b2c.trade.order.dao.OrderDao;
 import com.uas.platform.b2c.trade.order.dao.OrderDetailDao;
 import com.uas.platform.b2c.trade.order.dao.PurchaseDetailDao;
-import com.uas.platform.b2c.trade.order.model.Order;
-import com.uas.platform.b2c.trade.order.model.OrderDetail;
-import com.uas.platform.b2c.trade.order.model.Purchase;
-import com.uas.platform.b2c.trade.order.model.PurchaseDetail;
+import com.uas.platform.b2c.trade.order.model.*;
 import com.uas.platform.b2c.trade.order.service.OrderDetailService;
 import com.uas.platform.b2c.trade.order.service.OrderService;
 import com.uas.platform.b2c.trade.order.type.ResultMapType;
@@ -84,7 +81,7 @@ public class OrderDetailServiceImpl implements OrderDetailService {
 	@Autowired
 	private GoodsHistoryDao goodsHistoryDao;
 
-	@Override
+    @Override
 	public OrderDetail save(OrderDetail orderDetail) {
 		return orderDetailDao.save(orderDetail);
 	}
@@ -421,7 +418,8 @@ public class OrderDetailServiceImpl implements OrderDetailService {
 					orderService.setToBeShipped(order.getOrderid());
 				} else if (isPaid) {
 					order.setStatusPaid(userUU);
-				} else {
+                    orderService.sendConfirmPaidMessage(order);
+                } else {
 					order.setStatusToBePaid(userUU);
 				}
 			}

+ 57 - 0
src/main/java/com/uas/platform/b2c/trade/order/service/impl/OrderServiceImpl.java

@@ -10,12 +10,18 @@ import com.uas.platform.b2c.common.account.model.Enterprise;
 import com.uas.platform.b2c.common.account.model.TradeLog;
 import com.uas.platform.b2c.common.account.model.User;
 import com.uas.platform.b2c.common.base.service.SendMessageService;
+import com.uas.platform.b2c.common.message.model.MessageModel;
+import com.uas.platform.b2c.common.message.type.ConsumerApp;
+import com.uas.platform.b2c.common.message.type.ConsumerType;
+import com.uas.platform.b2c.common.message.type.SMSType;
+import com.uas.platform.b2c.common.psmessage.service.MessageService;
 import com.uas.platform.b2c.common.search.rpc.service.OrderSearchService;
 import com.uas.platform.b2c.core.config.SysConf;
 import com.uas.platform.b2c.core.constant.SplitChar;
 import com.uas.platform.b2c.core.support.SystemSession;
 import com.uas.platform.b2c.core.support.log.TradeBufferedLogger;
 import com.uas.platform.b2c.core.utils.DoubleArith;
+import com.uas.platform.b2c.core.utils.EncryptionFilter;
 import com.uas.platform.b2c.core.utils.FastjsonUtils;
 import com.uas.platform.b2c.core.utils.NumberUtil;
 import com.uas.platform.b2c.fa.payment.dao.BankTransferDao;
@@ -55,11 +61,13 @@ import com.uas.platform.b2c.trade.deprecated.model.OrderRelationInfo;
 import com.uas.platform.b2c.trade.deprecated.model.UserInfoForOrder;
 import com.uas.platform.b2c.trade.inquiry.dao.TradeChargeDao;
 import com.uas.platform.b2c.trade.inquiry.model.TradeCharge;
+import com.uas.platform.b2c.trade.order.StringConstant.StringFormat;
 import com.uas.platform.b2c.trade.order.dao.OrderDao;
 import com.uas.platform.b2c.trade.order.dao.OrderDetailDao;
 import com.uas.platform.b2c.trade.order.dao.OrderIndexDetailDao;
 import com.uas.platform.b2c.trade.order.dao.PurchaseDao;
 import com.uas.platform.b2c.trade.order.model.*;
+import com.uas.platform.b2c.trade.order.service.MessageNotifyPersonalManagementService;
 import com.uas.platform.b2c.trade.order.service.OrderDetailService;
 import com.uas.platform.b2c.trade.order.service.OrderService;
 import com.uas.platform.b2c.trade.order.service.PurchaseService;
@@ -201,6 +209,13 @@ public class OrderServiceImpl implements OrderService {
     @Autowired
     private SeekPurchaseService seekPurchaseService;
 
+
+    @Autowired
+    private MessageService messageService;
+
+    @Autowired
+    private MessageNotifyPersonalManagementService messageNotifyPersonalManagementService;
+
     /**
      * 保存订单信息
      *
@@ -3436,4 +3451,46 @@ public class OrderServiceImpl implements OrderService {
         }
         return ResultMap.success(bool);
     }
+
+    /**
+     * 用户确认付款,通知管理后台确认收款
+     *
+     * @param order 确认付款的订单
+     * @return
+     */
+    @Override
+    public void sendConfirmPaidMessage(Order order) {
+        if (order == null || StringUtils.isEmpty(order.getOrderid())) {
+            return ;
+        }
+        List<MessageNotifyPersonalManagement> notifyPersonalManagements = messageNotifyPersonalManagementService.findNotifyPersonalEnuuAndType(sysConf.getEnUU(), com.uas.platform.b2c.trade.order.type.MessageType.CONFIRM_PAID.getType());
+        if (org.apache.commons.collections.CollectionUtils.isNotEmpty(notifyPersonalManagements)) {
+            MessageNotifyPersonalManagement notifyPersonalManagement = notifyPersonalManagements.get(0);
+            String notifyPersonalUseruu = notifyPersonalManagement.getNotifyPersonalUseruu();
+            if (StringUtils.isEmpty(notifyPersonalUseruu)) {
+                return ;
+            }
+            String[] users = notifyPersonalUseruu.split(SplitChar.HYPHEN);
+            List<MessageModel> list = new ArrayList<>();
+            MessageModel model = null;
+            Long useruu = null;
+            for (String user : users) {
+                try {
+                    useruu = Long.valueOf(user);
+                } catch (NumberFormatException e) {
+                    e.printStackTrace();
+                    continue;
+                }
+                if (useruu != null) {
+                    model = messageService.initMessage(String.format(StringFormat.CONFIRMPAID, EncryptionFilter.encode(order.getOrderid())), com.uas.platform.b2c.trade.order.type.MessageType.CONFIRM_PAID.getType(), useruu, sysConf.getEnUU(), ConsumerType.SINGLE, ConsumerApp.MALL, SMSType.DONT_SEND);
+                    if (model != null) {
+                        list.add(model);
+                    }
+                }
+            }
+            if (org.apache.commons.collections.CollectionUtils.isNotEmpty(list)) {
+                messageService.sendMessage(list);
+            }
+        }
+    }
 }

+ 30 - 0
src/main/java/com/uas/platform/b2c/trade/order/type/MessageType.java

@@ -0,0 +1,30 @@
+package com.uas.platform.b2c.trade.order.type;
+
+/**
+ * 消息类型
+ *
+ * @author yuj 2018-07-11 11:52
+ */
+public enum MessageType {
+
+    CONFIRM_PAID("CONFIRM_PAID_TYPE", "确认收款"),
+    APPLY_PAID("APPLY_PAID_TYPE", "付款申请"),
+    FINANCIAL_SETTLEMENT("FINANCIAL_SETTLEMENT_TYPE", "财务结算");
+
+    private final String type;
+
+    private final String phrase;
+
+    MessageType(String type, String phrase) {
+        this.type = type;
+        this.phrase = phrase;
+    }
+
+    public java.lang.String getType() {
+        return type;
+    }
+
+    public java.lang.String getPhrase() {
+        return phrase;
+    }
+}

+ 1 - 1
src/main/resources/spring/context.xml

@@ -113,7 +113,7 @@
 	<bean id="entityManagerFactory"
 		  class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
 		<property name="persistenceUnitName" value="persistenceUnit" />
-		<property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml"/>
+		<!--<property name="persistenceXmlLocation" value="classpath*:META-INF/persistence.xml"/>-->
 		<property name="packagesToScan" value="com.uas.platform" />
 		<property name="dataSource" ref="dataSource" />
 		<property name="jpaVendorAdapter">

+ 16 - 5
src/test/java/com/uas/platform/b2c/hulh/simple/StringTest.java

@@ -9,11 +9,22 @@ public class StringTest {
 
     @Test
     public void testSplit(){
-        String str = "-1-2-3-4-5-6-7-8-9-12-";
-        String[] strings = str.split("-");
-        System.out.println(strings.length);
-        for (String s : strings){
-            System.out.print(s + " ");
+//        String str = "-1-2-3-4-5-6-7-8-9-12-";
+//        String[] strings = str.split("-");
+//        System.out.println(strings.length);
+//        for (String s : strings){
+//            System.out.print(s + " ");
+//        }
+        test();
+    }
+
+
+    public void test(String... args) {
+        if (args == null) {
+            System.out.println("ok null");
+        }
+        if (args.length == 0) {
+            System.out.println("ok 0");
         }
     }
 }