package controllers.backend.self; import java.io.File; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import org.apache.commons.httpclient.HttpException; import org.bson.types.ObjectId; import org.json.JSONException; import org.json.JSONObject; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import play.Play; import play.data.validation.Required; import play.libs.Codec; import play.libs.Images; import play.mvc.Before; import play.mvc.Scope.Session; import vo.BackendMerchantInfoVO; import vo.HaomaVO; import vo.ReservationVO; import vo.StatisticsVO; import vo.YouhuiVO; import vo.YudingVO; import vo.account.MerchantAccountVO; import cn.bran.japid.util.StringUtils; import com.mongodb.gridfs.GridFSInputFile; import com.withiter.common.Constants; import com.withiter.common.Constants.YudingStatus; import com.withiter.common.jpush.JPushReminder; import com.withiter.common.sms.business.SMSBusiness; import com.withiter.models.account.Account; import com.withiter.models.account.Reservation; import com.withiter.models.admin.MerchantAccount; import com.withiter.models.backendMerchant.MerchantAccountRel; import com.withiter.models.merchant.Category; import com.withiter.models.merchant.Haoma; import com.withiter.models.merchant.Merchant; import com.withiter.models.merchant.Open; import com.withiter.models.merchant.Youhui; import com.withiter.models.merchant.Yuding; import com.withiter.utils.ExceptionUtil; import controllers.BaseController; import controllers.UploadController; public class SelfManagementController extends BaseController { private static Logger logger = LoggerFactory.getLogger(SelfManagementController.class); /** * Interception any caller on this controller, will first invoke this method */ @Before static void checkAuthentification() { if (!session.contains(Constants.SESSION_USERNAME)) { logger.debug("no session is found in Constants.SESSION_USERNAME"); String randomID = Codec.UUID(); renderJapidWith("japidviews.LandingController.business", randomID); } } /** * 登录成功,通过uid查询出当前account的对应的merchant信息 * * @param uid */ public static void index(String uid) { MerchantAccount account = MerchantAccount.findById(uid); List<MerchantAccountRel> relList = MerchantAccountRel.getMerchantAccountRelList(uid); Merchant merchant = null; long openRequestCount = 0; boolean editable = false; if (relList == null || relList.isEmpty()) { } else { MerchantAccountRel rel = relList.get(0); String mid = rel.mid; merchant = Merchant.findById(mid); // 检查是否能编辑 if(merchant != null){ Haoma haoma = Haoma.findByMerchantId(merchant.id()); editable = haoma.checkEditAble(); } openRequestCount = Open.getNumberByMid(mid); } BackendMerchantInfoVO bmivo = BackendMerchantInfoVO.build(merchant, account, openRequestCount); bmivo.editable = editable; renderJapid(bmivo); } public static void checkEditAble(){ String mid = params.get("mid"); Merchant merchant = Merchant.findById(mid); // 检查是否能编辑 if(merchant != null){ Haoma haoma = Haoma.findByMerchantId(merchant.id()); boolean editable = haoma.checkEditAble(); renderJSON(editable); } renderJSON(false); } public static void editMerchant(String uid, String mid) { Merchant m = null; String merchantName = params.get("merchantName"); String description = params.get("description"); String cityCode = params.get("cityCode"); String address = params.get("address"); String x = params.get("x"); String y = params.get("y"); String tel = params.get("tel"); String cateType = params.get("cateType"); String cateName = params.get("cateName"); String cateType1 = params.get("cateType1"); String cateName1 = params.get("cateName1"); String openTime = params.get("openTime"); String closeTime = params.get("closeTime"); String merchantImage = params.get("merchantImage"); String merchantImageBig = params.get("merchantImageBig"); String[] seatType = params.getAll("seatType"); String dianpingFen = params.get("dianpingFen"); String dianpingLink = params.get("dianpingLink"); if (StringUtils.isEmpty(mid)) { // new merchant m = new Merchant(); m.save(); MerchantAccountRel rel = new MerchantAccountRel(); rel.mid = m.id(); rel.uid = uid; rel.save(); } else { m = Merchant.findById(mid); // check rel exist, if yes -> operation is update. if no -> new MerchantAccountRel MerchantAccountRel r = MerchantAccountRel.findByMid(mid); if (r == null) { // new MerchantAccountRel MerchantAccountRel rel = new MerchantAccountRel(); rel.mid = m.id(); rel.uid = uid; rel.save(); } } if (!StringUtils.isEmpty(merchantName)) { m.name = merchantName; } m.description = description; m.cityCode = cityCode; m.address = address; m.x = x; m.y = y; double[] d = { Double.parseDouble(y), Double.parseDouble(x) }; m.loc = d; m.telephone = tel.split(","); m.cateType = cateType; m.cateName = cateName; if (!StringUtils.isEmpty(cateType1) && !StringUtils.isEmpty(cateName1)) { m.cateType1 = cateType1; m.cateName1 = cateName1; } else { m.cateType1 = ""; m.cateName1 = ""; } m.openTime = openTime; m.closeTime = closeTime; m.enable = true; m.seatType = seatType; m.dianpingFen = dianpingFen; m.dianpingLink = dianpingLink; m.save(); logger.debug("merchant seatType------"); for(String s:m.seatType){ logger.debug("key1: "+s); } logger.debug("merchant seatType------"); Haoma haoma = Haoma.findByMerchantId(m.id()); // version ++ haoma.version += 1; Iterator it = haoma.haomaMap.keySet().iterator(); // 清除所有老的排队的reservation while(it.hasNext()){ Integer key = (Integer) it.next(); // set the reservations status with this seatNumber to // invalid(valid = false) // and the change Constants.ReservationStatus status to // invalidByMerchantUpdate Reservation.invalidByMerchantUpdate(key, m.id()); } haoma.updatePaidui(); haoma.save(); haoma.check(); Iterator it2 = haoma.haomaMap.keySet().iterator(); logger.debug("haoma seatType------"); while(it2.hasNext()){ logger.debug("key: "+it2.next()); } logger.debug("haoma seatType------"); // update the category counts Category.updateCounts(); // 更新商家图片 if (!StringUtils.isEmpty(merchantImage)) { GridFSInputFile file = uploadFirst(merchantImage, m.id()); if (file != null) { m.merchantImageSet.add(file.getFilename()); // if (StringUtils.isEmpty(m.merchantImage)) { String imageStorePath = Play.configuration.getProperty("image.store.path"); try { m.merchantImage = URLEncoder.encode(imageStorePath + file.getFilename(), "UTF-8"); logger.debug(m.merchantImage); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // } m.save(); } } // 更新商家大图片 if (!StringUtils.isEmpty(merchantImageBig)) { GridFSInputFile file = uploadFirst(merchantImageBig, m.id(), 834, 346); if (file != null) { m.merchantImageSet.add(file.getFilename()); // if (StringUtils.isEmpty(m.merchantImageBig)) { String imageStorePath = Play.configuration.getProperty("image.store.path"); try { m.merchantImageBig = URLEncoder.encode(imageStorePath + file.getFilename(), "UTF-8"); logger.debug(m.merchantImageBig); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } // } m.save(); } } index(uid); } /** * 进入排队管理页面 */ public static void goPaiduiPage() { String mid = params.get("mid"); Haoma haoma = Haoma.findByMerchantId(mid); haoma.updateSelf(); HaomaVO haomaVO = HaomaVO.build(haoma); String uid = Session.current().get(Constants.SESSION_USERNAME); MerchantAccount account = MerchantAccount.findById(uid); Merchant merchant = Merchant.findById(mid); BackendMerchantInfoVO bmivo = BackendMerchantInfoVO.build(merchant, account); renderJapid(haomaVO, bmivo); } /** * 进入个人信息管理 */ public static void goPersonalPage() { String aid = params.get("aid"); MerchantAccount account = MerchantAccount.findById(aid); MerchantAccountVO avo = MerchantAccountVO.build(account); String mid = params.get("mid"); Merchant merchant = null; if (!StringUtils.isEmpty(mid)) { merchant = Merchant.findById(mid); } BackendMerchantInfoVO bmivo = BackendMerchantInfoVO.build(merchant, account); renderJapid(avo, bmivo); } /** * 消费统计管理 */ public static void goStatisticPage() { String mid = params.get("mid"); long lastDayFinishCount = Reservation.lastDayFinishCount(mid); long lastDayCancelCount = Reservation.lastDayCancelCount(mid); long lastMonthFinishCount = Reservation.lastMonthFinishCount(mid); long lastMonthCancelCount = Reservation.lastMonthCancelCount(mid); long lastThreeMonthsFinishCount = Reservation.lastThreeMonthsFinishCount(mid); long lastThreeMonthsCancelCount = Reservation.lastThreeMonthsCancelCount(mid); long todayFinishCount = Reservation.todayFinishCount(mid); long todayCancelCount = Reservation.todayCancelCount(mid); StatisticsVO svo = new StatisticsVO(); svo.lastDayFinish = lastDayFinishCount; svo.lastDayCancel = lastDayCancelCount; svo.lastMonthFinish = lastMonthFinishCount; svo.lastMonthCancel = lastMonthCancelCount; svo.lastThreeMonthFinish = lastThreeMonthsFinishCount; svo.lastThreeMonthCancel = lastThreeMonthsCancelCount; svo.todayFinish = todayFinishCount; svo.todayCancel = todayCancelCount; String uid = Session.current().get(Constants.SESSION_USERNAME); MerchantAccount account = MerchantAccount.findById(uid); Merchant merchant = Merchant.findById(mid); BackendMerchantInfoVO bmivo = BackendMerchantInfoVO.build(merchant, account); renderJapid(svo, bmivo); } /** * 优惠管理 */ public static void goYouhuiPage() { String mid = params.get("mid"); List<Youhui> youhuiList = Youhui.getAllEnabledYouhui(mid); List<YouhuiVO> yvoList = new ArrayList<YouhuiVO>(); for (Youhui yh : youhuiList) { yvoList.add(YouhuiVO.build(yh)); } String uid = Session.current().get(Constants.SESSION_USERNAME); MerchantAccount account = MerchantAccount.findById(uid); Merchant merchant = Merchant.findById(mid); BackendMerchantInfoVO bmivo = BackendMerchantInfoVO.build(merchant, account); renderJapid(yvoList, bmivo); } /** * 预定管理 */ public static void goYudingPage(@Required String mid) { List<Yuding> YudingList = Yuding.getAllNotHandledYuding(mid); List<YudingVO> yvoList = new ArrayList<YudingVO>(); for (Yuding yd : YudingList) { yvoList.add(YudingVO.build(yd)); } String uid = Session.current().get(Constants.SESSION_USERNAME); MerchantAccount account = MerchantAccount.findById(uid); Merchant merchant = Merchant.findById(mid); BackendMerchantInfoVO bmivo = BackendMerchantInfoVO.build(merchant, account); renderJapid(yvoList, bmivo); } /** * 同意用户预定 * route: * /b/w/yuding/tongyi backend.self.SelfManagementController.tongyi */ public static void tongyi(@Required String yid){ if(validation.hasErrors()){ renderJSON(false); } Yuding yuding = Yuding.findById(new ObjectId(yid)); if(yuding != null){ yuding.status = YudingStatus.confirmed; yuding.save(); // 发送短信通知 Merchant m = Merchant.findByMid(yuding.mid); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm"); //设置模板ID //401215 恭喜预定成功! 预定信息:时间(#code1#),商家(#code2#),地点(#code3#),人数(#code4#),#code5#,座位保留15分钟,到店请出示此短信,如有疑问,可联系餐厅,电话:#code6#。【取号啦】 long tpl_id = 401215l; //设置对应的模板变量值 String tpl_value = ""; if(yuding.baojian){ if(yuding.baojianOptional){ tpl_value ="#code1#="+sdf.format(yuding.shijian)+"&#code2#="+m.name+"&#code3#="+m.address+"&#code4#="+yuding.renshu+"&#code5#=如果没有包间,安排大厅"; } else { tpl_value ="#code1#="+sdf.format(yuding.shijian)+"&#code2#="+m.name+"&#code3#="+m.address+"&#code4#="+yuding.renshu+"&#code5#=包间必须"; } } // 电话 if(m.telephone !=null && m.telephone.length > 0){ tpl_value += "&#code6#="+m.telephone[0]; } int code = SMSBusiness.tplSendSms(tpl_id,tpl_value, yuding.mobile); if (code == 0) { renderJSON(true); } else { renderJSON(false); } } } /** * 拒绝用户预定 * route: * /b/w/yuding/reject backend.self.SelfManagementController.tongyi */ public static void reject(@Required String yid, @Required String type){ if(validation.hasErrors()){ renderJSON(false); } play.Logger.info("type:" + type); Yuding yuding = Yuding.findById(new ObjectId(yid)); if(yuding != null){ yuding.status = YudingStatus.rejected; yuding.save(); // 发送短信通知 Merchant m = Merchant.findByMid(yuding.mid); //设置模板ID //401228 很抱歉,您在[#code1#]的预定不成功。原因是:#code2#。如有疑问,可联系餐厅,电话:#code3#。【取号啦】 long tpl_id = 401228l; //设置对应的模板变量值 String tpl_value = ""; if("1".equals(type)){ tpl_value = "#code1#="+m.name+"&#code2#=此时间段不能接受预定"; } if("2".equals(type)){ tpl_value = "#code1#="+m.name+"&#code2#=没有包厢了"; } if("3".equals(type)){ tpl_value = "#code1#="+m.name+"&#code2#=预定已满(没有座位)"; } // 电话 if(m.telephone !=null && m.telephone.length > 0){ tpl_value += "&#code3#="+m.telephone[0]; } int code = SMSBusiness.tplSendSms(tpl_id,tpl_value, yuding.mobile); if (code != 0) { logger.error("Send SMS failed!!!"); } goYudingPage(yuding.mid); } } /** * 完成预定 * route: * /b/w/yuding/finish backend.self.SelfManagementController.finish */ public static void finish(@Required String yid){ if(validation.hasErrors()){ renderJSON(false); } Yuding yuding = Yuding.findById(new ObjectId(yid)); if(yuding != null){ yuding.status = YudingStatus.finished; yuding.save(); } renderJSON(true); } /** * 过期预定 * route: * /b/w/yuding/expire backend.self.SelfManagementController.expire */ public static void expire(@Required String yid){ if(validation.hasErrors()){ renderJSON(false); } Yuding yuding = Yuding.findById(new ObjectId(yid)); if(yuding != null){ yuding.status = YudingStatus.expired; yuding.save(); // 发送短信通知 Merchant m = Merchant.findByMid(yuding.mid); // 401210 很抱歉,您在[#code1#]的预定已过期。如有疑问,可联系餐厅,电话:#code2#。【取号啦】 long tpl_id = 401210l; String tpl_value = "#code1#="+m.name; // 电话 if(m.telephone !=null && m.telephone.length > 0){ tpl_value += "&#code2#="+m.telephone[0]; } int code = SMSBusiness.tplSendSms(tpl_id,tpl_value, yuding.mobile); if (code == 0) { renderJSON(true); } else { logger.error("Send SMS failed!!!"); renderJSON(false); } } } /** * 临时取消用户的预定 * route: * /b/w/yuding/cancelTemp backend.self.SelfManagementController.cancelTemp */ public static void cancelTemp(@Required String yid){ if(validation.hasErrors()){ renderJSON(false); } Yuding yuding = Yuding.findById(new ObjectId(yid)); if(yuding != null){ yuding.status = YudingStatus.cancelTemp; yuding.save(); // 发送短信通知 Merchant m = Merchant.findByMid(yuding.mid); // 401198 「取号啦」通知您,您在[#code1#]的预定已成功取消。如有疑问,可联系餐厅,电话:#code2#。【取号啦】 long tpl_id = 401198l; String tpl_value = "#code1#="+m.name; // 电话 if(m.telephone !=null && m.telephone.length > 0){ tpl_value += "&#code2#="+m.telephone[0]; } int code = SMSBusiness.tplSendSms(tpl_id,tpl_value, yuding.mobile); if (code == 0) { renderJSON(true); } else { logger.error("Send SMS failed!!!"); renderJSON(false); } } } /** * 添加优惠信息 */ public static void saveYouhui() { String mid = params.get("mid"); String title = params.get("title"); String content = params.get("content"); Youhui y = new Youhui(); y.mid = mid; y.title = title; y.content = content; y.enable = true; y.save(); Merchant m = Merchant.findByMid(mid); m.youhui = true; m.save(); renderJSON(true); } /** * 取消优惠信息 */ public static void disableYouhui() { String mid = params.get("mid"); String yid = params.get("yid"); Youhui y = Youhui.findById(new ObjectId(yid)); y.enable = false; y.save(); Merchant m = Merchant.findByMid(mid); m.updateYouhuiInfo(); renderJSON(true); } /** * refresh paidui table */ public static void paiduiPageAutoRefresh() { String mid = params.get("mid"); Haoma haoma = Haoma.findByMerchantId(mid); haoma.updateSelf(); HaomaVO haomaVO = HaomaVO.build(haoma); renderJapidWith("japidviews.backend.self.SelfManagementController.goPaiduiPageRefresh", haomaVO); } /** * finish one reservation by merchant */ public static void finishByMerchant() { String cNumber = params.get("currentNumber"); String sNumber = params.get("seatNumber"); String mid = params.get("mid"); if (StringUtils.isEmpty(cNumber) || StringUtils.isEmpty(sNumber) || StringUtils.isEmpty(mid)) { renderJSON("false"); } int currentNumber = Integer.parseInt(cNumber); int seatNumber = Integer.parseInt(sNumber); synchronized (SelfManagementController.class) { Haoma haoma = Haoma.findByMerchantId(mid); Reservation r = Reservation.findReservationForHandle(seatNumber, currentNumber, mid, haoma.version); if (r != null) { boolean flag = Reservation.finish(r.id()); haoma.updateSelf(); Reservation rr = Reservation.findReservationForSMSRemind(mid, seatNumber, 4, haoma.version); if (rr == null) { logger.debug("No number 4 reservation, no need to send sms"); renderJSON(String.valueOf(flag)); } String aid = rr.accountId; if (aid == null) { renderJSON(String.valueOf(flag)); } Account account = Account.findById(aid); // 短信提醒第4位 smsRemind(mid, seatNumber, haoma.version); // JPush提醒第4位 if(StringUtils.isEmpty(account.password)){ // 现场取号用户 renderJSON(String.valueOf(flag)); } // app用户 String remind = Play.configuration.getProperty("service.push.remind"); JPushReminder.sendAlias(account.phone, remind); renderJSON(String.valueOf(flag)); } else { renderJSON("ALREADY_CANCELED"); } } } /** * expire one reservation by merchant */ public static void expireByMerchant() { String cNumber = params.get("currentNumber"); String sNumber = params.get("seatNumber"); String mid = params.get("mid"); if (StringUtils.isEmpty(cNumber) || StringUtils.isEmpty(sNumber) || StringUtils.isEmpty(mid)) { renderJSON("false"); } int currentNumber = Integer.parseInt(cNumber); int seatNumber = Integer.parseInt(sNumber); synchronized (SelfManagementController.class) { Haoma haoma = Haoma.findByMerchantId(mid); Reservation r = Reservation.findReservationForHandle(seatNumber, currentNumber, mid, haoma.version); if (r != null) { boolean flag = Reservation.expire(r.id()); // 找到被过期的用户 Account expiredAccount = null; if(!com.withiter.utils.StringUtils.isEmpty(r.accountId)){ expiredAccount = Account.findById(new ObjectId(r.accountId)); } if(expiredAccount != null){ String remind = Play.configuration.getProperty("service.push.expiredRemind"); JPushReminder.sendAlias(expiredAccount.phone, remind); } haoma.updateSelf(); Reservation rr = Reservation.findReservationForSMSRemind(mid, seatNumber, 4, haoma.version); if (rr == null) { renderJSON(String.valueOf(flag)); } String aid = rr.accountId; if (aid == null) { renderJSON(String.valueOf(flag)); } Account account = Account.findById(aid); // 短信提醒第4位 smsRemind(mid, seatNumber, haoma.version); // JPush提醒第4位 if(StringUtils.isEmpty(account.password)){ // 现场取号用户 renderJSON(String.valueOf(flag)); } // app用户 String remind = Play.configuration.getProperty("service.push.remind"); JPushReminder.sendAlias(account.phone, remind); renderJSON(String.valueOf(flag)); } else { renderJSON("ALREADY_CANCELED"); } } } private static void smsRemind(String mid, int seatNumber, long version) { Reservation r = Reservation.findReservationForSMSRemind(mid, seatNumber, 4, version); if (r == null) { return; } String aid = r.accountId; if (aid == null) { return; } Account account = Account.findById(aid); // send message // 401102 「取号啦」提醒您,在您前面还有#code#个人,请根据您的时间状况前往商家,或者取消排号。推荐使用「取号啦」APP,排队社交新体验。【取号啦】 long tpl_id = 401102l; String tpl_value = "#code#=4"; int i = SMSBusiness.tplSendSms(tpl_id, tpl_value, account.phone); int j = 0; while (i < 0) { i = SMSBusiness.tplSendSms(tpl_id, tpl_value, account.phone); j++; if (j == 3) { logger.error("发送提醒短信失败"); break; } } } /** * 现场输入手机号取号 */ public static void quhaoOnsite() { synchronized (SelfManagementController.class) { String tel = params.get("tel"); String seatN = params.get("seatNumber"); String mid = params.get("mid"); ReservationVO rvo = new ReservationVO(); if (StringUtils.isEmpty(tel) || StringUtils.isEmpty(seatN) || StringUtils.isEmpty(mid)) { rvo.tipKey = false; rvo.tipValue = "NAHAO_FAILED"; renderJSON(rvo); } Account account = Account.findByPhone(tel); if (account == null) { Account a = new Account(); a.phone = tel; a.save(); } int seatNumber = Integer.parseInt(seatN); Reservation reservation = Haoma.nahao(null, mid, seatNumber, tel); Haoma haomaNew = Haoma.findByMerchantId(mid); rvo.currentNumber = haomaNew.haomaMap.get(seatNumber).currentNumber; int cancelCount = (int) Reservation.findCountBetweenCurrentNoAndMyNumber(mid, haomaNew.haomaMap.get(seatNumber).currentNumber, reservation.myNumber, seatNumber, haomaNew.version); rvo.beforeYou = reservation.myNumber - (haomaNew.haomaMap.get(seatNumber).currentNumber + cancelCount); rvo.tipKey = true; rvo.tipValue = "NAHAO_SUCCESS"; rvo.build(reservation); // send message long tpl_id = 0l; String tpl_value = "#code1#="+reservation.myNumber+"&#code2#="+rvo.beforeYou;; if(rvo.beforeYou <= 5){ // 401095 您的排队号是#code1#号,在您前面还有#code2#位排队,很快就到你了,请不要离开哦。推荐使用「取号啦」APP,排队社交新体验。【取号啦】 tpl_id = 401095l; } else { // 401093 您的排队号是#code1#号,在您前面还有#code2#位排队,推荐使用「取号啦」APP,排队社交新体验。【取号啦】 tpl_id = 401093l; } int i = SMSBusiness.tplSendSms(tpl_id, tpl_value, account.phone); int j = 0; while (i != 0) { i = SMSBusiness.tplSendSms(tpl_id, tpl_value, account.phone); j++; if (j == 3) { // Haoma.nahaoRollback(reservation); rvo.tipValue = "发送短信失败,请重新发送"; rvo.tipKey = false; break; } } renderJSON(rvo); } } /** * 更新商家信息,上传图片 * @param param request 参数 * @param mid 商家id * @return */ private static GridFSInputFile uploadFirst(String param, String mid) { GridFSInputFile gfsFile = null; File[] files = params.get(param, File[].class); for (File file : files) { try { File desFile = Play.getFile("public/upload/" + file.getName()); Images.resize(file, desFile, 147, 126); gfsFile = UploadController.saveBinary(desFile, mid); desFile.delete(); break; } catch (IOException e) { e.printStackTrace(); } } if (gfsFile == null) { return null; } else { return gfsFile; } } /** * 上传图片(商家页面) * @param param * @param mid * @param resizeX * @param resizeY * @return */ private static GridFSInputFile uploadFirst(String param, String mid, int resizeX, int resizeY) { GridFSInputFile gfsFile = null; File[] files = params.get(param, File[].class); for (File file : files) { try { File desFile = Play.getFile("public/upload/" + file.getName()); Images.resize(file, desFile, resizeX, resizeY); gfsFile = UploadController.saveBinary(desFile, mid); desFile.delete(); break; } catch (IOException e) { e.printStackTrace(); } } if (gfsFile == null) { return null; } else { return gfsFile; } } /** * 改变商家状态(开放取号,关闭取号) * * @param mid * 商家id * @param online * 在线状态(true->开放取号,false->关闭取号) */ public static void changeStatus() { String mid = params.get("mid"); String online = params.get("online"); if (StringUtils.isEmpty(mid) || StringUtils.isEmpty(online)) { renderJSON(false); } boolean flag = Merchant.changeStatus(mid, Boolean.valueOf(online)); renderJSON(flag); } }