Browse Source

feat:xiugai

wangchuanjin 5 tháng trước cách đây
mục cha
commit
789d847bd4
3 tập tin đã thay đổi với 150 bổ sung149 xóa
  1. BIN
      api/api.exe
  2. BIN
      rpc/rpc.exe
  3. 150 149
      service/exportChargeService.go

BIN
api/api.exe


BIN
rpc/rpc.exe


+ 150 - 149
service/exportChargeService.go

@@ -99,106 +99,104 @@ func entCharge(data *resourcesCenter.ChargeReq) (resp *resourcesCenter.ChargeRes
 	} else {
 		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "未查询到企业数据流量"}
 	}
-	if entNums < data.DeductNum {
-		return &resourcesCenter.ChargeResp{
-			Code:    entity.SuccessCode,
-			Message: "",
-			Data: &resourcesCenter.SomeInfo{
-				ChargeType:   0,
-				ChargeResult: 0,
-				FailMsg:      "企业数据流量包余额不足",
-				Num1:         entNums,
-				Num2:         personLimit[0].DataLimit,
-				Num3:         common.Int64All(common.If(personLimit[0].DataLimit == 0 && personLimit[0].MaxNums == 0, 0, personLimit[0].DataLimit-personLimit[0].ExportNums)),
-				Num4:         personLimit[0].MaxNums,
-				Num5:         common.Int64All(common.If(personLimit[0].DataLimit == 0 && personLimit[0].MaxNums == 0, 0, personLimit[0].MaxNums-personLimit[0].AllExportNums)),
+	if data.DeductNum > 0 {
+		if entNums < data.DeductNum {
+			return &resourcesCenter.ChargeResp{
+				Code:    entity.SuccessCode,
+				Message: "",
+				Data: &resourcesCenter.SomeInfo{
+					ChargeType:   0,
+					ChargeResult: 0,
+					FailMsg:      "企业数据流量包余额不足",
+					Num1:         entNums,
+					Num2:         personLimit[0].DataLimit,
+					Num3:         common.Int64All(common.If(personLimit[0].DataLimit == 0 && personLimit[0].MaxNums == 0, 0, personLimit[0].DataLimit-personLimit[0].ExportNums)),
+					Num4:         personLimit[0].MaxNums,
+					Num5:         common.Int64All(common.If(personLimit[0].DataLimit == 0 && personLimit[0].MaxNums == 0, 0, personLimit[0].MaxNums-personLimit[0].AllExportNums)),
+				},
+			}
+		}
+		// 先更新mgo企业数据总量
+		query := map[string]interface{}{
+			"entid": data.EntId,
+			"plan.current": map[string]interface{}{
+				"$gte": data.DeductNum,
 			},
 		}
-	}
-	// 先更新mgo企业数据总量
-	query := map[string]interface{}{
-		"entid": data.EntId,
-		"plan.current": map[string]interface{}{
-			"$gte": data.DeductNum,
-		},
-	}
-	update := map[string]interface{}{
-		"$inc": map[string]interface{}{
-			"plan.current": -data.DeductNum,
-		},
-	}
-	b = entity.Mgo.Update("user", query, update, false, false)
-	if !b {
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "企业余额操作失败"}
-	}
-	err = jyOrm.Begin()
-	//更新限额
-	if err != nil {
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "操作失败"}
-	}
-	var updateNum = int64(0)
-	updateNum, err = jyOrm.Table("entniche_export_limit").Where("id = ? and ((data_limit-export_nums>=? && max_nums-all_export_nums>=?) or (data_limit is null && max_nums is null) or (data_limit is null && max_nums-all_export_nums>=?) or (data_limit-export_nums>=? && max_nums is null))", personLimit[0].Id, data.DeductNum, data.DeductNum, data.DeductNum, data.DeductNum).
-		Incr("export_nums", data.ExportNum).
-		Incr("all_export_nums", data.ExportNum).
-		Update(&entity.PersonLimit{})
-	if err != nil {
-		_ = jyOrm.Rollback()
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "操作失败"}
-	}
-	if updateNum <= 0 {
-		_ = jyOrm.Rollback()
-		_ = jyOrm.Table("entniche_export_limit").Select("*").
-			Where("ent_id = ? and user_id = ?", data.EntId, data.EntUserId).Find(&personLimit)
-		var msg []string
-		if personLimit[0].DataLimit < data.DeductNum {
-			msg = append(msg, "超出您的每日导出限额")
+		update := map[string]interface{}{
+			"$inc": map[string]interface{}{
+				"plan.current": -data.DeductNum,
+			},
 		}
-		if personLimit[0].MaxNums < data.DeductNum {
-			msg = append(msg, "超出您的数据导出总量限额")
+		b = entity.Mgo.Update("user", query, update, false, false)
+		if !b {
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "企业余额操作失败"}
 		}
-		return &resourcesCenter.ChargeResp{
-			Code:    entity.SuccessCode,
-			Message: "",
-			Data: &resourcesCenter.SomeInfo{
-				ChargeType:   0,
-				ChargeResult: 0,
-				FailMsg:      common.ObjToString(common.If(len(msg) > 0, strings.Join(msg, "、"), "")),
-				Num1:         entNums,
-				Num2:         personLimit[0].DataLimit,
-				Num3:         personLimit[0].DataLimit - personLimit[0].ExportNums,
-				Num4:         personLimit[0].MaxNums,
-				Num5:         personLimit[0].MaxNums - personLimit[0].AllExportNums,
-			},
+		err = jyOrm.Begin()
+		//更新限额
+		if err != nil {
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "操作失败"}
+		}
+		var updateNum = int64(0)
+		updateNum, err = jyOrm.Table("entniche_export_limit").Where("id = ? and ((data_limit-export_nums>=? && max_nums-all_export_nums>=?) or (data_limit is null && max_nums is null) or (data_limit is null && max_nums-all_export_nums>=?) or (data_limit-export_nums>=? && max_nums is null))", personLimit[0].Id, data.DeductNum, data.DeductNum, data.DeductNum, data.DeductNum).
+			Incr("export_nums", data.ExportNum).
+			Incr("all_export_nums", data.ExportNum).
+			Update(&entity.PersonLimit{})
+		if err != nil {
+			_ = jyOrm.Rollback()
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "操作失败"}
+		}
+		if updateNum <= 0 {
+			_ = jyOrm.Rollback()
+			_ = jyOrm.Table("entniche_export_limit").Select("*").
+				Where("ent_id = ? and user_id = ?", data.EntId, data.EntUserId).Find(&personLimit)
+			var msg []string
+			if personLimit[0].DataLimit < data.DeductNum {
+				msg = append(msg, "超出您的每日导出限额")
+			}
+			if personLimit[0].MaxNums < data.DeductNum {
+				msg = append(msg, "超出您的数据导出总量限额")
+			}
+			return &resourcesCenter.ChargeResp{
+				Code:    entity.SuccessCode,
+				Message: "",
+				Data: &resourcesCenter.SomeInfo{
+					ChargeType:   0,
+					ChargeResult: 0,
+					FailMsg:      common.ObjToString(common.If(len(msg) > 0, strings.Join(msg, "、"), "")),
+					Num1:         entNums,
+					Num2:         personLimit[0].DataLimit,
+					Num3:         personLimit[0].DataLimit - personLimit[0].ExportNums,
+					Num4:         personLimit[0].MaxNums,
+					Num5:         personLimit[0].MaxNums - personLimit[0].AllExportNums,
+				},
+			}
+			//保存账号使用明细
+			detailed := entity.Detailed{
+				AccountId:     data.UserId,
+				CompanyId:     data.EntId,
+				ResourceType:  "高级字段包",
+				Number:        data.ExportNum,
+				DeductionNumb: data.DeductNum,
+				Name:          "数据流包",
+				CreateTime:    time.Now().Local(),
+				Remarks:       data.Remark,
+				UserType:      0,
+				UserId:        data.UserId,
+				AccountType:   1,
+				EntId:         data.EntId,
+			}
+			updateNum, err = souceOrm.Table(ConsumeRecord).Insert(&detailed)
+			if err != nil || updateNum <= 0 {
+				_ = jyOrm.Rollback()
+				return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "账号使用明细保存失败"}
+			}
+			err = jyOrm.Commit()
+			if err != nil {
+				_ = jyOrm.Rollback()
+				return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "事务提交失败"}
+			}
 		}
