できた。
コードは、
- public void deletePersonData(UserId userId, GroupId groupId,
- String appId, Set<String> fields, SecurityToken token) throws ProtocolException {
- GmsPerson viewer = getUser();
- logger.info("deletePersonData開始"
- + "viewer:[" + ((viewer == null) ? "Guest" : viewer.getLoginId()) + "]:"
- + "userId:[" + userId + "]:"
- + "appId:[" + appId + "]:"
- );
- if (viewer == null) {
- logger.info("updatePersonData処理終了:Guestは保存できない:"
- + "userId:[" + userId + "]:"
- + "groupId:[" + groupId + "]:"
- + "appId:[" + appId + "]:"
- );
- throw new ProtocolException(HttpServletResponse.SC_FORBIDDEN,
- "Guestは保存できない: 未ログイン");
- }
- String appHashId = toStringDigest(getStringDigest(appId));
- if (logger.isDebugEnabled()) {
- logger.debug("appHashId:[" + appHashId + "]");
- }
- String loginId = userId.getUserId(token);
- if ("Guest".equalsIgnoreCase(loginId)) {
- logger.info("updatePersonData処理終了:Guestは保存できない:"
- + "userId:[" + userId + "]:"
- + "groupId:[" + groupId + "]:"
- + "appId:[" + appId + "]:"
- );
- throw new ProtocolException(HttpServletResponse.SC_FORBIDDEN,
- "Guestは保存できない: loginid:[" + loginId + "]");
- }
- List<String> userLoginIds = new ArrayList<String>();
- userLoginIds.add(loginId);
- ExtendedGmsPerson[] gmsPersons = null;
- List<String> personIds = new ArrayList<String>();
- int first = 0;
- int max = 20;
- for (;;) {
- gmsPersons = gmsPersonDao.peopleGet(
- userLoginIds,
- groupId.getType().toString(),
- groupId.getGroupId(),
- null,
- null,
- null,
- null,
- null,
- first,
- max,
- null);
- if (logger.isDebugEnabled()) {
- logger.debug("count:[" + gmsPersons.length + "]");
- }
- int length = gmsPersons.length;
- for (int ii=0; ii<length; ii++) {
- personIds.add(gmsPersons[ii].getId());
- }
- if (length < max) {
- break;
- }
- first += max;
- }
- int count = 0;
- for (String personId: personIds) {
- gmsPersonDao.select(personId, true);
- for (String field: fields) {
- GmsAppdata[] appdatas = null;
- appdatas = gmsAppdataDao.selectByAppHashIdAndGmsPersonIdAndName(appHashId, personId, field);
- for (int ii=0,length=appdatas.length; ii<length; ii++) {
- if (appId.equalsIgnoreCase(appdatas[ii].getApplicationId())) {
- gmsAppdataDao.delete(appdatas[ii]);
- count++;
- break;
- }
- }
- }
- }
- if (logger.isDebugEnabled()) {
- logger.debug("[" + count + "]件削除しちゃった");
- }
- logger.info("deletePersonData終了"
- + "viewer:[" + ((viewer == null) ? "Guest" : viewer.getLoginId()) + "]:"
- + "userId:[" + userId + "]:"
- + "appId:[" + appId + "]:"
- );
- }
な感じ。
これで、AppDataシリーズは完了。
次はアクティビティまわりかな。
調べてみようっと。
.
0 コメント:
コメントを投稿