Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

Guos vor 3 Tagen
Ursprung
Commit
2c0defa52e

+ 4 - 0
fs-service/src/main/java/com/fs/company/service/ICompanyService.java

@@ -193,4 +193,8 @@ public interface ICompanyService
     List<CompanyVO> liveShowList(CompanyParam param);
 
     void batchUpdateLiveShow(CompanyLiveShowParam param);
+
+    void addCompanyTuiLiveMoney(LiveOrder order);
+
+    void subLiveCompanyMoney(LiveOrder order);
 }

+ 49 - 0
fs-service/src/main/java/com/fs/company/service/impl/CompanyServiceImpl.java

@@ -35,6 +35,7 @@ import com.fs.hisStore.domain.FsStoreOrderScrm;
 import com.fs.hisStore.domain.FsStorePaymentScrm;
 import com.fs.hisStore.mapper.FsStoreOrderScrmMapper;
 import com.fs.live.domain.LiveOrder;
+import com.fs.live.mapper.LiveOrderMapper;
 import com.fs.live.service.ILiveService;
 import com.fs.store.config.CompanyMenuConfig;
 import com.fs.system.domain.SysConfig;
@@ -52,6 +53,7 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.stereotype.Service;
 import com.fs.company.service.ICompanyService;
+import org.springframework.transaction.annotation.Propagation;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.transaction.support.TransactionTemplate;
 
@@ -119,6 +121,8 @@ public class CompanyServiceImpl implements ICompanyService
 
     @Autowired
     private ILiveService liveService;
+    @Autowired
+    private LiveOrderMapper liveOrderMapper;
 
 
     @Override
@@ -132,6 +136,51 @@ public class CompanyServiceImpl implements ICompanyService
         liveService.asyncToCache();
     }
 
+    @Override
+    @Transactional
+    public void addCompanyTuiLiveMoney(LiveOrder order) {
+        if(order.getCompanyId()!=null&&order.getCompanyId()>0){
+            Company company=companyMapper.selectCompanyByIdForUpdate(order.getCompanyId());
+            if(company!=null){
+                String json =configService.selectConfigByKey("store.config");
+                com.fs.store.config.StoreConfig config= JSONUtil.toBean(json, com.fs.store.config.StoreConfig.class);
+                //支付金额-(订单金额*rate%)
+                Double rate=config.getTuiMoneyRate()/100d;
+                BigDecimal tuiMoney=order.getPayPrice().subtract(order.getTotalPrice().multiply(new BigDecimal(rate)));
+                logger.info("写入公司推广佣金:"+tuiMoney);
+                company.setTuiMoney(company.getTuiMoney().add(tuiMoney));
+                companyMapper.updateCompany(company);
+                LiveOrder storeOrderMap=new LiveOrder();
+                storeOrderMap.setOrderId(order.getOrderId());
+                storeOrderMap.setTuiMoney(tuiMoney);
+                liveOrderMapper.updateLiveOrder(storeOrderMap);
+            }
+        }
+    }
+
+    @Override
+    @Transactional(rollbackFor = Throwable.class,propagation = Propagation.REQUIRED)
+    public void subLiveCompanyMoney(LiveOrder order) {
+        if(order.getCompanyId()>0){
+            Company company=companyMapper.selectCompanyByIdForUpdate(order.getCompanyId());
+            if(company!=null){
+                company.setMoney(company.getMoney().subtract(order.getTuiMoney()));
+                company.setTuiMoney(company.getTuiMoney().subtract(order.getTuiMoney()));
+                companyMapper.updateCompany(company);
+                //写入日志
+                CompanyMoneyLogs log=new CompanyMoneyLogs();
+                log.setCompanyId(order.getCompanyId());
+                log.setRemark("订单佣金退款");
+                log.setMoney(order.getTuiMoney().multiply(new BigDecimal(-1)));
+                log.setLogsType(5);
+                log.setBalance(company.getMoney());
+                log.setCreateTime(new Date());
+                log.setBusinessId(order.getOrderId().toString());
+                moneyLogsMapper.insertCompanyMoneyLogs(log);
+            }
+        }
+    }
+
     @Override
     public List<OptionsVO> selectAllCompanyList(Long deptId) {
         return companyMapper.selectAllCompanyList(deptId);

+ 7 - 0
fs-service/src/main/java/com/fs/hisStore/service/IFsUserScrmService.java

@@ -5,7 +5,10 @@ import com.fs.common.core.domain.ResponseResult;
 import com.fs.common.core.page.TableDataInfo;
 import com.fs.course.param.newfs.FsUserCourseBeMemberParam;
 import com.fs.course.vo.newfs.FsCourseAnalysisVO;
+import com.fs.his.domain.FsStoreProductAttrValue;
 import com.fs.his.vo.OptionsVO;
+import com.fs.hisStore.domain.FsStoreProductAttrValueScrm;
+import com.fs.live.domain.LiveOrder;
 import com.fs.qw.param.QwFsUserParam;
 import com.fs.qw.vo.QwFsUserVO;
 import com.fs.hisStore.domain.FsStoreOrderScrm;
@@ -272,4 +275,8 @@ public interface IFsUserScrmService
     List<FSUserVO> selectFsUserVOListByProject(FsUserScrm fsUser);
 
     FsUserScrm selectFsUserByOpenId(String openid);
+
+    void addTuiLiveMoney(LiveOrder order, List<FsStoreProductAttrValueScrm> productAttrValues);
+
+    void subLiveTuiMoney(LiveOrder liveOrder);
 }

