Althars123 3 anos atrás
pai
commit
40abbd3b41

+ 26 - 1
jkt-admin/src/main/java/com/miaxis/app/controller/wx/WxController.java

@@ -7,12 +7,15 @@ import com.miaxis.common.config.WxpayConfig;
 import com.miaxis.common.constant.Constants;
 import com.miaxis.common.core.controller.BaseController;
 import com.miaxis.common.core.domain.Response;
+import com.miaxis.common.core.domain.entity.SysUser;
 import com.miaxis.common.core.domain.entity.UserInfo;
 import com.miaxis.common.core.page.ResponsePageInfo;
 import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.SecurityUtils;
 import com.miaxis.common.utils.uuid.CommonUtils;
+import com.miaxis.score.domain.ScoreInfo;
 import com.miaxis.system.service.ISysDictDataService;
+import com.miaxis.system.service.ISysUserService;
 import com.miaxis.wx.domain.WxOrder;
 import com.miaxis.wx.dto.WxOrderCreateDTO;
 import com.miaxis.wx.dto.WxOrderCreateFuluDTO;
@@ -69,6 +72,10 @@ public class WxController extends BaseController {
     @Autowired
     private ISysDictDataService dictDataService;
 
+
+    @Autowired
+    private ISysUserService sysUserService;
+
     @Value("${app.appid}")
     private String appid;
     @Value("${wxpay.notifyUrl}")
@@ -99,7 +106,7 @@ public class WxController extends BaseController {
      */
     @PostMapping(value = "/prepareOrder")
     @ApiOperation("微信支付下单")
-    public Response<WxParamEntity> getPrepareOrder() throws Exception{
+    public Response<WxParamEntity> getPrepareOrder(String referralCode) throws Exception{
 
         //创建本地微信订单
         WxOrder order = new WxOrder();
@@ -108,6 +115,10 @@ public class WxController extends BaseController {
         order.setOutTradeNo(orderCode);
         order.setOpenid(student.getOpenid());
         order.setGoodsType("1");
+        SysUser sysUser = sysUserService.selectUserByReferralCode(referralCode);
+        if (sysUser != null){
+            order.setReferralUserId(sysUser.getUserId());
+        }
         wxOrderService.createVipOrder(order);
         wxOrderService.save(order);
         return Response.success(placeWxOrder(order, "学车vip充值"));
@@ -116,6 +127,20 @@ public class WxController extends BaseController {
     }
 
 
+    /**
+     * 查询是否存在推荐码
+     */
+    @GetMapping(value = "/{referralCode}")
+    @ApiOperation("查询是否存在推荐码")
+    public Response<Boolean> getInfo(
+            @ApiParam(name = "referralCode", value = "推荐码", required = true)
+            @PathVariable("referralCode") String referralCode
+    ){
+
+        return Response.success(sysUserService.selectUserByReferralCode(referralCode)!= null ? true :false);
+    }
+
+
     //下单
     private WxParamEntity placeWxOrder(WxOrder order, String goodsName) throws Exception {
         HttpPost httpPost = initHttpPost();

+ 4 - 1
jkt-service/src/main/java/com/miaxis/wx/domain/WxOrder.java

@@ -160,7 +160,10 @@ public class WxOrder extends BaseBusinessEntity {
     @ApiModelProperty(value = "订单状态: 1 -进行中 2-购买成功 3-购买失败")
     private String orderStatus;
 
-
+    /** id */
+    @TableId(value = "推荐用户id")
+    @ApiModelProperty(value = "referral_user_id")
+    private Long referralUserId;
 
 
 }

+ 6 - 1
jkt-service/src/main/java/com/miaxis/wx/service/impl/WxOrderServiceImpl.java

@@ -40,7 +40,12 @@ public class WxOrderServiceImpl extends ServiceImpl<WxOrderMapper, WxOrder> impl
 
     @Override
     public void createVipOrder(WxOrder wxOrder) {
-        String price = configService.selectConfigByKey("vip_price");
+        String price = null ;
+        if (wxOrder.getReferralUserId() == null){
+            price = configService.selectConfigByKey("vip_price");
+        }else {
+            price = configService.selectConfigByKey("vip_price_referral");
+        }
         Double dprice = Double.valueOf(price);
         Double v =dprice* 100;
         wxOrder.setTotal(v.intValue());

+ 2 - 0
jkt-system/src/main/java/com/miaxis/system/mapper/SysUserMapper.java

@@ -123,4 +123,6 @@ public interface SysUserMapper
     void updateStudent(UserInfo userInfo);
 
     void updateAgentRemainingNumber(Long userId);
+
+    SysUser selectUserByReferralCode(String referralCode);
 }

+ 2 - 0
jkt-system/src/main/java/com/miaxis/system/service/ISysUserService.java

@@ -183,4 +183,6 @@ public interface ISysUserService
     void updateStudent(UserInfo userInfo);
 
     void updateAgentRemainingNumber(Long userId);
+
+    SysUser selectUserByReferralCode(String referralCode);
 }

+ 5 - 0
jkt-system/src/main/java/com/miaxis/system/service/impl/SysUserServiceImpl.java

@@ -478,4 +478,9 @@ public class SysUserServiceImpl implements ISysUserService
     public void updateAgentRemainingNumber(Long userId) {
         userMapper.updateAgentRemainingNumber(userId);
     }
+
+    @Override
+    public SysUser selectUserByReferralCode(String referralCode) {
+        return userMapper.selectUserByReferralCode(referralCode);
+    }
 }

+ 3 - 0
jkt-system/src/main/resources/mapper/system/SysUserMapper.xml

@@ -135,6 +135,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
 	<select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
 		select user_id, email from sys_user where email = #{email} limit 1
 	</select>
+	<select id="selectUserByReferralCode" parameterType="String" resultMap="SysUserResult">
+		select user_id, referral_code from sys_user where referral_code = #{referralCode} limit 1
+	</select>
 
 	<insert id="insertUser" parameterType="SysUser" useGeneratedKeys="true" keyProperty="userId">
  		insert into sys_user(