Parcourir la source

分成收益接口

wwl il y a 3 ans
Parent
commit
99fc89e793

+ 3 - 3
twzd-service/src/main/java/com/miaxis/extension/domain/WxExtensionIncome.java

@@ -27,9 +27,9 @@ public class WxExtensionIncome extends BaseBusinessEntity {
     @ApiModelProperty(value = "主键")
     private Long id;
 
-    @TableField("source_id")
-    @ApiModelProperty(value = "收益来源订单id")
-    private Long sourceId;
+    @TableField("out_trade_no")
+    @ApiModelProperty(value = "商户订单号(根据wx_order订单表)")
+    private String outTradeNo;
 
     @TableField("beneficiary_openid")
     @ApiModelProperty(value = "受益人----用户唯一标识(微信)")

+ 4 - 4
twzd-service/src/main/java/com/miaxis/extension/service/IWxExtensionIncomeService.java

@@ -26,11 +26,11 @@ public interface IWxExtensionIncomeService extends IService<WxExtensionIncome> {
 
     /**
      * 新增收益信息
-     * @param sourceId  订单id
-     * @param sourceOpenid 用户openid
-     * @param sourcePrice 订单金额
+     * @param outTradeNo  商户订单号
+     * @param openid 用户openid
+     * @param total 订单金额
      * @return
      */
-    void addExtensionIncomeBySourceId(Long sourceId, String sourceOpenid, Integer sourcePrice);
+    void addExtensionIncomeBySourceId(String outTradeNo, String openid, Integer total);
 
 }

+ 12 - 14
twzd-service/src/main/java/com/miaxis/extension/service/impl/WxExtensionIncomeServiceImpl.java

@@ -2,7 +2,6 @@ package com.miaxis.extension.service.impl;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
-import com.miaxis.common.core.domain.Response;
 import com.miaxis.common.core.domain.entity.SysDictData;
 import com.miaxis.extension.domain.WxExtensionIncome;
 import com.miaxis.extension.mapper.WxExtensionIncomeMapper;
@@ -15,7 +14,6 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
-import java.math.BigDecimal;
 import java.util.ArrayList;
 import java.util.List;
 
@@ -52,18 +50,18 @@ public class WxExtensionIncomeServiceImpl extends ServiceImpl<WxExtensionIncomeM
 
     /**
      * 新增收益信息
-     * @param sourceId  订单id
-     * @param sourceOpenid 用户openid
-     * @param sourcePrice 订单金额
+     * @param outTradeNo  商户订单号
+     * @param openid 用户openid
+     * @param total 订单金额
      * @return
      */
     @Override
-    public void addExtensionIncomeBySourceId(Long sourceId, String sourceOpenid, Integer sourcePrice) {
+    public void addExtensionIncomeBySourceId(String outTradeNo, String openid, Integer total) {
 
         //查找一二级绑定关系
-        WxSpreadRelation oneRelation = wxSpreadRelationService.getOne(new QueryWrapper<WxSpreadRelation>().eq("openid", sourceOpenid));
+        WxSpreadRelation oneRelation = wxSpreadRelationService.getOne(new QueryWrapper<WxSpreadRelation>().eq("openid", openid));
         if (oneRelation == null){
-            log.info(sourceOpenid+": 此用户不存在绑定关系");
+            log.info(openid+": 此用户不存在绑定关系");
         }
 
         WxSpreadRelation twoRelation = wxSpreadRelationService.getOne(new QueryWrapper<WxSpreadRelation>().eq("openid", oneRelation.getParentOpenid()));
@@ -75,24 +73,24 @@ public class WxExtensionIncomeServiceImpl extends ServiceImpl<WxExtensionIncomeM
         dictDatas.forEach(d -> {
             if ("一级".equals(d.getDictLabel())){
                 WxExtensionIncome income = new WxExtensionIncome();
-                income.setSourceId(sourceId);
+                income.setOutTradeNo(outTradeNo);
                 income.setBeneficiaryOpenid(oneRelation.getParentOpenid());
-                income.setSourceOpenid(sourceOpenid);
+                income.setSourceOpenid(openid);
                 income.setHierarchy("1");
                 income.setPercentage(Integer.parseInt(d.getDictValue()));
-                income.setProfitPrice((sourcePrice*Integer.parseInt(d.getDictValue()))/100);
+                income.setProfitPrice((total*Integer.parseInt(d.getDictValue()))/100);
                 extensionIncomes.add(income);
             }
 
             if (twoRelation != null){
                 if ("二级".equals(d.getDictLabel())){
                     WxExtensionIncome income = new WxExtensionIncome();
-                    income.setSourceId(sourceId);
+                    income.setOutTradeNo(outTradeNo);
                     income.setBeneficiaryOpenid(twoRelation.getParentOpenid());
-                    income.setSourceOpenid(sourceOpenid);
+                    income.setSourceOpenid(openid);
                     income.setHierarchy("2");
                     income.setPercentage(Integer.parseInt(d.getDictValue()));
-                    income.setProfitPrice((sourcePrice*Integer.parseInt(d.getDictValue()))/100);
+                    income.setProfitPrice((total*Integer.parseInt(d.getDictValue()))/100);
                     extensionIncomes.add(income);
                 }
             }

+ 19 - 1
twzd-service/src/main/java/com/miaxis/wx/service/impl/WxGzhServiceImpl.java

@@ -3,9 +3,11 @@ package com.miaxis.wx.service.impl;
 import cn.hutool.json.XML;
 import com.alibaba.fastjson.JSONObject;
 import com.miaxis.common.constant.Constants;
+import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.utils.StringUtils;
 import com.miaxis.common.utils.wx.MessageUtil;
 import com.miaxis.feign.service.IWxSendService;
+import com.miaxis.system.service.ISysUserService;
 import com.miaxis.wx.mapper.WxMenuMapper;
 import com.miaxis.wx.service.IWxGzhService;
 import com.miaxis.wx.service.IWxMessageEvenService;
@@ -39,6 +41,8 @@ public class WxGzhServiceImpl implements IWxGzhService {
 
     private final COSClient cosClient;
 
+    private final ISysUserService userService;
+
     private final IWxMessageEvenService wxMessageEvenService;
 
     @Value("${app.appid}")
@@ -117,6 +121,20 @@ public class WxGzhServiceImpl implements IWxGzhService {
                 String event = jsonObjectData.getStr("Event");
                 if (MessageUtil.MESSAGE_SUBSCRIBE.equals(event)) { // 关注事件 或 扫描二维码关注事件
                     log.info("3.1...");
+
+                    //获取用户信息
+                    String userInfoResult = wxSendService.userInfo(this.getGzhToken(), fromUserName, "zh_CN");
+                    JSONObject jsonObj = JSONObject.parseObject(userInfoResult);
+                    UserInfo user = userService.getStudentByOpenId(fromUserName);
+                    if (user == null){
+                        //保存用户信息
+                        UserInfo userInfo = new UserInfo();
+                        userInfo.setHeadImage(jsonObj.getString("headimgurl"));
+                        userInfo.setNickName(jsonObj.getString("nickname"));
+                        userInfo.setOpenid(jsonObj.getString("openid"));
+                        userService.saveUserInfo(userInfo);
+                    }
+
                     //存在Ticket为扫码关注
                     if (org.apache.commons.lang3.StringUtils.isNotEmpty(jsonObjectData.getStr("Ticket"))){
                         log.info("3.1.2..");
@@ -125,7 +143,7 @@ public class WxGzhServiceImpl implements IWxGzhService {
                         return MessageUtil.initText(fromUserName,toUserName,subscribeEvent);
 
                     }else {
-                        return MessageUtil.initText(fromUserName, toUserName, "关注事件");
+                        return MessageUtil.initText(fromUserName, toUserName, jsonObj.getString("nickname")+":关注事件");
                     }
 
                 }  else if (MessageUtil.MESSAGE_UNSUBSCRIBE.equals(event)) { // 取消订阅事件

+ 1 - 1
twzd-service/src/main/resources/mapper/extension/WxExtensionIncomeMapper.xml

@@ -6,7 +6,7 @@
 
     <resultMap type="WxExtensionIncome" id="WxExtensionIncomeResult">
         <result property="id"    column="id"    />
-        <result property="sourceId"    column="source_id"    />
+        <result property="out_trade_no"    column="outTradeNo"    />
         <result property="beneficiaryOpenid"    column="beneficiary_openid"    />
         <result property="sourceOpenid"    column="source_openid"    />
         <result property="hierarchy"    column="hierarchy"    />