|  | @ -0,0 +1,45 @@ | 
														
													
														
															
																|  |  |  |  |  | package productrpc | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | import ( | 
														
													
														
															
																|  |  |  |  |  | "strings" | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | "git.tetele.net/tgo/helper" | 
														
													
														
															
																|  |  |  |  |  | ) | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | /** | 
														
													
														
															
																|  |  |  |  |  | * commission_rule 规则,1按系统设置,2单独设置 | 
														
													
														
															
																|  |  |  |  |  | * commission_value 单独佣金值 | 
														
													
														
															
																|  |  |  |  |  | * commission_rate 系统佣金比例 | 
														
													
														
															
																|  |  |  |  |  | */ | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | func ProductCommission(commission_rule, commission_value, commission_rate string, product_price, cost_price string, quantity interface{}) float64 { | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | var commission_rule_rate float64 //佣金按比例换算成的小数 | 
														
													
														
															
																|  |  |  |  |  | var commission_type string | 
														
													
														
															
																|  |  |  |  |  | switch commission_rule { | 
														
													
														
															
																|  |  |  |  |  | case "1": //按系统设置 | 
														
													
														
															
																|  |  |  |  |  | commission_rule_rate = helper.FloatQuo(commission_rate, 100) | 
														
													
														
															
																|  |  |  |  |  | commission_type = "rate" | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | case "2": //单独设置 | 
														
													
														
															
																|  |  |  |  |  | if strings.Contains(commission_value, "%") { //百分比 | 
														
													
														
															
																|  |  |  |  |  | commission_rule_rate = helper.FloatQuo(strings.ReplaceAll(commission_value, "%", ""), 100) | 
														
													
														
															
																|  |  |  |  |  | commission_type = "rate" | 
														
													
														
															
																|  |  |  |  |  | } else { | 
														
													
														
															
																|  |  |  |  |  | commission_type = "fixed" | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | var commission float64 | 
														
													
														
															
																|  |  |  |  |  | switch commission_type { | 
														
													
														
															
																|  |  |  |  |  | case "rate": | 
														
													
														
															
																|  |  |  |  |  | commission = helper.FloatMul(helper.FloatMul(helper.FloatSub(product_price, cost_price), commission_rule_rate), quantity) //利润 | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | case "fixed": | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | commission = helper.FloatMul(commission_value, quantity) | 
														
													
														
															
																|  |  |  |  |  | } | 
														
													
														
															
																|  |  |  |  |  |  | 
														
													
														
															
																|  |  |  |  |  | return commission | 
														
													
														
															
																|  |  |  |  |  | } |