-	}
-	//保存账号使用明细
-	detailed := entity.Detailed{
-		AccountId:     data.UserId,
-		CompanyId:     data.EntId,
-		ResourceType:  "高级字段包",
-		Number:        data.ExportNum,
-		DeductionNumb: data.DeductNum,
-		Name:          "数据流包",
-		CreateTime:    time.Now().Local(),
-		Remarks:       data.Remark,
-		UserType:      0,
-		UserId:        data.UserId,
-		AccountType:   1,
-		EntId:         data.EntId,
-		EntUserId:     data.EntUserId,
-	}
-	if detailed.EntUserId > 0 {
-		jyOrm.Table("entniche_user").Select("CONCAT(NAME,'(',phone,')')").Where("id=?", detailed.EntUserId).Get(&detailed.Operator)
-	}
-	updateNum, err = souceOrm.Table(ConsumeRecord).Insert(&detailed)
-	if err != nil || updateNum <= 0 {
-		_ = jyOrm.Rollback()
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "账号使用明细保存失败"}
-	}
-	err = jyOrm.Commit()
-	if err != nil {
-		_ = jyOrm.Rollback()
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "事务提交失败"}
 	}
 	return &resourcesCenter.ChargeResp{
 		Code:    entity.SuccessCode,
@@ -235,64 +233,67 @@ func personCharge(data *resourcesCenter.ChargeReq) (resp *resourcesCenter.Charge
 			},
 		}
 	}
