±à¼ÍƼö: |
´ËÎÄÖ÷Òª¶¨ÒåÁËÓû§¹ÜÀí΢·þÎñµÄÒªÇ󣬲¢Éè¼ÆÁËËüµÄ³õʼÁìÓòÄ£ÐÍÒÔ¼°Ïêϸ½éÉÜÈçºÎʵÏÖÁìÓòÄ£ÐÍ£¬ÔÚ´úÂëÖ®Íâ×öÁËÄÄЩ¾ö¶¨¡£
±¾ÎÄÀ´×ÔÓÚDaoCloud£¬ÓÉ»ðÁú¹ûÈí¼þAnna±à¼¡¢ÍƼö¡£ |
|
¶¨ÒåÁìÓòÄ£ÐÍºÍ REST API
ÎÒÃǻᶨÒåÓ¦ÓõÄÐèÇ󣬳õʼµÄÁìÓòÄ£Ðͺ͹©Ç°¶ËʹÓÃµÄ REST API¡£
ÎÒÃÇÊ×Ïȶ¨ÒåÓû§×¢²áºÍ¹ÜÀíÓû§µÄ¹ÊÊ¡£

Óû§¹ÊÊÂ
ÔÚÉè¼ÆÐÂϵͳʱ£¬ÖµµÃ¿¼ÂǵÄÊÇÓû§Ï£ÍûʵÏֵĽá¹û¡£ ÏÂÃæÄú¿ÉÒÔÕÒµ½Óû§×¢²áϵͳӦ¾ßÓеĻù±¾¹¦ÄܵÄÁÐ±í¡£
×÷ΪÓû§£¬ÎÒÏë×¢²á£¬ÒÔ±ãÎÒ¿ÉÒÔ·ÃÎÊÐèҪע²áµÄÄÚÈÝ
×÷ΪÓû§£¬ÎÒÏëÔÚ×¢²áºóÈ·ÈÏÎҵĵç×ÓÓʼþµØÖ·
×÷ΪÓû§£¬ÎÒÏëµÇ¼²¢×¢Ïú
×÷ΪÓû§£¬ÎÒÏë¸ü¸ÄÎÒµÄÃÜÂë
×÷ΪÓû§£¬ÎÒÏë¸ü¸ÄÎҵĵç×ÓÓʼþµØÖ·
×÷ΪÓû§£¬ÎÒÏëÒªÖØÖÃÎÒµÄÃÜÂ룬ÒÔ±ãÎÒÍü¼ÇÃÜÂëºó¿ÉÒԵǼ
×÷ΪÓû§£¬ÎÒÏë¸üÐÂÎҵĸöÈË×ÊÁÏ£¬ÒÔ±ãÎÒ¿ÉÒÔÌṩÎÒÕýÈ·µÄÁªÂç×ÊÁÏ
×÷ΪÓû§£¬ÎÒÏë¹Ø±ÕÎÒµÄÕÊ»§£¬ÒÔ±ãÎÒ¿ÉÒԹرÕÎÒÓëÎÒ×¢²áµÄ·þÎñµÄ¹ØÏµ
×÷Ϊ¹ÜÀíÔ±£¬ÎÒÏëÊÖ¶¯¹ÜÀí£¨´´½¨/ɾ³ý/¸üУ©Óû§£¬ÒԱ㹤×÷ÈËÔ±²»±ØÖØÐ½øÐÐ×¢²á¹ý³Ì
×÷Ϊ¹ÜÀíÔ±£¬ÎÒÏëÊÖ¶¯´´½¨Óû§£¬ÕâÑù¹¤×÷ÈËÔ±¾Í²»ÓÃÔÙ¹ý×¢²á¹ý³ÌÁË
×÷Ϊ¹ÜÀíÔ±£¬ÎÒÏëÁгöËùÓÐÓû§£¬¼´Ê¹ÊÇÄÇÐ©Ôø¾¹Ø±ÕÕÊ»§µÄÓû§
×÷Ϊ¹ÜÀíÔ±£¬ÎÒÏ£ÍûÄܹ»¿´µ½Óû§µÄ»î¶¯£¨µÇ¼£¬×¢Ïú£¬ÃÜÂëÖØÖã¬È·ÈÏ£¬¸öÈË×ÊÁϸüУ©£¬ÒÔ±ãÎÒ¿ÉÒÔ×ñÊØÍⲿÉó¼ÆÒªÇó
¹¤×÷Á÷³Ì
ÎÒÃÇÀ´¿´¿´ÏµÍ³½«ÒªÖ§³ÖʲôÑùµÄ¹¤×÷Á÷³Ì¡£Ê×ÏÈ£¬ÈËÃÇÓ¦¸ÃÄܹ»×¢²áºÍµÇ¼£¬ÕâЩÊÇÏ൱Ã÷ÏԵŦÄÜ¡£

