Skip to content

Commit

Permalink
어드민 결제관련 코드
Browse files Browse the repository at this point in the history
  • Loading branch information
hangum committed May 24, 2016
1 parent be43986 commit 75d1b69
Show file tree
Hide file tree
Showing 8 changed files with 261 additions and 23 deletions.
Expand Up @@ -14,6 +14,8 @@

public class Messages {
private static final String BUNDLE_NAME = "com.hangum.tadpole.engine.messages"; //$NON-NLS-1$
public String overflowUseService;
public String AlreadyUseService;
public String DBLockDialog_0;
public String DBLockDialog_1;
public String Error;
Expand Down
@@ -1,6 +1,8 @@

APIURL = API URL

AlreadyUseService = Already use this item.

Cancle = CANCEL

#Generated by ResourceBundle Editor (http://essiembre.github.io/eclipse-rbe/)
Expand Down Expand Up @@ -63,3 +65,5 @@ TadpoleSystem_UserQuery_3 = Already user exists. Enter a new ID.
TadpoleSystem_UserQuery_5 = Please check the email or password.

Warning = Warning

overflowUseService = Have exceeded the user.
Expand Up @@ -13,6 +13,8 @@

APIURL = API URL

AlreadyUseService = \uC774\uBBF8 \uC0AC\uC6A9 \uC911\uC5D0 \uC788\uC2B5\uB2C8\uB2E4.

Cancle = \uCDE8\uC18C

DBLockDialog_0 = DB \uC554\uD638 \uC785\uB825
Expand Down Expand Up @@ -72,3 +74,5 @@ TadpoleSystem_UserQuery_3 = \uC774\uBBF8 \uC774\uBA54\uC77C\uC774 \uB4F1\uB85D\u
TadpoleSystem_UserQuery_5 = \uC774\uBA54\uC77C, \uD328\uC2A4\uC6CC\uB4DC\uB97C \uD655\uC778\uD558\uC5EC \uC8FC\uC2ED\uC2DC\uC624.

Warning = \uACBD\uACE0

overflowUseService = \uC0AC\uC6A9 \uC778\uC6D0\uC744 \uCD08\uACFC \uD588\uC2B5\uB2C8\uB2E4.
Expand Up @@ -2,6 +2,8 @@

import java.sql.Timestamp;

import com.hangum.tadpole.engine.query.dao.system.UserDAO;

/**
* assigned service
*
Expand All @@ -15,6 +17,11 @@ public class AssignedServiceDAO {
private Timestamp service_end_data;
private String del_yn;
private String description;
private Timestamp create_time;

// private
private String name;
private String email;

public AssignedServiceDAO() {
}
Expand Down Expand Up @@ -103,4 +110,46 @@ public void setDescription(String description) {
this.description = description;
}

/**
* @return the create_time
*/
public Timestamp getCreate_time() {
return create_time;
}

/**
* @param create_time the create_time to set
*/
public void setCreate_time(Timestamp create_time) {
this.create_time = create_time;
}

/**
* @return the name
*/
public String getName() {
return name;
}

/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}

/**
* @return the email
*/
public String getEmail() {
return email;
}

/**
* @param email the email to set
*/
public void setEmail(String email) {
this.email = email;
}

}
@@ -1,6 +1,10 @@
package com.hangum.tadpole.engine.query.dao.system.bill;

import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.List;

import com.hangum.tadpole.engine.query.dao.system.UserDAO;

/**
* User bill dao
Expand Down Expand Up @@ -48,7 +52,10 @@ public class UserBillDAO {

private String description = "";
private String start_yn = "";
private Timestamp service_start;
private Timestamp service_end;

/** 서비스를 사용하고 있는유저 정보 */
private List<AssignedServiceDAO> listUser = new ArrayList<AssignedServiceDAO>();

public UserBillDAO() {
}
Expand Down Expand Up @@ -432,34 +439,32 @@ public void setStart_yn(String start_yn) {
}

/**
* @return the service_start
* @return the service_end
*/
public Timestamp getService_end() {
return service_end;
}

