|
@@ -7,6 +7,7 @@ use app\admin\model\Enterprise;
|
|
|
use think\facade\Db;
|
|
|
use app\common\model\IntegralRecord;
|
|
|
use app\common\state\IntegralState;
|
|
|
+use app\common\state\CommonConst;
|
|
|
|
|
|
/**
|
|
|
* Description of IntegralRecordApi
|
|
@@ -202,7 +203,7 @@ class IntegralRecordApi {
|
|
|
case 4:
|
|
|
return self::getLibraryList($params);
|
|
|
case 5:
|
|
|
- $where[] = ["ir.checkState", "=", IntegralState::SUCCESS];
|
|
|
+ return self::getIntegralLogs($params);
|
|
|
break;
|
|
|
}
|
|
|
$where[] = ["ir.delete", "=", 0];
|
|
@@ -259,39 +260,95 @@ class IntegralRecordApi {
|
|
|
|
|
|
$where = [];
|
|
|
$where[] = ["e.type", "=", session("user")["type"]];
|
|
|
- $where[] = ["ir.checkState", "=", IntegralState::SUCCESS];
|
|
|
- $where[] = ["ir.delete", "=", 0];
|
|
|
if ($params["name"]) {
|
|
|
- $where[] = ["ir.name", "like", "%{$params['name']}%"];
|
|
|
+ $where[] = ["l.name", "like", "%{$params['name']}%"];
|
|
|
}
|
|
|
if ($params["card_number"]) {
|
|
|
- $where[] = ["ir.card_number", "like", "%{$params['card_number']}%"];
|
|
|
+ $where[] = ["l.card_number", "like", "%{$params['card_number']}%"];
|
|
|
}
|
|
|
if ($params["enterprise_id"]) {
|
|
|
- $where[] = ["ir.enterprise_id", "=", $params['enterprise_id']];
|
|
|
+ $where[] = ["l.enterprise_id", "=", $params['enterprise_id']];
|
|
|
}
|
|
|
if ($params["veto"]) {
|
|
|
$having = "if(min_shareholder=1 and enterprise_veto = 1,true,false) or personal_veto = 1";
|
|
|
} else {
|
|
|
$having = "if(min_shareholder=1 and enterprise_veto = 1,false,true) and personal_veto = 0";
|
|
|
}
|
|
|
- $count = IntegralRecord::alias("ir")->where($where)
|
|
|
- ->leftJoin("sys_batch b", "b.id=ir.batch_id")
|
|
|
- ->leftJoin("un_enterprise e", "e.id=ir.enterprise_id")
|
|
|
- ->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=ir.enterprise_id")
|
|
|
- ->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(ir.card_type,ir.card_number))")
|
|
|
- ->field("min(shareholder) as min_shareholder,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,if(iv2.`active`=1,iv2.`active`,0) as personal_veto")
|
|
|
- ->group("concat(ir.card_type,ir.card_number)")
|
|
|
- ->having($having)
|
|
|
+ $count = Db::table("new_integral_log")->alias("l")->where($where)
|
|
|
+ ->leftJoin("un_enterprise e", "e.id=l.enterprise_id")
|
|
|
+ //->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=l.enterprise_id")
|
|
|
+ //->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(l.card_type,l.card_number))")
|
|
|
+ //->field("min(shareholder) as min_shareholder,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,if(iv2.`active`=1,iv2.`active`,0) as personal_veto")
|
|
|
+ ->group("concat(l.card_type,l.card_number)")
|
|
|
+ //->having($having)
|
|
|
->count();
|
|
|
- $list = IntegralRecord::alias("ir")->where($where)
|
|
|
- ->leftJoin("sys_batch b", "b.id=ir.batch_id")
|
|
|
- ->leftJoin("un_enterprise e", "e.id=ir.enterprise_id")
|
|
|
- ->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=ir.enterprise_id")
|
|
|
- ->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(ir.card_type,ir.card_number))")
|
|
|
- ->group("concat(ir.card_type,ir.card_number)")
|
|
|
- ->having($having)
|
|
|
- ->field("min(shareholder) as min_shareholder,ir.name,ir.card_type,ir.card_number,ir.enterprise_id,sum(ir.totalPoints) as totalPoints,e.name as enterpriseName,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,iv1.description as enterprise_veto_msg,if(iv2.`active`=1,iv2.`active`,0) as personal_veto,iv2.description as personal_veto_msg")->limit($offset, $limit)->order("b.batch " . $order)->select();
|
|
|
+ $list = Db::table("new_integral_log")->alias("l")->where($where)
|
|
|
+ ->leftJoin("un_enterprise e", "e.id=l.enterprise_id")
|
|
|
+ //->leftJoin("new_integral_veto iv1", "iv1.enterprise_id=ir.enterprise_id")
|
|
|
+ //->leftJoin("new_integral_veto iv2", "md5(concat(iv2.card_type,iv2.card_number))=md5(concat(ir.card_type,ir.card_number))")
|
|
|
+ ->group("concat(l.card_type,l.card_number)")
|
|
|
+ //->having($having)
|
|
|
+ //->field("min(shareholder) as min_shareholder,ir.name,ir.card_type,ir.card_number,ir.enterprise_id,sum(ir.totalPoints) as totalPoints,e.name as enterpriseName,if(iv1.`active`=1,iv1.`active`,0) as enterprise_veto,iv1.description as enterprise_veto_msg,if(iv2.`active`=1,iv2.`active`,0) as personal_veto,iv2.description as personal_veto_msg")
|
|
|
+ ->field("l.*,sum(gainPoints) as totalPoints,e.name as enterpriseName")
|
|
|
+ ->limit($offset, $limit)
|
|
|
+ //->order("b.batch " . $order)
|
|
|
+ ->select()->toArray();
|
|
|
+ foreach ($list as $key => $item) {
|
|
|
+ $list[$key]["basePoints"] = CommonConst::getLayerPointsByLayer($item["talentLevel"]);
|
|
|
+ }
|
|
|
+ return ["total" => $count, "rows" => $list];
|
|
|
+ }
|
|
|
+
|
|
|
+ public static function getIntegralLogs($params) {
|
|
|
+ $order = $params["order"] ?: "desc";
|
|
|
+ $offset = $params["offset"] ?: 0;
|
|
|
+ $limit = $params["limit"] ?: 10;
|
|
|
+
|
|
|
+ $where = [];
|
|
|
+ $where[] = ["e.type", "=", session("user")["type"]];
|
|
|
+ if ($params["name"]) {
|
|
|
+ $where[] = ["l.name", "like", "%{$params['name']}%"];
|
|
|
+ }
|
|
|
+ if ($params["card_number"]) {
|
|
|
+ $where[] = ["l.card_number", "like", "%{$params['card_number']}%"];
|
|
|
+ }
|
|
|
+ if ($params["enterprise_id"]) {
|
|
|
+ $where[] = ["l.enterprise_id", "=", $params['enterprise_id']];
|
|
|
+ }
|
|
|
+ $count = Db::table("new_integral_log")->alias("l")->where($where)
|
|
|
+ ->leftJoin("un_enterprise e", "e.id=l.enterprise_id")
|
|
|
+ ->count();
|
|
|
+ $list = Db::table("new_integral_log")->alias("l")
|
|
|
+ ->field("l.*,e.name as enterpriseName")
|
|
|
+ ->leftJoin("un_enterprise e", "e.id=l.enterprise_id")
|
|
|
+ ->where($where)
|
|
|
+ ->limit($offset, $limit)
|
|
|
+ ->order("l.createTime desc")
|
|
|
+ ->select()->toArray();
|
|
|
+ foreach ($list as $key => $item) {
|
|
|
+ $where = [];
|
|
|
+ if ($item["mainType"] == "integral") {
|
|
|
+ $where[] = ["ir.id", "=", $item["mainId"]];
|
|
|
+ $integralInfo = IntegralRecord::alias("ir")->leftJoin("sys_batch b", "b.id=ir.batch_id")->field("ir.*,b.batch as apply_year")->where($where)->find();
|
|
|
+ $list[$key]["apply_year"] = $integralInfo["apply_year"];
|
|
|
+ $list[$key]["shareholder"] = $integralInfo["shareholder"];
|
|
|
+ $tmp_items = [];
|
|
|
+ foreach ($integralInfo["detail"] as $_item) {
|
|
|
+ $integral_item_info = getCacheById("IntegralItem", $_item["item_id"]);
|
|
|
+ $tmp_items[] = sprintf("%s(%s%s)", $integral_item_info["name"], $_item["amount"], $integral_item_info["unit"]);
|
|
|
+ }
|
|
|
+ $list[$key]["details"] = implode(";", $tmp_items);
|
|
|
+ $list[$key]["first_submit_time"] = $integralInfo["first_submit_time"];
|
|
|
+ $list[$key]["new_submit_time"] = $integralInfo["new_submit_time"];
|
|
|
+ } else {
|
|
|
+ $where[] = ["id", "=", $item["mainId"]];
|
|
|
+ $talentInfo = Db::table("new_talent_info")->where($where)->find();
|
|
|
+ $list[$key]["apply_year"] = $talentInfo["apply_year"];
|
|
|
+ $list[$key]["details"] = $item["description"];
|
|
|
+ $list[$key]["first_submit_time"] = $talentInfo["first_submit_time"];
|
|
|
+ $list[$key]["new_submit_time"] = $talentInfo["new_submit_time"];
|
|
|
+ }
|
|
|
+ }
|
|
|
return ["total" => $count, "rows" => $list];
|
|
|
}
|
|
|
|