µ«ÊÇ£¬´¦ÀíÈ·ÈÏÁîÅÆÊ±ÐèÒª½÷É÷¡£ ÓÉÓÚËüÃÇ¿ÉÓÃÓÚÖ´ÐÐÌØÈ¨²Ù×÷£¬Òò´ËÎÒÃÇʹÓÃÒ»´ÎÐÔËæ»úÁîÅÆÀ´´¦ÀíÃÜÂëÖØÖú͵ç×ÓÓʼþÈ·ÈÏ¡£
µ±Ò»¸öеÄÁîÅÆÓÉÓû§Éú³É£¬ÎÞÂÛʲôÔÒò£¬ËùÓÐÒÔǰµÄ¶¼ÊÇÎÞЧµÄ¡£ µ±ÓÐÈ˼ÇסËûÃǵÄÃÜÂëʱ£¬ÒÔǰ·¢³öµÄºÍÓÐЧµÄÃÜÂëÖØÖÃÁîÅÆ±ØÐë¹ýÆÚ¡£
·Ç¹¦ÄÜÐÔÐèÇó
Óû§¹ÊÊÂͨ³£²»»á¶¨Òå·Ç¹¦ÄÜÐÔÒªÇó£¬ÀýÈ簲ȫÐÔ£¬¿ª·¢ÔÀí£¬¼¼ÊõÕ»µÈ¡£ËùÒÔÎÒÃÇÔÚÕâÀïµ¥¶ÀÁгö¡£
ÁìÓòÄ£ÐÍÊÇʹÓÃÓòÇý¶¯µÄÉè¼ÆÔÔòÔÚ´¿ Java ÖÐʵÏֵ쬲¢ÇÒ¶ÀÁ¢ÓÚҪʹÓõĵײ㼼ÊõÕ»
µ±Óû§µÇ¼ʱ£¬½«ÎªËûÃÇÉú³ÉÒ»¸ö JWT ÁîÅÆ£¬ÓÐЧÆÚÊÇ 24 Сʱ¡£ÔÚºóÐøÇëÇóÖаüº¬´ËÁîÅÆ£¬Óû§¿ÉÒÔÖ´ÐÐÐèÒªÉí·ÝÑéÖ¤µÄ²Ù×÷
ÃÜÂëÖØÖÃÁîÅÆÓÐЧÆÚΪ 10 ·ÖÖÓ£¬µç×ÓÓʼþµØÖ·È·ÈÏÁîÅÆÎªÒ»Ìì
ÃÜÂëÓüÓÃÜËã·¨£¨Bcrypt£©¼ÓÃÜ£¬²¢ÇÒÿÓû§¼ÓÑÎ
ÌṩÁË RESTful API£¬ÓÃÓÚÓëÓû§×¢²á·þÎñ½øÐн»»¥
Ó¦ÓóÌÐò½«¾ßÓÐÄ£¿é»¯Éè¼Æ£¬ÒÔ±ãÄܹ»Îª¸÷ÖÖ³¡¾°Ìṩµ¥¶ÀµÄ²¿Ê𹤼þ£¨ÀýÈ磬Õë¶Ô Google App Engine
µÄ 2.5 servlet ¼æÈÝ WAR ºÍÆäËûÓÃÀýµÄ»ùÓÚ Spring Boot µÄ×Ô°üº¬¿ÉÖ´ÐÐ
JAR£©
ʵÌå±êʶ·ûÒÔÊý¾Ý¿âÎ޹صķ½Ê½Éú³É£¬Ò²¾ÍÊÇ˵£¬²»»áʹÓÃÊý¾Ý¿âÌØ¶¨»úÖÆ£¨AUTO_INCREMENT »òÐòÁУ©À´»ñÈ¡ÏÂÒ»¸ö
ID Öµ¡£½â¾ö·½°¸½«ÀàËÆÓÚ Instagram genetes ID¡£
ÁìÓòÄ£ÐÍ
¶ÔÓÚµÚÒ»ÂÖʵÏÖÖУ¬ÎÒÃÇÖ»¹Ø×¢Èý¸öʵÌ壬¼´Óû§£¬È·ÈÏÁîÅÆºÍÓû§Ê¼þ¡£

