当前位置: 首页 > 后端技术 > PHP

举枪消灭“烂代码”的实战案例

时间:2023-03-29 21:15:43 PHP

鍓嶈█鎴戝啓浜嗕竴绡囧叧浜庡浣曞皯鍐橮HP鈥滅儌鈥濅唬鐮佺殑鏂囩珷https://segmentfault.com/a/11...鎰熻寰堝鏂颁汉涓嶆槑鐧借繖涓€備粖澶╁氨浠ョ鍒板姛鑳戒负渚嬶紝瑙h鍏朵腑鐨勫ゥ绉樸€傞偅绡囨枃绔犺皥鍒颁簡鍑犵绫诲瀷鐨勪唬鐮佸紑鍙戙€傚鍒犳敼鏌ラ渶姹俁oute->Controller->Service->Action鏍¢獙闇€姹俁oute->Controller->Service->Repository缁忚繃澶氭瀹為檯寮€鍙戦獙璇侊紝鍙戠幇Repository瀹屽叏鍋氫簡澶氭銆傛墍浠ヨ繖閲屾洿姝d笅锛屽彇娑圧epository銆俁oute->Controller->Service绛惧埌绯荤粺閫昏緫鏋舵瀯鍥鹃渶姹傚涓嬶紝鐢ㄦ埛姣忓ぉ绛惧埌鑾峰緱绉垎锛岀Н鍒嗚鍏ョ敤鎴疯处鎴凤紝闇€瑕佽褰曠敤鎴风Н鍒嗙殑鑾峰彇鍜屾秷璐广€傚鍥炬墍绀猴紝鍚慶ontroller鍙戝嚭璇锋眰鍚庯紝controller璋冪敤service锛宻ervice璋冪敤createusersign-in妯″潡瀹屾垚寮€閫氥€傜敤鎴风櫥褰曡繃绋嬩腑锛岀敤鎴疯处鎴风Н鍒嗗彂鐢熷彉鍖栵紝骞惰褰曠敤鎴风Н鍒嗚幏鍙栬褰曘€傛暟鎹〃缁撴瀯绛惧埌鏁版嵁琛–REATETABLE`member_attendance`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`member_id`int(11)NOTNULLCOMMENT'鐢ㄦ埛浠g爜',`status`enum('0','1')COLLATEutf8mb4_unicode_ciNOTNULLDEFAULT'0'COMMENT'1signedinsuccessfully',`created_at`timestampNULLDEFAULTNULL,`updated_at`timestampNULLDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=8榛樿CHutf8mb4COLLATE=utf8mb4_unicode_ci锛涚敤鎴烽挶鍖呰〃CREATETABLE`wallet`(`user_id`bigint(20)NOTNULLCOMMENT'userID',`balance`decimal(12,2)NOTNULLCOMMENT'walletbalance',`integral`decimal(12,2)NOTNULLDEFAULT'0',`add_time`int(11)NOTNULLCOMMENT'娣诲姞鏃堕棿',`update_time`int(11)NOTNULLCOMMENT'鏇存柊鏃堕棿',UNIQUEKEY`wallet_user_id_unique`(`user_id`),KEY`wallet_user_id_index`(`user_id`))ENGINE=InnoDBDEFAULTCHARSET=utf8COLLATE=utf8_unicode_ci;鐢ㄦ埛鐐逛氦鏄撹褰曡〃CREATETABLE`member_integral_detail`(`id`int(10)unsignedNOTNULLAUTO_INCREMENT,`member_id`int(11)NOTNULLCOMMENT'usercode',`title`varchar(255)COLLATEutf8mb4_unicode_ciDEFAULTNULLCOMMENT'sourceorconsumption',`integral`decimal(12,2)NOTNULLDEFAULT'0.00'COMMENT'points',`type`tinyint(4)NOTNULLDEFAULT'0'COMMENT'type0income-1expenditure',`created_at`timestampNULLDEFAULTNULL,`updated_at`timestampNULLDEFAULTNULL,PRIMARYKEY(`id`))ENGINE=InnoDBAUTO_INCREMENT=8DEFAULTCHARSET=utf8mb4鏁寸悊=utf8mb4_unicode_ci;鍏蜂綋涓氬姟瀹炵幇Route$api->post('user/attendance','UserController@attendance');MemberControllerpublicfunctionattendance(){$result=$this->userService->attendance($this->request);if($result){return$this->response->array(Response::return(200,'鐧诲綍鎴愬姛'));}return$this->response->array(Response::return(0,"鐧诲綍澶辫触鎴栧凡缁忕櫥褰?));}MemberServicepublicfunctionattendance($request){return(newCreateUserAttendance())->execute($request);}CreateUserAttendancepublicfunctionissetToday($userId){$result=MemberAttendance::where([['member_id','=',$userId],])->whereDate('created_at',鏃ユ湡('Y-m-d',time()))->瀛樺湪();return$result;}//------------------涓婇潰璇寸殑鏄笅闈ssetToday鏂规硶锛屽啓鍦∕emberModel涓璫lassCreateUserAttendance{publicfunctionexecute($data){if((newMemberAttendance())->issetToday($data->user_id)){returnfalse;}$models=newMemberAttendance();$models->member_id=$data->user_id;$models->status=(string)"1";$result=$models->淇濆瓨();if($result){(newCreateUserIntegralDetail())->execute($data->user_id,'绛惧埌',10,0);杩斿洖鐪燂紱}杩斿洖鍋囷紱}}CreateUserIntegralDetailinterfaceintegralDetail{publicfunctionexecute($userId,$title,$integral,$type);}classCreateUserIntegralDetailextendsUpdateUserWalletIntegralimplementsintegralDetail{publicfunctionexecute($userId,$title,$integral,$type){parent::exec($userId,$integral,$type);}$models=newMemberIntegralDetail();$models->member_id=$userId;$models->title=$title;$妯″瀷->绉垎=$绉垎锛?models->type=$type;杩斿洖$models->save();}}涓婇潰鐨勪唬鐮佺户鎵夸簡鏇存柊鐢ㄦ埛绉垎鐨勫姩浣滐紝姣忔鐧诲綍鎴愬姛鍚庯紝鎴戜滑璋冪敤鐖剁被鐨勬柟娉曠洿鎺ユ洿鏂扮敤鎴风Н鍒?$type==0){閽卞寘::where(['user_id','=',$userId])->increment('integral',$integral);}else{Wallet::where(['user_id','=',$userId])->decrement('integral',$integral);}}}鑷磋阿鎰熻阿鎮ㄧ殑鍏変复锛屽笇鏈涙湰鏂囪兘瀵规偍鏈夋墍甯姪銆傚鏈変换浣曠枒闂紝娆㈣繋鍦ㄤ笅鏂硅瘎璁哄尯鐣欒█銆傝阿璋煓?/p>

最新推荐
猜你喜欢