+ 42 - 0
fs-service/src/main/java/com/fs/hisStore/service/impl/FsUserScrmServiceImpl.java

@@ -30,7 +30,9 @@ import com.fs.course.param.newfs.UserCourseVideoPageParam;
 import com.fs.course.vo.newfs.FsCourseAnalysisCountVO;
 import com.fs.course.vo.newfs.FsCourseAnalysisVO;
 import com.fs.course.vo.newfs.FsUserCourseVideoPageListVO;
+import com.fs.his.domain.FsUserBill;
 import com.fs.his.vo.OptionsVO;
+import com.fs.live.domain.LiveOrder;
 import com.fs.qw.param.QwFsUserParam;
 import com.fs.qw.vo.QwFsUserVO;
 import com.fs.hisStore.domain.*;
@@ -1073,6 +1075,46 @@ public class FsUserScrmServiceImpl implements IFsUserScrmService
         return fsUserMapper.selectFsUserByOpenId(openid);
     }
 
+    @Override
+    @Transactional
+    public void addTuiLiveMoney(LiveOrder order, List<FsStoreProductAttrValueScrm> productAttrValues) {
+        BigDecimal brokerage=BigDecimal.ZERO;
+        //返佣金
+        FsUserScrm user= fsUserMapper.selectFsUserById(order.getCompanyUserId());
+        for (FsStoreProductAttrValueScrm productAttrValue : productAttrValues) {
+            brokerage=brokerage.add(productAttrValue.getBrokerage().multiply(new BigDecimal(order.getTotalNum())));
+        }
+        if(brokerage.compareTo(BigDecimal.ZERO)==1){
+            FsUserScrm tuiUserMap=new FsUserScrm();
+            tuiUserMap.setUserId(user.getUserId());
+            tuiUserMap.setBrokeragePrice(user.getBrokeragePrice().add(brokerage));
+            fsUserMapper.updateFsUser(tuiUserMap);
+            billService.addBill(tuiUserMap.getUserId(), CATEGORY_3.getValue(),1,BillDetailEnum.TYPE_5.getDesc(),brokerage,tuiUserMap.getBrokeragePrice(),"订单返佣金",order.getOrderId().toString(),order.getCompanyUserId());
+        }
+    }
+
+    @Override
+    @Transactional
+    public void subLiveTuiMoney(LiveOrder liveOrder) {
+        FsUserBillScrm map=new FsUserBillScrm();
+        map.setCategory(CATEGORY_3.getValue());
+        map.setBusinessId(liveOrder.getOrderId().toString());
+        map.setBillType(1);
+        List<FsUserBillScrm> list=billService.selectFsUserBillList(map);
+        if(list!=null&&list.size()>0){
+            for(FsUserBillScrm bill:list){
+                FsUserScrm tuiUser= fsUserMapper.selectFsUserByIdForUpdate(bill.getUserId());
+                if(tuiUser!=null){
+                    FsUserScrm tuiUserMap=new FsUserScrm();
+                    tuiUserMap.setUserId(tuiUser.getUserId());
+                    tuiUserMap.setBrokeragePrice(tuiUser.getBrokeragePrice().subtract(bill.getNumber()));
+                    fsUserMapper.updateFsUser(tuiUserMap);
+                    billService.addBill(tuiUserMap.getUserId(), CATEGORY_3.getValue(),0,BillDetailEnum.TYPE_6.getDesc(),bill.getNumber(),tuiUserMap.getBrokeragePrice(),"订单退佣金",liveOrder.getOrderId().toString(),bill.getTuiUserId());
+                }
+            }
+        }
+    }
+
     /**
      * 查询会员选项列表
      * @param params    参数

+ 2 - 1
fs-service/src/main/java/com/fs/live/domain/LiveOrderPayment.java

@@ -116,5 +116,6 @@ public class LiveOrderPayment extends BaseEntity{
     @Excel(name = "是否分账")
     private Integer isShare;
 
-
+    //小程序appId(用于多汇付支付/退款)
+    private String appId;
 }

Datei-Diff unterdrückt, da er zu groß ist
+ 592 - 341
fs-service/src/main/java/com/fs/live/service/impl/LiveOrderServiceImpl.java


+ 1 - 0
fs-service/src/main/java/com/fs/live/vo/LiveDataListVo.java

@@ -74,3 +74,4 @@ public class LiveDataListVo {
 
 
 
+

+ 1 - 0
fs-service/src/main/java/com/fs/live/vo/LiveDataStatisticsVo.java

@@ -55,3 +55,4 @@ public class LiveDataStatisticsVo {
 
 
 
+

+ 3 - 0
fs-service/src/main/resources/mapper/live/LiveOrderPaymentMapper.xml

@@ -146,6 +146,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareCode != null">share_code,</if>
             <if test="shareMoney != null">share_money,</if>
             <if test="isShare != null">is_share,</if>
+            <if test="appId != null">app_id,</if>
          </trim>
         <trim prefix="values (" suffix=")" suffixOverrides=",">
             <if test="payCode != null">#{payCode},</if>
@@ -173,6 +174,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareCode != null">#{shareCode},</if>
             <if test="shareMoney != null">#{shareMoney},</if>
             <if test="isShare != null">#{isShare},</if>
+            <if test="appId != null">#{appId},</if>
          </trim>
     </insert>
 
@@ -204,6 +206,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="shareCode != null">share_code = #{shareCode},</if>
             <if test="shareMoney != null">share_money = #{shareMoney},</if>
             <if test="isShare != null">is_share = #{isShare},</if>
+            <if test="appId != null">app_id = #{appId},</if>
         </trim>
         where payment_id = #{paymentId}
     </update>

+ 11 - 0
fs-user-app/src/main/java/com/fs/app/controller/store/PayScrmController.java

@@ -11,6 +11,7 @@ import com.fs.erp.service.IErpOrderService;
 import com.fs.hisStore.service.*;
 import com.fs.huifuPay.domain.HuiFuResult;
 import com.fs.huifuPay.sdk.opps.core.utils.HuiFuUtils;
+import com.fs.live.service.ILiveOrderService;
 import com.fs.ybPay.domain.OrderCallback;
 import com.fs.ybPay.domain.OrderResult;
 import com.fs.pay.pay.dto.OrderQueryDTO;
@@ -58,6 +59,8 @@ public class PayScrmController {
     private IFsStorePaymentScrmService storePaymentService;
     @Autowired
     private IFsExpressScrmService expressService;
+    @Autowired
+    private ILiveOrderService liveOrderService;
 
     @Autowired
     private ICompanyService companyService;
@@ -98,6 +101,14 @@ public class PayScrmController {
                         logger.error("-------分账明细回调错误{}", e.getMessage());
                     }
                     return storePaymentService.payConfirm(order[1],o.getHf_seq_id(),o.getOut_trans_id(),o.getParty_order_id());
+                case "live":
+                    liveOrderService.payConfirm(1,null,order[1], o.getHf_seq_id(),o.getOut_trans_id(),o.getParty_order_id());
+//                    try {
+//                        HuiFuUtils.updateDivItem(orderId[1]);
+//                    } catch (Exception e) {
+//                        logger.error("-------分账明细回调错误{}", e.getMessage());
+//                    }
+                    break;
             }
 
         }

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.