Explorar el Código

fix:升级计费修改

duxin hace 2 meses
padre
commit
a751d25ed7

+ 2 - 2
internal/logic/order/cancellation.go

@@ -58,10 +58,10 @@ func Cancellation(ctx context.Context, param model.OrderDetailParams) error {
 	g.DB().Update(ctx, "dataexport_order", upOrder, map[string]interface{}{
 		"order_code": param.OrderCode,
 	})
-	g.DB().Update(ctx, "jy_order_detail", map[string]interface{}{
+	/*g.DB().Update(ctx, "jy_order_detail", map[string]interface{}{
 		"status": 2,
 	}, map[string]interface{}{
 		"order_code": param.OrderCode,
-	})
+	})*/
 	return nil
 }

+ 4 - 2
internal/logic/product/bigmember/bigcommon.go

@@ -68,12 +68,13 @@ func (p jyBigProduct) UserEquityDistribution(ctx context.Context, startDate, end
 			mainId := gconv.Int(m["id"])
 			userService, _ := g.DB().Ctx(ctx).Query(ctx, fmt.Sprintf("select * from bigmember_service_user where s_serviceid = %d and s_userid = '%s' and  i_status != -1", serverId, p.param.UserId))
 			var (
-				frequency int
+				frequency, saveFrequency int
 			)
 
 			switch serverId {
 			case 11:
 				frequency = p.param.Filter.BuyCycle * common.IntAll(m["s_count_month"])
+				saveFrequency = frequency
 			case 15:
 				cycle := month(p.param.Filter.BuyCycle, p.param.Filter.BuyType) + month(p.param.Filter.GiftCycle, p.param.Filter.GiftType)
 				if cycle >= 12 {
@@ -81,6 +82,7 @@ func (p jyBigProduct) UserEquityDistribution(ctx context.Context, startDate, end
 				} else {
 					frequency = cycle * common.IntAll(m["s_count_month"])
 				}
+				saveFrequency = frequency
 			default:
 				frequency = common.IntAll(m["s_count_month"])
 			}
@@ -121,7 +123,7 @@ func (p jyBigProduct) UserEquityDistribution(ctx context.Context, startDate, end
 			case Renew:
 				if !userService.IsEmpty() {
 					if status == 1 {
-						sql1 := fmt.Sprintf("update bigmember_service_user set i_frequency = i_frequency + %v,l_updatetime = '%v',l_endtime = '%v' where s_serviceid = %v and s_userid = '%v'", frequency, date.NowFormat(date.Date_Full_Layout), endDate, serverId, p.param.UserId)
+						sql1 := fmt.Sprintf("update bigmember_service_user set i_frequency = i_frequency + %v,l_updatetime = '%v',l_endtime = '%v' where s_serviceid = %v and s_userid = '%v'", saveFrequency, date.NowFormat(date.Date_Full_Layout), endDate, serverId, p.param.UserId)
 						_, err := g.DB().Ctx(ctx).Exec(ctx, sql1)
 						if err != nil {
 							return err

+ 16 - 16
internal/logic/product/common.go

@@ -179,23 +179,23 @@ func (ps NewPriceSetting) UnityPrice(num float64, cycleType, subAccount int, dif
 			case 1: //
 				if num >= gconv.Float64(pricing.Min) && num < gconv.Float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num)))
 				}
 			case 2:
 				if num/12 >= gconv.Float64(pricing.Min) && num/12 < float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num)))
 				}
 			case 3:
 				if float64(num)/3 >= gconv.Float64(pricing.Min) && float64(num)/3 < float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num)))
 				}
 			}
 		}
@@ -216,16 +216,16 @@ func (ps NewPriceSetting) UnityPrice(num float64, cycleType, subAccount int, dif
 			case 1: //
 				if num*12 >= gconv.Float64(pricing.Min) && num*12 < gconv.Float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num*12)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num * 12))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num*12))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num / 12)))
 				}
 			case 2:
 				if num >= gconv.Float64(pricing.Min) && num < float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num*12)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num * 12))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num*12))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num / 12)))
 				}
 			}
 		}
@@ -246,23 +246,23 @@ func (ps NewPriceSetting) UnityPrice(num float64, cycleType, subAccount int, dif
 			case 1:
 				if num*3 >= gconv.Float64(pricing.Min) && num*3 < gconv.Float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num*3)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num * 3))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num*3))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num / 3)))
 				}
 			case 2: //
 				if gconv.Float64(num/4) >= gconv.Float64(pricing.Min) && gconv.Float64(num/4) < gconv.Float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num*3)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num * 3))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num*3))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num / 3)))
 				}
 			case 3:
 				if num >= gconv.Float64(pricing.Min) && num < float64(pricing.Max) {
 					if diffPrice != 0 {
-						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * float64(num*3)))
+						return gconv.Int64(math.Floor(((newPrice+subPrice*gconv.Float64(subAccount))/float64(pricing.Unit) - diffPrice) * num * 3))
 					}
-					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / float64(num*3))))
+					return gconv.Int64(math.Floor((newPrice + subPrice*gconv.Float64(subAccount)) / (float64(pricing.Unit) / num / 3)))
 				}
 			}
 		}