|
@ -53,6 +53,16 @@ class mFormula extends mBase { |
|
|
$formula_ids = array_column($data, 'id'); |
|
|
$formula_ids = array_column($data, 'id'); |
|
|
$formula_arr = $this->getFormulaHerbData($formula_ids); |
|
|
$formula_arr = $this->getFormulaHerbData($formula_ids); |
|
|
|
|
|
|
|
|
|
|
|
$unit_conv = array(); |
|
|
|
|
|
$user_conv = $this->getUserConvList($uid); |
|
|
|
|
|
if ($user_conv) { |
|
|
|
|
|
$conv_ids = array_column($user_conv, 'conv_id'); |
|
|
|
|
|
if ($conv_ids) { |
|
|
|
|
|
$unit_conv = $this->getUnitConvByIds($conv_ids); |
|
|
|
|
|
$unit_conv = array_column($unit_conv, null, 'unit_type'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
foreach ($data as &$da) { |
|
|
foreach ($data as &$da) { |
|
|
if (isset($formula_arr[$da['id']])) $da['formula'] = $formula_arr[$da['id']]; |
|
|
if (isset($formula_arr[$da['id']])) $da['formula'] = $formula_arr[$da['id']]; |
|
|
|
|
|
|
|
@ -63,7 +73,7 @@ class mFormula extends mBase { |
|
|
|
|
|
|
|
|
foreach ($da['formula'] as &$v) { |
|
|
foreach ($da['formula'] as &$v) { |
|
|
if (isset($original[$v['name']])) { |
|
|
if (isset($original[$v['name']])) { |
|
|
$num = $this->convByUserChoice($uid, $original[$v['name']]['num']); |
|
|
$num = $this->convByUserChoice($original[$v['name']]['num'], $unit_conv); |
|
|
if ($num) $v['num'] = $num; |
|
|
if ($num) $v['num'] = $num; |
|
|
|
|
|
|
|
|
$v['num_str'] = $original[$v['name']]['num']; |
|
|
$v['num_str'] = $original[$v['name']]['num']; |
|
@ -77,20 +87,19 @@ class mFormula extends mBase { |
|
|
return $data; |
|
|
return $data; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
public function convByUserChoice($uid, $num_str) { |
|
|
public function convByUserChoice($num_str, $unit_conv) { |
|
|
|
|
|
if (!$unit_conv) return false; |
|
|
|
|
|
|
|
|
$unit_name = preg_replace('/\d/', '', $num_str); |
|
|
$unit_name = preg_replace('/\d/', '', $num_str); |
|
|
|
|
|
|
|
|
$unit_type = $GLOBALS['weight_convert_list'][$unit_name]; |
|
|
$unit_type = $GLOBALS['weight_convert_list'][$unit_name]; |
|
|
if (!$unit_type) return false; |
|
|
if (!$unit_type) return false; |
|
|
|
|
|
if (!isset($unit_conv[$unit_type])) return false; |
|
|
$user_conv = $this->getUserConv($uid, $unit_type); |
|
|
|
|
|
if (!$user_conv) return false; |
|
|
|
|
|
|
|
|
|
|
|
$unit_conv = $this->getUnitConvById($user_conv['conv_id']); |
|
|
|
|
|
if (!$unit_conv) return false; |
|
|
|
|
|
|
|
|
|
|
|
$unit_num = filter_var($num_str, FILTER_SANITIZE_NUMBER_INT); |
|
|
$unit_num = filter_var($num_str, FILTER_SANITIZE_NUMBER_INT); |
|
|
|
|
|
$conv_num = $unit_conv[$unit_type]['num']; |
|
|
|
|
|
|
|
|
$num = $unit_num * $unit_conv['num']; |
|
|
$num = $unit_num * $conv_num; |
|
|
if (!$num) return false; |
|
|
if (!$num) return false; |
|
|
|
|
|
|
|
|
return $num; |
|
|
return $num; |
|
@ -287,12 +296,22 @@ class mFormula extends mBase { |
|
|
return $formula; |
|
|
return $formula; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
$unit_conv = array(); |
|
|
|
|
|
$user_conv = $this->getUserConvList($uid); |
|
|
|
|
|
if ($user_conv) { |
|
|
|
|
|
$conv_ids = array_column($user_conv, 'conv_id'); |
|
|
|
|
|
if ($conv_ids) { |
|
|
|
|
|
$unit_conv = $this->getUnitConvByIds($conv_ids); |
|
|
|
|
|
$unit_conv = array_column($unit_conv, null, 'unit_type'); |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
//原方信息 |
|
|
//原方信息 |
|
|
$original = json_decode($original, true); |
|
|
$original = json_decode($original, true); |
|
|
$original = array_column($original, null, 'name'); |
|
|
$original = array_column($original, null, 'name'); |
|
|
foreach ($formulaHerb as &$v) { |
|
|
foreach ($formulaHerb as &$v) { |
|
|
if (isset($original[$v['name']])) { |
|
|
if (isset($original[$v['name']])) { |
|
|
$num = $this->convByUserChoice($uid, $original[$v['name']]['num']); |
|
|
$num = $this->convByUserChoice($original[$v['name']]['num'], $unit_conv); |
|
|
if ($num) $v['num'] = $num; |
|
|
if ($num) $v['num'] = $num; |
|
|
|
|
|
|
|
|
$v['num_str'] = $original[$v['name']]['num']; |
|
|
$v['num_str'] = $original[$v['name']]['num']; |
|
@ -640,6 +659,10 @@ class mFormula extends mBase { |
|
|
return $this->obj->count($this->collect_log_tbl); |
|
|
return $this->obj->count($this->collect_log_tbl); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getUnitConvByIds($ids) { |
|
|
|
|
|
return $this->obj->selectIn($this->unit_conv, array('id' => $ids), array('sql' => '`is_delete`=?', 'vals' => array(0))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public function getUnitConvById($id) { |
|
|
public function getUnitConvById($id) { |
|
|
return $this->obj->select($this->unit_conv, array('sql' => '`id`=? and `is_delete`=?', 'vals' => array($id, 0))); |
|
|
return $this->obj->select($this->unit_conv, array('sql' => '`id`=? and `is_delete`=?', 'vals' => array($id, 0))); |
|
|
} |
|
|
} |
|
@ -648,6 +671,10 @@ class mFormula extends mBase { |
|
|
return $this->obj->selectAll($this->unit_conv, array('sql' => '`unit_type`=? and `is_delete`=?', 'vals' => array($unit_type, 0))); |
|
|
return $this->obj->selectAll($this->unit_conv, array('sql' => '`unit_type`=? and `is_delete`=?', 'vals' => array($unit_type, 0))); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public function getUserConvList($uid) { |
|
|
|
|
|
return $this->obj->selectAll($this->user_conv, array('sql' => '`uid`=?', 'vals' => array($uid))); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
public function getUserConv($uid, $unit_type) { |
|
|
public function getUserConv($uid, $unit_type) { |
|
|
return $this->obj->select($this->user_conv, array('sql' => '`uid`=? and `unit_type`=?', 'vals' => array($uid, $unit_type))); |
|
|
return $this->obj->select($this->user_conv, array('sql' => '`uid`=? and `unit_type`=?', 'vals' => array($uid, $unit_type))); |
|
|
} |
|
|
} |
|
|