/**
* @param service_end the service_end to set
*/
public Timestamp getService_start() {
return service_start;
public void setService_end(Timestamp service_end) {
this.service_end = service_end;
}

/**
* @param service_start the service_start to set
* @return the listUser
*/
public void setService_start(Timestamp service_start) {
this.service_start = service_start;
public List<AssignedServiceDAO> getListUser() {
return listUser;
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
/**
* @param listUser the listUser to set
*/
@Override
public String toString() {
return "UserBillDAO [seq=" + seq + ", user_seq=" + user_seq + ", product_seq=" + product_seq + ", userType="
+ userType + ", iamport_code=" + iamport_code + ", pg_company=" + pg_company + ", pay_method="
+ pay_method + ", merchant_uid=" + merchant_uid + ", name=" + name + ", original_amount="
+ original_amount + ", ea=" + ea + ", term_month=" + term_month + ", total_amount=" + total_amount
+ ", buyer_email=" + buyer_email + ", buyer_name=" + buyer_name + ", buyer_tel=" + buyer_tel
+ ", buyer_addr=" + buyer_addr + ", buyer_postcode=" + buyer_postcode + ", result_status="
+ result_status + ", fail_message=" + fail_message + ", succ_imp_uid=" + succ_imp_uid + ", succ_pg_tid="
+ succ_pg_tid + ", succ_apply_num=" + succ_apply_num + ", succ_paid_at=" + succ_paid_at
+ ", create_time=" + create_time + ", description=" + description + ", start_yn=" + start_yn
+ ", service_start=" + service_start + "]";
public void setListUser(List<AssignedServiceDAO> listUser) {
this.listUser = listUser;
}


}
Expand Up @@ -30,10 +30,64 @@
<insert id="insertBill" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.UserBillDAO">
INSERT INTO user_bill
(user_seq, product_seq, userType, iamport_code, pg_company, pay_method, merchant_uid, name, original_amount, ea, term_month, total_amount, buyer_email, buyer_name,
buyer_tel, buyer_addr, buyer_postcode, result_status, succ_imp_uid, succ_pg_tid, succ_apply_num, succ_paid_at, fail_message, admin_message)
buyer_tel, buyer_addr, buyer_postcode, result_status, succ_imp_uid, succ_pg_tid, succ_apply_num, succ_paid_at, fail_message, description)
VALUES
(#user_seq#, #product_seq#, #userType#, #iamport_code#, #pg_company#, #pay_method#, #merchant_uid#, #name#, #original_amount#, #ea#, #term_month#, #total_amount#, #buyer_email#, #buyer_name#,
#buyer_tel#, #buyer_addr#, #buyer_postcode#, #result_status#, #succ_imp_uid#, #succ_pg_tid#, #succ_apply_num#, #succ_paid_at#, #fail_message#, #admin_message#)
#buyer_tel#, #buyer_addr#, #buyer_postcode#, #result_status#, #succ_imp_uid#, #succ_pg_tid#, #succ_apply_num#, #succ_paid_at#, #fail_message#, #description#)
</insert>

<!-- start service -->
<update id="updateStartService" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.UserBillDAO">
UPDATE user_bill
SET start_yn = 'YES', service_end = #service_end#
WHERE seq = #seq#
</update>

<!-- Is alreay service -->
<select id="getAlreadyService" resultClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO">
SELECT *
FROM assigned_service
WHERE
bill_seq = #bill_seq#
AND del_yn = 'NO'
</select>

<!-- insert user service -->
<insert id="insertStartUserService" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO">
INSERT INTO assigned_service
(bill_seq, user_seq, service_end_data)
VALUES
(#bill_seq#, #user_seq#, #service_end_data#)
</insert>

<!-- update user service date -->
<update id="updateUserServiceDate" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO">
UPDATE tadpole_user
SET service_end = #service_end_data#
WHERE seq = #user_seq#
</update>

<!-- find service list -->
<select id="getEachServiceUser" resultClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.UserBillDAO">
SELECT b.*, a.name, a.email
FROM tadpole_user a,
assigned_service b
WHERE a.seq = b.user_seq
AND b.bill_seq = #seq#
ORDER BY b.create_time DESC
</select>

<!-- delete user service -->
<update id="deleteUserService" parameterClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO">
UPDATE assigned_service
SET del_yn = 'YES'
WHERE seq = #seq#
</update>

<!-- 사용자의 서비스 가능 날짜를 구한다. -->
<select id="calcMaxServiceDate" resultClass="com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO" parameterClass="java.lang.Integer">
select seq, max(service_end_data) service_end_data from assigned_service
where user_seq = #user_seq#
</select>

</sqlMap>
@@ -1,13 +1,18 @@
package com.hangum.tadpole.engine.query.sql;

import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.hangum.tadpole.commons.csv.DateUtil;
import com.hangum.tadpole.commons.exception.TadpoleSQLManagerException;
import com.hangum.tadpole.engine.Messages;
import com.hangum.tadpole.engine.initialize.TadpoleSystemInitializer;
import com.hangum.tadpole.engine.manager.TadpoleSQLManager;
import com.hangum.tadpole.engine.query.dao.system.UserDAO;
import com.hangum.tadpole.engine.query.dao.system.bill.AssignedServiceDAO;
import com.hangum.tadpole.engine.query.dao.system.bill.UserBillDAO;
import com.hangum.tadpole.session.manager.SessionManager;
import com.ibatis.sqlmap.client.SqlMapClient;
Expand Down Expand Up @@ -42,4 +47,100 @@ public static void insertBill(UserBillDAO dao) throws TadpoleSQLManagerException
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.insert("insertBill", dao); //$NON-NLS-1$
}

/**
* start service
*
* @param dao
* @throws TadpoleSQLManagerException
* @throws SQLException
*/
public static void startService(UserBillDAO dao) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.update("updateStartService", dao); //$NON-NLS-1$
}


/**
* 이미 서비스에 사용자가 추가되었는지 검사한다.
*
* @param bill
* @param user
* @param assignedService
* @return
* @throws TadpoleSQLManagerException
* @throws SQLException
*/
public static void insertStartUserService(UserBillDAO bill, UserDAO user, AssignedServiceDAO assignedService) throws Exception {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());

List<AssignedServiceDAO> list = sqlClient.queryForList("getAlreadyService", assignedService);
if(bill.getEa() > list.size()) {
for (AssignedServiceDAO asObj : list) {
if(asObj.getUser_seq() == user.getSeq()) {
throw new Exception(Messages.get().AlreadyUseService);
}
}
sqlClient.insert("insertStartUserService", assignedService);

// 사용자 서비스를 늘려준다.
if(user.getService_end().getTime() < assignedService.getService_end_data().getTime()) {
sqlClient.update("updateUserServiceDate", assignedService);
}
} else {
throw new Exception(Messages.get().overflowUseService);
}
}

/**
* 각 사용자의 서비스 리스트
* @param dao
* @return
* @throws TadpoleSQLManagerException
* @throws SQLException
*/
public static List<AssignedServiceDAO> getUserList(UserBillDAO dao) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
return sqlClient.queryForList("getEachServiceUser", dao);
}

