zhangbin 1 год назад
Родитель
Сommit
499e272016

+ 16 - 10
nbjk-admin/src/main/java/com/miaxis/app/controller/wx/WxController.java

@@ -244,6 +244,7 @@ public class WxController extends BaseController {
     @ApiOperation("微信小程序支付下单")
     public Response<JSONObject> xcxPrepareOrder(@RequestBody WxOrderDTO wxOrderDTO) throws Exception {
         UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
+        String profitSharing = configService.selectConfigByKey("profit_sharing");
         if (wxOrderDTO.getGoodsType() == 1) {
             int count = vipUserExamService.getUserExamByUnionIdAndGoodsId(userInfo.getUnionId(), wxOrderDTO.getGoodsId());
             if (count > 0) {
@@ -264,10 +265,11 @@ public class WxController extends BaseController {
             order.setUnionId(userInfo.getUnionId());
             order.setPhoneType(wxOrderDTO.getPhoneType()); //手机类型 1:苹果 2:安卓
             order.setForeType(wxOrderDTO.getForeType()); //前端类型 1:app 2:小程序 3:公众号
-//            if(wxOrderDTO.getForeType()==2) {
-//                order.setProfitSharing(1); //待分账
-//            }
-            order.setProfitSharing(0); //待分账
+            if("1".equals(profitSharing)) {
+                order.setProfitSharing(1); //待分账
+            } else {
+                order.setProfitSharing(0); //待分账
+            }
             order.setTotal(examInfo.getPrice());
             order.setOrderStatus(OrderStatusEnum.PROCESSING.getCode());
             wxOrderService.save(order);
@@ -295,9 +297,11 @@ public class WxController extends BaseController {
             order.setPhoneType(wxOrderDTO.getPhoneType()); //手机类型 1:苹果 2:安卓
             order.setForeType(wxOrderDTO.getForeType()); //前端类型 1:app 2:小程序 3:公众号
             order.setTotal(Integer.parseInt(baziPriceStr));
-//            if(wxOrderDTO.getForeType()==2) {
-//                order.setProfitSharing(1); //待分账
-//            }
+            if("1".equals(profitSharing)) {
+                order.setProfitSharing(1); //待分账
+            } else {
+                order.setProfitSharing(0); //待分账
+            }
             order.setProfitSharing(0); //待分账
             order.setOrderStatus(OrderStatusEnum.PROCESSING.getCode());
             wxOrderService.save(order);
@@ -316,6 +320,8 @@ public class WxController extends BaseController {
      * @throws Exception
      */
     private JSONObject placeXcxWxOrder(WxOrder order, String goodsName) throws Exception {
+        String profitSharing = configService.selectConfigByKey("profit_sharing");
+
         HttpPost httpPost = initHttpPost(wxpayConfig.getV3JsUrl());
         ByteArrayOutputStream bos = new ByteArrayOutputStream();
         ObjectMapper objectMapper = new ObjectMapper();
@@ -327,9 +333,9 @@ public class WxController extends BaseController {
                 .put("out_trade_no", order.getOutTradeNo());
         rootNode.putObject("amount").put("total", order.getTotal());
         rootNode.putObject("payer").put("openid", order.getXcxOpenid());
-//        if("人生报告".equals(goodsName)) {
-//            rootNode.putObject("settle_info").put("profit_sharing", true);
-//        }
+        if("1".equals(profitSharing)) {
+            rootNode.putObject("settle_info").put("profit_sharing", true);
+        }
         objectMapper.writeValue(bos, rootNode);
         httpPost.setEntity(new StringEntity(rootNode.toString(), "utf-8"));
         HttpResponse response = httpClient.execute(httpPost);

+ 2 - 0
nbjk-admin/src/main/java/com/miaxis/pc/controller/PcOrderInfoController.java

@@ -76,6 +76,8 @@ public class PcOrderInfoController extends BaseController {
         String refundCode = getOrderCode(null);
         WxOrder order = wxOrderService.getByOutTradeNo(outTradeNo);
         refundRecordService.refund(order,refundCode,reason);
+        //TODO 取消会员内容
+        orderInfoService.refundOrder(order);
         return Response.success();
     }
 

+ 1 - 1
nbjk-service/src/main/java/com/miaxis/birthday/domain/BirthdayLog.java

@@ -58,5 +58,5 @@ public class BirthdayLog extends BaseBusinessEntity {
     @Excel(name = "是否付费 0:未付费 1:基础版  2:高级版")
     @TableField("is_pay")
     @ApiModelProperty(value = "是否付费 0:未付费 1:基础版  2:高级版")
-    private Long isPay;
+    private Integer isPay;
 }

+ 2 - 0
nbjk-service/src/main/java/com/miaxis/order/service/IOrderInfoService.java

@@ -29,4 +29,6 @@ public interface IOrderInfoService extends IService<OrderInfo> {
 
 
     OrderInfo getByOutTradeNo(String outTradeNo);
+
+    void refundOrder(WxOrder order);
 }

+ 24 - 1
nbjk-service/src/main/java/com/miaxis/order/service/impl/OrderInfoServiceImpl.java

@@ -13,6 +13,7 @@ import com.miaxis.vip.domain.VipUserExam;
 import com.miaxis.vip.service.IVipExamVideoService;
 import com.miaxis.vip.service.IVipUserExamService;
 import com.miaxis.wx.domain.WxOrder;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cache.annotation.CacheConfig;
 import org.springframework.stereotype.Service;
@@ -62,6 +63,28 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         return orderInfoMapper.getByOutTradeNo(outTradeNo);
     }
 
+    @Override
+    public void refundOrder(WxOrder order) {
+
+        switch (order.getGoodsType()) {
+            case 1:     //考场
+                vipUserExamService.deleteVipUserExamByUserIdAndGoodsId(order.getUserId(),order.getGoodsId());
+                break;
+            case 2:     //实物
+                //目前没有实物
+                break;
+            case 3:     //八字排盘
+                BirthdayLog birthdayLog = birthdayLogService.getById(order.getGoodsId());
+                birthdayLog.setIsPay(0);
+                birthdayLogService.saveOrUpdate(birthdayLog);
+                break;
+            default:
+                break;
+
+        }
+
+    }
+
     @Override
     public void writeVipDataToDb(WxOrder order, int payType) {
         long oneYearLong = 1000 * 60 * 60 * 24 * 365l;
@@ -101,7 +124,7 @@ public class OrderInfoServiceImpl extends ServiceImpl<OrderInfoMapper, OrderInfo
         } else if(order.getGoodsType()==3) { //八字
             //添加八字信息
             BirthdayLog birthdayLog = birthdayLogService.getById(order.getGoodsId());
-            birthdayLog.setIsPay(1l);
+            birthdayLog.setIsPay(1);
             birthdayLogService.saveOrUpdate(birthdayLog);
             this.save(orderInfo);
         }

+ 1 - 0
nbjk-service/src/main/java/com/miaxis/vip/mapper/VipUserExamMapper.java

@@ -25,4 +25,5 @@ public interface VipUserExamMapper extends BaseMapper<VipUserExam> {
 
     int getUserExamByUnionIdAndGoodsId(@Param("unionId")String unionId,@Param("goodsId") Long goodsId);
 
+    void deleteVipUserExamByUserIdAndGoodsId(@Param("userId")Long userId,@Param("goodsId") Long goodsId);
 }

+ 2 - 0
nbjk-service/src/main/java/com/miaxis/vip/service/IVipUserExamService.java

@@ -23,4 +23,6 @@ public interface IVipUserExamService extends IService<VipUserExam>{
     void deleteVipUserExamByUnionIdAndGoodsId(String unionId, Long goodsId);
 
     int getUserExamByUnionIdAndGoodsId(String unionId, Long goodsId);
+
+    void deleteVipUserExamByUserIdAndGoodsId(Long userId, Long goodsId);
 }

+ 5 - 0
nbjk-service/src/main/java/com/miaxis/vip/service/impl/VipUserExamServiceImpl.java

@@ -41,4 +41,9 @@ public class VipUserExamServiceImpl extends ServiceImpl<VipUserExamMapper, VipUs
     public int getUserExamByUnionIdAndGoodsId(String unionId, Long goodsId) {
         return vipUserExamMapper.getUserExamByUnionIdAndGoodsId(unionId,goodsId);
     }
+
+    @Override
+    public void deleteVipUserExamByUserIdAndGoodsId(Long userId, Long goodsId) {
+        vipUserExamMapper.deleteVipUserExamByUserIdAndGoodsId(userId,goodsId);
+    }
 }

+ 0 - 1
nbjk-service/src/main/java/com/miaxis/wx/service/impl/RefundRecordServiceImpl.java

@@ -143,7 +143,6 @@ public class RefundRecordServiceImpl extends ServiceImpl<RefundRecordMapper, Ref
             this.save(refundRecord);
 
             //TODO 退款完成 解除会员vip身份也可以在外层做
-            vipUserExamService.deleteVipUserExamByUnionIdAndGoodsId(wxOrder.getUnionId(),wxOrder.getGoodsId());
 
             WxNotifyReturnDTO wxNotifyReturnDTO = new WxNotifyReturnDTO();
             wxNotifyReturnDTO.setCode("SUCCESS");

+ 3 - 0
nbjk-service/src/main/resources/mapper/vip/VipUserExamMapper.xml

@@ -40,6 +40,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         delete from vip_user_exam where exam_id = #{goodsId} and union_id = #{unionId}
     </delete>
 
+    <delete id="deleteVipUserExamByUserIdAndGoodsId">
+        delete from vip_user_exam where exam_id = #{goodsId} and user_id = #{userId}
+    </delete>
 
 
     <select id="getUserExamByUnionIdAndGoodsId" resultType="int">