SplitAccountController.java 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package com.caimei.modules.order.web;
  2. import com.caimei.modules.order.dao.NewOrderDao;
  3. import com.caimei.modules.order.entity.OrderReceiptRelationPo;
  4. import com.caimei.modules.order.service.SplitAccountService;
  5. import com.caimei.redis.RedisService;
  6. import com.thinkgem.jeesite.common.config.Global;
  7. import com.thinkgem.jeesite.common.web.BaseController;
  8. import org.springframework.stereotype.Controller;
  9. import org.springframework.web.bind.annotation.RequestMapping;
  10. import org.springframework.web.servlet.mvc.support.RedirectAttributes;
  11. import javax.annotation.Resource;
  12. import java.text.SimpleDateFormat;
  13. import java.util.Calendar;
  14. import java.util.Date;
  15. import java.util.List;
  16. @Controller
  17. @RequestMapping(value = "${adminPath}/splitAccount/")
  18. public class SplitAccountController extends BaseController {
  19. @Resource
  20. private SplitAccountService splitAccountService;
  21. @Resource
  22. private NewOrderDao newOrderDao;
  23. @Resource
  24. private RedisService redisService;
  25. @RequestMapping("split")
  26. public String SplitAccount(RedirectAttributes redirectAttributes) {
  27. Integer xsfzmds = (Integer) redisService.get("XSFZMDS");
  28. //验锁
  29. if (null != xsfzmds && xsfzmds > 0) {
  30. addMessage(redirectAttributes, "请勿短时间内重复分账,等待支付公司返回分账结果!");
  31. return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage";
  32. }
  33. //设置分账间隔,2-3分钟,禁止重复分账
  34. Date splitTime = newOrderDao.findSplitTime();
  35. if (null != splitTime) {
  36. addMessage(redirectAttributes, "请勿短时间内重复分账,等待支付公司返回分账结果!");
  37. return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage";
  38. }
  39. //查询是否有账单可分账,没有return
  40. Calendar calendar = Calendar.getInstance();
  41. calendar.setTime(new Date());
  42. SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  43. String currentTime = format.format(calendar.getTime());
  44. // 查询未分账已支付收款
  45. List<OrderReceiptRelationPo> orderRelations = newOrderDao.getUndividedPaidReceipt(currentTime);
  46. if (null != orderRelations && orderRelations.size() > 0) {
  47. //设锁
  48. redisService.set("XSFZMDS", 1, 120L);
  49. splitAccountService.SplitAccount();
  50. addMessage(redirectAttributes, "分账成功!");
  51. } else {
  52. addMessage(redirectAttributes, "暂无收款金额可进行分账!");
  53. }
  54. return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage";
  55. }
  56. }