-	var updateNum int64
-	err = centerOrm.Begin()
-	if err != nil {
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "操作失败"}
-	}
-	//修改个人账户资源
-	balanceList := []entity.Balance{}
-	err = centerOrm.Table(AccountResources).
-		Select("*").
-		Where("accountId= ? and number > 0 and resourceType= ? and endTime >= ?", data.UserId, "高级字段包", now).
-		OrderBy("endTime").
-		Find(&balanceList)
-	if err != nil {
-		_ = centerOrm.Rollback()
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "个人账号资源查询失败"}
-	}
-	for _, value := range balanceList {
-		if value.Number > data.DeductNum {
-			value.Number = value.Number - data.DeductNum
-			data.DeductNum = 0
-		} else {
-			data.DeductNum = data.DeductNum - value.Number
-			value.Number = 0
+	// 实际扣费条数
+	if data.DeductNum > 0 {
+		var updateNum int64
+		err = centerOrm.Begin()
+		if err != nil {
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "操作失败"}
 		}
-		updateNum, err = centerOrm.Table(AccountResources).
-			Cols("number").ID(value.Id).
-			Update(&value)
-		if err != nil || updateNum <= 0 {
+		//修改个人账户资源
+		balanceList := []entity.Balance{}
+		err = centerOrm.Table(AccountResources).
+			Select("*").
+			Where("accountId= ? and number > 0 and resourceType= ? and endTime >= ?", data.UserId, "高级字段包", now).
+			OrderBy("endTime").
+			Find(&balanceList)
+		if err != nil {
 			_ = centerOrm.Rollback()
-			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "修改账户失败"}
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "个人账号资源查询失败"}
 		}
-		if data.DeductNum == 0 {
-			break
+		for _, value := range balanceList {
+			if value.Number > data.DeductNum {
+				value.Number = value.Number - data.DeductNum
+				data.DeductNum = 0
+			} else {
+				data.DeductNum = data.DeductNum - value.Number
+				value.Number = 0
+			}
+			updateNum, err = centerOrm.Table(AccountResources).
+				Cols("number").ID(value.Id).
+				Update(&value)
+			if err != nil || updateNum <= 0 {
+				_ = centerOrm.Rollback()
+				return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "修改账户失败"}
+			}
+			if data.DeductNum == 0 {
+				break
+			}
+		}
+		//保存账号使用明细
+		detailed := entity.Detailed{
+			AccountId:     data.UserId,
+			CompanyId:     data.EntId,
+			ResourceType:  "高级字段包",
+			Number:        data.ExportNum,
+			DeductionNumb: data.DeductNum,
+			Name:          "数据流包",
+			CreateTime:    time.Now().Local(),
+			Remarks:       data.Remark,
+			UserType:      0,
+			UserId:        data.UserId,
+			AccountType:   1,
+			EntId:         data.EntId,
+		}
+		updateNum, err = centerOrm.Table(ConsumeRecord).Insert(&detailed)
+		if err != nil || updateNum <= 0 {
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "账号使用明细保存失败"}
+		}
+		err = centerOrm.Commit()
+		if err != nil {
+			_ = jyOrm.Rollback()
+			return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "事务提交失败"}
 		}
-	}
-	//保存账号使用明细
-	detailed := entity.Detailed{
-		AccountId:     data.UserId,
-		CompanyId:     data.EntId,
-		ResourceType:  "高级字段包",
-		Number:        data.ExportNum,
-		DeductionNumb: data.DeductNum,
-		Name:          "数据流包",
-		CreateTime:    time.Now().Local(),
-		Remarks:       data.Remark,
-		UserType:      0,
-		UserId:        data.UserId,
-		AccountType:   1,
-		EntId:         data.EntId,
-	}
-	updateNum, err = centerOrm.Table(ConsumeRecord).Insert(&detailed)
-	if err != nil || updateNum <= 0 {
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "账号使用明细保存失败"}
-	}
-	err = centerOrm.Commit()
-	if err != nil {
-		_ = jyOrm.Rollback()
-		return &resourcesCenter.ChargeResp{Code: entity.ErrorCode, Message: "事务提交失败"}
 	}
 	return &resourcesCenter.ChargeResp{
 		Code:    entity.SuccessCode,