/**
* delete user service
*
* @param dao
* @throws TadpoleSQLManagerException
* @throws SQLException
*/
public static void deleteUserService(AssignedServiceDAO dao) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
sqlClient.update("deleteUserService", dao);

// 사용자 플랜중에 가장 큰 플랜으로 업데이트 한다.
Timestamp endDate = calcMaxServiceDate(dao.getUser_seq());
AssignedServiceDAO assignDao = new AssignedServiceDAO();
assignDao.setUser_seq(dao.getUser_seq());
assignDao.setService_end_data(endDate);
sqlClient.update("updateUserServiceDate", assignDao);
}

/**
* calculate max service date
*
* @param userSeq
* @return
* @throws TadpoleSQLManagerException
* @throws SQLException
*/
public static Timestamp calcMaxServiceDate(int userSeq) throws TadpoleSQLManagerException, SQLException {
SqlMapClient sqlClient = TadpoleSQLManager.getInstance(TadpoleSystemInitializer.getUserDB());
Object objDao = sqlClient.queryForObject("calcMaxServiceDate", userSeq);
if(objDao != null) {
AssignedServiceDAO dao = (AssignedServiceDAO)objDao;

return dao.getService_end_data();
} else {
return new Timestamp(DateUtil.afterMonthToMillis(1));
}

}
}
Expand Up @@ -14,6 +14,25 @@
*/
public class DateUtil {

/**
* 몇개월 후
*
* @param month
* @return
*/
public static long afterMonthToMillsMonth(int month) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.MONTH, month);

return cal.getTimeInMillis();
}

/**
* 몇일 후
*
* @param day
* @return
*/
public static long afterMonthToMillis(int day) {
Calendar cal = Calendar.getInstance();
cal.add(Calendar.DAY_OF_YEAR, day);
Expand Down

0 comments on commit 75d1b69

Please sign in to comment.