Browse Source

收益订单

yuhaitao14 7 years ago
parent
commit
998039d19e

+ 37 - 6
shop/src/main/java/com/zskk/shop/controller/api/ApiController.java

@@ -8,16 +8,24 @@
 
 package com.zskk.shop.controller.api;
 
+import java.text.SimpleDateFormat;
+import java.util.List;
+
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
 import org.springframework.web.bind.annotation.RequestMapping;
 import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
 
-import com.alibaba.fastjson.JSON;
-import com.alibaba.fastjson.JSONObject;
 import com.zskk.shop.controller.bean.ControllerResult;
+import com.zskk.shop.controller.bean.IncomeBean;
+import com.zskk.shop.controller.bean.PageBean;
+import com.zskk.shop.dao.entry.BuyOrderItem;
+import com.zskk.shop.exception.ErrorConstant;
 import com.zskk.shop.service.BuyOrderService;
 
 @RequestMapping("/api")
+@Controller
 public class ApiController {
 	
 	@Autowired
@@ -25,14 +33,37 @@ public class ApiController {
 	
 	@RequestMapping("/refund")
 	public ControllerResult refund(@RequestParam("extend") String extend){
-		JSONObject obj = JSON.parseObject(extend);
-		buyOrderService.refund(Long.parseLong(extend));
+		//JSONObject obj = JSON.parseObject(extend);
+		//buyOrderService.refund(Long.parseLong(extend));
 		return new ControllerResult(Boolean.TRUE);
 	}
 	
 	@RequestMapping("/orders")
-	public ControllerResult orders(@RequestParam("stime") String stime, @RequestParam("etime") String time){
-		return null;
+	@ResponseBody
+	public ControllerResult orders(@RequestParam("stime") String stime, @RequestParam("etime") String etime, 
+			@RequestParam("page") Integer page, @RequestParam("pageSize") Integer pageSize){
+		
+		Integer s = null;
+		Integer e = null;
+		
+		SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+		try{
+			s = (int)(format.parse(stime).getTime()/1000);
+			e = (int)(format.parse(etime).getTime()/1000);
+		}catch (Exception exception) {
+			return new ControllerResult(ErrorConstant.PARAM_ERROR);
+		}
+		
+		List<BuyOrderItem> items = buyOrderService.queryPayedOrderItems(s, e, page, pageSize);
+		Integer count			 = buyOrderService.queryPayedOrderItemCount(s, e);
+		
+		List<IncomeBean> beans   = buyOrderService.toIncomeBeans(items, format);
+		
+		PageBean pageBean 		 = new PageBean();
+		pageBean.setList(beans);
+		pageBean.setTotalCount(count);
+		
+		return new ControllerResult(pageBean);
 	}
 	
 	@RequestMapping("refundOrders")

+ 33 - 0
shop/src/main/java/com/zskk/shop/controller/bean/BuyUserBean.java

@@ -0,0 +1,33 @@
+/**
+* @版权信息 (@copyright Copyright 2017-XXXX JDJR.COM All Right Reserved);
+* @see
+* @author 于海涛 京东金融【技术研发部-证券及营销平台研发部-营销平台研发部】
+* @version 1.0
+* @date 2018年6月13日
+*/
+
+package com.zskk.shop.controller.bean;
+
+public class BuyUserBean {
+	private String uid;
+	private String uname;
+	private String uphone;
+	public String getUid() {
+		return uid;
+	}
+	public void setUid(String uid) {
+		this.uid = uid;
+	}
+	public String getUname() {
+		return uname;
+	}
+	public void setUname(String uname) {
+		this.uname = uname;
+	}
+	public String getUphone() {
+		return uphone;
+	}
+	public void setUphone(String uphone) {
+		this.uphone = uphone;
+	}
+}

+ 89 - 0
shop/src/main/java/com/zskk/shop/controller/bean/IncomeBean.java

@@ -0,0 +1,89 @@
+/**
+* @版权信息 (@copyright Copyright 2017-XXXX JDJR.COM All Right Reserved);
+* @see
+* @author 于海涛 京东金融【技术研发部-证券及营销平台研发部-营销平台研发部】
+* @version 1.0
+* @date 2018年6月13日
+*/
+
+package com.zskk.shop.controller.bean;
+
+public class IncomeBean {
+	private Long id;
+	private String packageid;
+	private String packageName;
+	private String totalPrice;
+	private Integer paytype;
+	private String paytypeName;
+	private String paytime;
+	private Integer isRefund;
+	private String refundTime;
+	private BuyUserBean buyUser;
+	private FamilyPeopleBean appointmentUser;
+	public Long getId() {
+		return id;
+	}
+	public void setId(Long id) {
+		this.id = id;
+	}
+	public String getPackageid() {
+		return packageid;
+	}
+	public void setPackageid(String packageid) {
+		this.packageid = packageid;
+	}
+	public String getPackageName() {
+		return packageName;
+	}
+	public void setPackageName(String packageName) {
+		this.packageName = packageName;
+	}
+	public String getTotalPrice() {
+		return totalPrice;
+	}
+	public void setTotalPrice(String totalPrice) {
+		this.totalPrice = totalPrice;
+	}
+	public Integer getPaytype() {
+		return paytype;
+	}
+	public void setPaytype(Integer paytype) {
+		this.paytype = paytype;
+	}
+	public String getPaytypeName() {
+		return paytypeName;
+	}
+	public void setPaytypeName(String paytypeName) {
+		this.paytypeName = paytypeName;
+	}
+	public String getPaytime() {
+		return paytime;
+	}
+	public void setPaytime(String paytime) {
+		this.paytime = paytime;
+	}
+	public BuyUserBean getBuyUser() {
+		return buyUser;
+	}
+	public void setBuyUser(BuyUserBean buyUser) {
+		this.buyUser = buyUser;
+	}
+	public FamilyPeopleBean getAppointmentUser() {
+		return appointmentUser;
+	}
+	public void setAppointmentUser(FamilyPeopleBean appointmentUser) {
+		this.appointmentUser = appointmentUser;
+	}
+	public Integer getIsRefund() {
+		return isRefund;
+	}
+	public void setIsRefund(Integer isRefund) {
+		this.isRefund = isRefund;
+	}
+	public String getRefundTime() {
+		return refundTime;
+	}
+	public void setRefundTime(String refundTime) {
+		this.refundTime = refundTime;
+	}
+}

+ 1 - 1
shop/src/main/java/com/zskk/shop/controller/web/BuyOrderController.java

@@ -155,7 +155,7 @@ public class BuyOrderController extends AbstractController {
 		UserBean user			= userInfo.getUser();
 		AccountBean account		= userInfo.getAccount();
 		String orderid			= buyOrderService.createOrderId(buyOrder, paytype);
-		buyOrderService.saveOrderId(buyOrder, orderid);
+		buyOrderService.saveOrderId(buyOrder, orderid, paytype);
 		ControllerResult result = userCenterService.createQRCode(account, user, buyOrder, goodBase, paytype, orderid);
 		return result;
 	}

+ 3 - 0
shop/src/main/java/com/zskk/shop/dao/BuyOrderMapper.java

@@ -35,4 +35,7 @@ public interface BuyOrderMapper {
 	public BuyOrder queryByOrderid(String orderid);
 	
 	public int setItemRefund(BuyOrderItem item);
+	
+	List<BuyOrderItem> queryPayedOrderItems(@Param("stime") Integer stime, @Param("etime") Integer etime, @Param("start") Integer start, @Param("pageSize") Integer pageSize);
+	Integer queryPayedOrderItemCount(@Param("stime") Integer stime, @Param("etime") Integer etime);
 }

+ 7 - 0
shop/src/main/java/com/zskk/shop/dao/entry/BuyOrder.java

@@ -20,6 +20,7 @@ public class BuyOrder {
 	private Integer isDel;
 	private Integer appointmentNum;
 	private String orderid;
+	private Integer paytype;
 	private Integer ctime;
 	private Integer ptime;
 	public Long getId() {
@@ -88,4 +89,10 @@ public class BuyOrder {
 	public void setOrderid(String orderid) {
 		this.orderid = orderid;
 	}
+	public Integer getPaytype() {
+		return paytype;
+	}
+	public void setPaytype(Integer paytype) {
+		this.paytype = paytype;
+	}
 }

+ 104 - 1
shop/src/main/java/com/zskk/shop/service/BuyOrderService.java

@@ -9,19 +9,27 @@
 package com.zskk.shop.service;
 
 import java.math.BigDecimal;
+import java.math.RoundingMode;
+import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Calendar;
+import java.util.Date;
 import java.util.List;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.alibaba.druid.util.FnvHash;
 import com.zskk.shop.controller.bean.BuyOrderBean;
 import com.zskk.shop.controller.bean.BuyOrderItemBean;
+import com.zskk.shop.controller.bean.BuyUserBean;
+import com.zskk.shop.controller.bean.FamilyPeopleBean;
+import com.zskk.shop.controller.bean.IncomeBean;
 import com.zskk.shop.dao.BuyOrderMapper;
 import com.zskk.shop.dao.entry.BuyOrder;
 import com.zskk.shop.dao.entry.BuyOrderItem;
+import com.zskk.shop.dao.entry.FamilyPeopleAppointment;
 import com.zskk.shop.dao.entry.GoodBase;
 import com.zskk.shop.dao.entry.GoodPrice;
 import com.zskk.shop.exception.ErrorConstant;
@@ -218,8 +226,9 @@ public class BuyOrderService {
 	 * @param orderid
 	 * @return
 	 */
-	public Integer saveOrderId(BuyOrder buyOrder, String orderid){
+	public Integer saveOrderId(BuyOrder buyOrder, String orderid, Integer paytype){
 		buyOrder.setOrderid(orderid);
+		buyOrder.setPaytype(paytype);
 		return buyOrderMapper.setOrderid(buyOrder);
 	}
 	
@@ -312,4 +321,98 @@ public class BuyOrderService {
 		
 		return bean;
 	}
+	
+	/**
+	 * 查询已支付订单 
+	 * @param stime
+	 * @param etime
+	 * @param page
+	 * @param pageSize
+	 * @return
+	 */
+	public List<BuyOrderItem> queryPayedOrderItems(Integer stime, Integer etime, Integer page, Integer pageSize){
+		return buyOrderMapper.queryPayedOrderItems(stime, etime, (page-1) * pageSize, pageSize);
+	}
+	
+	/**
+	 * 查询已支付订单 数量 
+	 * @param stime
+	 * @param etime
+	 * @param page
+	 * @param pageSize
+	 * @return
+	 */
+	public Integer queryPayedOrderItemCount(Integer stime, Integer etime){
+		return buyOrderMapper.queryPayedOrderItemCount(stime, etime);
+	}
+	
+	public List<IncomeBean> toIncomeBeans(List<BuyOrderItem> items, SimpleDateFormat format){
+		List<IncomeBean> beans = new ArrayList<>(items.size());
+		for (BuyOrderItem item: items){
+			beans.add(this.toIncomeBean(item, format));
+		}
+		return beans;
+	}
+	
+	/**
+	 * 对象转换
+	 * @param item
+	 * @return
+	 */
+	public IncomeBean toIncomeBean(BuyOrderItem item, SimpleDateFormat format){
+		BuyOrder order 						 = this.queryBuyOrder(item.getBid());
+		GoodBase good  						 = goodService.queryOneGoodBase(item.getGid());
+		FamilyPeopleAppointment familyPeople = familyPeopleService.getAppointmentFamilyPeoples(item.getBid(), item.getId());
+		
+		IncomeBean bean = new IncomeBean();
+		bean.setId(item.getId());
+		bean.setIsRefund(item.getIsRefund());
+		if (item.getIsRefund().equals(1)){
+			bean.setRefundTime(this.getDate(item.getRefundTime(), format));
+		}
+		bean.setPaytime(getDate(order.getPtime(), format));
+		bean.setPackageid(good.getPackageid());
+		bean.setPackageName(good.getPackageName());
+		bean.setPaytype(order.getPaytype());
+		bean.setPaytypeName(this.getPaytypeNmae(order.getPaytype()));
+		bean.setTotalPrice(item.getTotalPrice().setScale(2, RoundingMode.HALF_UP).toString());
+		
+		BuyUserBean buyUser = new BuyUserBean();
+		buyUser.setUid(order.getUid());
+		buyUser.setUname(order.getUname());
+		buyUser.setUphone(order.getUphone());
+		bean.setBuyUser(buyUser);
+		
+		if (familyPeople != null){
+			FamilyPeopleBean fbean = new FamilyPeopleBean();
+			fbean.setAddress(familyPeople.getAddress());
+			fbean.setBirth(familyPeople.getBirth());
+			fbean.setId(familyPeople.getId());
+			fbean.setIdcard(familyPeople.getIdcard());
+			fbean.setName(familyPeople.getName());
+			fbean.setPhone(familyPeople.getPhone());
+			fbean.setSex(familyPeople.getSex());
+			bean.setAppointmentUser(fbean);
+		}
+		
+		return bean;
+	}
+	
+	private String getDate(Integer time, SimpleDateFormat format){
+		return format.format(new Date(time * 1000L));
+	}
+	
+	private String getPaytypeNmae(Integer paytype){
+		if (paytype == null){
+			return "未知";
+		}
+		switch(paytype){
+			case 1:
+				return "支付宝";
+			case 2:
+				return "微信";
+			default:
+				return "未知";
+		}
+	}
 }

+ 29 - 3
shop/src/main/resource/mapper/BuyOrderMapper.xml

@@ -3,7 +3,7 @@
 <mapper namespace="com.zskk.shop.dao.BuyOrderMapper">
 	<sql id="selectBuyOrder">
 		id, uid, uphone, uname, total_price as totalPrice, pay_status as payStatus, 
-		is_del as isDel, appointment_num as appointmentNum, orderid, ctime, ptime
+		is_del as isDel, appointment_num as appointmentNum, orderid, paytype, ctime, ptime
 	</sql>
 	<select id="queryMyBuyOrders" resultType="com.zskk.shop.dao.entry.BuyOrder">
 		select <include refid="selectBuyOrder"></include>	
@@ -48,7 +48,7 @@
 	</update>
 	
 	<sql id="items">
-		id, bid, gid, num, price, total_price as totalPrice, ctime
+		id, bid, gid, num, price, total_price as totalPrice, ctime, is_refund as isRefund, refundid, refund_time as refundTime
 	</sql>
 	<select id="queryItems" resultType="com.zskk.shop.dao.entry.BuyOrderItem">
 		select <include refid="items"></include>
@@ -68,7 +68,7 @@
 	</insert>
 	
 	<update id="setOrderid" parameterType="com.zskk.shop.dao.entry.BuyOrder">
-		update buy_order set orderid=#{orderid} where id=#{id};
+		update buy_order set orderid=#{orderid}, paytype=#{paytype} where id=#{id};
 	</update>
 	<select id="queryByOrderid" resultType="com.zskk.shop.dao.entry.BuyOrder">
 		select <include refid="selectBuyOrder"></include>
@@ -80,4 +80,30 @@
 		update buy_order_item set is_refund=#{isRefund}, refundid=#{refundid}, refund_time=#{refundTime}
 		where id=#{id}
 	</select>
+
+	<select id="queryPayedOrderItems" resultType="com.zskk.shop.dao.entry.BuyOrderItem">
+		select boi.id, boi.bid, boi.gid, boi.num, boi.price, boi.total_price as totalPrice, boi.ctime,
+			boi.is_refund as isRefund, boi.refundid, boi.refund_time as refundTime
+		from buy_order_item boi join buy_order bo on boi.bid=bo.id
+		where bo.pay_status=1 
+		<if test="stime != null">
+			and bo.ptime <![CDATA[>=]]> #{stime}
+		</if>
+		<if test="etime != null">
+			and bo.ptime <![CDATA[<=]]> #{etime}
+		</if>
+		order by bo.ptime desc
+		limit #{start},#{pageSize}
+	</select>
+	<select id="queryPayedOrderItemCount" resultType="java.lang.Integer">
+		select count(boi.id) as totalCount
+		from buy_order_item boi join buy_order bo on boi.bid=bo.id
+		where bo.pay_status=1 
+		<if test="stime != null">
+			and bo.ptime <![CDATA[>=]]> #{stime}
+		</if>
+		<if test="etime != null">
+			and bo.ptime <![CDATA[<=]]> #{etime}
+		</if>
+	</select>
 </mapper>

+ 1 - 1
shop/src/main/resource/mapper/FamilyPeopleMapper.xml

@@ -34,7 +34,7 @@
 		select f.id, f.uid, f.name, f.phone, f.idcard, f.ctime, f.is_del as isDel,
 			a.id as aid, a.atime, a.extend, a.tjstatus, a.report_url as reportUrl
 		from family_people f join appointment a on f.id=a.fid
-		where a.bid=#{bid} and a.itemid=${itemid}
+		where a.bid=#{bid} and a.itemid=#{itemid}
 		limit 1
 	</select>
 	<select id="queryAppointment" resultType="com.zskk.shop.dao.entry.Appointment">