Merge branch '1.0.1' into dev
This commit is contained in:
@@ -188,7 +188,7 @@ public class CloudPrinterService {
|
||||
if(ObjectUtil.isNotEmpty(detailList)&&detailList.size()>0){
|
||||
// OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList);
|
||||
OrderDetailPO detailPO = new OrderDetailPO(shopInfo.getShopName(), "普通打印", ObjectUtil.isEmpty(orderInfo.getMasterId())||ObjectUtil.isNull(orderInfo.getMasterId())?orderInfo.getTableName():orderInfo.getMasterId(), orderInfo.getOrderNo(), DateUtils.getTime(new Date(orderInfo.getCreatedAt())), "【POS-1】001", orderInfo.getOrderAmount().toPlainString(), balance, orderInfo.getPayType(), "0", detailList,orderInfo.getRemark());
|
||||
|
||||
detailPO.setOutNumber(orderInfo.getOutNumber());
|
||||
String printType="退款单";
|
||||
|
||||
String data= PrinterUtils.getCashPrintData(detailPO,printType,"return");
|
||||
|
||||
@@ -0,0 +1,153 @@
|
||||
package com.chaozhanggui.system.cashierservice.service;
|
||||
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbCashierCartMapper;
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbConsInfoFlowMapper;
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbConsInfoMapper;
|
||||
import com.chaozhanggui.system.cashierservice.dao.TbProskuConMapper;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbCashierCart;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbConsInfo;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbConsInfoFlow;
|
||||
import com.chaozhanggui.system.cashierservice.entity.TbProskuCon;
|
||||
import com.chaozhanggui.system.cashierservice.entity.po.ConsInfoPO;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
|
||||
@Slf4j
|
||||
@Service
|
||||
public class ConsService {
|
||||
|
||||
@Autowired
|
||||
TbCashierCartMapper tbCashierCartMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
TbProskuConMapper tbProskuConMapper;
|
||||
|
||||
|
||||
@Autowired
|
||||
TbConsInfoMapper tbConsInfoMapper;
|
||||
|
||||
@Autowired
|
||||
TbConsInfoFlowMapper tbConsInfoFlowMapper;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void exect(String message) throws Exception {
|
||||
log.info("耗材信息更新开始:{}",message);
|
||||
JSONObject jsonObject = JSON.parseObject(message);
|
||||
|
||||
String type=jsonObject.getString("type");
|
||||
|
||||
if(Objects.nonNull(type)){
|
||||
|
||||
if("create".equals(type)){
|
||||
|
||||
String cartId=jsonObject.getString("cartId");
|
||||
|
||||
TbCashierCart cart= tbCashierCartMapper.selectByPrimaryKey(Integer.valueOf(cartId));
|
||||
if(Objects.isNull(cart)){
|
||||
log.info("不存在的购物车信息::{}",cartId);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
//减少耗材库存信息
|
||||
List<TbProskuCon> tbProskuCons= tbProskuConMapper.selectBySkuIdAndShopId(Integer.valueOf(cart.getSkuId()),Integer.valueOf(cart.getShopId()));
|
||||
if(Objects.isNull(tbProskuCons)||tbProskuCons.size()<=0){
|
||||
log.info("没有对应的耗材配置: skuId:{},shopId:{}",cart.getSkuId(),cart.getShopId());
|
||||
return;
|
||||
}
|
||||
|
||||
List<ConsInfoPO> consInfoPOS=new ArrayList<>();
|
||||
List<TbConsInfoFlow> consInfoFlows=new ArrayList<>();
|
||||
for (TbProskuCon tbProskuCon : tbProskuCons) {
|
||||
TbConsInfo tbConsInfo= tbConsInfoMapper.selectByPrimaryKey(tbProskuCon.getConInfoId());
|
||||
if(Objects.nonNull(tbConsInfo)){
|
||||
ConsInfoPO consInfoPO=new ConsInfoPO(tbConsInfo.getId(),tbConsInfo.getSurplusStock());
|
||||
consInfoPOS.add(consInfoPO);
|
||||
|
||||
TbConsInfoFlow flow=new TbConsInfoFlow();
|
||||
flow.setConsId(tbConsInfo.getId());
|
||||
flow.setShopId(tbConsInfo.getShopId());
|
||||
flow.setConName(tbConsInfo.getConName());
|
||||
flow.setAmount(tbConsInfo.getSurplusStock());
|
||||
flow.setBalance(tbConsInfo.getStockNumber().subtract(tbConsInfo.getSurplusStock()));
|
||||
flow.setBizCode("createCart");
|
||||
flow.setBizName("加入购物陈消耗");
|
||||
flow.setBizType("-");
|
||||
flow.setCreateTime(new Date());
|
||||
flow.setUpdateTime(new Date());
|
||||
consInfoFlows.add(flow);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
//更新耗材信息
|
||||
tbConsInfoMapper.batchStock(consInfoPOS);
|
||||
//记录更新日志
|
||||
tbConsInfoFlowMapper.insertBatch(consInfoFlows);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
if("delete".equals(type)){
|
||||
|
||||
List jsonArray= Arrays.asList(jsonObject.getJSONArray("skuIds"));
|
||||
|
||||
String shopId= jsonObject.getString("shopId");
|
||||
if(Objects.isNull(jsonArray)||jsonArray.size()<=0){
|
||||
log.info("错误的商品规格信息");
|
||||
return;
|
||||
}
|
||||
List<ConsInfoPO> consInfoPOS=new ArrayList<>();
|
||||
List<TbConsInfoFlow> consInfoFlows=new ArrayList<>();
|
||||
|
||||
for(int i=0;i<jsonArray.size();i++){
|
||||
//减少耗材库存信息
|
||||
List<TbProskuCon> tbProskuCons= tbProskuConMapper.selectBySkuIdAndShopId(Integer.valueOf(jsonArray.get(i)+""),Integer.valueOf(shopId));
|
||||
if(Objects.isNull(tbProskuCons)||tbProskuCons.size()<=0){
|
||||
log.info("没有对应的耗材配置: skuId:{},shopId:{}",jsonArray.get(i),shopId);
|
||||
return;
|
||||
}
|
||||
|
||||
for (TbProskuCon tbProskuCon : tbProskuCons) {
|
||||
TbConsInfo tbConsInfo= tbConsInfoMapper.selectByPrimaryKey(tbProskuCon.getConInfoId());
|
||||
if(Objects.nonNull(tbConsInfo)){
|
||||
ConsInfoPO consInfoPO=new ConsInfoPO(tbConsInfo.getId(),tbConsInfo.getSurplusStock().negate());
|
||||
consInfoPOS.add(consInfoPO);
|
||||
|
||||
TbConsInfoFlow flow=new TbConsInfoFlow();
|
||||
flow.setConsId(tbConsInfo.getId());
|
||||
flow.setShopId(tbConsInfo.getShopId());
|
||||
flow.setConName(tbConsInfo.getConName());
|
||||
flow.setAmount(tbConsInfo.getSurplusStock());
|
||||
flow.setBalance(tbConsInfo.getStockNumber().add(tbConsInfo.getSurplusStock()));
|
||||
flow.setBizCode("cancelCart");
|
||||
flow.setBizName("取消购物车返回");
|
||||
flow.setBizType("+");
|
||||
flow.setCreateTime(new Date());
|
||||
flow.setUpdateTime(new Date());
|
||||
consInfoFlows.add(flow);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//更新耗材信息
|
||||
tbConsInfoMapper.batchStock(consInfoPOS);
|
||||
//记录更新日志
|
||||
tbConsInfoFlowMapper.insertBatch(consInfoFlows);
|
||||
return;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
@@ -106,6 +106,11 @@ public class MemberService {
|
||||
return Result.fail(CodeEnum.MEMBERHAVED);
|
||||
}
|
||||
|
||||
|
||||
if(tbUserInfoMapper.selectCountByPhone(phone)>1){
|
||||
return Result.fail(CodeEnum.SAMEUSER);
|
||||
}
|
||||
|
||||
// for (TbShopUser tbShopUser : tbShopUsers) {
|
||||
// if("1".equals(tbShopUser.getIsVip().toString())){
|
||||
// return Result.fail(CodeEnum.MEMBERHAVED);
|
||||
@@ -126,6 +131,7 @@ public class MemberService {
|
||||
tbShopUserMapper.updateByPrimaryKeySelective(tbShopUser);
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
TbShopUser tbShopUser = new TbShopUser();
|
||||
TbUserInfo tbUserInfo = tbUserInfoMapper.selectByPhone(phone);
|
||||
if(tbUserInfo!=null){
|
||||
|
||||
@@ -6,11 +6,9 @@ import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.chaozhanggui.system.cashierservice.dao.*;
|
||||
import com.chaozhanggui.system.cashierservice.entity.*;
|
||||
import com.chaozhanggui.system.cashierservice.entity.po.CartPo;
|
||||
import com.chaozhanggui.system.cashierservice.entity.po.OrderPo;
|
||||
import com.chaozhanggui.system.cashierservice.entity.po.ProductSkuPo;
|
||||
import com.chaozhanggui.system.cashierservice.entity.po.QueryCartPo;
|
||||
import com.chaozhanggui.system.cashierservice.entity.po.*;
|
||||
import com.chaozhanggui.system.cashierservice.entity.vo.CartVo;
|
||||
import com.chaozhanggui.system.cashierservice.rabbit.RabbitProducer;
|
||||
import com.chaozhanggui.system.cashierservice.sign.CodeEnum;
|
||||
import com.chaozhanggui.system.cashierservice.sign.Result;
|
||||
import com.chaozhanggui.system.cashierservice.util.*;
|
||||
@@ -62,6 +60,9 @@ public class OrderService {
|
||||
TbTokenMapper tokenMapper;
|
||||
@Autowired
|
||||
RedisUtil redisUtil;
|
||||
|
||||
@Autowired
|
||||
RabbitProducer producer;
|
||||
private static ConcurrentHashMap<String, HashSet<Integer>> codeMap = new ConcurrentHashMap<>();
|
||||
private static ConcurrentHashMap<String, HashSet<String>> userMap = new ConcurrentHashMap<>();
|
||||
|
||||
@@ -198,11 +199,19 @@ public class OrderService {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
skuWithBLOBs.setStockNumber(skuWithBLOBs.getStockNumber()-number);
|
||||
skuWithBLOBs.setUpdatedAt(System.currentTimeMillis());
|
||||
tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs);
|
||||
|
||||
redisUtil.saveMessage("SHOP:CODE:SET" + clientType + ":" + shopId + ":" + DateUtils.getDay(),masterId.substring(1,masterId.length()));
|
||||
|
||||
//修改耗材数据
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("cartId",cart.getId());
|
||||
jsonObject.put("type","create");
|
||||
producer.cons(jsonObject.toString());
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS, masterId);
|
||||
}
|
||||
|
||||
@@ -290,9 +299,19 @@ public class OrderService {
|
||||
tbProductSkuMapper.updateByPrimaryKey(skuWithBLOBs);
|
||||
}
|
||||
|
||||
List<String> skuIds=new ArrayList<>();
|
||||
skuIds.add(cashierCart.getSkuId());
|
||||
|
||||
cashierCartMapper.deleteByCartId(masterId, cartId);
|
||||
|
||||
//修改耗材数据
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("type","delete");
|
||||
jsonObject.put("skuIds",skuIds);
|
||||
jsonObject.put("shopId",cashierCart.getShopId());
|
||||
producer.cons(jsonObject.toString());
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
@@ -424,6 +443,27 @@ public class OrderService {
|
||||
if (flag) {
|
||||
redisUtil.deleteByKey("SHOP:CODE:USER:" + clientType + ":" + orderVo.getShopId() + ":" + day + orderVo.getUserId());
|
||||
}
|
||||
|
||||
JSONObject object=new JSONObject();
|
||||
String outNumber= redisUtil.getMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId().toString()));
|
||||
Integer number=1;
|
||||
if(Objects.isNull(outNumber)){
|
||||
object.put("outNumber",number);
|
||||
object.put("times",DateUtils.getDay());
|
||||
}else {
|
||||
object=JSONObject.parseObject(outNumber);
|
||||
if(object.getString("times").equals(DateUtils.getDay())){
|
||||
number=object.getInteger("outNumber")+1;
|
||||
object.put("outNumber",number);
|
||||
}else {
|
||||
object.put("outNumber",number);
|
||||
object.put("times",DateUtils.getDay());
|
||||
}
|
||||
}
|
||||
orderInfo.setOutNumber(number+"");
|
||||
redisUtil.saveMessage(RedisCst.OUT_NUMBER.concat(orderInfo.getShopId().toString()),object.toString());
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS, orderInfo);
|
||||
}
|
||||
|
||||
@@ -671,15 +711,19 @@ public class OrderService {
|
||||
List<TbCashierCart> list = cashierCartMapper.selectAllCreateOrder(cartVo.getMasterId(), Integer.valueOf(cartVo.getShopId()), day, "create", cartVo.getUuid());
|
||||
int orderId = 0;
|
||||
List<ProductSkuPo> productSkuPos=new ArrayList<>();
|
||||
List<String> skuIds=new ArrayList<>();
|
||||
for (TbCashierCart cashierCart : list) {
|
||||
if (StringUtils.isNotEmpty(cashierCart.getOrderId())) {
|
||||
orderId = Integer.valueOf(cashierCart.getOrderId());
|
||||
skuIds.add(cashierCart.getSkuId());
|
||||
}
|
||||
TbProductWithBLOBs product= tbProductMapper.selectByPrimaryKey(Integer.valueOf(cashierCart.getProductId()));
|
||||
if(ObjectUtil.isNotEmpty(product)&&"1".equals(product.getIsStock().toString())){
|
||||
ProductSkuPo skuPo=new ProductSkuPo(Integer.valueOf(cashierCart.getSkuId()),cashierCart.getTotalNumber());
|
||||
productSkuPos.add(skuPo);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
if (orderId > 0) {
|
||||
@@ -696,6 +740,15 @@ public class OrderService {
|
||||
tbProductSkuMapper.batchStockNum(productSkuPos);
|
||||
}
|
||||
|
||||
|
||||
|
||||
//修改耗材数据
|
||||
JSONObject jsonObject=new JSONObject();
|
||||
jsonObject.put("type","delete");
|
||||
jsonObject.put("skuIds",skuIds);
|
||||
jsonObject.put("shopId",cartVo.getShopId());
|
||||
producer.cons(jsonObject.toString());
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS);
|
||||
}
|
||||
|
||||
@@ -714,14 +767,23 @@ public class OrderService {
|
||||
log.info("orderType:" + orderType);
|
||||
log.info("status:" + status);
|
||||
List<OrderPo> list = tbOrderInfoMapper.selectAllByShop(shopId, orderType, day, orderNo);
|
||||
|
||||
for (OrderPo orderInfo : list) {
|
||||
if (StringUtils.isEmpty(orderInfo.getImgUrl())) {
|
||||
orderInfo.setImgUrl("https://cashier-oss.oss-cn-beijing.aliyuncs.com/upload/20240223/a04e0d3beef74d099ebd0fd1f7c41873.jpg");
|
||||
}
|
||||
orderInfo.setZdNo("POS");
|
||||
orderInfo.setNames(orderInfo.getProductName().split(","));
|
||||
|
||||
List<SkuInfoPo> skuInfoPos=tbOrderInfoMapper.selectSkuByOrderId(orderInfo.getId().toString());
|
||||
if(Objects.isNull(skuInfoPos)||skuInfoPos.size()<0){
|
||||
skuInfoPos=new ArrayList<>();
|
||||
}
|
||||
|
||||
orderInfo.setSkuInfos(skuInfoPos);
|
||||
}
|
||||
PageInfo pageInfo = new PageInfo(list);
|
||||
log.info("获取订单:{}", JSONUtil.toJSONString(pageInfo));
|
||||
return Result.success(CodeEnum.SUCCESS, pageInfo);
|
||||
}
|
||||
|
||||
@@ -984,6 +1046,10 @@ public class OrderService {
|
||||
}
|
||||
|
||||
|
||||
if(!"miniapp".equals(orderInfo.getOrderType())){
|
||||
return Result.fail(CodeEnum.ISNOTAPPORDER);
|
||||
}
|
||||
|
||||
if("refund".equals(orderInfo.getStatus())){
|
||||
return Result.fail(CodeEnum.ORDERRETURN);
|
||||
}
|
||||
|
||||
@@ -504,7 +504,7 @@ public class PayService {
|
||||
|
||||
orderInfo.setPayAmount(orderInfo.getOrderAmount());
|
||||
orderInfo.setUserId(user.getUserId());
|
||||
orderInfo.setMemberId(memberId);
|
||||
orderInfo.setMemberId(user.getId().toString());
|
||||
orderInfo.setPayType("deposit");
|
||||
orderInfo.setStatus("closed");
|
||||
orderInfo.setPayOrderNo("deposit".concat(SnowFlakeUtil.generateOrderNo()));
|
||||
@@ -1014,16 +1014,11 @@ public class PayService {
|
||||
tbQuickPayMapper.insert(tbQuickPay);
|
||||
|
||||
|
||||
|
||||
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("token", token);
|
||||
jsonObject.put("type", "quick");
|
||||
jsonObject.put("amount",tbQuickPay.getAmount());
|
||||
producer.putOrderCollect(jsonObject.toJSONString());
|
||||
|
||||
|
||||
|
||||
return Result.success(CodeEnum.SUCCESS, tbQuickPay);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user