diff --git a/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java b/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java index ead9e9667..5c71c2ce8 100644 --- a/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java +++ b/mallinkNeuPosAdmin/src/main/java/com/iformall/controller/NeuPosAdminController.java @@ -1,10 +1,13 @@ package com.iformall.controller; +import com.alibaba.fastjson.JSON; import com.github.pagehelper.PageInfo; import com.iformall.common.Result; import com.iformall.common.ResultData; +import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; import com.iformall.domain.po.WxActivity; +import com.iformall.domain.po.WxMallApply; import com.iformall.domain.vo.NeuPosOrderDataBVo; import com.iformall.domain.vo.NeuPosSumDataBVo; import com.iformall.domain.vo.WxCouponOrderBVo; @@ -21,6 +24,8 @@ import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.ModelAttribute; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -201,4 +206,37 @@ public class NeuPosAdminController extends BaseController { new String[] {"orderNumber","serialNo","orderAmount","discountAmount","payTypeName","paidTime","orderStatus"},"pos交易明细",new NeuPosOrderDataBVo(), request, response); } } + + @GetMapping("deviceList") + @ApiImplicitParams({ + @ApiImplicitParam(name = "shopId", value = "租户号", dataType = "Long", paramType = "query", required = true)}) + public ResultData deviceList(Long shopId) { + if (null == shopId) { + return new ResultData(Result.ERROR,"shopId is null."); + } + List maplist = neuPosOrderService.selectDeviceList(24L, shopId); + return new ResultData(maplist); + } + + + @GetMapping("orderDetail") + @ApiImplicitParams({ + @ApiImplicitParam(name = "id", value = "订单编号", dataType = "Long", paramType = "query", required = true)}) + public ResultData orderDetail(Long id) { + return new ResultData(neuPosOrderService.queyMasterOrderDetail(id)); + } + + @PostMapping("updatePayStatus") + public ResultData updatePayStatus(@RequestBody NeuPosUpdatePayDto neuPosUpdatePay) { + logger.info(" updatePayStatus :"+JSON.toJSONString(neuPosUpdatePay)); + try { + neuPosOrderService.updatePayStatus(neuPosUpdatePay); + return new ResultData(); + }catch(Exception e) { + logger.error("updatePayStatus error.",e); + return new ResultData(Result.ERROR,e.getMessage()); + } + + + } } diff --git a/mallinkService/src/main/java/com/iformall/domain/dto/NeuPosUpdatePayDto.java b/mallinkService/src/main/java/com/iformall/domain/dto/NeuPosUpdatePayDto.java new file mode 100644 index 000000000..d098086f8 --- /dev/null +++ b/mallinkService/src/main/java/com/iformall/domain/dto/NeuPosUpdatePayDto.java @@ -0,0 +1,29 @@ +package com.iformall.domain.dto; + +import lombok.Data; + +@Data +public class NeuPosUpdatePayDto { + + @io.swagger.annotations.ApiModelProperty(value = "订单编号", name = "订单编号") + private String orderNumber ; + @io.swagger.annotations.ApiModelProperty(value = "支付状态", name = "支付状态") + private Integer payStatus ; + @io.swagger.annotations.ApiModelProperty(value = "实际支付金额", name = "实际支付金额") + private Integer realPayAmount ; + @io.swagger.annotations.ApiModelProperty(value = "设备", name = "设备") + private String deviceId ; + private String deviceName ; + @io.swagger.annotations.ApiModelProperty(value = "支付类型", name = "设备") + private Integer payType; + private String payTypeName; + @io.swagger.annotations.ApiModelProperty(value = "订单金额", name = "订单金额") + private Integer payAmount; + @io.swagger.annotations.ApiModelProperty(value = "退款金额", name = "退款金额") + private Integer refundAmount = 0 ; + + + private String tradeId; + private String description; + +} diff --git a/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java b/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java index 88c052b52..538c98829 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/NeuPosOrderMasterExtMapper.java @@ -2,6 +2,7 @@ package com.iformall.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; import java.util.List; import java.util.Map; @@ -24,5 +25,16 @@ public interface NeuPosOrderMasterExtMapper extends BaseMapper selectOrgPayType(@Param("orgId") Integer orgId); List queryOrderListByConditions(NeuPosOrderMasterExt example); + + + Map queryMasterById(@Param("id") Long id); + + void updateOrderMasterPayStatus(@Param("orderNumber") String orderNumber,@Param("payStatus") Integer payStatus); + + List queryPayOrderByStatus(@Param("orderNumber") String orderNumber,@Param("payStatus") Integer payStatus); + + void insertPayOder(NeuPosUpdatePayDto neuPosUpdatePayDto); + + List queryDeviceList(@Param("organizationId") Long organizationId,@Param("shopId") Long shopId ); } diff --git a/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java b/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java index b37dd9b23..72889438a 100644 --- a/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java +++ b/mallinkService/src/main/java/com/iformall/service/NeuPosOrderService.java @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.github.pagehelper.PageInfo; +import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; public interface NeuPosOrderService { @@ -34,4 +35,10 @@ public interface NeuPosOrderService { PageInfo queryOrderList(NeuPosOrderMasterExt example,Integer pageIndex, Integer pageSize); void exportData(List datas, String[] titleNames,String[] columnKeys,String fileName,Object voObject, HttpServletRequest request, HttpServletResponse response); + + Map queyMasterOrderDetail(Long id); + + void updatePayStatus(NeuPosUpdatePayDto updatePay); + + List selectDeviceList(Long orgId,Long shopId); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java index 92b66b42e..f614d910e 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/NeuPosOrderServiceImpl.java @@ -2,6 +2,7 @@ package com.iformall.service.impl; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.iformall.domain.dto.NeuPosUpdatePayDto; import com.iformall.domain.po.NeuPosOrderMasterExt; import com.iformall.domain.vo.WxCouponOrderBVo; import com.iformall.mapper.NeuPosOrderMasterExtMapper; @@ -12,15 +13,19 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; import java.math.BigDecimal; import java.util.ArrayList; +import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.Random; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Propagation; +import org.springframework.transaction.annotation.Transactional; @Service public class NeuPosOrderServiceImpl implements NeuPosOrderService { @@ -104,6 +109,64 @@ public class NeuPosOrderServiceImpl implements NeuPosOrderService { } + @Override + @Transactional(propagation = Propagation.REQUIRED, readOnly = false, rollbackFor = {Exception.class}) + public void updatePayStatus(NeuPosUpdatePayDto updatePay) { + Integer payStatus = null; + if ("1".equals(updatePay.getPayStatus())) { + payStatus = 1; + }else if ("2".equals(updatePay.getPayStatus())) { + payStatus = 3; + }else if ("3".equals(updatePay.getPayStatus())) { + payStatus = 1; + }else if ("4".equals(updatePay.getPayStatus())) { + payStatus = 1; + }else if ("5".equals(updatePay.getPayStatus())) { + payStatus = 2; + }else if ("6".equals(updatePay.getPayStatus())) { + payStatus = 4; + }else if ("7".equals(updatePay.getPayStatus())) { + payStatus = 4; + }else if ("8".equals(updatePay.getPayStatus())) { + payStatus = 4; + }else if ("9".equals(updatePay.getPayStatus())) { + payStatus = 5; + } + neuPosOrderMasterExtMapper.updateOrderMasterPayStatus(updatePay.getOrderNumber(), updatePay.getPayStatus()); + List payOrderList = neuPosOrderMasterExtMapper.queryPayOrderByStatus(updatePay.getOrderNumber(), payStatus); + if (null == payOrderList || payOrderList.size() <= 0 ) { + updatePay.setTradeId(generateTradeId()); + updatePay.setDescription("手动更改支付状态"); + updatePay.setPayStatus(payStatus); + neuPosOrderMasterExtMapper.insertPayOder(updatePay); + } + + } + private static String generateTradeId() { + String tradeId = (new Date()).getTime()+random(5,"0123456789"); + return tradeId; + } + + private static String random(int count,String value) { + StringBuffer sb = new StringBuffer(); + Random r = new Random(); + for (int i = 0 ; i < count; i++) { + int num = r.nextInt(value.length()); + sb.append(value.charAt(num)); + } + return sb.toString(); + } + + @Override + public Map queyMasterOrderDetail(Long id) { + return neuPosOrderMasterExtMapper.queryMasterById(id); + } + + @Override + public List selectDeviceList(Long orgId, Long shopId) { + return neuPosOrderMasterExtMapper.queryDeviceList(orgId, shopId); + } + } diff --git a/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml b/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml index 0c3173bb3..ff09102e0 100644 --- a/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml +++ b/mallinkService/src/main/resources/mapper/NeuPosOrderMasterExtMapper.xml @@ -214,7 +214,7 @@ SELECT + + + + update order_master_v2 set order_status=#{payStatus} where order_number=#{orderNumber} + + + + + + insert into pay_order_v2(m_order_number,trade_id,device_id,device_name,description,pay_type,pay_type_name,pay_amount,refunded_amount, + time_expire,pay_status,pay_time,version,trade_type,created_at,created_by,updated_by,updated_at) + values (#{orderNumber},#{tradeId},#{deviceId},#{deviceName},#{description},#{payType},#{payTypeName},#{realPayAmount},#{refundAmount}, + now(),#{payStatus},now(),1,"NATIVE",now(),"system","system",now()) + + + \ No newline at end of file