package com.caimei.modules.order.web; import com.caimei.modules.order.dao.NewOrderDao; import com.caimei.modules.order.entity.OrderReceiptRelationPo; import com.caimei.modules.order.service.SplitAccountService; import com.caimei.redis.RedisService; import com.thinkgem.jeesite.common.config.Global; import com.thinkgem.jeesite.common.web.BaseController; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.servlet.mvc.support.RedirectAttributes; import javax.annotation.Resource; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; import java.util.List; @Controller @RequestMapping(value = "${adminPath}/splitAccount/") public class SplitAccountController extends BaseController { @Resource private SplitAccountService splitAccountService; @Resource private NewOrderDao newOrderDao; @Resource private RedisService redisService; @RequestMapping("split") public String SplitAccount(RedirectAttributes redirectAttributes) { Integer xsfzmds = (Integer) redisService.get("XSFZMDS"); //验锁 if (null != xsfzmds && xsfzmds > 0) { addMessage(redirectAttributes, "请勿短时间内重复分账,等待支付公司返回分账结果!"); return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage"; } //设置分账间隔,2-3分钟,禁止重复分账 Date splitTime = newOrderDao.findSplitTime(); if (null != splitTime) { addMessage(redirectAttributes, "请勿短时间内重复分账,等待支付公司返回分账结果!"); return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage"; } //查询是否有账单可分账,没有return Calendar calendar = Calendar.getInstance(); calendar.setTime(new Date()); SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String currentTime = format.format(calendar.getTime()); // 查询未分账已支付收款 List orderRelations = newOrderDao.getUndividedPaidReceipt(currentTime); if (null != orderRelations && orderRelations.size() > 0) { //设锁 redisService.set("XSFZMDS", 1, 120L); splitAccountService.SplitAccount(); addMessage(redirectAttributes, "分账成功!"); } else { addMessage(redirectAttributes, "暂无收款金额可进行分账!"); } return "redirect:" + Global.getAdminPath() + "/shopOrder/splitList/?repage"; } }