package project.web.api; import java.io.IOException; import java.util.Date; import javax.servlet.http.HttpServletRequest; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.CrossOrigin; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import kernel.exception.BusinessException; import kernel.util.StringUtils; import kernel.web.ApplicationUtil; import kernel.web.BaseAction; import kernel.web.ResultObject; import project.Constants; import project.c2c.C2cAppeal; import project.c2c.C2cAppealService; import project.c2c.C2cOrder; import project.c2c.C2cOrderService; import project.party.PartyService; import project.party.model.Party; import project.tip.TipConstants; import project.tip.TipService; /** * C2C申诉 */ @RestController @CrossOrigin public class C2cAppealController extends BaseAction { private Logger logger = LoggerFactory.getLogger(C2cAppealController.class); @Autowired private C2cAppealService c2cAppealService; @Autowired private C2cOrderService c2cOrderService; @Autowired private PartyService partyService; @Autowired private TipService tipService; private final String action = "/api/c2cAppeal!"; /** * 申诉申请 */ @RequestMapping(action + "apply.action") public Object apply(HttpServletRequest request) throws IOException { String order_no = request.getParameter("order_no"); String reason = request.getParameter("reason"); String description = request.getParameter("description"); String img = request.getParameter("img"); String name = request.getParameter("name"); String phone = request.getParameter("phone"); ResultObject resultObject = new ResultObject(); resultObject = this.readSecurityContextFromSession(resultObject); if (!"0".equals(resultObject.getCode())) { return resultObject; } try { if (StringUtils.isEmptyString(order_no)) { throw new BusinessException("申诉订单号不正确"); } if (StringUtils.isEmptyString(reason)) { throw new BusinessException("请输入申诉原因"); } if (StringUtils.isEmptyString(img)) { throw new BusinessException("请上传申诉凭证"); } String partyId = this.getLoginPartyId(); C2cOrder order = this.c2cOrderService.get(order_no); if (null == order || !partyId.equals(order.getPartyId())) { throw new BusinessException("订单不存在"); } C2cAppeal appeal = this.c2cAppealService.get(order_no); if (null != appeal) { throw new BusinessException("该订单已提交申诉"); } C2cAppeal entity = new C2cAppeal(); entity.setId(ApplicationUtil.getCurrentTimeUUID()); entity.setOrderNo(order_no); entity.setReason(reason); entity.setDescription(description); entity.setImg(img); entity.setName(name); entity.setPhone(phone); entity.setState("0"); entity.setCreateTime(new Date()); entity.setUpdateTime(new Date()); this.c2cAppealService.save(entity); order.setState("2"); this.c2cOrderService.update(order); Party party = this.partyService.cachePartyBy(partyId, false); if (Constants.SECURITY_ROLE_MEMBER.equals(party.getRolename())) { this.tipService.saveTip(entity.getId().toString(), TipConstants.C2C_APPEAL); } this.c2cOrderService.c2cSendMessageByState(order, "2"); } catch (BusinessException e) { resultObject.setCode("1"); resultObject.setMsg(e.getMessage()); } catch (Throwable t) { resultObject.setCode("1"); resultObject.setMsg("程序错误"); logger.error("error:", t); } return resultObject; } /** * 获取 申诉详情 */ @RequestMapping(action + "get.action") public Object get(HttpServletRequest request) throws IOException { String order_no = request.getParameter("order_no"); ResultObject resultObject = new ResultObject(); resultObject = this.readSecurityContextFromSession(resultObject); if (!"0".equals(resultObject.getCode())) { return resultObject; } try { if (StringUtils.isEmptyString(order_no)) { throw new BusinessException("申诉订单号不正确"); } C2cAppeal c2cAppeal = this.c2cAppealService.get(order_no); if (null == c2cAppeal) { throw new BusinessException("申诉不存在"); } if (StringUtils.isNotEmpty(c2cAppeal.getImg())) { String path = Constants.WEB_URL + "/public/showimg!showImg.action?imagePath=" + c2cAppeal.getImg(); c2cAppeal.setImg(path); } resultObject.setData(c2cAppeal); } catch (BusinessException e) { resultObject.setCode("1"); resultObject.setMsg(e.getMessage()); } catch (Throwable t) { resultObject.setCode("1"); resultObject.setMsg("程序错误"); logger.error("error:", t); } return resultObject; } }