Althars123 il y a 3 ans
Parent
commit
e6a63efd34

+ 32 - 23
twzd-admin/src/main/java/com/miaxis/app/controller/extension/WxExtensionIncomeController.java

@@ -1,12 +1,17 @@
 package com.miaxis.app.controller.extension;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 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.UserInfo;
+import com.miaxis.common.exception.CustomException;
 import com.miaxis.common.utils.SecurityUtils;
+import com.miaxis.extension.dto.ExtensionSettleDTO;
 import com.miaxis.extension.service.IWxExtensionIncomeService;
 import com.miaxis.extension.vo.ExtensionIncomeVo;
+import com.miaxis.spread.domain.WxSpreadRelation;
+import com.miaxis.spread.service.IWxSpreadRelationService;
 import com.miaxis.user.service.IUserInfoService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
@@ -24,7 +29,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping(Constants.STUDENT_PREFIX + "/extension/income")
-@Api(tags={"【H5-分成收益】"})
+@Api(tags={"【H5-推广积分】"})
 @AllArgsConstructor
 public class WxExtensionIncomeController extends BaseController {
 
@@ -32,30 +37,34 @@ public class WxExtensionIncomeController extends BaseController {
 
     private final IUserInfoService userInfoService;
 
-//    /**
-//     * 查询收益列表
-//     */
-//    @GetMapping(value = "/extensionIncomeList")
-//    @ApiOperation("查询收益列表")
-//    @ApiImplicitParam(name = "nickName", value = "微信昵称", dataType = "string", required = false)
-//    public ResponsePageInfo<WxGzhExtensionIncomeVo> extensionIncomeList(String nickName) {
-//        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
-//        startPage();
-//        List<WxGzhExtensionIncomeVo> incomeDtos = extensionIncomeService.extensionIncomeList(userInfo.getOpenid(),nickName);
-//        return toResponsePageInfo(incomeDtos);
-//    }
+    private final IWxSpreadRelationService wxSpreadRelationService;
 
 
-//    /**
-//     * 查询收益金额(总金额、已提现金额、未提现金额)
-//     */
-//    @GetMapping(value = "/extensionIncomePrice")
-//    @ApiOperation("查询收益金额(总金额、已提现金额、未提现金额)")
-//    public Response<ExtensionIncomeVo> extensionIncomePrice() {
-//        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
-//        ExtensionIncomeVo incomePrice = extensionIncomeService.extensionIncomePrice(userInfo.getOpenid());
-//        return Response.success(incomePrice);
-//    }
+
+    /**
+     * 查询收益金额(总金额、已提现金额、未提现金额)
+     */
+    @GetMapping(value = "/extensionIncomePrice")
+    @ApiOperation("对下级结算")
+    public Response extensionIncomePrice(ExtensionSettleDTO extensionSettleDTO) {
+        UserInfo userInfo = SecurityUtils.getLoginUser().getStudent();
+        //查询该下级用户的上级是否为当前用户
+        WxSpreadRelation wxSpreadRelation = wxSpreadRelationService.getOne(new QueryWrapper<WxSpreadRelation>().eq("openid", extensionSettleDTO.getOpenid()));
+        if (wxSpreadRelation!= null && wxSpreadRelation.getParentOpenid().equals(userInfo.getOpenid())){
+            //进行结算
+            UserInfo downUserInfo = userInfoService.getOne(new QueryWrapper<UserInfo>().eq("openid", extensionSettleDTO.getOpenid()));
+            if (downUserInfo.getAchievement()< extensionSettleDTO.getSettlePoints()){
+                throw new CustomException("积分不足");
+            }
+            //更新积分
+            downUserInfo.setAchievement(downUserInfo.getAchievement()-extensionSettleDTO.getSettlePoints());
+            downUserInfo.setAchievementSettled(downUserInfo.getAchievementSettled()+extensionSettleDTO.getSettlePoints());
+            userInfoService.updateById(downUserInfo);
+        }else{
+            throw new CustomException("该下级不存在或不是本用户的下级");
+        }
+        return Response.success();
+    }
 
 
     /**

+ 4 - 1
twzd-common/src/main/java/com/miaxis/common/core/domain/entity/UserInfo.java

@@ -106,8 +106,11 @@ public class UserInfo extends BaseBusinessEntity{
     private Integer profitPrice;
 
 
-    @ApiModelProperty(value = "业绩,单位分")
+    @ApiModelProperty(value = "未结算推广积分")
     private Integer achievement;
 
+    @ApiModelProperty(value = "已结算推广积分")
+    private Integer achievementSettled;
+
 
 }

+ 20 - 0
twzd-service/src/main/java/com/miaxis/extension/dto/ExtensionSettleDTO.java

@@ -0,0 +1,20 @@
+package com.miaxis.extension.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ */
+@Data
+@ApiModel(value = "ExtensionSettleDTO", description = "结算参数对象")
+public class ExtensionSettleDTO {
+
+
+    @ApiModelProperty(value = "微信openid",required = true)
+    private String openid;
+
+    @ApiModelProperty(value = "结算积分",required = true)
+    private Integer settlePoints;
+
+}

+ 8 - 1
twzd-service/src/main/java/com/miaxis/extension/vo/ExtensionIncomeVo.java

@@ -15,6 +15,10 @@ import lombok.Data;
 @ApiModel(value = "ExtensionIncomeVo", description = "分成收益对象返回参")
 public class ExtensionIncomeVo {
 
+    @TableField("openid")
+    @ApiModelProperty(value = "微信openid")
+    private String openid;
+
     @TableField("nick_name")
     @ApiModelProperty(value = "微信昵称")
     private String nickName;
@@ -23,7 +27,10 @@ public class ExtensionIncomeVo {
     @ApiModelProperty(value = "微信头像地址")
     private String headImage;
 
-    @ApiModelProperty(value = "推广积分")
+    @ApiModelProperty(value = "未结算推广积分")
     private Integer achievement;
 
+    @ApiModelProperty(value = "已结算推广积分")
+    private Integer achievementSettled;
+
 }

+ 1 - 1
twzd-service/src/main/resources/mapper/user/UserInfoMapper.xml

@@ -71,7 +71,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         where openid = (select parent_openid from wx_spread_relation where openid = #{fromUserName})
     </select>
     <select id="getDownLevelPoints"  resultType="com.miaxis.extension.vo.ExtensionIncomeVo">
-        select nick_name,head_image,achievement from user_info
+        select openid,nick_name,head_image,achievement,achievement_settled from user_info
         where openid = (select openid from wx_spread_relation where parent_openid = #{openid})
     </select>