rest api
·ÃÎÊÏÂÃæµÄ´ó¶àÊý API ¶¼ÐèÒªÈÏÖ¤£¬·ñÔò·µ»ØÒ»¸ö UNAUTHORIZED ״̬Âë¡£ Èç¹ûÓû§³¢ÊÔ²éѯÊôÓÚij¸öÆäËûÓû§µÄʵÌ壬ÔòËûÃÇ»¹»á·µ»Ø¿Í»§¶Ë´íÎó£¨FORBIDDEN£©£¬³ý·ÇËû¾ßÓйÜÀíȨÏÞ¡£
Èç¹ûÖ¸¶¨µÄʵÌå²»´æÔÚ£¬Ôòµ÷ÓõĶ˵㷵»Ø NOT_FOUND¡£
´´½¨»á»°£¨POST /sessions£©ºÍ×¢²áÐÂÓû§£¨POST / users£©Êǹ«¿ªµÄ£¬ËüÃDz»ÐèÒªÉí·ÝÑéÖ¤¡£
Session management
GET /session/{session_id} |
Èç¹ûûÓиø¶¨ ID µÄ»á»°»òÕ߻ỰÒѾ¹ýÆÚ£¬Ôò·µ»Ø¸ø¶¨»á»°µÄÏêϸÐÅÏ¢»ò
NOT_FOUND¡£
´´½¨Ð»Ự£¬Ç°ÌáÊÇÖ¸¶¨µÄµç×ÓÓʼþºÍÃÜÂë¶ÔÊôÓÚÒ»¸öÓÐЧµÄÓû§¡£
DELETE /session/{session_id} |
ɾ³ý¸ø¶¨µÄ»á»°£¨×¢Ïú£©¡£
User management
¸ù¾ÝÒ»¸öÖ¸¶¨µÄ ID ²éÕÒÓû§¡£
ÁоÙϵͳÖÐËùÓеÄÓû§¡£
×¢²áÒ»¸öеÄÓû§¡£
ɾ³ýÖ¸¶¨µÄÓû§¡£
¸üÐÂÖ¸¶¨Óû§µÄ¸öÈËÐÅÏ¢¡£
PUT /users/{user_id}/tokens/{token_id} |
ʹÓøø¶¨Óû§µÄÁîÅÆÖ´ÐÐÓëÁîÅÆÀàÐÍÏà¹ØµÄ²Ù×÷¡£
ʵÏÖÁìÓòÄ£ÐÍ
ʹÓÃÁìÓòÇý¶¯Éè¼Æ
ÔÚÉϱߣ¬×÷ÕßÌáµ½Á˽«Ê¹ÓÃÁìÓòÇý¶¯Éè¼ÆÔÔò£¬ÕâÒâζ×Å£¬¸ÃÄ£ÐÍ¿ÉÒÔ²»ÒÀÀµÓÚÈκοò¼Ü»ò»ù´¡ÉèÊ©Àà¡£ÔÚ¶à´ÎÓ¦ÓÃʵÏÖ¹ý³ÌÖУ¬×÷Õß°ÑÁìÓòÄ£ÐͺͿò¼ÜµÄ¾ßÌå×¢ÊÍ£¨Èç
JPA »ò Hibernate £©»ìÔÚÒ»Æð£¬¾ÍÈçͬºÍ Java POJO Ò»Æð¹¤×÷£¨Æ¶ÑªÄ£ÐÍ£©¡£ÔÚÉè¼ÆÁìÓòÄ£ÐÍÖУ¬Î¨Ò»Ê¹ÓõĿâÊÇLombok£¬ÓÃÓÚ¼õÉÙ¶¨ÒåµÄ
getter ºÍ setter ·½·¨ÒÔ±ÜÃâÈßÓà¡£
µ±Éè¼Æ DDD µÄÄ£ÐÍ£¬µÚÒ»²½ÊǶÔÀà½øÐзÖÀà¡£ÔÚ°£Àï¿Ë¡¤°£ÎÄ˹ÊéÖеĵڶþ²¿·ÖרעÓÚÄ£ÐÍÇý¶¯Éè¼ÆµÄ¹¹½¨Ä£¿é¡£¿¼Âǵ½ÕâÒ»µã£¬ÎÒÃǵÄÄ£ÐÍ·ÖΪÒÔϼ¸Àà¡£
ʵÌåÀà
ʵÌåÓÐÃ÷È·µÄ±êʶºÍÉúÃüÖÜÆÚÐèÒª±»¹ÜÀí¡£´ÓÕâ¸ö½Ç¶ÈÀ´¿´£¬Óû§¿Ï¶¨ÊÇÒ»¸öʵÌå¡£
ConfirmationToken ¾ÍÊÇÒ»¸ö±ßÔµµÄÀý×Ó£¬ÒòΪÔÚûÓÐÓû§ÉÏÏÂÎĵÄÇé¿öÏ£¬Âß¼ÉÏËü¾Í²»´æÔÚ£¬¶øÁíÒ»·½Ã棬Ëü¿ÉÒÔͨ¹ýÁîÅÆµÄÖµÀ´±êʶ²¢ÇÒËüÓÐ×Ô¼ºµÄÉúÃüÖÜÆÚ¡£
ͬÑùµÄ·½·¨Ò²ÊÊÓÃÓÚ Session £¬ÕâÒ²¿ÉÄÜÊÇÒ»¸öÖµ¶ÔÏó£¬ÓÉÓÚÆä²»¿É¸Ä±äµÄÐÔÖÊ£¬µ«ËüÈÔÈ»ÓÐÒ»¸ö
ID ºÍÒ»¸öÉúÃüÖÜÆÚ£¨»á»°¹ýÆÚ£©¡£
Öµ¶ÔÏó
Ïà¶ÔÓÚʵÌåÀֵ࣬¶ÔÏóûÓÐÒ»¸öÃ÷È·µÄ ID £¬ÄǾÍÊÇ£¬ËûÃÇÖ»Êǽ«Ò»ÏµÁÐÊôÐÔ×éºÏ£¬²¢ÇÒ£¬Èç¹ûÕâЩÊôÐÔºÍÁíÍâÒ»¸öÏàͬÀàÐ͵ÄÖµ¶ÔÏóµÄÊôÐÔÏàͬ£¬ÄÇôÎÒÃǾͿÉÒÔÈÏΪÕâÁ½¸öÖµ¶ÔÏóÊÇÏàͬµÄ¡£
µ±Éè¼ÆÁìÓòÄ£ÐÍ£¬Öµ¶ÔÏóÌṩÁËÒ»ÖÖ·½±ãµÄ·½Ê½À´ÃèÊöЯ´øÓÐÒ»¶¨µÄÐÅϢƬ¶ÎÊôÐԵļ¯ºÏ¡£ AddressData£¬AuditData£¬ContactData
ºÍ Password Òò´Ë¿ÉÒÔÈÏΪÊÇÖµ¶ÔÏó¡£
ËäÈ»½«ËùÓÐÕâЩÊôÐÔʵÏÖΪ²»¿É¸Ä±äµÄÊDz»ÇÐʵ¼ÊµÄ£¬ËûÃǵÄijЩÊôÐÔ¿ÉÒÔµ¥¶À±»Ð޸ģ¬ Password
ÊÇÒ»¸öºÜºÃµÄÀý×Ó¡£µ±ÎÒÃÇ´´½¨ Password µÄʵÀý£¬ËüµÄÑκ͹þÏ£´´½¨Ö»ÓÐÒ»´Î¡£ÔڸıäÃÜÂëʱ£¬Ò»¸öȫеÄʵÀýÓëеÄÑκÍÉ¢Áн«»á±»´´½¨¡£
¾ÛºÏ
¾ÛºÏ´ú±íÒ»×é½áºÏÔÚÒ»Æð£¬²¢Í¨¹ý·ÃÎÊËùνµÄ¾ÛºÏ¸ùµÄ¶ÔÏó¡£
Õâ¶ùÓÐÁ½¸ö¾ÛºÏ¶ÔÏó£ºÓû§ºÍ»á»°¡£Ç°Õß°üº¬ÁËËùÓÐÓëÓû§Ïà¹ØµÄʵÌåºÍÖµ¶ÔÏ󣬶øºóÕßÖ»°üº¬Ò»¸öµ¥Ò»µÄʵÌå
Session ¡£
ÏÔÈ»£¬Óû§¾ÛºÏ¸ùÊÇÓû§ÊµÌ塣ͨ¹ýÒ»¸öʵÀýÓû§ÊµÌ壬ÎÒÃÇ¿ÉÒÔ¹ÜÀíÈ·ÈÏÁîÅÆ£¬Óû§Ê¼þºÍÓû§µÄÃÜÂë¡£
¾ÛºÏ Session ³ÉΪһ¸ö¶ÀÁ¢µÄʵÌ塪¡ª¾¡¹Ü±»À¦°óµ½Ò»¸öÓû§µÄÉÏÏÂÎÄ¡ª¡ª²¿·ÖÔÒòÊÇÓÉÓÚÆäÒ»´ÎÐÔÐÔÖÊ£¬²¿·ÖÊÇÒòΪµ±ÎÒÃDzéÕÒÒ»¸ö»á»°Ê±ÎÒÃDz»ÖªµÀÓû§ÊÇË¡£
Session ±»´´½¨Ö®ºó£¬ÒªÃ´¹ýÆÚ£¬ÒªÃ´°´Ðèɾ³ý¡£
ÁìÓòʼþ
µ±ÐèÒªÓÉϵͳµÄÁíÍâ×é¼þ´¦ÀíµÄʼþ·¢Éúʱ£¬ÁìÓòʼþ¾Í»á±»´¥·¢¡£
Óû§¹ÜÀíÓ¦ÓóÌÐòÓÐÒ»¸öÁìÓòʼþ£¬ÕâÊÇ UserEvent £¬ËüÓÐÒÔÏÂÀàÐÍ£º
DELETED
EMAIL_CHANGED
EMAIL_CHANGE_REQUESTED
EMAIL_CONFIRMED
PASSWORD_CHANGED
PASSWORD_RESET_CONFIRMED
PASSWORD_RESET_REQUESTED
SCREEN_NAME_CHANGED
SIGNIN_SUCCEEDED
SIGNIN_FAILED
SIGNUP_REQUESTED
·þÎñ
·þÎñ°üº¬ÁËÄܹ»²Ù×÷Ò»×éÁìÓòÄ£Ð͵ÄÀàµÄÒµÎñÂß¼¡£ÔÚ±¾Ó¦ÓÃÖУ¬ UserService ¹ÜÀíÓû§µÄÉúÃüÖÜÆÚ£¬²¢·¢³öºÏÊʵÄ
UserEvent ¡£SessionService ÊÇÓÃÓÚ´´½¨ºÍÏú»ÙÓû§»á»°¡£
´æ´¢¿â
´æ´¢¿âÖ¼ÔÚ´ú±íÒ»¸öʵÌå¶ÔÏóµÄ¸ÅÄºÏ£¬µ«ÊÇÓÐʱËûÃÇÖ»ÊÇ×÷ΪÊý¾Ý·ÃÎʶÔÏó¡£ÓÐÁ½ÖÖʵÏÖ·½·¨£¬Ò»ÖÖ·½·¨ÊÇÁгöËùÓеijéÏó´æ´¢¿âÀà»ò³¬½Ó¿Ú¿ÉÄܵÄÊý¾Ý·ÃÎÊ·½·¨£¬ÀýÈç
Spring Data £¬»òÕß´´½¨×¨ÃÅ´æ´¢¿â½Ó¿Ú¡£
¶ÔÓÚÓû§¹ÜÀíÓ¦ÓóÌÐò£¬×÷ÕßÑ¡ÔñÁ˵ڶþÖÖ·½·¨¡£UserRepository ºÍ SessionRepository
Ö»ÁгöÄÇЩ¾ø¶Ô±ØÒªµÄ´¦ÀíËûÃÇʵÌåµÄ·½·¨¡£
ÏîÄ¿½á¹¹
Äã¿ÉÄÜÒѾעÒâµ½£¬ÕâÀïÓÐÒ»¸ö GitHub ÉϵĿ⣺ springuni £¬Ëü°üº¬Óû§¹ÜÀíÓ¦ÓóÌÐòµÄÒ»²¿·Ö£¬µ«Ëü²»°üº¬Ó¦ÓóÌÐò±¾ÉíµÄ¿ÉÖ´Ðа汾¡£
¾¿ÆäÔÒò£¬ÎÒΪʲô²»Ìṩµ¥Ò»Ö»°üº¬ Spring Boot ÉÙÁ¿ @Enable* ×¢½âµÄ¿â£¬ÊÇΪÁË¿ÉÖØÓÃÐÔ¡£´ó¶àÊýÎÒÅöµ½µÄÏîÄ¿µÚÒ»ÑÛ¿´ÆðÀ´ÊÇ¿ÉÒÔÄ£¿é»¯µÄ£¬µ«Êµ¼ÊÉÏËûÃÇÖ»ÊÇûÓÐÁ¼ºÃ·Ö½âÖ°ÔðµÄ¾Þ´óµ¥ÌåÓ¦Óᣵ±ÄãÊÔÍ¼ÖØÓÃÕâÑùÒ»¸öÏîÄ¿µÄÄ£¿é£¬ÄãºÜ¿ìÒâʶµ½£¬ËüÒÀÀµÓÚÐí¶àÆäËûÄ£¿éºÍ/»ò¹ý¶àµÄÍⲿ¿â¡£
springuni-particles £¨Ëü¿ÉÄÜÒѱ»Ò²³ÆÎª springuni Ä£¿é£©ÌṩÁ˶à¸öÄ£¿éµÄ¿ÉÖØ¸´Ê¹ÓõÄֻΪijЩÃ÷È·¶¨ÒåµÄ¹¦ÄÜ¡£Óû§ºÍ»á»°¹ÜÀíÊǺܺõÄÀý×Ó¡£
Ä£¿é
springuni-auth-model °üº¬ÁËËùÓеÄÁìÓòÄ£ÐÍÀàºÍÓÃÓÚ¹ÜÀíÓû§ÉúÃüÖÜÆÚµÄÒµÎñÂß¼£¬ËüÊÇÍêÈ«Óë¿ò¼ÜÎ޹صġ£ËüµÄ´æ´¢¿â£¬²¢ÇÒ¿ÉÒÔʹÓÃÈκÎÊý¾Ý´æ´¢»úÖÆ£¬¶ÔÓÚÊÖÍ·µÄʵ¼ÊÈÎÎñ×î·ûºÏ¡£»¹ÓУ¬PasswordChecker
ºÍ PasswordEncryptor ¿É»ùÓÚÈκÎÇ¿´óµÄÃÜÂëÉ¢Áм¼ÊõʵÏÖ¡£
springuni-commons °üº¬ÁËͨÓõŤ¾ß¿â¡£ÓкܶàÖøÃûµÄµÚÈý·½¿â£¨Èç Apache Commons
Lang£¬Guava µÈ£©£¬ÕâÍâÑÓÁË JDK µÄ±ê×¼¿â¡£ÔÚÁíÒ»·½Ã棬ÎÒ·¢ÏÖ×Ô¼ººÜ¶àʱºò½ö½öÖ»ÓÃÕâЩ·Ç³£¿ÉÀ©Õ¹¿âµÄÉÙÁ¿Àà¡£ÎÒÌØ±ðϲ»¶µÄ
Apache Commons Lang ÖÐµÄ StringUtils µÄºÍ Apache ¹²Í¬¼¯ºÏµÄ
CollectionUtils À࣬µ«ÊÇ£¬ÎÒÄþԸΪµ±Ç°ÏîÄ¿Ìṩһ¸ö¸ß¶È¶¨ÖÆ»¯µÄ StringUtils
ºÍ CollectionUtils£¬ÕâÑù¾Í²»ÐèÒªÌí¼ÓÍⲿÒÀÀµ¡£
sprinuni-crm-model ¶¨ÒåÁËͨÓõÄÖµ¶ÔÏó£¬ÓÃÓÚ´¦ÀíÁªÏµÈËÊý¾Ý£¬ÈçµØÖ·£¬¹ú¼ÒµÈ¡£ËäȻ΢·þÎñ¼Ü¹¹µÄ³«µ¼Õß½«Í¶Æ±·´¶ÔʹÓù²Ïí¿â£¬µ«ÎÒÈÏΪÕâ¸öÌØ¶¨µã¿ÉÄÜÐèÒª²»Ê±ÐÞ¶©ÊÖÍ·µÄÈÎÎñ¡£ÎÒ×î½ü²ÎÓëÁËһЩ
CRM ¼¯³ÉÏîÄ¿£¬²»µÃ²»ÖØÐÂʵÏÖÁ˼¸ºõͬÑùµÄÁìÓòÄ£ÐÍÔÚ²»Í¬µÄÏÞ½çÉÏÏÂÎÄ£¨¼´Óû§£¬¿Í»§£¬ÁªÏµÈË£©£¬ÕâÑùÒ»±éÓÖÒ»±éµÄ²Ù×÷ÊÇ·¦Î¶µÄ¡£Ò²¾ÍÊÇ˵£¬ÎÒÈÏΪʹÓÃÁªÏµÈËÊý¾ÝÁìÓòÄ£Ð͵ÄСÐÍͨÓÿâÊÇÖµµÃ³¢ÊԵġ£ |