فهرست منبع

会员订单表开发

ZhangWenQiang 6 سال پیش
والد
کامیت
9b1d6f9634

+ 16 - 0
happy-job-base-system/src/main/webapp/webpage/modules/sys/hppay/hpAliPayAccountList.js

@@ -254,6 +254,22 @@ $(document).ready(function() {
           	   
 		})
   }
+
+function del(id){
+
+    jp.confirm('确认要删除该支付宝支付账号记录吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/sys/hpPayAccount/delete?id=" + id, function(data){
+            if(data.success){
+                $('#hpPayAccountTable').bootstrapTable('refresh');
+                jp.success(data.msg);
+            }else{
+                jp.error(data.msg);
+            }
+        })
+
+    })
+}
   function refresh(){
   	$('#hpPayAccountTable').bootstrapTable('refresh');
   }

+ 16 - 21
happy-job-base-system/src/main/webapp/webpage/modules/sys/hppay/hpPayAccountList.js

@@ -75,27 +75,6 @@ $(document).ready(function() {
 		       
 		    }
 			,{
-		        field: 'appId',
-		        title: '支付appId',
-		        sortable: false,
-		        sortName: 'appId'
-		        ,formatter:function(value, row , index){
-		        	value = jp.unescapeHTML(value);
-				   <c:choose>
-					   <c:when test="${fns:hasPermission('sys:hpPayAccount:edit')}">
-					      return "<a href='javascript:edit(\""+row.id+"\")'>"+value+"</a>";
-				      </c:when>
-					  <c:when test="${fns:hasPermission('sys:hpPayAccount:view')}">
-					      return "<a href='javascript:view(\""+row.id+"\")'>"+value+"</a>";
-				      </c:when>
-					  <c:otherwise>
-					      return value;
-				      </c:otherwise>
-				   </c:choose>
-		         }
-		       
-		    }
-			,{
 		        field: 'mchId',
 		        title: '支付商户号',
 		        sortable: false,
@@ -254,6 +233,22 @@ $(document).ready(function() {
           	   
 		})
   }
+
+function del(id){
+
+    jp.confirm('确认要删除该微信支付账号记录吗?', function(){
+        jp.loading();
+        jp.get("${ctx}/sys/hpPayAccount/delete?id=" + id, function(data){
+            if(data.success){
+                $('#hpPayAccountTable').bootstrapTable('refresh');
+                jp.success(data.msg);
+            }else{
+                jp.error(data.msg);
+            }
+        })
+
+    })
+}
   function refresh(){
   	$('#hpPayAccountTable').bootstrapTable('refresh');
   }

+ 1 - 1
happy-job-module-hppay/src/main/java/com/jeeplus/modules/wechatpay/utils/WeChatPay.java

@@ -144,7 +144,7 @@ public class WeChatPay {
                 // 返回支付参数
                 SortedMap<Object, Object> params = new TreeMap<Object, Object>();
                 /**
-                 * 小程序调起支付数据签名字段列表
+                 * APP调起支付数据签名字段列表
                  */
                 params.put("timeStamp", new Date().getTime() + ""); // 时间戳
                 params.put("nonceStr", WxCommonUtil.createNoncestr()); // 随机字符串

+ 16 - 0
happy-job-module-hpvip/src/main/java/com/jeeplus/modules/api/ordermanager/OrderControllerAPI.java

@@ -0,0 +1,16 @@
+package com.jeeplus.modules.api.ordermanager;
+
+import com.jeeplus.modules.api.sys.BaseAppController;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.RequestMapping;
+
+/**
+ * @Author: zwq
+ * @Description:会员订单中心
+ * @Date: Create in 12:54 2019/11/5
+ */
+@Controller
+@RequestMapping(value = "${frontPath}/api/order")
+public class OrderControllerAPI extends BaseAppController {
+
+}

+ 102 - 0
happy-job-module-hpvip/src/main/java/com/jeeplus/modules/mporder/entity/MpMemberOrder.java

@@ -0,0 +1,102 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.mporder.entity;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+
+import com.jeeplus.core.persistence.DataEntity;
+import com.jeeplus.common.utils.excel.annotation.ExcelField;
+
+/**
+ * 会员订单Entity
+ * @author zwq
+ * @version 2019-11-05
+ */
+public class MpMemberOrder extends DataEntity<MpMemberOrder> {
+	
+	private static final long serialVersionUID = 1L;
+	private String orderNumber;		// 订单编号
+	private Integer memberId;		// 会员id
+	private Date orderTime;		// 下单时间
+	private Double actuallymoney;		// 实际付款金额
+	private Integer orderStatus;		// 订单状态(0 :订单待支付,1:订单已取消,2:订单已超时,3:待发货,4:订单待收货,5:订单已完成,6:退款中,7:退款失败,8:退款成功;9:订单已关闭)
+	private Date payTime;		// 支付时间
+	private String prepayId;		// 支付场景下,为本次支付的 prepay_id
+	
+	public MpMemberOrder() {
+		super();
+		this.setIdType(IDTYPE_AUTO);
+	}
+
+	public MpMemberOrder(String id){
+		super(id);
+	}
+
+	@ExcelField(title="订单编号", align=2, sort=7)
+	public String getOrderNumber() {
+		return orderNumber;
+	}
+
+	public void setOrderNumber(String orderNumber) {
+		this.orderNumber = orderNumber;
+	}
+	
+	@ExcelField(title="会员id", align=2, sort=8)
+	public Integer getMemberId() {
+		return memberId;
+	}
+
+	public void setMemberId(Integer memberId) {
+		this.memberId = memberId;
+	}
+	
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelField(title="下单时间", align=2, sort=9)
+	public Date getOrderTime() {
+		return orderTime;
+	}
+
+	public void setOrderTime(Date orderTime) {
+		this.orderTime = orderTime;
+	}
+	
+	@ExcelField(title="实际付款金额", align=2, sort=10)
+	public Double getActuallymoney() {
+		return actuallymoney;
+	}
+
+	public void setActuallymoney(Double actuallymoney) {
+		this.actuallymoney = actuallymoney;
+	}
+	
+	@ExcelField(title="订单状态(0 :订单待支付,1:订单已取消,2:订单已超时,3:待发货,4:订单待收货,5:订单已完成,6:退款中,7:退款失败,8:退款成功;9:订单已关闭)", align=2, sort=11)
+	public Integer getOrderStatus() {
+		return orderStatus;
+	}
+
+	public void setOrderStatus(Integer orderStatus) {
+		this.orderStatus = orderStatus;
+	}
+	
+	@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
+	@ExcelField(title="支付时间", align=2, sort=12)
+	public Date getPayTime() {
+		return payTime;
+	}
+
+	public void setPayTime(Date payTime) {
+		this.payTime = payTime;
+	}
+	
+	@ExcelField(title="支付场景下,为本次支付的 prepay_id", align=2, sort=13)
+	public String getPrepayId() {
+		return prepayId;
+	}
+
+	public void setPrepayId(String prepayId) {
+		this.prepayId = prepayId;
+	}
+	
+}

+ 18 - 0
happy-job-module-hpvip/src/main/java/com/jeeplus/modules/mporder/mapper/MpMemberOrderMapper.java

@@ -0,0 +1,18 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.mporder.mapper;
+
+import com.jeeplus.core.persistence.BaseMapper;
+import com.jeeplus.core.persistence.annotation.MyBatisMapper;
+import com.jeeplus.modules.mporder.entity.MpMemberOrder;
+
+/**
+ * 会员订单MAPPER接口
+ * @author zwq
+ * @version 2019-11-05
+ */
+@MyBatisMapper
+public interface MpMemberOrderMapper extends BaseMapper<MpMemberOrder> {
+	
+}

+ 140 - 0
happy-job-module-hpvip/src/main/java/com/jeeplus/modules/mporder/mapper/xml/MpMemberOrderMapper.xml

@@ -0,0 +1,140 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.jeeplus.modules.mporder.mapper.MpMemberOrderMapper">
+    
+	<sql id="mpMemberOrderColumns">
+		a.id AS "id",
+		a.create_by AS "createBy.id",
+		a.create_date AS "createDate",
+		a.update_by AS "updateBy.id",
+		a.update_date AS "updateDate",
+		a.remarks AS "remarks",
+		a.del_flag AS "delFlag",
+		a.order_number AS "orderNumber",
+		a.member_id AS "memberId",
+		a.order_time AS "orderTime",
+		a.actuallymoney AS "actuallymoney",
+		a.order_status AS "orderStatus",
+		a.pay_time AS "payTime",
+		a.prepay_id AS "prepayId"
+	</sql>
+	
+	<sql id="mpMemberOrderJoins">
+		
+	</sql>
+	
+    
+	<select id="get" resultType="MpMemberOrder" >
+		SELECT 
+			<include refid="mpMemberOrderColumns"/>
+		FROM mp_member_order a
+		<include refid="mpMemberOrderJoins"/>
+		WHERE a.id = #{id}
+	</select>
+	
+	<select id="findList" resultType="MpMemberOrder" >
+		SELECT 
+			<include refid="mpMemberOrderColumns"/>
+		FROM mp_member_order a
+		<include refid="mpMemberOrderJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			${dataScope}
+		</where>
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<select id="findAllList" resultType="MpMemberOrder" >
+		SELECT 
+			<include refid="mpMemberOrderColumns"/>
+		FROM mp_member_order a
+		<include refid="mpMemberOrderJoins"/>
+		<where>
+			a.del_flag = #{DEL_FLAG_NORMAL}
+			${dataScope}
+		</where>		
+		<choose>
+			<when test="page !=null and page.orderBy != null and page.orderBy != ''">
+				ORDER BY ${page.orderBy}
+			</when>
+			<otherwise>
+				ORDER BY a.update_date DESC
+			</otherwise>
+		</choose>
+	</select>
+	
+	<insert id="insert" keyProperty="id" useGeneratedKeys="true" parameterType="MpMemberOrder">
+		INSERT INTO mp_member_order(
+			create_by,
+			create_date,
+			update_by,
+			update_date,
+			remarks,
+			del_flag,
+			order_number,
+			member_id,
+			order_time,
+			actuallymoney,
+			order_status,
+			pay_time,
+			prepay_id
+		) VALUES (
+			#{createBy.id},
+			#{createDate},
+			#{updateBy.id},
+			#{updateDate},
+			#{remarks},
+			#{delFlag},
+			#{orderNumber},
+			#{memberId},
+			#{orderTime},
+			#{actuallymoney},
+			#{orderStatus},
+			#{payTime},
+			#{prepayId}
+		)
+	</insert>
+	
+	<update id="update">
+		UPDATE mp_member_order SET 	
+			update_by = #{updateBy.id},
+			update_date = #{updateDate},
+			remarks = #{remarks},
+			order_number = #{orderNumber},
+			member_id = #{memberId},
+			order_time = #{orderTime},
+			actuallymoney = #{actuallymoney},
+			order_status = #{orderStatus},
+			pay_time = #{payTime},
+			prepay_id = #{prepayId}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!--物理删除-->
+	<update id="delete">
+		DELETE FROM mp_member_order
+		WHERE id = #{id}
+	</update>
+	
+	<!--逻辑删除-->
+	<update id="deleteByLogic">
+		UPDATE mp_member_order SET 
+			del_flag = #{DEL_FLAG_DELETE}
+		WHERE id = #{id}
+	</update>
+	
+	
+	<!-- 根据实体名称和字段名称和字段值获取唯一记录 -->
+	<select id="findUniqueByProperty" resultType="MpMemberOrder" statementType="STATEMENT">
+		select * FROM mp_member_order  where ${propertyName} = '${value}'
+	</select>
+	
+</mapper>

+ 47 - 0
happy-job-module-hpvip/src/main/java/com/jeeplus/modules/mporder/service/MpMemberOrderService.java

@@ -0,0 +1,47 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.mporder.service;
+
+import java.util.List;
+
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.service.CrudService;
+import com.jeeplus.modules.mporder.entity.MpMemberOrder;
+import com.jeeplus.modules.mporder.mapper.MpMemberOrderMapper;
+
+/**
+ * 会员订单Service
+ * @author zwq
+ * @version 2019-11-05
+ */
+@Service
+@Transactional(readOnly = true)
+public class MpMemberOrderService extends CrudService<MpMemberOrderMapper, MpMemberOrder> {
+
+	public MpMemberOrder get(String id) {
+		return super.get(id);
+	}
+	
+	public List<MpMemberOrder> findList(MpMemberOrder mpMemberOrder) {
+		return super.findList(mpMemberOrder);
+	}
+	
+	public Page<MpMemberOrder> findPage(Page<MpMemberOrder> page, MpMemberOrder mpMemberOrder) {
+		return super.findPage(page, mpMemberOrder);
+	}
+	
+	@Transactional(readOnly = false)
+	public void save(MpMemberOrder mpMemberOrder) {
+		super.save(mpMemberOrder);
+	}
+	
+	@Transactional(readOnly = false)
+	public void delete(MpMemberOrder mpMemberOrder) {
+		super.delete(mpMemberOrder);
+	}
+	
+}

+ 225 - 0
happy-job-module-hpvip/src/main/java/com/jeeplus/modules/mporder/web/MpMemberOrderController.java

@@ -0,0 +1,225 @@
+/**
+ * Copyright &copy; 2015-2020 <a href="http://www.jeeplus.org/">JeePlus</a> All rights reserved.
+ */
+package com.jeeplus.modules.mporder.web;
+
+import java.util.List;
+import java.util.Map;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.validation.ConstraintViolationException;
+
+import org.apache.shiro.authz.annotation.Logical;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.Model;
+import org.springframework.web.bind.annotation.ModelAttribute;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RequestMethod;
+import org.springframework.web.bind.annotation.RequestParam;
+import org.springframework.web.bind.annotation.ResponseBody;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.multipart.MultipartFile;
+
+import com.google.common.collect.Lists;
+import com.jeeplus.common.utils.DateUtils;
+import com.jeeplus.common.config.Global;
+import com.jeeplus.common.json.AjaxJson;
+import com.jeeplus.core.persistence.Page;
+import com.jeeplus.core.web.BaseController;
+import com.jeeplus.common.utils.StringUtils;
+import com.jeeplus.common.utils.excel.ExportExcel;
+import com.jeeplus.common.utils.excel.ImportExcel;
+import com.jeeplus.modules.mporder.entity.MpMemberOrder;
+import com.jeeplus.modules.mporder.service.MpMemberOrderService;
+
+/**
+ * 会员订单Controller
+ * @author zwq
+ * @version 2019-11-05
+ */
+@Controller
+@RequestMapping(value = "${adminPath}/mporder/mpMemberOrder")
+public class MpMemberOrderController extends BaseController {
+
+	@Autowired
+	private MpMemberOrderService mpMemberOrderService;
+	
+	@ModelAttribute
+	public MpMemberOrder get(@RequestParam(required=false) String id) {
+		MpMemberOrder entity = null;
+		if (StringUtils.isNotBlank(id)){
+			entity = mpMemberOrderService.get(id);
+		}
+		if (entity == null){
+			entity = new MpMemberOrder();
+		}
+		return entity;
+	}
+	
+	/**
+	 * 会员订单列表页面
+	 */
+	@RequiresPermissions("mporder:mpMemberOrder:list")
+	@RequestMapping(value = {"list", ""})
+	public String list(MpMemberOrder mpMemberOrder, Model model) {
+		model.addAttribute("mpMemberOrder", mpMemberOrder);
+		return "modules/mporder/mpMemberOrderList";
+	}
+	
+		/**
+	 * 会员订单列表数据
+	 */
+	@ResponseBody
+	@RequiresPermissions("mporder:mpMemberOrder:list")
+	@RequestMapping(value = "data")
+	public Map<String, Object> data(MpMemberOrder mpMemberOrder, HttpServletRequest request, HttpServletResponse response, Model model) {
+		Page<MpMemberOrder> page = mpMemberOrderService.findPage(new Page<MpMemberOrder>(request, response), mpMemberOrder); 
+		return getBootstrapData(page);
+	}
+
+	/**
+	 * 查看,增加,编辑会员订单表单页面
+	 */
+	@RequiresPermissions(value={"mporder:mpMemberOrder:view","mporder:mpMemberOrder:add","mporder:mpMemberOrder:edit"},logical=Logical.OR)
+	@RequestMapping(value = "form/{mode}")
+	public String form(@PathVariable String mode, MpMemberOrder mpMemberOrder, Model model) {
+		model.addAttribute("mpMemberOrder", mpMemberOrder);
+		model.addAttribute("mode", mode);
+		return "modules/mporder/mpMemberOrderForm";
+	}
+
+	/**
+	 * 保存会员订单
+	 */
+	@ResponseBody
+	@RequiresPermissions(value={"mporder:mpMemberOrder:add","mporder:mpMemberOrder:edit"},logical=Logical.OR)
+	@RequestMapping(value = "save")
+	public AjaxJson save(MpMemberOrder mpMemberOrder, Model model) throws Exception{
+		AjaxJson j = new AjaxJson();
+		/**
+		 * 后台hibernate-validation插件校验
+		 */
+		String errMsg = beanValidator(mpMemberOrder);
+		if (StringUtils.isNotBlank(errMsg)){
+			j.setSuccess(false);
+			j.setMsg(errMsg);
+			return j;
+		}
+		//新增或编辑表单保存
+		mpMemberOrderService.save(mpMemberOrder);//保存
+		j.setSuccess(true);
+		j.setMsg("保存会员订单成功");
+		return j;
+	}
+	
+	/**
+	 * 删除会员订单
+	 */
+	@ResponseBody
+	@RequiresPermissions("mporder:mpMemberOrder:del")
+	@RequestMapping(value = "delete")
+	public AjaxJson delete(MpMemberOrder mpMemberOrder) {
+		AjaxJson j = new AjaxJson();
+		mpMemberOrderService.delete(mpMemberOrder);
+		j.setMsg("删除会员订单成功");
+		return j;
+	}
+	
+	/**
+	 * 批量删除会员订单
+	 */
+	@ResponseBody
+	@RequiresPermissions("mporder:mpMemberOrder:del")
+	@RequestMapping(value = "deleteAll")
+	public AjaxJson deleteAll(String ids) {
+		AjaxJson j = new AjaxJson();
+		String idArray[] =ids.split(",");
+		for(String id : idArray){
+			mpMemberOrderService.delete(mpMemberOrderService.get(id));
+		}
+		j.setMsg("删除会员订单成功");
+		return j;
+	}
+	
+	/**
+	 * 导出excel文件
+	 */
+	@ResponseBody
+	@RequiresPermissions("mporder:mpMemberOrder:export")
+    @RequestMapping(value = "export")
+    public AjaxJson exportFile(MpMemberOrder mpMemberOrder, HttpServletRequest request, HttpServletResponse response) {
+		AjaxJson j = new AjaxJson();
+		try {
+            String fileName = "会员订单"+DateUtils.getDate("yyyyMMddHHmmss")+".xlsx";
+            Page<MpMemberOrder> page = mpMemberOrderService.findPage(new Page<MpMemberOrder>(request, response, -1), mpMemberOrder);
+    		new ExportExcel("会员订单", MpMemberOrder.class).setDataList(page.getList()).write(response, fileName).dispose();
+    		j.setSuccess(true);
+    		j.setMsg("导出成功!");
+    		return j;
+		} catch (Exception e) {
+			j.setSuccess(false);
+			j.setMsg("导出会员订单记录失败!失败信息:"+e.getMessage());
+		}
+			return j;
+    }
+
+	/**
+	 * 导入Excel数据
+
+	 */
+	@ResponseBody
+	@RequiresPermissions("mporder:mpMemberOrder:import")
+    @RequestMapping(value = "import")
+   	public AjaxJson importFile(@RequestParam("file")MultipartFile file, HttpServletResponse response, HttpServletRequest request) {
+		AjaxJson j = new AjaxJson();
+		try {
+			int successNum = 0;
+			int failureNum = 0;
+			StringBuilder failureMsg = new StringBuilder();
+			ImportExcel ei = new ImportExcel(file, 1, 0);
+			List<MpMemberOrder> list = ei.getDataList(MpMemberOrder.class);
+			for (MpMemberOrder mpMemberOrder : list){
+				try{
+					mpMemberOrderService.save(mpMemberOrder);
+					successNum++;
+				}catch(ConstraintViolationException ex){
+					failureNum++;
+				}catch (Exception ex) {
+					failureNum++;
+				}
+			}
+			if (failureNum>0){
+				failureMsg.insert(0, ",失败 "+failureNum+" 条会员订单记录。");
+			}
+			j.setMsg( "已成功导入 "+successNum+" 条会员订单记录"+failureMsg);
+		} catch (Exception e) {
+			j.setSuccess(false);
+			j.setMsg("导入会员订单失败!失败信息:"+e.getMessage());
+		}
+		return j;
+    }
+	
+	/**
+	 * 下载导入会员订单数据模板
+	 */
+	@ResponseBody
+	@RequiresPermissions("mporder:mpMemberOrder:import")
+    @RequestMapping(value = "import/template")
+     public AjaxJson importFileTemplate(HttpServletResponse response) {
+		AjaxJson j = new AjaxJson();
+		try {
+            String fileName = "会员订单数据导入模板.xlsx";
+    		List<MpMemberOrder> list = Lists.newArrayList(); 
+    		new ExportExcel("会员订单数据", MpMemberOrder.class, 1).setDataList(list).write(response, fileName).dispose();
+    		return null;
+		} catch (Exception e) {
+			j.setSuccess(false);
+			j.setMsg( "导入模板下载失败!失败信息:"+e.getMessage());
+		}
+		return j;
+    }
+
+}