| @@ -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<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.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<NeuPosOrderMaster | |||
| List<String> selectOrgPayType(@Param("orgId") Integer orgId); | |||
| 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 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<Map> 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<Map> selectDeviceList(Long orgId,Long shopId); | |||
| } | |||
| @@ -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<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 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, | |||
| sum( IF ( p.pay_type = 29, pay_amount, 0 ) )/100 AS discountAmount, | |||
| o.real_pay_amount / 100 AS realPayAmount, | |||
| @@ -241,4 +241,26 @@ SELECT | |||
| ORDER BY o.created_at desc | |||
| </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> | |||