| @@ -1,10 +1,13 @@ | |||||
| package com.iformall.controller; | package com.iformall.controller; | ||||
| import com.alibaba.fastjson.JSON; | |||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.common.Result; | import com.iformall.common.Result; | ||||
| import com.iformall.common.ResultData; | import com.iformall.common.ResultData; | ||||
| import com.iformall.domain.dto.NeuPosUpdatePayDto; | |||||
| import com.iformall.domain.po.NeuPosOrderMasterExt; | import com.iformall.domain.po.NeuPosOrderMasterExt; | ||||
| import com.iformall.domain.po.WxActivity; | import com.iformall.domain.po.WxActivity; | ||||
| import com.iformall.domain.po.WxMallApply; | |||||
| import com.iformall.domain.vo.NeuPosOrderDataBVo; | import com.iformall.domain.vo.NeuPosOrderDataBVo; | ||||
| import com.iformall.domain.vo.NeuPosSumDataBVo; | import com.iformall.domain.vo.NeuPosSumDataBVo; | ||||
| import com.iformall.domain.vo.WxCouponOrderBVo; | import com.iformall.domain.vo.WxCouponOrderBVo; | ||||
| @@ -21,6 +24,8 @@ import org.slf4j.LoggerFactory; | |||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.web.bind.annotation.GetMapping; | import org.springframework.web.bind.annotation.GetMapping; | ||||
| import org.springframework.web.bind.annotation.ModelAttribute; | 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.RequestMapping; | ||||
| import org.springframework.web.bind.annotation.RestController; | 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); | 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<Map> 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()); | |||||
| } | |||||
| } | |||||
| } | } | ||||
| @@ -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; | |||||
| } | |||||
| @@ -2,6 +2,7 @@ package com.iformall.mapper; | |||||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | import com.baomidou.mybatisplus.core.mapper.BaseMapper; | ||||
| import com.iformall.domain.dto.NeuPosUpdatePayDto; | |||||
| import com.iformall.domain.po.NeuPosOrderMasterExt; | import com.iformall.domain.po.NeuPosOrderMasterExt; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| @@ -24,5 +25,16 @@ public interface NeuPosOrderMasterExtMapper extends BaseMapper<NeuPosOrderMaster | |||||
| List<String> selectOrgPayType(@Param("orgId") Integer orgId); | List<String> selectOrgPayType(@Param("orgId") Integer orgId); | ||||
| List<Map> queryOrderListByConditions(NeuPosOrderMasterExt example); | List<Map> queryOrderListByConditions(NeuPosOrderMasterExt example); | ||||
| Map queryMasterById(@Param("id") Long id); | |||||
| void updateOrderMasterPayStatus(@Param("orderNumber") String orderNumber,@Param("payStatus") Integer payStatus); | |||||
| List<Map> queryPayOrderByStatus(@Param("orderNumber") String orderNumber,@Param("payStatus") Integer payStatus); | |||||
| void insertPayOder(NeuPosUpdatePayDto neuPosUpdatePayDto); | |||||
| List<Map> queryDeviceList(@Param("organizationId") Long organizationId,@Param("shopId") Long shopId ); | |||||
| } | } | ||||
| @@ -6,6 +6,7 @@ import javax.servlet.http.HttpServletRequest; | |||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.dto.NeuPosUpdatePayDto; | |||||
| import com.iformall.domain.po.NeuPosOrderMasterExt; | import com.iformall.domain.po.NeuPosOrderMasterExt; | ||||
| public interface NeuPosOrderService { | public interface NeuPosOrderService { | ||||
| @@ -34,4 +35,10 @@ public interface NeuPosOrderService { | |||||
| PageInfo<Map> queryOrderList(NeuPosOrderMasterExt example,Integer pageIndex, Integer pageSize); | PageInfo<Map> queryOrderList(NeuPosOrderMasterExt example,Integer pageIndex, Integer pageSize); | ||||
| void exportData(List datas, String[] titleNames,String[] columnKeys,String fileName,Object voObject, HttpServletRequest request, HttpServletResponse response); | 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<Map> selectDeviceList(Long orgId,Long shopId); | |||||
| } | } | ||||
| @@ -2,6 +2,7 @@ package com.iformall.service.impl; | |||||
| import com.github.pagehelper.PageHelper; | import com.github.pagehelper.PageHelper; | ||||
| import com.github.pagehelper.PageInfo; | import com.github.pagehelper.PageInfo; | ||||
| import com.iformall.domain.dto.NeuPosUpdatePayDto; | |||||
| import com.iformall.domain.po.NeuPosOrderMasterExt; | import com.iformall.domain.po.NeuPosOrderMasterExt; | ||||
| import com.iformall.domain.vo.WxCouponOrderBVo; | import com.iformall.domain.vo.WxCouponOrderBVo; | ||||
| import com.iformall.mapper.NeuPosOrderMasterExtMapper; | import com.iformall.mapper.NeuPosOrderMasterExtMapper; | ||||
| @@ -12,15 +13,19 @@ import cn.afterturn.easypoi.excel.entity.params.ExcelExportEntity; | |||||
| import java.math.BigDecimal; | import java.math.BigDecimal; | ||||
| import java.util.ArrayList; | import java.util.ArrayList; | ||||
| import java.util.Date; | |||||
| import java.util.HashMap; | import java.util.HashMap; | ||||
| import java.util.List; | import java.util.List; | ||||
| import java.util.Map; | import java.util.Map; | ||||
| import java.util.Random; | |||||
| import javax.servlet.http.HttpServletRequest; | import javax.servlet.http.HttpServletRequest; | ||||
| import javax.servlet.http.HttpServletResponse; | import javax.servlet.http.HttpServletResponse; | ||||
| import org.springframework.beans.factory.annotation.Autowired; | import org.springframework.beans.factory.annotation.Autowired; | ||||
| import org.springframework.stereotype.Service; | import org.springframework.stereotype.Service; | ||||
| import org.springframework.transaction.annotation.Propagation; | |||||
| import org.springframework.transaction.annotation.Transactional; | |||||
| @Service | @Service | ||||
| public class NeuPosOrderServiceImpl implements NeuPosOrderService { | 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<Map> 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<Map> selectDeviceList(Long orgId, Long shopId) { | |||||
| return neuPosOrderMasterExtMapper.queryDeviceList(orgId, shopId); | |||||
| } | |||||
| } | } | ||||
| @@ -214,7 +214,7 @@ SELECT | |||||
| </select> | </select> | ||||
| <select id="queryOrderListByConditions" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map"> | <select id="queryOrderListByConditions" parameterType="com.iformall.domain.po.NeuPosOrderMasterExt" resultType="java.util.Map"> | ||||
| SELECT o.paid_time AS paidTime,o.order_number AS orderNumber,o.serial_no AS serialNo, | |||||
| SELECT o.id,o.shop_id as shopId,o.paid_time AS paidTime,o.order_number AS orderNumber,o.serial_no AS serialNo, | |||||
| o.order_amount/100 AS orderAmount, | o.order_amount/100 AS orderAmount, | ||||
| sum( IF ( p.pay_type = 29, pay_amount, 0 ) )/100 AS discountAmount, | sum( IF ( p.pay_type = 29, pay_amount, 0 ) )/100 AS discountAmount, | ||||
| o.real_pay_amount / 100 AS realPayAmount, | o.real_pay_amount / 100 AS realPayAmount, | ||||
| @@ -241,4 +241,26 @@ SELECT | |||||
| ORDER BY o.created_at desc | ORDER BY o.created_at desc | ||||
| </select> | </select> | ||||
| <select id="queryMasterById" parameterType="Integer" resultType="java.util.Map"> | |||||
| select * from order_master_v2 where id=#{id} | |||||
| </select> | |||||
| <update id="updateOrderMasterPayStatus" parameterType="java.util.Map"> | |||||
| update order_master_v2 set order_status=#{payStatus} where order_number=#{orderNumber} | |||||
| </update> | |||||
| <select id="queryPayOrderByStatus" parameterType="java.util.Map" resultType="java.util.Map"> | |||||
| select * from pay_order_v2 where m_order_number=#{orderNumber} and pay_status = #{payStatus} | |||||
| </select> | |||||
| <insert id="insertPayOder" parameterType="com.iformall.domain.dto.NeuPosUpdatePayDto"> | |||||
| 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()) | |||||
| </insert> | |||||
| <select id="queryDeviceList" parameterType="java.util.Map" resultType="java.util.Map"> | |||||
| select serial_no as serialNo,alias from device where status = 0 and organization_id = #{organizationId} and store_id = #{shopId} | |||||
| </select> | |||||
| </mapper> | </mapper> | ||||