Commit f9e261d6 authored by 谢希宇's avatar 谢希宇

Submit by Strive

Date 2021/07/09
Project End
parent 6500ef22
...@@ -178,12 +178,11 @@ ...@@ -178,12 +178,11 @@
<th>订单编码</th> <th>订单编码</th>
<th>用药人姓名</th> <th>用药人姓名</th>
<th>别名</th> <th>别名</th>
<!-- <th>性别</th>-->
<!-- <th>联系电话</th>-->
<th>新用户</th> <th>新用户</th>
<th>患者类型</th> <th>患者类型</th>
<th>药师</th> <th>药师</th>
<th>客服</th> <th>客服</th>
<th>随访医院</th>
<th>审核状态</th> <th>审核状态</th>
<th>拒绝原由</th> <th>拒绝原由</th>
<th>提交时间</th> <th>提交时间</th>
...@@ -306,12 +305,6 @@ ...@@ -306,12 +305,6 @@
{ {
"mData": "fansAlias" "mData": "fansAlias"
}, },
// {
// "mData": "sex"
// },
// {
// "mData": "phone"
// },
{ {
"mData": "isSales" "mData": "isSales"
}, },
...@@ -324,6 +317,9 @@ ...@@ -324,6 +317,9 @@
{ {
"mData": "customerName" "mData": "customerName"
}, },
{
"mData": "followupHospital"
},
{ {
"mData": "status" "mData": "status"
}, },
...@@ -446,8 +442,20 @@ ...@@ -446,8 +442,20 @@
} }
}, },
{ {
"width": "60px", "width": "80px",
"aTargets": [9], "aTargets": [9],
"mData": "followupHospital",
"mRender": function (a, b, c, d) {
if (a) {
return a;
} else {
return null;
}
}
},
{
"width": "60px",
"aTargets": [10],
"mData": "status", "mData": "status",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
if (a == 0) { if (a == 0) {
...@@ -461,7 +469,7 @@ ...@@ -461,7 +469,7 @@
}, },
{ {
"width": "120px", "width": "120px",
"aTargets": [10], "aTargets": [11],
"mData": "description", "mData": "description",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
if (a) { if (a) {
...@@ -473,7 +481,7 @@ ...@@ -473,7 +481,7 @@
}, },
{ {
"width": "120px", "width": "120px",
"aTargets": [11], "aTargets": [12],
"mData": "createTime", "mData": "createTime",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
if (a) { if (a) {
...@@ -486,7 +494,7 @@ ...@@ -486,7 +494,7 @@
}, },
{ {
"width": "120px", "width": "120px",
"aTargets": [12], "aTargets": [13],
"mData": "auditTime", "mData": "auditTime",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
if (a) { if (a) {
...@@ -498,7 +506,7 @@ ...@@ -498,7 +506,7 @@
}, },
{ {
"width": "80px", "width": "80px",
"aTargets": [13], "aTargets": [14],
"mData": "id", "mData": "id",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
let html = ''; let html = '';
......
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<result column="order_id" property="orderId"></result> <result column="order_id" property="orderId"></result>
<result column="address_id" property="addressId"></result> <result column="address_id" property="addressId"></result>
<result column="audit_time" property="auditTime"></result> <result column="audit_time" property="auditTime"></result>
<result column="followup_hospital" property="followupHospital"></result>
</resultMap> </resultMap>
<sql id="sqlWhere"> <sql id="sqlWhere">
...@@ -90,7 +91,8 @@ ...@@ -90,7 +91,8 @@
a.address_id addressId, a.address_id addressId,
a.audit_time auditTime, a.audit_time auditTime,
b.`name` pharmaName, b.`name` pharmaName,
c.`name` customerName c.`name` customerName,
a.followup_hospital followupHospital
</sql> </sql>
<sql id="sqlCol"> <sql id="sqlCol">
...@@ -221,15 +223,19 @@ ...@@ -221,15 +223,19 @@
(SELECT status FROM t_order sales WHERE sales.del_flag = '0' AND sales.status = '4' AND sales.openid = a.open_id LIMIT 1) isSales, (SELECT status FROM t_order sales WHERE sales.del_flag = '0' AND sales.status = '4' AND sales.openid = a.open_id LIMIT 1) isSales,
f.store fansAlias, f.store fansAlias,
o.status orderStatus, o.status orderStatus,
(SELECT SUM(od.drugs_num) FROM t_order_details od WHERE od.order_id = o.id AND od.del_flag = '0') drugNum (SELECT SUM(od.drugs_num) FROM t_order_details od WHERE od.order_id = o.id AND od.del_flag = '0') drugNum,
GROUP_CONCAT(g.name SEPARATOR ',') tabNames
FROM t_aidea_consult_sheet a FROM t_aidea_consult_sheet a
LEFT JOIN t_order o ON a.order_id = o.id LEFT JOIN t_order o ON a.order_id = o.id
LEFT JOIN t_qyuser b ON b.id = a.doctor_id AND b.del_flag = '0' LEFT JOIN t_qyuser b ON b.id = a.doctor_id AND b.del_flag = '0'
LEFT JOIN t_qyuser c ON c.id = a.service_id AND c.del_flag = '0' LEFT JOIN t_qyuser c ON c.id = a.service_id AND c.del_flag = '0'
LEFT JOIN wx_mp_member m ON m.open_id = a.open_id AND m.del_flag = '0' AND m.status != '0' LEFT JOIN wx_mp_member m ON m.open_id = a.open_id AND m.del_flag = '0'
LEFT JOIN t_aidea_member_group g ON FIND_IN_SET(g.id, m.member_id) != 0 AND g.del_flag = '0'
LEFT JOIN wx_mp_fanss f ON f.openid = a.open_id AND f.delflag = '0' LEFT JOIN wx_mp_fanss f ON f.openid = a.open_id AND f.delflag = '0'
<include refid="sqlWhere"/> <include refid="sqlWhere"/>
<if test="userid!=null">AND (a.doctor_id = ${userid} or a.service_id =${userid})</if> <if test="userid!=null">AND (a.doctor_id = ${userid} or a.service_id =${userid})</if>
AND a.open_id NOT IN (SELECT open_id FROM wx_mp_member WHERE status = '0' AND del_flag = '0')
GROUP BY a.id
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if> <if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if> <if test="limit>0">limit #{offset},#{limit}</if>
</select> </select>
...@@ -338,6 +344,9 @@ ...@@ -338,6 +344,9 @@
<if test="auditTime != null"> <if test="auditTime != null">
audit_time = #{auditTime, jdbcType=TIMESTAMP}, audit_time = #{auditTime, jdbcType=TIMESTAMP},
</if> </if>
<if test="followupHospital != null">
followup_hospital = #{followupHospital, jdbcType=VARCHAR},
</if> l
</set> </set>
where id=#{id,jdbcType=BIGINT} where id=#{id,jdbcType=BIGINT}
</update> </update>
......
...@@ -72,6 +72,8 @@ public class ConsultSheet extends UserSheet implements Serializable { ...@@ -72,6 +72,8 @@ public class ConsultSheet extends UserSheet implements Serializable {
private Long memberId; private Long memberId;
/* 订单id */ /* 订单id */
private Long orderId; private Long orderId;
/* 随访医院 */
private String followupHospital;
/** /**
* 审核时间 * 审核时间
...@@ -97,6 +99,7 @@ public class ConsultSheet extends UserSheet implements Serializable { ...@@ -97,6 +99,7 @@ public class ConsultSheet extends UserSheet implements Serializable {
private String isSales;//是否购买 private String isSales;//是否购买
private String orderStatus;//订单状态 private String orderStatus;//订单状态
private String drugNum;//购买数量 private String drugNum;//购买数量
private String tabNames;//患者类型
public ConsultSheet() { public ConsultSheet() {
this.delFlag = false; this.delFlag = false;
......
...@@ -679,8 +679,7 @@ ...@@ -679,8 +679,7 @@
SELECT COUNT(1) SELECT COUNT(1)
FROM wx_mp_fanss f FROM wx_mp_fanss f
INNER JOIN wx_mp_member m ON f.openid = m.open_id INNER JOIN wx_mp_member m ON f.openid = m.open_id
INNER JOIN t_aidea_authentication au ON m.cardid = au.id_card WHERE f.delflag = '0' AND m.del_flag = '0' AND m.status = '1' AND m.open_id = #{openid}
WHERE f.delflag = '0' AND m.del_flag = '0' AND au.del_flag = '0' AND au.status = '0' AND m.open_id = #{openid}
</select> </select>
<update id="updateRemindType"> <update id="updateRemindType">
......
...@@ -164,7 +164,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order ...@@ -164,7 +164,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
@Transactional(rollbackFor = RuntimeException.class) @Transactional(rollbackFor = RuntimeException.class)
@Override @Override
public JSONObject saveOrderDetail(String datas, Long accountsId, String orderId, String openid, Double orderAmount) throws Exception { public JSONObject saveOrderDetail(String datas, Long accountsId, String orderId, String openid, Double orderAmount) throws Exception {
JSONObject rtnJson = new JSONObject(); JSONObject rtnJson = new JSONObject();
JSONArray jsonArray = JSONArray.parseArray(datas); JSONArray jsonArray = JSONArray.parseArray(datas);
...@@ -258,9 +258,41 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order ...@@ -258,9 +258,41 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
/** /**
* 计算总金额 * 计算总金额
*
* @param order * @param order
* @param orderAmount //非三期患者所以购药金额 * @param orderAmount //非三期患者所以购药金额
* 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。 * 三期患者免费购药,根据身份证号做出限制,每年同一身份证号购买12盒以内的药品,价格自动设为0,如超出12 盒恢复原价。
* <p>
* 三期患者 每年12瓶免费用药逻辑
* BigDecimal unitP = new BigDecimal(price);//折扣单价
* BigDecimal nums = null;//折扣数量
* //三期用户
* Conds conds = new Conds();
* conds.equal("t.del_flag", Constants.DEL_FLAG_0);
* conds.equal("t.openid", order.getOpenid());
* Calendar cal = Calendar.getInstance();
* int year = cal.get(Calendar.YEAR);
* conds.equal("YEAR(t.create_time)", year);
* Integer number = orderDetailsService.fetchMemberByYearGoodsNum(conds);//已购药品数据
* if (number >= 12) {
* order.setTotalAmount(orderAmount * 100);//订单原价
* order.setOrderAmount(orderAmount);//实际需支付价格
* } else {
* int realNum = (12 - number);//剩余每年免费盒数
* if (num.intValue() < realNum) {
* nums = new BigDecimal(num);
* } else {
* nums = new BigDecimal(realNum);
* }
* BigDecimal saleAmount = unitP.multiply(nums);//三期患者折扣价格
* BigDecimal sumAmount = new BigDecimal(orderAmount);//订单总价
* BigDecimal realAmount = sumAmount.subtract(saleAmount);//实际需支付价格
* order.setTotalAmount(sumAmount.doubleValue() * 100);//订单原价
* order.setOrderAmount(realAmount.doubleValue());//实际需支付价格
* order.setRemindType(nums.toString());//三期患者本单免费数量
* }
* <p>
* 三期患者 当前时间-首单时间 >=( (30天 * 所有免费瓶数 )- N天) 用药逻辑
*/ */
private void calculateAmount(Order order, Double orderAmount, Long num, Double price) { private void calculateAmount(Order order, Double orderAmount, Long num, Double price) {
if (isThreeUsers(order.getOpenid()) > 0) { if (isThreeUsers(order.getOpenid()) > 0) {
...@@ -352,7 +384,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order ...@@ -352,7 +384,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.SECOND, 0);
Date now = calendar.getTime(); Date now = calendar.getTime();
Date payDate = DateFormatUtils.formatDate(orderMobile.getPayTime(), "yyyy-MM-dd"); Date payDate = DateFormatUtils.formatDate(orderMobile.getPayTime(), "yyyy-MM-dd");
long difference = (now.getTime()-payDate.getTime())/86400000; long difference = (now.getTime() - payDate.getTime()) / 86400000;
orderMobile.setIsSevenDay(String.valueOf(Math.abs(difference))); orderMobile.setIsSevenDay(String.valueOf(Math.abs(difference)));
} }
...@@ -666,7 +698,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order ...@@ -666,7 +698,7 @@ public class OrderServiceImpl extends GenericServiceImpl<Order> implements Order
msg = SystemConfig.p.getProperty("QY_SEND_SERVICE_PAYMENT_SUCCESS_MAG") + order.getNumber() + ";患者昵称:" + msg = SystemConfig.p.getProperty("QY_SEND_SERVICE_PAYMENT_SUCCESS_MAG") + order.getNumber() + ";患者昵称:" +
(StringUtils.isNoneBlank(order.getNickName()) ? order.getNickName() : "") + ";患者别名:" + (StringUtils.isNoneBlank(order.getNickName()) ? order.getNickName() : "") + ";患者别名:" +
(StringUtils.isNoneBlank(order.getFansAlias()) ? order.getFansAlias() : "")+ ";患者付款金额:" + payAmountDb + "(单位/元)"; (StringUtils.isNoneBlank(order.getFansAlias()) ? order.getFansAlias() : "") + ";患者付款金额:" + payAmountDb + "(单位/元)";
} }
if (qyusers != null && qyusers.size() > 0) { if (qyusers != null && qyusers.size() > 0) {
......
...@@ -156,7 +156,6 @@ public class OrderController { ...@@ -156,7 +156,6 @@ public class OrderController {
} }
} }
JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(orderFromVO)); JSONObject jsonObject = JSON.parseObject(JSON.toJSONString(orderFromVO));
model.addAttribute("data", jsonObject); model.addAttribute("data", jsonObject);
......
...@@ -61,8 +61,8 @@ ...@@ -61,8 +61,8 @@
<section class="content-header"> <section class="content-header">
<h1> <h1>
会员管理 CRC患者管理
<small>会员信息</small> <small>CRC患者信息</small>
</h1> </h1>
<ol class="breadcrumb"> <ol class="breadcrumb">
<li><a><i class="fa fa-dashboard"></i>首页</a></li> <li><a><i class="fa fa-dashboard"></i>首页</a></li>
...@@ -287,7 +287,7 @@ ...@@ -287,7 +287,7 @@
"mData": "source" "mData": "source"
}, },
{ {
"mData": "memberId" "mData": "tabNames"
}, },
{ {
"mData": "createTime" "mData": "createTime"
...@@ -381,13 +381,6 @@ ...@@ -381,13 +381,6 @@
} }
}, },
{ {
"aTargets": [9],
"mData": "memberId",
"mRender": function (a, b, c, d) {
return a;
}
}
, {
"aTargets": [11], "aTargets": [11],
"mData": "createTime", "mData": "createTime",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
...@@ -401,11 +394,13 @@ ...@@ -401,11 +394,13 @@
var html = ''; var html = '';
html += '#if($shiro.hasPermission("qy:member:audit"))'; html += '#if($shiro.hasPermission("qy:member:audit"))';
html += '<a onclick="showTabsDiv('+c.id+')" class="btn green">设置类型</a>'; html += '<a onclick="showTabsDiv('+c.id+')" class="btn green">设置类型</a>';
if (c.status == '0') { if (c.invitcode != null && c.invitcode != '' && c.cardid != null && c.cardid != '') {
html += '<a onclick="auditPass(' + c.id + ')" class="btn green">审核通过</a>'; if (c.status == '0') {
} html += '<a onclick="auditPass(' + c.id + ')" class="btn green">审核通过</a>';
if (c.status != '2') { }
html += '<a onclick="auditNotPass(' + c.id + ')" class="btn green">审核拒绝</a>'; if (c.status != '2') {
html += '<a onclick="auditNotPass(' + c.id + ')" class="btn green">审核拒绝</a>';
}
} }
html += '#end'; html += '#end';
return html; return html;
...@@ -516,9 +511,6 @@ ...@@ -516,9 +511,6 @@
error: function () { error: function () {
} }
}); });
//$(".select2").val([]).trigger("change");
} }
function submitTabs() { function submitTabs() {
......
...@@ -43,6 +43,7 @@ ...@@ -43,6 +43,7 @@
href="plugins\bootstrap-fileinput\fileinput.min.css"> href="plugins\bootstrap-fileinput\fileinput.min.css">
<!-- bootstrap wysihtml5 - text editor --> <!-- bootstrap wysihtml5 - text editor -->
<link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css"> <link rel="stylesheet" href="plugins/bootstrap-wysihtml5/bootstrap3-wysihtml5.min.css">
<link rel="stylesheet" href="plugins/select2/select2.min.css">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
...@@ -69,26 +70,38 @@ ...@@ -69,26 +70,38 @@
</ol> </ol>
</section> </section>
<div id="addlabelModal" class="modal fade"> <div class="modal fade" id="tabsDiv" tabindex="-1" role="dialog" aria-hidden="true">
<div class="modal-dialog"> <div class="modal-dialog">
<div class="modal-content"> <div class="modal-content">
<!-- dialog body --> <div class="modal-header">
<h4 class="modal-title" style="font-weight: 700;">设置患者类型</h4>
<button type="button" class="close" data-dismiss="modal" aria-label="Close">
<span aria-hidden="true">&times;</span>
</button>
</div>
<div class="modal-body"> <div class="modal-body">
<font color="red" style="margin: 10px;">*谨慎操作:生成虚拟会员后,此邀请码对应的预导入名单人员状态自动为报名状态*</font> <form>
<input class="form-control select2" style="width: 100%" id="addlabel" <input id="tabNumberId" name="tabNumberId" style="display: none;">
placeholder='邀请码'> <div class="form-group">
</input> <!-- <label for="message-text" class="col-form-label">请选择患者类型:</label>-->
<select class="form-control select2" style="width: 100%" multiple="multiple" data-placeholder="请选择类型">
#foreach($group in $groups)
<option value="${group.id}" data-attr="${role.roleSign}">${group.name}
</option>
#end
</select>
</div>
</form>
</div> </div>
<div style="text-align: center;padding-bottom: 20px;"> <div class="modal-footer">
<button style="width: 100px;" type="button" class="btn btn-primary" onclick="addlabelsubmit()"> <button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
确定 <button type="button" class="btn btn-primary" onclick="submitTabs()">提交</button>
</button>
<button style="width: 100px;" type="button" id="tagCacel" class="btn btn-default">取消</button>
</div> </div>
<!-- dialog buttons -->
</div> </div>
</div> </div>
</div> </div>
<!-- Main content --> <!-- Main content -->
<section class="content"> <section class="content">
<div class="row"> <div class="row">
...@@ -137,10 +150,12 @@ ...@@ -137,10 +150,12 @@
<th>身份证</th> <th>身份证</th>
<th>来源</th> <th>来源</th>
<th>三期患者</th> <th>三期患者</th>
<th>患者类型</th>
<!-- <th>邀请码</th>--> <!-- <th>邀请码</th>-->
<!-- <th>客户分类</th>--> <!-- <th>客户分类</th>-->
<!-- <th>名片</th>--> <!-- <th>名片</th>-->
<th>创建日期</th> <th>创建日期</th>
<th>操作</th>
</tr> </tr>
</thead> </thead>
<tbody id="tablebody"> <tbody id="tablebody">
...@@ -181,6 +196,7 @@ ...@@ -181,6 +196,7 @@
<script src="dist/js/app.min.js"></script> <script src="dist/js/app.min.js"></script>
<script type="text/javascript" <script type="text/javascript"
src="plugins/jquery-validation/js/jquery.validate.min.js"></script> src="plugins/jquery-validation/js/jquery.validate.min.js"></script>
<script src="plugins/select2/select2.full.min.js"></script>
<script> <script>
var csrfheader = {name: '_csrf_header', value: '${_csrf.headerName}'}; var csrfheader = {name: '_csrf_header', value: '${_csrf.headerName}'};
var csrftoken = {name: '_csrf', value: '${_csrf.token}'}; var csrftoken = {name: '_csrf', value: '${_csrf.token}'};
...@@ -254,8 +270,14 @@ ...@@ -254,8 +270,14 @@
{ {
"mData": "status" "mData": "status"
}, },
{
"mData": "tabNames"
},
{ {
"mData": "createTime" "mData": "createTime"
},
{
"mData": "id"
} }
], ],
"aoColumnDefs": [ "aoColumnDefs": [
...@@ -263,7 +285,6 @@ ...@@ -263,7 +285,6 @@
'visible': false, 'visible': false,
'targets': [0] 'targets': [0]
}, },
{ {
"aTargets": [1], "aTargets": [1],
"mData": "imageurl", "mData": "imageurl",
...@@ -338,11 +359,22 @@ ...@@ -338,11 +359,22 @@
} }
}, },
{ {
"aTargets": [8], "aTargets": [10],
"mData": "createTime", "mData": "createTime",
"mRender": function (a, b, c, d) { "mRender": function (a, b, c, d) {
return formatDates(a, "yyyy-MM-dd HH:mm:ss"); return formatDates(a, "yyyy-MM-dd HH:mm:ss");
} }
},
{
"aTargets": [11],
"mData": "id",
"mRender": function (a, b, c, d) {
var html = '';
html += '#if($shiro.hasPermission("qy:member:audit"))';
html += '<a onclick="showTabsDiv('+c.id+')" class="btn green">设置类型</a>';
html += '#end';
return html;
}
} }
] ]
}); });
...@@ -394,6 +426,7 @@ ...@@ -394,6 +426,7 @@
jQuery(document).ready(function () { jQuery(document).ready(function () {
$(".select2").select2();
seachTable(); seachTable();
$('.datepicker').datepicker({ $('.datepicker').datepicker({
show: true, show: true,
...@@ -452,7 +485,53 @@ ...@@ -452,7 +485,53 @@
}); });
} }
function showTabsDiv(id) {
$("#tabsDiv").modal('show');
$("#tabNumberId").val(id);
$.ajax({
type: "POST",
url: "#springUrl('/a/member/memberById')",
data: {id: $("#tabNumberId").val(), _csrf_header: csrfheader.value, _csrf: csrftoken.value},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
if (data.member.memberId != null) {
$(".select2").val(data.member.memberId.split(",")).trigger("change");
} else {
$(".select2").val([]).trigger("change");
}
}
},
error: function () {
}
});
}
function submitTabs() {
debugger;
$("#tabsDiv").modal('hide');
let vals = $('.select2').select2('val');
if (vals.length == 0) {
Cfapp.alert({ message: "请先选择患者类型", btntext: "确定", success: function () {} });
return;
}
$.ajax({
type: "POST",
url: "#springUrl('/a/member/formData')",
data: {id: $("#tabNumberId").val(), memberId: vals.join(','), _csrf_header: csrfheader.value, _csrf: csrftoken.value},
dataType: "json",
success: function (data) {
if (data.errorNo == 0) {
$("#tabsDiv").modal('hide');
location.href = "#springUrl('/a/member/list')";
}
},
error: function () {
}
});
}
</script> </script>
</body> </body>
</html> </html>
...@@ -108,7 +108,8 @@ ...@@ -108,7 +108,8 @@
</sql> </sql>
<sql id="sqlColumns"> <sql id="sqlColumns">
id,number,name,phone,imageurl,cardid,email,member_id,accounts_id,del_flag,status,create_time,update_time,description,create_by,update_by, id
,number,name,phone,imageurl,cardid,email,member_id,accounts_id,del_flag,status,create_time,update_time,description,create_by,update_by,
open_id,storeid,fanss_store_id,sex,birthday,area,service_id,doctor_id,invitcode,compan,source,audit_time open_id,storeid,fanss_store_id,sex,birthday,area,service_id,doctor_id,invitcode,compan,source,audit_time
</sql> </sql>
...@@ -116,67 +117,66 @@ ...@@ -116,67 +117,66 @@
keyProperty="id"> keyProperty="id">
insert into wx_mp_member insert into wx_mp_member
( (
<include refid="sqlColumns"/> <include refid="sqlColumns"/>
) )
values values
( (
#{id, jdbcType=BIGINT}, #{id, jdbcType=BIGINT},
#{number, jdbcType=VARCHAR}, #{number, jdbcType=VARCHAR},
#{name, jdbcType=VARCHAR}, #{name, jdbcType=VARCHAR},
AES_ENCRYPT(#{phone, jdbcType=VARBINARY},'aideakey'), AES_ENCRYPT(#{phone, jdbcType=VARBINARY},'aideakey'),
#{imageurl, jdbcType=VARCHAR}, #{imageurl, jdbcType=VARCHAR},
#{cardid, jdbcType=VARCHAR}, #{cardid, jdbcType=VARCHAR},
AES_ENCRYPT(#{email, jdbcType=VARBINARY},'aideakey'), AES_ENCRYPT(#{email, jdbcType=VARBINARY},'aideakey'),
#{memberId, jdbcType=VARCHAR}, #{memberId, jdbcType=VARCHAR},
#{accountsId, jdbcType=BIGINT}, #{accountsId, jdbcType=BIGINT},
#{delFlag, jdbcType=TINYINT}, #{delFlag, jdbcType=TINYINT},
#{status, jdbcType=VARCHAR}, #{status, jdbcType=VARCHAR},
now(), now(),
now(), now(),
#{description, jdbcType=VARCHAR}, #{description, jdbcType=VARCHAR},
#{createBy, jdbcType=BIGINT}, #{createBy, jdbcType=BIGINT},
#{updateBy, jdbcType=BIGINT}, #{updateBy, jdbcType=BIGINT},
#{openId, jdbcType=VARCHAR}, #{openId, jdbcType=VARCHAR},
#{storeid,jdbcType=VARCHAR}, #{storeid,jdbcType=VARCHAR},
#{fanssStoreId, jdbcType=BIGINT}, #{fanssStoreId, jdbcType=BIGINT},
#{sex, jdbcType=BIGINT}, #{sex, jdbcType=BIGINT},
AES_ENCRYPT(#{birthday,jdbcType=VARBINARY},'aideakey'),#{area,jdbcType=VARCHAR}, AES_ENCRYPT(#{birthday,jdbcType=VARBINARY},'aideakey'),#{area,jdbcType=VARCHAR},
#{serviceId, jdbcType=VARCHAR}, #{serviceId, jdbcType=VARCHAR},
#{doctorId,jdbcType=VARCHAR}, #{doctorId,jdbcType=VARCHAR},
#{invitcode,jdbcType=VARCHAR}, #{invitcode,jdbcType=VARCHAR},
#{compan,jdbcType=VARCHAR}, #{compan,jdbcType=VARCHAR},
#{source,jdbcType=BIGINT}, #{source,jdbcType=BIGINT},
#{auditTime,jdbcType=TIMESTAMP} #{auditTime,jdbcType=TIMESTAMP}
) )
</insert> </insert>
<select id="fetchById" parameterType="java.lang.Long" resultMap="resultMap"> <select id="fetchById" parameterType="java.lang.Long" resultMap="resultMap">
SELECT SELECT t.id,
t.id, t.number,
t.number, t.name,
t.name, CONVERT(AES_DECRYPT(t.phone, 'aideakey') USING UTF8) phone,
CONVERT( AES_DECRYPT( t.phone,'aideakey') USING UTF8) phone, t.imageurl,
t.imageurl, t.cardid,
t.cardid, CONVERT(AES_DECRYPT(t.email, 'aideakey') USING UTF8) email,
CONVERT( AES_DECRYPT(t.email,'aideakey') USING UTF8) email, t.member_id,
t.member_id, t.accounts_id,
t.accounts_id, t.del_flag,
t.del_flag, t.status,
t.status, t.create_time,
t.create_time, t.update_time,
t.update_time, t.description,
t.description, t.create_by,
t.create_by, t.update_by,
t.update_by, t.open_id,
t.open_id, t.storeid,
t.storeid, t.area,
t.area, t.fanss_store_id,
t.fanss_store_id, t.doctor_id,
t.doctor_id, t.invitcode,
t.invitcode, t.compan
t.compan
FROM wx_mp_member t FROM wx_mp_member t
WHERE t.id=#{id} WHERE t.id = #{id}
</select> </select>
<select id="count" parameterType="java.util.Map" resultType="java.lang.Integer"> <select id="count" parameterType="java.util.Map" resultType="java.lang.Integer">
...@@ -203,26 +203,26 @@ ...@@ -203,26 +203,26 @@
<select id="fetchSearchByPageServer" parameterType="java.util.Map" resultMap="resultMap"> <select id="fetchSearchByPageServer" parameterType="java.util.Map" resultMap="resultMap">
SELECT SELECT
member.id, member.id,
member.number, member.number,
member.name, member.name,
CONVERT(AES_DECRYPT(member.phone,'aideakey') USING UTF8) member.phone, CONVERT(AES_DECRYPT(member.phone,'aideakey') USING UTF8) member.phone,
member.imageurl, member.imageurl,
member.member_id, member.member_id,
member.accounts_id, member.accounts_id,
member.del_flag, member.del_flag,
member. STATUS, member. STATUS,
member.create_time, member.create_time,
member.update_time, member.update_time,
member.description, member.description,
member.create_by, member.create_by,
member.update_by, member.update_by,
member.open_id, member.open_id,
member.storeid, member.storeid,
member.invitcode, member.invitcode,
member.compan, member.compan,
member.sex, member.sex,
member.service_id member.service_id
FROM FROM
wx_mp_member member wx_mp_member member
<include refid="sqlWhere"/> <include refid="sqlWhere"/>
...@@ -316,30 +316,36 @@ ...@@ -316,30 +316,36 @@
</update> </update>
<update id="delete" parameterType="java.lang.Long"> <update id="delete" parameterType="java.lang.Long">
update wx_mp_member set del_flag=1 where id=#{id,jdbcType=BIGINT} update wx_mp_member
set del_flag=1
where id = #{id,jdbcType=BIGINT}
</update> </update>
<select id="selectmemberDto" parameterType="java.util.Map" resultType="com.cftech.member.model.MemberDto"> <select id="selectmemberDto" parameterType="java.util.Map" resultType="com.cftech.member.model.MemberDto">
SELECT SELECT
m.id, m.id,
m.imageurl, m.imageurl,
m.sex, m.sex,
m.name, m.name,
CONVERT(AES_DECRYPT(m.phone,'aideakey') USING UTF8) as phone, CONVERT(AES_DECRYPT(m.phone,'aideakey') USING UTF8) as phone,
m.open_id AS openId, m.open_id AS openId,
m.create_time as createTime, m.create_time as createTime,
m.member_id memberId, m.member_id memberId,
m.source, m.source,
m.cardid, m.cardid,
m.status, m.status,
m.invitcode, m.invitcode,
q.name serviceName q.name serviceName,
FROM GROUP_CONCAT(g.name SEPARATOR ',') tabNames
wx_mp_member m LEFT JOIN t_qyuser q ON m.service_id = q.id FROM wx_mp_member m
LEFT JOIN t_qyuser q ON m.service_id = q.id
LEFT JOIN t_aidea_member_group g ON FIND_IN_SET(g.id, m.member_id) != 0 AND g.del_flag = '0'
<include refid="sqlWhere"/> <include refid="sqlWhere"/>
GROUP BY m.id
<if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if> <if test="sort!=null">ORDER BY ${sort.param} ${sort.type}</if>
<if test="limit>0">limit #{offset},#{limit}</if> <if test="limit>0">limit #{offset},#{limit}</if>
</select> </select>
<select id="selectmemberDtoCount" parameterType="java.util.Map" resultType="java.lang.Integer"> <select id="selectmemberDtoCount" parameterType="java.util.Map" resultType="java.lang.Integer">
SELECT SELECT
COUNT(1) COUNT(1)
...@@ -347,46 +353,47 @@ ...@@ -347,46 +353,47 @@
wx_mp_member m wx_mp_member m
<include refid="sqlWhere"/> <include refid="sqlWhere"/>
</select> </select>
<!--个人信息回填
--> <!--个人信息回填-->
<select id="memberFormation" parameterType="java.lang.String" resultType="com.cftech.member.model.MemberVO"> <select id="memberFormation" parameterType="java.lang.String" resultType="com.cftech.member.model.MemberVO">
SELECT SELECT t.id,
t.id,
t.name memberName, t.name memberName,
t.sex, t.sex,
CONVERT(AES_DECRYPT(t.birthday, 'aideakey')USING UTF8) birthday, CONVERT(AES_DECRYPT(t.birthday, 'aideakey') USING UTF8) birthday,
t.imageurl, t.imageurl,
CONVERT(AES_DECRYPT(t.email, 'aideakey')USING UTF8) AS mailbox, CONVERT(AES_DECRYPT(t.email, 'aideakey') USING UTF8) AS mailbox,
CONVERT(AES_DECRYPT(t.phone, 'aideakey')USING UTF8) as phone, CONVERT(AES_DECRYPT(t.phone, 'aideakey') USING UTF8) as phone,
t.cardid, t.cardid,
t.status, t.status,
t.storeid, t.storeid,
o.org_name hospitalsName, o.org_name hospitalsName,
t.invitcode, t.invitcode,
t.audit_time auditTime, t.audit_time auditTime,
t.open_id openid, t.open_id openid,
t.service_id serviceId, t.service_id serviceId,
u.name serviceName u.name serviceName,
t.compan
FROM wx_mp_member t FROM wx_mp_member t
LEFT JOIN t_orgunit o ON t.storeid = o.id LEFT JOIN t_orgunit o ON t.storeid = o.id
LEFT JOIN t_qyuser u ON t.service_id = u.id LEFT JOIN t_qyuser u ON t.service_id = u.id
WHERE t.open_id = #{openid} and t.del_flag = 0 WHERE t.open_id = #{openid}
and t.del_flag = 0
</select> </select>
<select id="fanssChat" resultType="com.cftech.member.model.FanssVO"> <select id="fanssChat" resultType="com.cftech.member.model.FanssVO">
SELECT SELECT f.id,
f.id, f.openid,
f.openid, f.nickname nickname,
f.nickname nickname, f.headimgurl,
f.headimgurl, m.status isThree,
m.status isThree, m.invitcode invitcode,
m.invitcode invitcode, m.cardid cardid,
m.cardid cardid, o.org_name hospital
o.org_name hospital FROM wx_mp_fanss f
FROM wx_mp_fanss f LEFT JOIN wx_mp_member m ON f.openid = m.open_id AND m.del_flag = '0'
LEFT JOIN wx_mp_member m ON f.openid = m.open_id AND m.del_flag = '0' LEFT JOIN t_orgunit o ON m.storeid = o.id
LEFT JOIN t_orgunit o ON m.storeid = o.id WHERE f.openid = #{openid}
WHERE f.openid = #{openid} and f.delflag = '0' and f.delflag = '0'
</select> </select>
<!-- 个人信息修改 --> <!-- 个人信息修改 -->
......
...@@ -44,6 +44,7 @@ public class MemberDto { ...@@ -44,6 +44,7 @@ public class MemberDto {
private String memberId; private String memberId;
private String tabNames;
......
...@@ -42,6 +42,14 @@ public interface MemberService extends GenericService<Member> { ...@@ -42,6 +42,14 @@ public interface MemberService extends GenericService<Member> {
void updateworkshop(Member member,String invitcode); void updateworkshop(Member member,String invitcode);
/**
* 会员列表
* @param conds
* @param sort
* @param page
* @param pageSize
* @return
*/
List<MemberDto> selectmemberDto(Conds conds, Sort sort, int page, int pageSize); List<MemberDto> selectmemberDto(Conds conds, Sort sort, int page, int pageSize);
int selectmemberDtoCount (Conds conds); int selectmemberDtoCount (Conds conds);
......
...@@ -120,8 +120,8 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem ...@@ -120,8 +120,8 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
//未注册会员时,填充粉丝信息 //未注册会员时,填充粉丝信息
List<MemberVO> memberVOS = memberMapper.memberFormation(openid); List<MemberVO> memberVOS = memberMapper.memberFormation(openid);
if (memberVOS == null || memberVOS.size() == 0) { if (memberVOS == null || memberVOS.size() == 0) {
MpFanssEntity fanssEntity = fanssService.getWxUser(openid);
MemberVO member = new MemberVO(); MemberVO member = new MemberVO();
MpFanssEntity fanssEntity = fanssService.getWxUser(openid);
member.setOpenid(openid); member.setOpenid(openid);
member.setMemberName(fanssEntity.getNickname()); member.setMemberName(fanssEntity.getNickname());
member.setSex(fanssEntity.getSex()); member.setSex(fanssEntity.getSex());
...@@ -129,9 +129,7 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem ...@@ -129,9 +129,7 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
rtnJson.put("errorNo", "0"); rtnJson.put("errorNo", "0");
rtnJson.put("data", member); rtnJson.put("data", member);
} else { } else {
MpFanssEntity fanssEntity = fanssService.getWxUser(openid);
MemberVO member = memberVOS.get(0); MemberVO member = memberVOS.get(0);
member.setImageUrl(fanssEntity.getHeadimgurl());
rtnJson.put("errorNo", "0"); rtnJson.put("errorNo", "0");
rtnJson.put("data", member); rtnJson.put("data", member);
} }
...@@ -151,11 +149,6 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem ...@@ -151,11 +149,6 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
rtnJson.put("errorMsg", "姓名不能为空"); rtnJson.put("errorMsg", "姓名不能为空");
return rtnJson; return rtnJson;
} }
if (StringUtils.isEmpty(memberVO.getCardid())) {
rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "身份证不能为空");
return rtnJson;
}
if (StringUtils.isEmpty(memberVO.getPhone())) { if (StringUtils.isEmpty(memberVO.getPhone())) {
rtnJson.put("errorNo", "1"); rtnJson.put("errorNo", "1");
rtnJson.put("errorMsg", "联系方式不能为空"); rtnJson.put("errorMsg", "联系方式不能为空");
...@@ -163,9 +156,20 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem ...@@ -163,9 +156,20 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
} }
MpAccountsEntity accounts= mpAccountsService.getMpAccountsAppid(memberVO.getAppId()); MpAccountsEntity accounts= mpAccountsService.getMpAccountsAppid(memberVO.getAppId());
List<MemberVO> memberVOS = memberMapper.memberFormation(memberVO.getOpenid());
if (memberVOS == null || memberVOS.size() == 0) { Member member = this.fetchById(memberVO.getId());
Member member = new Member(); if (member == null) {
//验证随机号是否被使用
Conds conds = new Conds();
conds.equal("invitcode", memberVO.getInvitcode());
List<Member> list = this.fetchSearchByPage(conds, null, 0, 0);
if (list != null && list.size() != 0) {
rtnJson.put("errorNo", "2");
rtnJson.put("errorMsg", "随机号已被使用");
return rtnJson;
}
member = new Member();
member.setNumber(codingruleUtils.getNumber(accounts.getId(), Member.class.getName())); member.setNumber(codingruleUtils.getNumber(accounts.getId(), Member.class.getName()));
member.setOpenId(memberVO.getOpenid()); member.setOpenId(memberVO.getOpenid());
member.setName(memberVO.getMemberName()); member.setName(memberVO.getMemberName());
...@@ -173,20 +177,40 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem ...@@ -173,20 +177,40 @@ public class MemberServiceImpl extends GenericServiceImpl<Member> implements Mem
member.setCardid(memberVO.getCardid()); member.setCardid(memberVO.getCardid());
member.setPhone(memberVO.getPhone()); member.setPhone(memberVO.getPhone());
member.setImageurl(memberVO.getImageUrl()); member.setImageurl(memberVO.getImageUrl());
member.setStoreid(memberVO.getStoreid());//入组医院 member.setCompan(memberVO.getCompan());
member.setInvitcode(memberVO.getInvitcode());//随机号 //三期用户
if (StringUtils.isNoneBlank(memberVO.getStoreid()) && StringUtils.isNoneBlank(memberVO.getInvitcode())) { if (StringUtils.equals(memberVO.getCompan(), "1")) {
member.setStatus("0");//待审批 member.setStatus("0");
member.setStoreid(memberVO.getStoreid());
member.setInvitcode(memberVO.getInvitcode());
} }
memberMapper.save(member); memberMapper.save(member);
rtnJson.put("errorNo", "0"); rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "修改成功"); rtnJson.put("errorMsg", "修改成功");
return rtnJson; return rtnJson;
} else { } else {
if (StringUtils.equals("2", memberVOS.get(0).getStatus()) && StringUtils.isNoneBlank(memberVO.getStoreid()) && StringUtils.isNoneBlank(memberVO.getInvitcode())) { //验证随机号是否被使用
memberVO.setStatus("0"); Conds conds = new Conds();
conds.equal("invitcode", memberVO.getInvitcode());
conds.notEqual("id", member.getId());
List<Member> list = this.fetchSearchByPage(conds, null, 0, 0);
if (list != null && list.size() != 0) {
rtnJson.put("errorNo", "2");
rtnJson.put("errorMsg", "随机号已被使用");
return rtnJson;
}
member.setName(memberVO.getMemberName());
member.setSex(Long.parseLong(memberVO.getSex()));
member.setPhone(memberVO.getPhone());
member.setCompan(memberVO.getCompan());
//三期患者且审核拒绝
if (StringUtils.equals(memberVO.getCompan(), "1") && StringUtils.equals(member.getStatus(), "2")) {
member.setStatus("0");
member.setStoreid(memberVO.getStoreid());
member.setInvitcode(memberVO.getInvitcode());
} }
memberMapper.updateMember(memberVO); memberMapper.update(member);
rtnJson.put("errorNo", "0"); rtnJson.put("errorNo", "0");
rtnJson.put("errorMsg", "修改成功"); rtnJson.put("errorMsg", "修改成功");
return rtnJson; return rtnJson;
......
...@@ -110,6 +110,13 @@ public class MemberController { ...@@ -110,6 +110,13 @@ public class MemberController {
@RequestMapping("/list") @RequestMapping("/list")
public String list(HttpServletRequest request, Model model) { public String list(HttpServletRequest request, Model model) {
Long accountId = UserUtils.getmpaccounts(request); Long accountId = UserUtils.getmpaccounts(request);
//获取患者类型数据
Conds conds = new Conds();
conds.equal("del_flag", Constants.DEL_FLAG_0);
Sort sort = new Sort("create_time", OrderType.DESC);
List<MemberGroup> groups = memberGroupService.fetchSearchByPage(conds, sort, 0, 0);
model.addAttribute("groups", groups);
model.addAttribute("accountId", accountId); model.addAttribute("accountId", accountId);
return "member/memberlist"; return "member/memberlist";
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment