Parcourir la source

Task #1287 [Android] 관리 - 도와줘요 개발팀에 문의하기 기능 개발
http://www.junstarok.com/redmine/issues/1287

resolved

sanghoonkwon il y a 7 ans
Parent
commit
2c28dc6682

+ 82 - 0
app/src/main/java/kr/co/hanwha/hifive/data/model/HelpdeskDataRoot.java

@@ -0,0 +1,82 @@
+package kr.co.hanwha.hifive.data.model;
+
+import java.util.ArrayList;
+
+public class HelpdeskDataRoot extends BaseData {
+    /**
+     * Helpdesk Info
+     */
+    HelpdeskInfoData helpdeskInfo;
+
+    /**
+     * Helpdesk의 캠페인 목록
+     */
+    ArrayList<CampaignData> listHelpdestCampaigns;
+
+    public ArrayList<MemberInfoData> getHelpdeskMemberInfo() {
+        ArrayList<MemberInfoData> list = new ArrayList<>();
+        list.add(new MemberInfoData(helpdeskInfo));
+        return list;
+    }
+
+    public CampaignData getCampaignData() {
+        if (listHelpdestCampaigns != null && listHelpdestCampaigns.size() > 0)
+            return listHelpdestCampaigns.get(0);
+        return null;
+    }
+}
+/*
+2018.7.25
+https://qtalk-dev.dreamplus.center/newgw/a/v2/members/get/helpdesk/details
+{
+  "encryption_member_id": "SAt0dLqClDkS+bQeog9OOQ=="
+}
+RESULT :
+{
+"server_time": "2018-07-25 06:41:49",
+"rtn_message": "성공",
+"rtn_code": 0,
+"helpdeskInfo": {
+    "member_id": 198,
+    "login_id": "new.gw@hanwha.com",
+    "name": "헬프데스크",
+    "profile_url": null,
+    "phone_mobile": null,
+    "company": "S&C",
+    "position": null,
+    "rank": null,
+    "department": "금융통합지원TFT",
+    "status": 0,
+    "status_desc": "정상"
+},
+"listHelpdestCampaigns": [
+    {
+    "id": 0,
+    "created_at": "",
+    "updated_at": "",
+    "deleted_at": "",
+    "description": "",
+    "author_member_id": 0,
+    "author_member_name": "",
+    "target_member_id": 198,
+    "target_member_name": "헬프데스크",
+    "track_id": 0,
+    "track_name": "",
+    "package_id": 0,
+    "package_name": "",
+    "project_id": 65,
+    "project_name": "도와줘요 개발팀",
+    "campaign_id": 1754,
+    "status": 0,
+    "campaign_desc": "협업 솔루션 헬프데스크 운영",
+    "campaign_due_to": "2099-12-31 00:00:00.0",
+    "ordering": 5,
+    "isMyProjectCampaign": 99,
+    "isDeleted": 0
+    }
+    ],
+"resver": "2.0",
+"elapsedTime": "25 ms"
+}
+*/
+

+ 64 - 0
app/src/main/java/kr/co/hanwha/hifive/data/model/HelpdeskInfoData.java

@@ -0,0 +1,64 @@
+package kr.co.hanwha.hifive.data.model;
+
+public class HelpdeskInfoData {
+    /**
+     * ex) 198
+     */
+    int member_id;
+    /**
+     * ex) "new.gw@hanwha.com"
+     */
+    String login_id;
+    /**
+     * "헬프데스크"
+     */
+    String name;
+    /**
+     * null
+     */
+    String profile_url;
+    /**
+     * null
+     */
+    String phone_mobile;
+    /**
+     * "S&C"
+     */
+    String company;
+    /**
+     * null
+     */
+    String position;
+    /**
+     * null
+     */
+    String rank;
+    /**
+     * "금융통합지원TFT"
+     */
+    String department;
+    /**
+     * 0
+     */
+    int status;
+    /**
+     * "정상"
+     */
+    String status_desc;
+}
+/*
+2018.7.25
+"helpdeskInfo": {
+    "member_id": 198,
+    "login_id": "new.gw@hanwha.com",
+    "name": "헬프데스크",
+    "profile_url": null,
+    "phone_mobile": null,
+    "company": "S&C",
+    "position": null,
+    "rank": null,
+    "department": "금융통합지원TFT",
+    "status": 0,
+    "status_desc": "정상"
+}
+ */

+ 7 - 0
app/src/main/java/kr/co/hanwha/hifive/data/model/MemberInfoData.java

@@ -104,6 +104,13 @@ public class MemberInfoData {
         }
     }
 
+    public MemberInfoData(@NonNull HelpdeskInfoData helpdeskInfoData) {
+        this.member_id = helpdeskInfoData.member_id;
+        this.member_name = helpdeskInfoData.name;
+        this.profile_url = helpdeskInfoData.profile_url;
+        this.rank = helpdeskInfoData.position;
+    }
+
     public String getKey() {
         return project_id + "_" + member_id;
     }

+ 9 - 11
app/src/main/java/kr/co/hanwha/hifive/data/source/TaskDataRepository.java

@@ -3,27 +3,17 @@ package kr.co.hanwha.hifive.data.source;
 import android.content.Context;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
-import android.text.TextUtils;
 
 import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
 
 import kr.co.hanwha.hifive.data.model.AddTaskRoot;
-import kr.co.hanwha.hifive.data.model.BaseData;
 import kr.co.hanwha.hifive.data.model.CampaignData;
-import kr.co.hanwha.hifive.data.model.CampaignDataRoot;
+import kr.co.hanwha.hifive.data.model.HelpdeskDataRoot;
 import kr.co.hanwha.hifive.data.model.MemberInfoData;
-import kr.co.hanwha.hifive.data.model.MemberInfoRoot;
-import kr.co.hanwha.hifive.data.model.ProjectCampaignData;
-import kr.co.hanwha.hifive.data.model.ProjectInfoData;
 import kr.co.hanwha.hifive.data.model.ReqMemberInfo;
-import kr.co.hanwha.hifive.data.model.SearchTagData;
 import kr.co.hanwha.hifive.data.model.TaskData;
 import kr.co.hanwha.hifive.data.model.TaskDetailRoot;
 import kr.co.hanwha.hifive.data.source.contract.TaskDataSource;
-import kr.co.hanwha.hifive.enums.TaskEvaluationType;
 import kr.co.hanwha.hifive.network.HFNetworkUtil;
 import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkCallback;
 import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkError;
@@ -164,4 +154,12 @@ public class TaskDataRepository implements TaskDataSource {
         HFNetworkUtil networkUtil = new HFNetworkUtil();
         networkUtil.requestTaskDelete(context, taskData, encryption_member_id, callback);
     }
+
+    @Override
+    public void requestHelpdeskDetails(@NonNull Context context,
+                                       @Nullable HanwhaNetworkCallback<HelpdeskDataRoot> callback) {
+        String encryption_member_id = MemberDataRepository.getInstance().getEncryptionMemberId();
+        HFNetworkUtil networkUtil = new HFNetworkUtil();
+        networkUtil.requestMembersHelpdeskDetails(context, encryption_member_id, callback);
+    }
 }

+ 10 - 0
app/src/main/java/kr/co/hanwha/hifive/data/source/contract/TaskDataSource.java

@@ -9,6 +9,7 @@ import java.util.ArrayList;
 import kr.co.hanwha.hifive.base.BaseDataSource;
 import kr.co.hanwha.hifive.data.model.BaseData;
 import kr.co.hanwha.hifive.data.model.CampaignData;
+import kr.co.hanwha.hifive.data.model.HelpdeskDataRoot;
 import kr.co.hanwha.hifive.data.model.MainHomeAssignedRoot;
 import kr.co.hanwha.hifive.data.model.MainHomeRequestRoot;
 import kr.co.hanwha.hifive.data.model.MemberInfoData;
@@ -94,4 +95,13 @@ public interface TaskDataSource extends BaseDataSource {
     void requestDeleteTask(@NonNull Context context, @NonNull TaskData taskData,
                            @Nullable HanwhaNetworkCallback callback);
 
+    /**
+     * Helpdesk 정보 조회
+     *
+     * @param context  Context
+     * @param callback 콜백
+     */
+    void requestHelpdeskDetails(@NonNull Context context,
+                               @Nullable HanwhaNetworkCallback<HelpdeskDataRoot> callback);
+
 }

+ 11 - 0
app/src/main/java/kr/co/hanwha/hifive/network/HFNetworkContract.java

@@ -717,6 +717,17 @@ public interface HFNetworkContract {
                                        @NonNull ArrayList<Integer> listMemberInfo,
                                        @Nullable HanwhaNetworkCallback callback);
 
+    /**
+     * 도와줘요 개발팀(Helpdesk 정보 조회)
+     *
+     * @param context              Context
+     * @param encryption_member_id 암호화된 멤버 ID
+     * @param callback             CALLBACK
+     */
+    void requestMembersHelpdeskDetails(@NonNull Context context,
+                                       @NonNull String encryption_member_id,
+                                       @Nullable HanwhaNetworkCallback callback);
+
 
     /**
      * Campaign 목록 조회(프로젝트 ID 기준)

+ 21 - 0
app/src/main/java/kr/co/hanwha/hifive/network/HFNetworkUtil.java

@@ -17,6 +17,7 @@ import kr.co.hanwha.hifive.data.model.CampaignData;
 import kr.co.hanwha.hifive.data.model.CampaignDataRoot;
 import kr.co.hanwha.hifive.data.model.CrudDataRoot;
 import kr.co.hanwha.hifive.data.model.DabDataRoot;
+import kr.co.hanwha.hifive.data.model.HelpdeskDataRoot;
 import kr.co.hanwha.hifive.data.model.LoginData;
 import kr.co.hanwha.hifive.data.model.MainHomeAssignedRoot;
 import kr.co.hanwha.hifive.data.model.MainHomeRequestRoot;
@@ -228,6 +229,11 @@ public class HFNetworkUtil extends HanwhaNetworkUtil implements HFNetworkContrac
      * Campaign 목록 By Member Id
      **************************************************/
     protected final String MEMBERS_GET_CAMPAIGNS = BASE_URL + "/members/get/campaigns";
+    /**************************************************
+     * Helpdesk - 정보 조회
+     **************************************************/
+    protected final String MEMBERS_GET_HELPDESK_DETAILS = BASE_URL + "/members/get/helpdesk/details";
+
     /**************************************************
      * DASHBOARD 목록 조회
      **************************************************/
@@ -867,6 +873,21 @@ public class HFNetworkUtil extends HanwhaNetworkUtil implements HFNetworkContrac
         client.request(context, rest, url, getDefaultHeader(context), map, CampaignDataRoot.class, mCommonHanwhaNetworkCallback);
     }
 
+    @Override
+    public void requestMembersHelpdeskDetails(@NonNull Context context, @NonNull String encryption_member_id, @Nullable HanwhaNetworkCallback callback) {
+        HanwhaNetworkClient.REST rest = HanwhaNetworkClient.REST.POST;
+
+        String url = MEMBERS_GET_HELPDESK_DETAILS;
+
+        HashMap<String, Object> map = new HashMap<>();
+        map.put(PARAM_ENCRYPTION_MEMBER_ID, encryption_member_id);
+
+        mHanwhaNetworkCallback = callback;
+
+        HanwhaNetworkClient client = new HanwhaNetworkClient();
+        client.request(context, rest, url, getDefaultHeader(context), map, HelpdeskDataRoot.class, mCommonHanwhaNetworkCallback);
+    }
+
     @Override
     public void requestDashboardList(@NonNull Context context,
                                      @NonNull String encryption_member_id,

+ 1 - 0
app/src/main/java/kr/co/hanwha/hifive/screen/main/setting/HelpdeskActivity.java

@@ -46,6 +46,7 @@ public class HelpdeskActivity extends BaseActivity implements HelpdeskContract.V
         showKeyboard();
 
         mPresenter = new HelpdeskPresenter(this);
+        mPresenter.initData();
     }
 
     @Override

+ 39 - 7
app/src/main/java/kr/co/hanwha/hifive/screen/main/setting/HelpdeskPresenter.java

@@ -9,6 +9,7 @@ import java.util.ArrayList;
 
 import kr.co.hanwha.hifive.R;
 import kr.co.hanwha.hifive.data.model.CampaignData;
+import kr.co.hanwha.hifive.data.model.HelpdeskDataRoot;
 import kr.co.hanwha.hifive.data.model.MemberInfoData;
 import kr.co.hanwha.hifive.data.source.TaskCampaignDataRepository;
 import kr.co.hanwha.hifive.data.source.TaskDataRepository;
@@ -17,9 +18,11 @@ import kr.co.hanwha.hifive.dialog.HFDefaultDialog;
 import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkCallback;
 import kr.co.hanwha.hifive.network.hanwha.HanwhaNetworkError;
 import kr.co.hanwha.hifive.screen.main.setting.contract.HelpdeskContract;
+import kr.co.hanwha.hifive.util.HFDateUtil;
 
 public class HelpdeskPresenter implements HelpdeskContract.Presenter {
     private HelpdeskContract.View mView;
+    private HelpdeskDataRoot mData;
 
     public HelpdeskPresenter(@NonNull HelpdeskContract.View view) {
         this.mView = view;
@@ -32,22 +35,51 @@ public class HelpdeskPresenter implements HelpdeskContract.Presenter {
 
     @Override
     public void initData() {
+        String dueTo = HFDateUtil.getDateHelpdesk();
 
+        TaskDataRepository.getInstance().requestHelpdeskDetails(getContext(), new HanwhaNetworkCallback<HelpdeskDataRoot>() {
+            @Override
+            public void onSuccess(HelpdeskDataRoot response) {
+                mData = response;
+            }
+
+            @Override
+            public void onFailure(HanwhaNetworkError error) {
+                mView.showAlert(error, new HFDefaultDialog.OnDialogCallback() {
+                    @Override
+                    public void onNegative() {
+                        getActivity().finish();
+                    }
+
+                    @Override
+                    public void onPositive() {
+                        initData();
+                    }
+                });
+            }
+
+            @Override
+            public void onPreExecute() {
+                mView.showLoadingDialog(true);
+            }
+
+            @Override
+            public void onPostExecute() {
+                mView.showLoadingDialog(false);
+            }
+        });
     }
 
     @Override
     public void requestSendTask(@NonNull final String task_name) {
 
-        if (TextUtils.isEmpty(task_name)) return;
+        if (TextUtils.isEmpty(task_name) || mData == null) return;
 
-        // TODO - CHECK
-        String dueTo = "";
+        String dueTo = HFDateUtil.getDateHelpdesk();
 
-        // TODO - CHECK
-        ArrayList<MemberInfoData> listSelectedMember = TaskMemberDataRepository.getInstance().getSelectedMemberList();
+        ArrayList<MemberInfoData> listSelectedMember = mData.getHelpdeskMemberInfo();
 
-        // TODO - CHECK
-        CampaignData campaignData = TaskCampaignDataRepository.getInstance().getSelectedCampaignData();
+        CampaignData campaignData = mData.getCampaignData();
 
         TaskDataRepository.getInstance().requestSendTask(getContext(),
                 task_name,

+ 12 - 0
app/src/main/java/kr/co/hanwha/hifive/util/HFDateUtil.java

@@ -72,6 +72,18 @@ public class HFDateUtil {
         return formatter.format(calendar.getTime());
     }
 
+    /**
+     * 도와줘야 개발팀 - 기한설정(2주)
+     */
+    public static String getDateHelpdesk() {
+        Calendar calendar = Calendar.getInstance();
+        calendar.setTimeInMillis(System.currentTimeMillis());
+        calendar.add(Calendar.DATE, 13);
+        SimpleDateFormat formatter = new SimpleDateFormat(FORMAT_TASK_ADD_DUEDATE_SERVER, Locale.US);
+
+        return formatter.format(calendar.getTime());
+    }
+
     /**
      * 오늘 날짜
      *